summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile23
-rw-r--r--asm-de/contest_link_80C2020.s4
-rw-r--r--asm-de/easy_chat.s2
-rw-r--r--asm/battle_2.s8
-rw-r--r--asm/battle_9.s48
-rw-r--r--asm/battle_anim_80CA710.s2172
-rw-r--r--asm/battle_anim_81258BC.s22
-rw-r--r--asm/battle_anim_812C144.s454
-rw-r--r--asm/battle_anim_813F0F4.s120
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/cable_car.s8
-rw-r--r--asm/contest.s2
-rw-r--r--asm/contest_link_80C2020.s4
-rw-r--r--asm/daycare.s2399
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/field_effect_helpers.s4349
-rw-r--r--asm/field_map_obj.s628
-rw-r--r--asm/pokemon_storage_system.s4
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/pokenav.s2
-rw-r--r--asm/slot_machine.s4
-rw-r--r--asm/trade.s12
-rw-r--r--common_syms/battle/battle_anim.txt (renamed from common_syms/battle_anim.txt)0
-rw-r--r--common_syms/debug/mori_debug_menu.txt (renamed from common_syms/mori_debug_menu.txt)0
-rw-r--r--common_syms/debug/sound_check_menu.txt (renamed from common_syms/sound_check_menu.txt)0
-rw-r--r--common_syms/engine/link.txt (renamed from common_syms/link.txt)0
-rw-r--r--common_syms/engine/load_save.txt (renamed from common_syms/load_save.txt)0
-rw-r--r--common_syms/engine/main.txt (renamed from common_syms/main.txt)0
-rw-r--r--common_syms/engine/record_mixing.txt (renamed from common_syms/record_mixing.txt)0
-rw-r--r--common_syms/engine/rng.txt (renamed from common_syms/rng.txt)0
-rw-r--r--common_syms/engine/rtc.txt (renamed from common_syms/rtc.txt)0
-rw-r--r--common_syms/engine/save.txt (renamed from common_syms/save.txt)0
-rw-r--r--common_syms/engine/sound.txt (renamed from common_syms/sound.txt)0
-rw-r--r--common_syms/engine/sprite.txt (renamed from common_syms/sprite.txt)0
-rw-r--r--common_syms/engine/string_util.txt (renamed from common_syms/string_util.txt)0
-rw-r--r--common_syms/engine/task.txt (renamed from common_syms/task.txt)0
-rw-r--r--common_syms/field/field_camera.txt (renamed from common_syms/field_camera.txt)0
-rw-r--r--common_syms/field/field_control_avatar.txt (renamed from common_syms/field_control_avatar.txt)0
-rw-r--r--common_syms/field/field_map_obj.txt (renamed from common_syms/field_map_obj.txt)0
-rw-r--r--common_syms/field/fieldmap.txt (renamed from common_syms/fieldmap.txt)0
-rw-r--r--common_syms/field/overworld.txt (renamed from common_syms/overworld.txt)0
-rw-r--r--common_syms/field/start_menu.txt (renamed from common_syms/start_menu.txt)0
-rw-r--r--common_syms/field/tv.txt (renamed from common_syms/tv.txt)0
-rw-r--r--common_syms/libs/agb_flash.txt (renamed from common_syms/agb_flash.txt)0
-rw-r--r--common_syms/libs/m4a_2.txt (renamed from common_syms/m4a_2.txt)0
-rw-r--r--common_syms/pokemon/pokeblock_feed.txt (renamed from common_syms/pokeblock_feed.txt)0
-rw-r--r--common_syms/pokemon/pokedex.txt (renamed from common_syms/pokedex.txt)0
-rw-r--r--common_syms/pokemon/pokemon_1.txt (renamed from common_syms/pokemon_1.txt)0
-rw-r--r--common_syms/pokemon/pokemon_menu.txt (renamed from common_syms/pokemon_menu.txt)0
-rw-r--r--common_syms/scene/berry_blender.txt (renamed from common_syms/berry_blender.txt)0
-rw-r--r--common_syms/scene/contest_painting.txt (renamed from common_syms/contest_painting.txt)0
-rw-r--r--common_syms/scene/cute_sketch.txt (renamed from common_syms/cute_sketch.txt)0
-rw-r--r--common_syms/scene/egg_hatch.txt (renamed from common_syms/egg_hatch.txt)0
-rw-r--r--common_syms/scene/evolution_scene.txt (renamed from common_syms/evolution_scene.txt)0
-rw-r--r--common_syms/scene/intro.txt (renamed from common_syms/intro.txt)0
-rw-r--r--data/battle_scripts_1.s6
-rw-r--r--data/daycare.s17
-rw-r--r--data/egg_moves.inc1306
-rw-r--r--data/field_effect_helpers.s37
-rw-r--r--include/battle.h7
-rw-r--r--include/battle_anim.h4
-rw-r--r--include/data/field_map_obj/anim_func_ptrs.h2
-rw-r--r--include/data/field_map_obj/base_oam.h2
-rw-r--r--include/data/field_map_obj/berry_tree_graphics_tables.h2
-rw-r--r--include/data/field_map_obj/callback_subroutine_pointers.h4
-rw-r--r--include/data/field_map_obj/field_effect_object_template_pointers.h2
-rw-r--r--include/data/field_map_obj/field_effect_objects.h2
-rw-r--r--include/data/field_map_obj/map_object_anims.h2
-rw-r--r--include/data/field_map_obj/map_object_graphics_info.h2
-rw-r--r--include/data/field_map_obj/map_object_graphics_info_pointers.h2
-rw-r--r--include/data/field_map_obj/map_object_pic_tables.h2
-rw-r--r--include/data/field_map_obj/map_object_subsprites.h2
-rw-r--r--include/data/pokemon/base_stats.h2
-rw-r--r--include/data/pokemon/cry_ids.h2
-rw-r--r--include/data/pokemon/dex_order.h2
-rw-r--r--include/data/pokemon/egg_moves.h1318
-rw-r--r--include/data/pokemon/evolution.h2
-rw-r--r--include/data/pokemon/experience_tables.h2
-rw-r--r--include/data/pokemon/item_effects.h2
-rw-r--r--include/data/pokemon/level_up_learnset_pointers.h2
-rw-r--r--include/data/pokemon/level_up_learnsets.h2
-rw-r--r--include/data/pokemon/nature_stats.h2
-rw-r--r--include/data/pokemon/spinda_spots.h2
-rw-r--r--include/data/pokemon/tmhm_learnsets.h2
-rw-r--r--include/data/pokemon/trainer_class_lookups.h2
-rw-r--r--include/daycare.h6
-rw-r--r--include/decompress.h2
-rw-r--r--include/field_camera.h2
-rw-r--r--include/field_effect_helpers.h6
-rw-r--r--include/field_map_obj.h64
-rw-r--r--include/global.h50
-rw-r--r--include/mail_data.h2
-rw-r--r--include/pokedex.h12
-rw-r--r--include/pokemon.h14
-rw-r--r--include/pokemon_storage_system.h2
-rw-r--r--include/rom_8077ABC.h16
-rw-r--r--include/sprite.h2
-rw-r--r--include/trade.h5
-rw-r--r--ld_script.txt573
-rw-r--r--src/battle/battle_2.c (renamed from src/battle_2.c)8
-rw-r--r--src/battle/battle_3.c (renamed from src/battle_3.c)2
-rw-r--r--src/battle/battle_4.c (renamed from src/battle_4.c)1252
-rw-r--r--src/battle/battle_7.c (renamed from src/battle_7.c)42
-rw-r--r--src/battle/battle_ai.c (renamed from src/battle_ai.c)4
-rw-r--r--src/battle/battle_anim.c (renamed from src/battle_anim.c)162
-rw-r--r--src/battle/battle_anim_807B69C.c (renamed from src/battle_anim_807B69C.c)14
-rw-r--r--src/battle/battle_anim_80A7E7C.c (renamed from src/battle_anim_80A7E7C.c)92
-rw-r--r--src/battle/battle_anim_80CA710.c18
-rw-r--r--src/battle/battle_controller_linkopponent.c (renamed from src/battle_controller_linkopponent.c)10
-rw-r--r--src/battle/battle_controller_linkpartner.c (renamed from src/battle_controller_linkpartner.c)10
-rw-r--r--src/battle/battle_controller_opponent.c (renamed from src/battle_controller_opponent.c)10
-rw-r--r--src/battle/battle_controller_player.c (renamed from src/battle_controller_player.c)10
-rw-r--r--src/battle/battle_controller_safari.c (renamed from src/battle_controller_safari.c)0
-rw-r--r--src/battle/battle_controller_wally.c (renamed from src/battle_controller_wally.c)4
-rw-r--r--src/battle/battle_interface.c (renamed from src/battle_interface.c)2
-rw-r--r--src/battle/battle_message.c (renamed from src/battle_message.c)0
-rw-r--r--src/battle/battle_party_menu.c (renamed from src/battle_party_menu.c)0
-rw-r--r--src/battle/battle_records.c (renamed from src/battle_records.c)0
-rw-r--r--src/battle/battle_setup.c (renamed from src/battle_setup.c)0
-rw-r--r--src/battle/battle_transition.c (renamed from src/battle_transition.c)0
-rw-r--r--src/battle/calculate_base_damage.c (renamed from src/calculate_base_damage.c)0
-rw-r--r--src/battle/contest_link_80C857C.c (renamed from src/contest_link_80C857C.c)0
-rw-r--r--src/battle/pokeball.c (renamed from src/pokeball.c)0
-rw-r--r--src/battle/post_battle_event_funcs.c (renamed from src/post_battle_event_funcs.c)0
-rw-r--r--src/battle/reshow_battle_screen.c (renamed from src/reshow_battle_screen.c)0
-rw-r--r--src/battle/smokescreen.c (renamed from src/smokescreen.c)0
-rw-r--r--src/daycare.c350
-rw-r--r--src/debug/matsuda_debug_menu.c (renamed from src/matsuda_debug_menu.c)0
-rw-r--r--src/debug/mori_debug_menu.c (renamed from src/mori_debug_menu.c)8
-rw-r--r--src/debug/sound_check_menu.c (renamed from src/sound_check_menu.c)0
-rw-r--r--src/debug/unknown_debug_menu.c (renamed from src/unknown_debug_menu.c)0
-rw-r--r--src/engine/blend_palette.c (renamed from src/blend_palette.c)0
-rw-r--r--src/engine/cable_club.c (renamed from src/cable_club.c)0
-rw-r--r--src/engine/clear_save_data_menu.c (renamed from src/clear_save_data_menu.c)0
-rw-r--r--src/engine/clock.c (renamed from src/clock.c)0
-rw-r--r--src/engine/decompress.c (renamed from src/decompress.c)2
-rw-r--r--src/engine/link.c (renamed from src/link.c)0
-rw-r--r--src/engine/load_save.c (renamed from src/load_save.c)0
-rw-r--r--src/engine/main.c (renamed from src/main.c)0
-rw-r--r--src/engine/main_menu.c (renamed from src/main_menu.c)0
-rw-r--r--src/engine/menu.c (renamed from src/menu.c)0
-rw-r--r--src/engine/menu_cursor.c (renamed from src/menu_cursor.c)0
-rw-r--r--src/engine/mystery_event_menu.c (renamed from src/mystery_event_menu.c)0
-rw-r--r--src/engine/mystery_event_script.c (renamed from src/mystery_event_script.c)4
-rw-r--r--src/engine/name_string_util.c (renamed from src/name_string_util.c)0
-rw-r--r--src/engine/naming_screen.c (renamed from src/naming_screen.c)0
-rw-r--r--src/engine/option_menu.c (renamed from src/option_menu.c)0
-rw-r--r--src/engine/palette.c (renamed from src/palette.c)2
-rw-r--r--src/engine/play_time.c (renamed from src/play_time.c)0
-rw-r--r--src/engine/record_mixing.c (renamed from src/record_mixing.c)32
-rw-r--r--src/engine/reset_rtc_screen.c (renamed from src/reset_rtc_screen.c)0
-rw-r--r--src/engine/rng.c (renamed from src/rng.c)0
-rw-r--r--src/engine/rtc.c (renamed from src/rtc.c)0
-rw-r--r--src/engine/save.c (renamed from src/save.c)0
-rw-r--r--src/engine/save_failed_screen.c (renamed from src/save_failed_screen.c)0
-rw-r--r--src/engine/save_menu_util.c (renamed from src/save_menu_util.c)0
-rw-r--r--src/engine/script.c (renamed from src/script.c)0
-rw-r--r--src/engine/sound.c (renamed from src/sound.c)0
-rw-r--r--src/engine/sprite.c (renamed from src/sprite.c)0
-rw-r--r--src/engine/string_util.c (renamed from src/string_util.c)0
-rw-r--r--src/engine/task.c (renamed from src/task.c)0
-rw-r--r--src/engine/text.c (renamed from src/text.c)12
-rw-r--r--src/engine/text_window.c (renamed from src/text_window.c)0
-rw-r--r--src/engine/tileset_anim.c (renamed from src/tileset_anim.c)0
-rw-r--r--src/engine/time_events.c (renamed from src/time_events.c)0
-rw-r--r--src/engine/trade.c (renamed from src/trade.c)1
-rw-r--r--src/engine/trainer_card.c (renamed from src/trainer_card.c)0
-rw-r--r--src/engine/trig.c (renamed from src/trig.c)0
-rw-r--r--src/engine/util.c (renamed from src/util.c)0
-rw-r--r--src/field/bard_music.c (renamed from src/bard_music.c)0
-rw-r--r--src/field/berry.c (renamed from src/berry.c)0
-rw-r--r--src/field/berry_tag_screen.c (renamed from src/berry_tag_screen.c)0
-rw-r--r--src/field/bike.c (renamed from src/bike.c)2
-rw-r--r--src/field/birch_pc.c (renamed from src/birch_pc.c)8
-rw-r--r--src/field/braille_puzzles.c (renamed from src/braille_puzzles.c)0
-rw-r--r--src/field/choose_party.c (renamed from src/choose_party.c)0
-rw-r--r--src/field/coins.c (renamed from src/coins.c)0
-rw-r--r--src/field/coord_event_weather.c (renamed from src/coord_event_weather.c)0
-rw-r--r--src/field/daycare.c1690
-rw-r--r--src/field/decoration.c (renamed from src/decoration.c)4
-rw-r--r--src/field/decoration_inventory.c (renamed from src/decoration_inventory.c)2
-rw-r--r--src/field/dewford_trend.c (renamed from src/dewford_trend.c)0
-rw-r--r--src/field/diploma.c (renamed from src/diploma.c)0
-rw-r--r--src/field/easy_chat.c (renamed from src/easy_chat.c)4
-rw-r--r--src/field/event_data.c (renamed from src/event_data.c)0
-rw-r--r--src/field/field_camera.c (renamed from src/field_camera.c)0
-rw-r--r--src/field/field_control_avatar.c (renamed from src/field_control_avatar.c)0
-rw-r--r--src/field/field_door.c (renamed from src/field_door.c)0
-rw-r--r--src/field/field_effect.c (renamed from src/field_effect.c)3
-rw-r--r--src/field/field_effect_helpers.c1632
-rw-r--r--src/field/field_fadetransition.c (renamed from src/field_fadetransition.c)0
-rw-r--r--src/field/field_ground_effect.c (renamed from src/field_ground_effect.c)13
-rw-r--r--src/field/field_map_obj.c (renamed from src/field_map_obj.c)450
-rw-r--r--src/field/field_map_obj_helpers.c (renamed from src/field_map_obj_helpers.c)2
-rw-r--r--src/field/field_message_box.c (renamed from src/field_message_box.c)0
-rw-r--r--src/field/field_player_avatar.c (renamed from src/field_player_avatar.c)6
-rw-r--r--src/field/field_poison.c (renamed from src/field_poison.c)0
-rw-r--r--src/field/field_region_map.c (renamed from src/field_region_map.c)0
-rw-r--r--src/field/field_screen_effect.c (renamed from src/field_screen_effect.c)0
-rw-r--r--src/field/field_special_scene.c (renamed from src/field_special_scene.c)0
-rw-r--r--src/field/field_specials.c (renamed from src/field_specials.c)0
-rw-r--r--src/field/field_tasks.c (renamed from src/field_tasks.c)8
-rw-r--r--src/field/field_weather.c (renamed from src/field_weather.c)2
-rw-r--r--src/field/fieldmap.c (renamed from src/fieldmap.c)12
-rw-r--r--src/field/fldeff_cut.c (renamed from src/fldeff_cut.c)0
-rw-r--r--src/field/fldeff_flash.c (renamed from src/fldeff_flash.c)0
-rw-r--r--src/field/fldeff_softboiled.c (renamed from src/fldeff_softboiled.c)0
-rw-r--r--src/field/fldeff_strength.c (renamed from src/fldeff_strength.c)0
-rw-r--r--src/field/fldeff_sweetscent.c (renamed from src/fldeff_sweetscent.c)0
-rw-r--r--src/field/fldeff_teleport.c (renamed from src/fldeff_teleport.c)0
-rw-r--r--src/field/heal_location.c (renamed from src/heal_location.c)0
-rw-r--r--src/field/hof_pc.c (renamed from src/hof_pc.c)0
-rw-r--r--src/field/item.c (renamed from src/item.c)8
-rw-r--r--src/field/item_menu.c (renamed from src/item_menu.c)2
-rw-r--r--src/field/item_use.c (renamed from src/item_use.c)0
-rw-r--r--src/field/landmark.c (renamed from src/landmark.c)0
-rw-r--r--src/field/lottery_corner.c (renamed from src/lottery_corner.c)0
-rw-r--r--src/field/map_name_popup.c (renamed from src/map_name_popup.c)0
-rw-r--r--src/field/map_obj_lock.c (renamed from src/map_obj_lock.c)0
-rw-r--r--src/field/mauville_man.c (renamed from src/mauville_man.c)0
-rw-r--r--src/field/menu_helpers.c (renamed from src/menu_helpers.c)0
-rw-r--r--src/field/metatile_behavior.c (renamed from src/metatile_behavior.c)0
-rw-r--r--src/field/money.c (renamed from src/money.c)0
-rw-r--r--src/field/overworld.c (renamed from src/overworld.c)0
-rw-r--r--src/field/party_menu.c (renamed from src/party_menu.c)0
-rw-r--r--src/field/player_pc.c (renamed from src/player_pc.c)0
-rw-r--r--src/field/pokeblock.c (renamed from src/pokeblock.c)4
-rw-r--r--src/field/pokenav.c (renamed from src/pokenav.c)2
-rw-r--r--src/field/region_map.c (renamed from src/region_map.c)6
-rw-r--r--src/field/roamer.c (renamed from src/roamer.c)0
-rw-r--r--src/field/rotating_gate.c (renamed from src/rotating_gate.c)0
-rw-r--r--src/field/safari_zone.c (renamed from src/safari_zone.c)0
-rw-r--r--src/field/scrcmd.c (renamed from src/scrcmd.c)0
-rw-r--r--src/field/script_menu.c (renamed from src/script_menu.c)0
-rw-r--r--src/field/script_movement.c (renamed from src/script_movement.c)0
-rw-r--r--src/field/secret_base.c (renamed from src/secret_base.c)0
-rw-r--r--src/field/shop.c (renamed from src/shop.c)2
-rw-r--r--src/field/slot_machine.c (renamed from src/slot_machine.c)2
-rw-r--r--src/field/start_menu.c (renamed from src/start_menu.c)0
-rw-r--r--src/field/starter_choose.c (renamed from src/starter_choose.c)0
-rw-r--r--src/field/trader.c (renamed from src/trader.c)0
-rw-r--r--src/field/trainer_see.c (renamed from src/trainer_see.c)0
-rw-r--r--src/field/tv.c (renamed from src/tv.c)4
-rw-r--r--src/field/use_pokeblock.c (renamed from src/use_pokeblock.c)2
-rw-r--r--src/field/wallclock.c (renamed from src/wallclock.c)0
-rw-r--r--src/field/wild_encounter.c (renamed from src/wild_encounter.c)0
-rw-r--r--src/libs/agb_flash.c (renamed from src/agb_flash.c)0
-rw-r--r--src/libs/agb_flash_1m.c (renamed from src/agb_flash_1m.c)0
-rw-r--r--src/libs/agb_flash_le.c (renamed from src/agb_flash_le.c)0
-rw-r--r--src/libs/agb_flash_mx.c (renamed from src/agb_flash_mx.c)0
-rw-r--r--src/libs/libc.c (renamed from src/libc.c)0
-rw-r--r--src/libs/m4a_2.c (renamed from src/m4a_2.c)0
-rw-r--r--src/libs/m4a_4.c (renamed from src/m4a_4.c)0
-rw-r--r--src/libs/m4a_tables.c (renamed from src/m4a_tables.c)0
-rw-r--r--src/libs/siirtc.c (renamed from src/siirtc.c)0
-rw-r--r--src/pokemon/learn_move.c (renamed from src/learn_move.c)0
-rw-r--r--src/pokemon/mail.c (renamed from src/mail.c)0
-rw-r--r--src/pokemon/mail_data.c (renamed from src/mail_data.c)0
-rw-r--r--src/pokemon/mon_markings.c (renamed from src/mon_markings.c)0
-rw-r--r--src/pokemon/pokeblock_feed.c (renamed from src/pokeblock_feed.c)6
-rw-r--r--src/pokemon/pokedex.c (renamed from src/pokedex.c)105
-rw-r--r--src/pokemon/pokedex_cry_screen.c (renamed from src/pokedex_cry_screen.c)0
-rw-r--r--src/pokemon/pokemon_1.c (renamed from src/pokemon_1.c)4
-rw-r--r--src/pokemon/pokemon_2.c (renamed from src/pokemon_2.c)0
-rw-r--r--src/pokemon/pokemon_3.c (renamed from src/pokemon_3.c)24
-rw-r--r--src/pokemon/pokemon_data.c (renamed from src/pokemon_data.c)0
-rw-r--r--src/pokemon/pokemon_icon.c (renamed from src/pokemon_icon.c)0
-rw-r--r--src/pokemon/pokemon_menu.c (renamed from src/pokemon_menu.c)0
-rw-r--r--src/pokemon/pokemon_size_record.c (renamed from src/pokemon_size_record.c)0
-rw-r--r--src/pokemon/pokemon_storage_system.c (renamed from src/pokemon_storage_system.c)0
-rw-r--r--src/pokemon/pokemon_summary_screen.c (renamed from src/pokemon_summary_screen.c)0
-rw-r--r--src/rom_8077ABC.c204
-rw-r--r--src/scene/berry_blender.c (renamed from src/berry_blender.c)6
-rw-r--r--src/scene/contest_painting.c (renamed from src/contest_painting.c)4
-rw-r--r--src/scene/credits.c (renamed from src/credits.c)4
-rw-r--r--src/scene/cute_sketch.c (renamed from src/cute_sketch.c)0
-rw-r--r--src/scene/egg_hatch.c (renamed from src/egg_hatch.c)12
-rw-r--r--src/scene/evolution_graphics.c (renamed from src/evolution_graphics.c)0
-rw-r--r--src/scene/evolution_scene.c (renamed from src/evolution_scene.c)22
-rw-r--r--src/scene/hall_of_fame.c (renamed from src/hall_of_fame.c)2
-rw-r--r--src/scene/intro.c (renamed from src/intro.c)2
-rwxr-xr-xsrc/scene/intro_credits_graphics.c (renamed from src/intro_credits_graphics.c)0
-rw-r--r--src/scene/new_game.c (renamed from src/new_game.c)0
-rw-r--r--src/scene/title_screen.c (renamed from src/title_screen.c)0
-rw-r--r--src/script_pokemon_util_80C4BF0.c6
-rw-r--r--src/unused_8124F94.c6
-rw-r--r--sym_bss.txt133
-rw-r--r--sym_common.txt65
-rw-r--r--sym_ewram.txt131
289 files changed, 7694 insertions, 12737 deletions
diff --git a/Makefile b/Makefile
index e18b7b2f0..5ef851b1c 100644
--- a/Makefile
+++ b/Makefile
@@ -40,9 +40,9 @@ VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_d
$(VERSIONS) $(VERSIONS:%=compare_%)
-$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,src,asm,data}))
+$(shell mkdir -p build/ $(VERSIONS:%=build/%/{,asm,data,src{,/battle,/field,/debug,/scene,/pokemon,/engine,/libs}}))
-C_SRCS := $(wildcard src/*.c)
+C_SRCS := $(wildcard src/*/*.c) $(wildcard src/*.c)
ASM_SRCS := $(wildcard asm/*.s)
DATA_ASM_SRCS := $(wildcard data/*.s)
@@ -90,17 +90,17 @@ sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(A
sound/songs/%.s: sound/songs/%.mid
cd $(@D) && ../../$(MID) $(<F)
-%src/libc.o: CC1 := tools/agbcc/bin/old_agbcc
-%src/libc.o: CFLAGS := -O2
+%src/libs/libc.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/libc.o: CFLAGS := -O2
-%src/siirtc.o: CFLAGS := -mthumb-interwork
+%src/libs/siirtc.o: CFLAGS := -mthumb-interwork
-%src/agb_flash.o: CFLAGS := -O -mthumb-interwork
-%src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
-%src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
+%src/libs/agb_flash.o: CFLAGS := -O -mthumb-interwork
+%src/libs/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
+%src/libs/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
-%src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
-%src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
+%src/libs/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
$(SONG_OBJS): %.o: %.s
$(AS) $(ASFLAGS) -I sound -o $@ $<
@@ -113,7 +113,8 @@ $1_ASM_OBJS := $$(ASM_SRCS:%.s=build/$1/%.o)
$1_DATA_ASM_OBJS := $$(DATA_ASM_SRCS:%.s=build/$1/%.o)
ifeq ($$(NODEP),)
-build/$1/src/%.o: c_dep = $$(shell $$(SCANINC) src/$$(*F).c)
+build/$1/src/%.o: c_path = $$(*D)/$$(*F).c
+build/$1/src/%.o: c_dep = $$(shell $$(SCANINC) $$(wildcard $$(c_path:build/$1/=)))
build/$1/asm/%.o: asm_dep = $$(shell $$(SCANINC) asm/$$(*F).s)
build/$1/data/%.o: asm_dep = $$(shell $$(SCANINC) data/$$(*F).s)
endif
diff --git a/asm-de/contest_link_80C2020.s b/asm-de/contest_link_80C2020.s
index 646851c2d..65bbf0f22 100644
--- a/asm-de/contest_link_80C2020.s
+++ b/asm-de/contest_link_80C2020.s
@@ -1361,7 +1361,7 @@ _080C2B14:
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
- bl sub_80409C8
+ bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
adds r0, r6, 0
@@ -1601,7 +1601,7 @@ _080C2D42:
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s
index 2f6c28fdb..1d93e36b4 100644
--- a/asm-de/easy_chat.s
+++ b/asm-de/easy_chat.s
@@ -9984,7 +9984,7 @@ _080EAE50:
lsls r0, 16
lsrs r0, 16
movs r1, 0
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
b _080EAE7C
_080EAE62:
ldr r0, _080EAE74 @ =gUnknown_083DB694
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 7868f8492..f252e5716 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -1514,8 +1514,8 @@ _08012FE8: .4byte gUnknown_02024A76
_08012FEC: .4byte gTurnOrder
thumb_func_end sub_8012FBC
- thumb_func_start b_first_side
-b_first_side: @ 8012FF0
+ thumb_func_start GetWhoStrikesFirst
+GetWhoStrikesFirst: @ 8012FF0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2003,7 +2003,7 @@ _080133B6:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end b_first_side
+ thumb_func_end GetWhoStrikesFirst
thumb_func_start sub_80133C8
sub_80133C8: @ 80133C8
@@ -2285,7 +2285,7 @@ _080135D0:
beq _0801360C
adds r0, r3, 0
movs r2, 0
- bl b_first_side
+ bl GetWhoStrikesFirst
lsls r0, 24
cmp r0, 0
beq _0801360C
diff --git a/asm/battle_9.s b/asm/battle_9.s
index 9f4beef55..e92c2db33 100644
--- a/asm/battle_9.s
+++ b/asm/battle_9.s
@@ -6,8 +6,8 @@
.text
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8035FEC
+ thumb_func_start AI_SwitchIfPerishSong
+AI_SwitchIfPerishSong: @ 8035FEC
push {lr}
ldr r1, _08036038 @ =gStatuses3
ldr r0, _0803603C @ =gActiveBank
@@ -55,10 +55,10 @@ _0803604C:
_0803604E:
pop {r1}
bx r1
- thumb_func_end ai_switch_perish_song
+ thumb_func_end AI_SwitchIfPerishSong
- thumb_func_start sub_8036054
-sub_8036054: @ 8036054
+ thumb_func_start AI_SwitchIfWonderguard
+AI_SwitchIfWonderguard: @ 8036054
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -250,7 +250,7 @@ _080361D8: .4byte gBattleMons
_080361DC: .4byte gActiveBank
_080361E0: .4byte gEnemyParty
_080361E4: .4byte gBattlePartyID
- thumb_func_end sub_8036054
+ thumb_func_end AI_SwitchIfWonderguard
thumb_func_start sub_80361E8
sub_80361E8: @ 80361E8
@@ -521,8 +521,8 @@ _08036402:
bx r1
thumb_func_end sub_80361E8
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 8036410
+ thumb_func_start AI_SwitchIfNaturalCure
+AI_SwitchIfNaturalCure: @ 8036410
push {r4,r5,lr}
ldr r3, _08036468 @ =gBattleMons
ldr r5, _0803646C @ =gActiveBank
@@ -645,7 +645,7 @@ _08036500:
_08036508: .4byte gActiveBank
_0803650C: .4byte 0x02000000
_08036510: .4byte 0x000160c8
- thumb_func_end ai_switchout_natural_cure
+ thumb_func_end AI_SwitchIfNaturalCure
thumb_func_start ai_has_super_effective_move_on_field
ai_has_super_effective_move_on_field: @ 8036514
@@ -808,8 +808,8 @@ _08036654: .4byte gBattleMons
_08036658: .4byte gActiveBank
thumb_func_end ai_has_super_effective_move_on_field
- thumb_func_start ai_is_too_invested_in_stat_buffs
-ai_is_too_invested_in_stat_buffs: @ 803665C
+ thumb_func_start AI_AreStatsRaised
+AI_AreStatsRaised: @ 803665C
push {r4,lr}
movs r4, 0
ldr r1, _0803669C @ =gBattleMons
@@ -848,7 +848,7 @@ _08036696:
.align 2, 0
_0803669C: .4byte gBattleMons
_080366A0: .4byte gActiveBank
- thumb_func_end ai_is_too_invested_in_stat_buffs
+ thumb_func_end AI_AreStatsRaised
thumb_func_start sub_80366A4
sub_80366A4: @ 80366A4
@@ -1140,8 +1140,8 @@ _080368FC: .4byte gBattleMons
_08036900: .4byte gEnemyParty
thumb_func_end sub_80366A4
- thumb_func_start sub_8036904
-sub_8036904: @ 8036904
+ thumb_func_start AI_ShouldSwitch
+AI_ShouldSwitch: @ 8036904
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1331,11 +1331,11 @@ _08036A7E:
mov r2, r8
cmp r2, 0
beq _08036AFC
- bl ai_switch_perish_song
+ bl AI_SwitchIfPerishSong
lsls r0, 24
cmp r0, 0
bne _08036AE4
- bl sub_8036054
+ bl AI_SwitchIfWonderguard
lsls r0, 24
cmp r0, 0
bne _08036AE4
@@ -1343,7 +1343,7 @@ _08036A7E:
lsls r0, 24
cmp r0, 0
bne _08036AE4
- bl ai_switchout_natural_cure
+ bl AI_SwitchIfNaturalCure
lsls r0, 24
cmp r0, 0
bne _08036AE4
@@ -1352,7 +1352,7 @@ _08036A7E:
lsls r0, 24
cmp r0, 0
bne _08036AFC
- bl ai_is_too_invested_in_stat_buffs
+ bl AI_AreStatsRaised
lsls r0, 24
cmp r0, 0
bne _08036AFC
@@ -1386,7 +1386,7 @@ _08036AFE:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_8036904
+ thumb_func_end AI_ShouldSwitch
thumb_func_start sub_8036B0C
sub_8036B0C: @ 8036B0C
@@ -1399,7 +1399,7 @@ sub_8036B0C: @ 8036B0C
bne _08036B1C
b _08036C2E
_08036B1C:
- bl sub_8036904
+ bl AI_ShouldSwitch
lsls r0, 24
cmp r0, 0
bne _08036B28
@@ -1521,7 +1521,7 @@ _08036C18: .4byte 0x00016068
_08036C1C: .4byte gActiveBank
_08036C20: .4byte 0x000160c8
_08036C24:
- bl sub_803708C
+ bl AI_ShouldUseItem
lsls r0, 24
cmp r0, 0
bne _08036C40
@@ -2083,8 +2083,8 @@ _08037086:
bx r1
thumb_func_end ai_identify_item_effect
- thumb_func_start sub_803708C
-sub_803708C: @ 803708C
+ thumb_func_start AI_ShouldUseItem
+AI_ShouldUseItem: @ 803708C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -2665,6 +2665,6 @@ _080374FA:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end sub_803708C
+ thumb_func_end AI_ShouldUseItem
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index fd5b9fb88..7b506ac24 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -23,7 +23,7 @@ sub_80CA710: @ 80CA710
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
- ldr r0, _080CA748 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CA748 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34,7 +34,7 @@ sub_80CA710: @ 80CA710
b _080CA74E
.align 2, 0
_080CA744: .4byte gBattleAnimArgs
-_080CA748: .4byte gBattleAnimPlayerMonIndex
+_080CA748: .4byte gBattleAnimBankAttacker
_080CA74C:
ldrh r0, [r5, 0x8]
_080CA74E:
@@ -101,7 +101,7 @@ sub_80CA7B0: @ 80CA7B0
ldr r0, _080CA7F0 @ =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA7F4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CA7F4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -118,13 +118,13 @@ sub_80CA7B0: @ 80CA7B0
str r0, [r4, 0x1C]
ldr r1, _080CA7FC @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CA7F0: .4byte gBattleAnimArgs
-_080CA7F4: .4byte gBattleAnimPlayerMonIndex
+_080CA7F4: .4byte gBattleAnimBankAttacker
_080CA7F8: .4byte sub_8078B34
_080CA7FC: .4byte move_anim_8074EE0
thumb_func_end sub_80CA7B0
@@ -141,7 +141,7 @@ sub_80CA800: @ 80CA800
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, _080CA84C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CA84C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -158,13 +158,13 @@ sub_80CA800: @ 80CA800
str r0, [r4, 0x1C]
ldr r1, _080CA854 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080CA848: .4byte gBattleAnimArgs
-_080CA84C: .4byte gBattleAnimEnemyMonIndex
+_080CA84C: .4byte gBattleAnimBankTarget
_080CA850: .4byte sub_8078B34
_080CA854: .4byte move_anim_8072740
thumb_func_end sub_80CA800
@@ -180,7 +180,7 @@ sub_80CA858: @ 80CA858
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080CA8AC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CA8AC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -208,7 +208,7 @@ sub_80CA858: @ 80CA858
bx r0
.align 2, 0
_080CA8A8: .4byte gBattleAnimArgs
-_080CA8AC: .4byte gBattleAnimEnemyMonIndex
+_080CA8AC: .4byte gBattleAnimBankTarget
_080CA8B0: .4byte sub_80CA8B4
thumb_func_end sub_80CA858
@@ -228,15 +228,15 @@ _080CA8CA:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080CA8E4
- ldr r0, _080CA8E0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA8E0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
b _080CA8EE
.align 2, 0
-_080CA8E0: .4byte gBattleAnimEnemyMonIndex
+_080CA8E0: .4byte gBattleAnimBankTarget
_080CA8E4:
- ldr r0, _080CA924 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA924 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x6
@@ -268,7 +268,7 @@ _080CA91E:
pop {r0}
bx r0
.align 2, 0
-_080CA924: .4byte gBattleAnimEnemyMonIndex
+_080CA924: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CA8B4
thumb_func_start sub_80CA928
@@ -305,7 +305,7 @@ sub_80CA928: @ 80CA928
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, _080CA9A0 @ =gSpriteTemplate_83D631C
- ldr r0, _080CA9A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CA9A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
adds r3, r0, 0
@@ -331,7 +331,7 @@ _080CA990:
_080CA998: .4byte gTasks
_080CA99C: .4byte gBattleAnimArgs
_080CA9A0: .4byte gSpriteTemplate_83D631C
-_080CA9A4: .4byte gBattleAnimEnemyMonIndex
+_080CA9A4: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CA928
thumb_func_start sub_80CA9A8
@@ -343,7 +343,7 @@ sub_80CA9A8: @ 80CA9A8
ldr r6, _080CA9EC @ =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
- ldr r5, _080CA9F0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CA9F0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -367,7 +367,7 @@ sub_80CA9A8: @ 80CA9A8
bx r0
.align 2, 0
_080CA9EC: .4byte gBattleAnimArgs
-_080CA9F0: .4byte gBattleAnimPlayerMonIndex
+_080CA9F0: .4byte gBattleAnimBankAttacker
_080CA9F4: .4byte sub_80CA9F8
thumb_func_end sub_80CA9A8
@@ -399,7 +399,7 @@ sub_80CAA14: @ 80CAA14
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
- ldr r4, _080CAA5C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CAA5C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -421,7 +421,7 @@ sub_80CAA14: @ 80CAA14
subs r0, 0x14
b _080CAA64
.align 2, 0
-_080CAA5C: .4byte gBattleAnimPlayerMonIndex
+_080CAA5C: .4byte gBattleAnimBankAttacker
_080CAA60:
ldrh r0, [r5, 0x20]
adds r0, 0x14
@@ -436,7 +436,7 @@ _080CAA64:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080CAAC4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CAAC4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -469,7 +469,7 @@ _080CAA64:
pop {r0}
bx r0
.align 2, 0
-_080CAAC4: .4byte gBattleAnimEnemyMonIndex
+_080CAAC4: .4byte gBattleAnimBankTarget
_080CAAC8: .4byte sub_80CAACC
thumb_func_end sub_80CAA14
@@ -522,7 +522,7 @@ sub_80CAB18: @ 80CAB18
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CAB78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAB78 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -536,7 +536,7 @@ _080CAB38:
ldr r4, _080CAB7C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080CAB80 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CAB80 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -563,9 +563,9 @@ _080CAB38:
pop {r0}
bx r0
.align 2, 0
-_080CAB78: .4byte gBattleAnimPlayerMonIndex
+_080CAB78: .4byte gBattleAnimBankAttacker
_080CAB7C: .4byte gBattleAnimArgs
-_080CAB80: .4byte gBattleAnimEnemyMonIndex
+_080CAB80: .4byte gBattleAnimBankTarget
_080CAB84: .4byte sub_80CAB88
thumb_func_end sub_80CAB18
@@ -589,7 +589,7 @@ sub_80CAB88: @ 80CAB88
str r0, [r4, 0x1C]
ldr r1, _080CABBC @ =sub_80CABC0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CABB2:
pop {r4}
pop {r0}
@@ -619,7 +619,7 @@ sub_80CABC0: @ 80CABC0
str r0, [r4, 0x1C]
ldr r1, _080CABF4 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -693,7 +693,7 @@ sub_80CAC44: @ 80CAC44
lsrs r0, 16
cmp r0, 0x7F
bhi _080CAC98
- ldr r0, _080CAC94 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CAC94 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -706,9 +706,9 @@ sub_80CAC44: @ 80CAC44
orrs r0, r1
b _080CACBC
.align 2, 0
-_080CAC94: .4byte gBattleAnimEnemyMonIndex
+_080CAC94: .4byte gBattleAnimBankTarget
_080CAC98:
- ldr r0, _080CACE8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CACE8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
adds r0, 0x1
@@ -749,7 +749,7 @@ _080CACE0:
pop {r0}
bx r0
.align 2, 0
-_080CACE8: .4byte gBattleAnimEnemyMonIndex
+_080CACE8: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CAC44
thumb_func_start sub_80CACEC
@@ -770,7 +770,7 @@ _080CAD06:
bl DestroyAnimVisualTask
b _080CAD4A
_080CAD0E:
- ldr r0, _080CAD2C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CAD2C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -784,7 +784,7 @@ _080CAD0E:
strb r1, [r0]
b _080CAD44
.align 2, 0
-_080CAD2C: .4byte gBattleAnimEnemyMonIndex
+_080CAD2C: .4byte gBattleAnimBankTarget
_080CAD30: .4byte REG_BG2CNT
_080CAD34:
ldr r2, _080CAD50 @ =REG_BG1CNT
@@ -820,7 +820,7 @@ sub_80CAD54: @ 80CAD54
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CADA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CADA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -842,7 +842,7 @@ sub_80CAD54: @ 80CAD54
bx r0
.align 2, 0
_080CAD9C: .4byte gBattleAnimArgs
-_080CADA0: .4byte gBattleAnimPlayerMonIndex
+_080CADA0: .4byte gBattleAnimBankAttacker
_080CADA4: .4byte sub_80CADA8
thumb_func_end sub_80CAD54
@@ -875,15 +875,15 @@ sub_80CADA8: @ 80CADA8
lsrs r0, 16
cmp r0, 0x7F
bhi _080CADF4
- ldr r0, _080CADF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CADF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
b _080CADFE
.align 2, 0
-_080CADF0: .4byte gBattleAnimPlayerMonIndex
+_080CADF0: .4byte gBattleAnimBankAttacker
_080CADF4:
- ldr r0, _080CAE10 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAE10 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
@@ -898,7 +898,7 @@ _080CADFE:
strh r0, [r4, 0x38]
b _080CAE1A
.align 2, 0
-_080CAE10: .4byte gBattleAnimPlayerMonIndex
+_080CAE10: .4byte gBattleAnimBankAttacker
_080CAE14:
adds r0, r4, 0
bl move_anim_8072740
@@ -922,7 +922,7 @@ sub_80CAE20: @ 80CAE20
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, _080CAE6C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAE6C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -944,7 +944,7 @@ sub_80CAE20: @ 80CAE20
bx r0
.align 2, 0
_080CAE68: .4byte gBattleAnimArgs
-_080CAE6C: .4byte gBattleAnimPlayerMonIndex
+_080CAE6C: .4byte gBattleAnimBankAttacker
_080CAE70: .4byte sub_80CAE74
thumb_func_end sub_80CAE20
@@ -1007,7 +1007,7 @@ _080CAED2:
sub_80CAED8: @ 80CAED8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CAF14 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CAF14 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -1033,7 +1033,7 @@ sub_80CAED8: @ 80CAED8
pop {r0}
bx r0
.align 2, 0
-_080CAF14: .4byte gBattleAnimPlayerMonIndex
+_080CAF14: .4byte gBattleAnimBankAttacker
_080CAF18: .4byte gBattleAnimArgs
_080CAF1C: .4byte sub_80CAF20
thumb_func_end sub_80CAED8
@@ -1087,7 +1087,7 @@ _080CAF68:
sub_80CAF6C: @ 80CAF6C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CAF8C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CAF8C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1100,7 +1100,7 @@ sub_80CAF6C: @ 80CAF6C
negs r0, r0
b _080CAF9A
.align 2, 0
-_080CAF8C: .4byte gBattleAnimPlayerMonIndex
+_080CAF8C: .4byte gBattleAnimBankAttacker
_080CAF90:
movs r1, 0x2E
ldrsh r0, [r4, r1]
@@ -1142,7 +1142,7 @@ sub_80CAFD0: @ 80CAFD0
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080CB024 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB024 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1160,7 +1160,7 @@ _080CAFF0:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB030
- ldr r4, _080CB02C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CB02C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1178,11 +1178,11 @@ _080CAFF0:
adds r0, r6
b _080CB050
.align 2, 0
-_080CB024: .4byte gBattleAnimPlayerMonIndex
+_080CB024: .4byte gBattleAnimBankAttacker
_080CB028: .4byte gBattleAnimArgs
-_080CB02C: .4byte gBattleAnimEnemyMonIndex
+_080CB02C: .4byte gBattleAnimBankTarget
_080CB030:
- ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB07C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -1204,11 +1204,11 @@ _080CB050:
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80786EC
- ldr r0, _080CB084 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB084 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080CB07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB07C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -1218,9 +1218,9 @@ _080CB050:
movs r0, 0x1
b _080CB08A
.align 2, 0
-_080CB07C: .4byte gBattleAnimEnemyMonIndex
+_080CB07C: .4byte gBattleAnimBankTarget
_080CB080: .4byte gBattleAnimArgs
-_080CB084: .4byte gBattleAnimPlayerMonIndex
+_080CB084: .4byte gBattleAnimBankAttacker
_080CB088:
movs r0, 0
_080CB08A:
@@ -1338,7 +1338,7 @@ sub_80CB144: @ 80CB144
lsrs r0, 24
cmp r0, 0x1
bne _080CB170
- ldr r0, _080CB198 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB198 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -1367,7 +1367,7 @@ _080CB170:
pop {r0}
bx r0
.align 2, 0
-_080CB198: .4byte gBattleAnimEnemyMonIndex
+_080CB198: .4byte gBattleAnimBankTarget
_080CB19C: .4byte gBattleAnimArgs
_080CB1A0: .4byte sub_80CB1A4
thumb_func_end sub_80CB144
@@ -1426,7 +1426,7 @@ _080CB1E0:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080CB220
- ldr r0, _080CB21C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB21C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1434,9 +1434,9 @@ _080CB1E0:
subs r0, 0x1
b _080CB22E
.align 2, 0
-_080CB21C: .4byte gBattleAnimEnemyMonIndex
+_080CB21C: .4byte gBattleAnimBankTarget
_080CB220:
- ldr r0, _080CB258 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB258 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -1465,7 +1465,7 @@ _080CB252:
pop {r0}
bx r0
.align 2, 0
-_080CB258: .4byte gBattleAnimEnemyMonIndex
+_080CB258: .4byte gBattleAnimBankTarget
thumb_func_end sub_80CB1A4
thumb_func_start sub_80CB25C
@@ -1514,7 +1514,7 @@ sub_80CB298: @ 80CB298
ands r0, r1
strb r0, [r2]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
@@ -1535,7 +1535,7 @@ sub_80CB2D4: @ 80CB2D4
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1596,7 +1596,7 @@ sub_80CB340: @ 80CB340
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080CB36C @ =gSprites
@@ -1650,7 +1650,7 @@ sub_80CB3A8: @ 80CB3A8
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -1671,7 +1671,7 @@ sub_80CB3A8: @ 80CB3A8
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
- ldr r0, _080CB430 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CB430 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1709,7 +1709,7 @@ _080CB420:
.align 2, 0
_080CB428: .4byte gTasks
_080CB42C: .4byte gSprites
-_080CB430: .4byte gBattleAnimEnemyMonIndex
+_080CB430: .4byte gBattleAnimBankTarget
_080CB434: .4byte sub_80CB438
thumb_func_end sub_80CB3A8
@@ -1734,7 +1734,7 @@ sub_80CB438: @ 80CB438
cmp r5, 0
bne _080CB4A8
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1800,7 +1800,7 @@ sub_80CB4CC: @ 80CB4CC
beq _080CB538
b _080CB58A
_080CB4DE:
- ldr r6, _080CB530 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CB530 @ =gBattleAnimBankTarget
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -1840,7 +1840,7 @@ _080CB4F6:
strh r0, [r5, 0x2E]
b _080CB58A
.align 2, 0
-_080CB530: .4byte gBattleAnimEnemyMonIndex
+_080CB530: .4byte gBattleAnimBankTarget
_080CB534: .4byte gBattleAnimArgs
_080CB538:
adds r2, r5, 0
@@ -1862,7 +1862,7 @@ _080CB538:
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
- ldr r4, _080CB590 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB590 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1879,13 +1879,13 @@ _080CB538:
str r0, [r5, 0x1C]
ldr r1, _080CB598 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CB58A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CB590: .4byte gBattleAnimPlayerMonIndex
+_080CB590: .4byte gBattleAnimBankAttacker
_080CB594: .4byte sub_8078CC0
_080CB598: .4byte move_anim_8072740
thumb_func_end sub_80CB4CC
@@ -1898,7 +1898,7 @@ sub_80CB59C: @ 80CB59C
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080CB608
- ldr r4, _080CB614 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB614 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1950,7 +1950,7 @@ _080CB608:
pop {r0}
bx r0
.align 2, 0
-_080CB614: .4byte gBattleAnimPlayerMonIndex
+_080CB614: .4byte gBattleAnimBankAttacker
_080CB618: .4byte gBattleAnimArgs
_080CB61C: .4byte sub_80CB710
thumb_func_end sub_80CB59C
@@ -1964,7 +1964,7 @@ sub_80CB620: @ 80CB620
push {r4-r6}
sub sp, 0x4
mov r9, r0
- ldr r4, _080CB6FC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CB6FC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -1979,7 +1979,7 @@ sub_80CB620: @ 80CB620
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r6, _080CB700 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CB700 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -2060,8 +2060,8 @@ sub_80CB620: @ 80CB620
pop {r0}
bx r0
.align 2, 0
-_080CB6FC: .4byte gBattleAnimPlayerMonIndex
-_080CB700: .4byte gBattleAnimEnemyMonIndex
+_080CB6FC: .4byte gBattleAnimBankAttacker
+_080CB700: .4byte gBattleAnimBankTarget
_080CB704: .4byte gBattleAnimArgs
_080CB708: .4byte sub_80CB710
_080CB70C: .4byte gUnknown_03000728
@@ -2123,7 +2123,7 @@ sub_80CB768: @ 80CB768
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CB7A8
- ldr r5, _080CB7E4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CB7E4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -2178,7 +2178,7 @@ _080CB7DE:
pop {r0}
bx r0
.align 2, 0
-_080CB7E4: .4byte gBattleAnimPlayerMonIndex
+_080CB7E4: .4byte gBattleAnimBankAttacker
_080CB7E8: .4byte gBattleAnimArgs
thumb_func_end sub_80CB768
@@ -2380,7 +2380,7 @@ sub_80CB94C: @ 80CB94C
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r4, _080CB994 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CB994 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2391,7 +2391,7 @@ sub_80CB94C: @ 80CB94C
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CB998 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CB998 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2408,8 +2408,8 @@ sub_80CB94C: @ 80CB94C
movs r0, 0x1
b _080CB9AE
.align 2, 0
-_080CB994: .4byte gBattleAnimEnemyMonIndex
-_080CB998: .4byte gBattleAnimPlayerMonIndex
+_080CB994: .4byte gBattleAnimBankTarget
+_080CB998: .4byte gBattleAnimBankAttacker
_080CB99C:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -2487,7 +2487,7 @@ _080CBA20:
sub_80CBA28: @ 80CBA28
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CBA64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CBA64 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -2513,7 +2513,7 @@ sub_80CBA28: @ 80CBA28
ldr r0, _080CBA68 @ =sub_80CB8E8
b _080CBA96
.align 2, 0
-_080CBA64: .4byte gBattleAnimEnemyMonIndex
+_080CBA64: .4byte gBattleAnimBankTarget
_080CBA68: .4byte sub_80CB8E8
_080CBA6C:
movs r0, 0xFF
@@ -2589,7 +2589,7 @@ sub_80CBAE8: @ 80CBAE8
adds r5, r0, 0
movs r1, 0
bl sub_8078764
- ldr r4, _080CBB30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CBB30 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -2600,7 +2600,7 @@ sub_80CBAE8: @ 80CBAE8
bl sub_8077ABC
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, _080CBB34 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CBB34 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2617,8 +2617,8 @@ sub_80CBAE8: @ 80CBAE8
movs r0, 0x1
b _080CBB4A
.align 2, 0
-_080CBB30: .4byte gBattleAnimPlayerMonIndex
-_080CBB34: .4byte gBattleAnimEnemyMonIndex
+_080CBB30: .4byte gBattleAnimBankAttacker
+_080CBB34: .4byte gBattleAnimBankTarget
_080CBB38:
strh r6, [r5, 0x3A]
adds r0, r2, 0
@@ -3002,7 +3002,7 @@ sub_80CBDF4: @ 80CBDF4
lsls r0, 3
ldr r1, _080CBF48 @ =gTasks
adds r5, r0, r1
- ldr r4, _080CBF4C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CBF4C @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl sub_8079E90
lsls r0, 24
@@ -3156,7 +3156,7 @@ _080CBE94:
bx r0
.align 2, 0
_080CBF48: .4byte gTasks
-_080CBF4C: .4byte gBattleAnimEnemyMonIndex
+_080CBF4C: .4byte gBattleAnimBankTarget
_080CBF50: .4byte gSpriteTemplate_83D6884
_080CBF54: .4byte gSprites
_080CBF58: .4byte sub_80CBF5C
@@ -3832,13 +3832,13 @@ sub_80CC474: @ 80CC474
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CC490
- ldr r0, _080CC48C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC48C @ =gBattleAnimBankAttacker
b _080CC492
.align 2, 0
_080CC488: .4byte gBattleAnimArgs
-_080CC48C: .4byte gBattleAnimPlayerMonIndex
+_080CC48C: .4byte gBattleAnimBankAttacker
_080CC490:
- ldr r0, _080CC4B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CC4B0 @ =gBattleAnimBankTarget
_080CC492:
ldrb r6, [r0]
adds r0, r6, 0
@@ -3854,7 +3854,7 @@ _080CC492:
ldr r0, _080CC4B8 @ =0x0000fff0
b _080CC4CC
.align 2, 0
-_080CC4B0: .4byte gBattleAnimEnemyMonIndex
+_080CC4B0: .4byte gBattleAnimBankTarget
_080CC4B4: .4byte gBattleAnimArgs
_080CC4B8: .4byte 0x0000fff0
_080CC4BC:
@@ -3923,7 +3923,7 @@ _080CC518:
strb r0, [r4, 0x5]
b _080CC56C
_080CC534:
- ldr r0, _080CC578 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CC578 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -3933,7 +3933,7 @@ _080CC534:
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
_080CC54E:
adds r0, r6, 0
bl sub_8079ED4
@@ -3956,7 +3956,7 @@ _080CC56C:
pop {r0}
bx r0
.align 2, 0
-_080CC578: .4byte gBattleAnimEnemyMonIndex
+_080CC578: .4byte gBattleAnimBankTarget
_080CC57C: .4byte sub_80CC580
thumb_func_end sub_80CC474
@@ -4149,12 +4149,12 @@ _080CC6E8:
ldrsh r0, [r1, r3]
cmp r0, 0
bne _080CC6F8
- ldr r4, _080CC6F4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CC6F4 @ =gBattleAnimBankAttacker
b _080CC6FA
.align 2, 0
-_080CC6F4: .4byte gBattleAnimPlayerMonIndex
+_080CC6F4: .4byte gBattleAnimBankAttacker
_080CC6F8:
- ldr r4, _080CC734 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CC734 @ =gBattleAnimBankTarget
_080CC6FA:
ldrb r0, [r4]
movs r1, 0x2
@@ -4184,7 +4184,7 @@ _080CC6FA:
strh r2, [r6, 0x3A]
b _080CC74C
.align 2, 0
-_080CC734: .4byte gBattleAnimEnemyMonIndex
+_080CC734: .4byte gBattleAnimBankTarget
_080CC738: .4byte gBattleAnimArgs
_080CC73C:
strh r5, [r6, 0x20]
@@ -4317,7 +4317,7 @@ _080CC826:
sub_80CC82C: @ 80CC82C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CC84C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC84C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4331,7 +4331,7 @@ sub_80CC82C: @ 80CC82C
ldrh r0, [r2, 0x2]
b _080CC860
.align 2, 0
-_080CC84C: .4byte gBattleAnimPlayerMonIndex
+_080CC84C: .4byte gBattleAnimBankAttacker
_080CC850: .4byte gBattleAnimArgs
_080CC854:
ldr r0, _080CC878 @ =gBattleAnimArgs
@@ -4348,7 +4348,7 @@ _080CC860:
str r0, [r4, 0x1C]
ldr r1, _080CC880 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -4362,7 +4362,7 @@ _080CC880: .4byte move_anim_8072740
sub_80CC884: @ 80CC884
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080CC8BC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CC8BC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4387,7 +4387,7 @@ _080CC89E:
pop {r0}
bx r0
.align 2, 0
-_080CC8BC: .4byte gBattleAnimPlayerMonIndex
+_080CC8BC: .4byte gBattleAnimBankAttacker
_080CC8C0: .4byte sub_80CC810
_080CC8C4: .4byte gBattleAnimArgs
thumb_func_end sub_80CC884
@@ -4418,7 +4418,7 @@ sub_80CC8C8: @ 80CC8C8
bl StartSpriteAffineAnim
ldr r1, _080CC90C @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CC910 @ =sub_8078504
str r0, [r4, 0x1C]
pop {r4}
@@ -4434,7 +4434,7 @@ _080CC910: .4byte sub_8078504
sub_80CC914: @ 80CC914
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080CC964 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CC964 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4470,7 +4470,7 @@ _080CC948:
strh r0, [r5, 0x20]
b _080CC984
.align 2, 0
-_080CC964: .4byte gBattleAnimEnemyMonIndex
+_080CC964: .4byte gBattleAnimBankTarget
_080CC968: .4byte sub_80CCB00
_080CC96C: .4byte gBattleAnimArgs
_080CC970:
@@ -4535,7 +4535,7 @@ sub_80CC9BC: @ 80CC9BC
.align 2, 0
_080CC9D8: .4byte gBattleAnimArgs
_080CC9DC:
- ldr r5, _080CC9F8 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CC9F8 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -4548,9 +4548,9 @@ _080CC9DC:
adds r0, r4, 0
b _080CCA68
.align 2, 0
-_080CC9F8: .4byte gBattleAnimEnemyMonIndex
+_080CC9F8: .4byte gBattleAnimBankTarget
_080CC9FC:
- ldr r5, _080CCA54 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CCA54 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -4566,7 +4566,7 @@ _080CC9FC:
mov r8, r2
mov r1, r8
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CCA72
@@ -4590,9 +4590,9 @@ _080CC9FC:
lsrs r4, r0, 1
b _080CCA72
.align 2, 0
-_080CCA54: .4byte gBattleAnimEnemyMonIndex
+_080CCA54: .4byte gBattleAnimBankTarget
_080CCA58:
- ldr r4, _080CCAA4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CCAA4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -4607,7 +4607,7 @@ _080CCA68:
_080CCA72:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
- ldr r0, _080CCAA4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CCAA4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4631,7 +4631,7 @@ _080CCA8A:
strh r0, [r6, 0x20]
b _080CCAC4
.align 2, 0
-_080CCAA4: .4byte gBattleAnimEnemyMonIndex
+_080CCAA4: .4byte gBattleAnimBankTarget
_080CCAA8: .4byte sub_80CCB00
_080CCAAC: .4byte gBattleAnimArgs
_080CCAB0:
@@ -4723,7 +4723,7 @@ _080CCB26:
bne _080CCB5C
ldr r1, _080CCB64 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x3
strh r0, [r4, 0x2E]
ldr r0, _080CCB68 @ =sub_80782D8
@@ -4861,7 +4861,7 @@ sub_80CCC50: @ 80CCC50
ldr r4, _080CCC70 @ =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, _080CCC74 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CCC74 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4873,7 +4873,7 @@ sub_80CCC50: @ 80CCC50
b _080CCC7E
.align 2, 0
_080CCC70: .4byte gBattleAnimArgs
-_080CCC74: .4byte gBattleAnimPlayerMonIndex
+_080CCC74: .4byte gBattleAnimBankAttacker
_080CCC78:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
@@ -4977,7 +4977,7 @@ sub_80CCD24: @ 80CCD24
adds r0, 0x8
strh r0, [r1, 0x2]
_080CCD3A:
- ldr r6, _080CCD9C @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080CCD9C @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0
bl sub_8077EE4
@@ -5022,7 +5022,7 @@ _080CCD78:
b _080CCDB8
.align 2, 0
_080CCD98: .4byte gBattleAnimArgs
-_080CCD9C: .4byte gBattleAnimPlayerMonIndex
+_080CCD9C: .4byte gBattleAnimBankAttacker
_080CCDA0:
ldrb r0, [r6]
bl sub_8079ED4
@@ -5207,7 +5207,7 @@ _080CCF00: .4byte sub_807861C
sub_80CCF04: @ 80CCF04
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CCF5C @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080CCF5C @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -5248,7 +5248,7 @@ sub_80CCF04: @ 80CCF04
pop {r0}
bx r0
.align 2, 0
-_080CCF5C: .4byte gBattleAnimEnemyMonIndex
+_080CCF5C: .4byte gBattleAnimBankTarget
_080CCF60: .4byte 0x0000ffe8
_080CCF64: .4byte REG_BLDCNT
_080CCF68: .4byte REG_BLDALPHA
@@ -5531,7 +5531,7 @@ _080CD154:
strh r0, [r4, 0x32]
ldr r1, _080CD188 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD18C @ =sub_8078394
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -5552,13 +5552,13 @@ sub_80CD190: @ 80CD190
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CD1AC
- ldr r0, _080CD1A8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD1A8 @ =gBattleAnimBankAttacker
b _080CD1AE
.align 2, 0
_080CD1A4: .4byte gBattleAnimArgs
-_080CD1A8: .4byte gBattleAnimPlayerMonIndex
+_080CD1A8: .4byte gBattleAnimBankAttacker
_080CD1AC:
- ldr r0, _080CD1F0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CD1F0 @ =gBattleAnimBankTarget
_080CD1AE:
ldrb r6, [r0]
bl IsDoubleBattle
@@ -5568,7 +5568,7 @@ _080CD1AE:
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CD1F8
@@ -5590,7 +5590,7 @@ _080CD1AE:
strh r0, [r5, 0x22]
b _080CD248
.align 2, 0
-_080CD1F0: .4byte gBattleAnimEnemyMonIndex
+_080CD1F0: .4byte gBattleAnimBankTarget
_080CD1F4: .4byte gBattleAnimArgs
_080CD1F8:
ldr r4, _080CD218 @ =gBattleAnimArgs
@@ -5640,7 +5640,7 @@ _080CD248:
strh r0, [r5, 0x32]
ldr r1, _080CD26C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD270 @ =sub_8078394
str r0, [r5, 0x1C]
pop {r4-r6}
@@ -5657,7 +5657,7 @@ sub_80CD274: @ 80CD274
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD2A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD2A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5674,7 +5674,7 @@ sub_80CD274: @ 80CD274
strh r0, [r4, 0x22]
b _080CD2C2
.align 2, 0
-_080CD2A0: .4byte gBattleAnimPlayerMonIndex
+_080CD2A0: .4byte gBattleAnimBankAttacker
_080CD2A4: .4byte gBattleAnimArgs
_080CD2A8:
ldr r2, _080CD2CC @ =gBattleAnimArgs
@@ -5749,7 +5749,7 @@ sub_80CD328: @ 80CD328
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080CD358 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CD358 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5768,7 +5768,7 @@ sub_80CD328: @ 80CD328
strh r0, [r4, 0x34]
b _080CD37E
.align 2, 0
-_080CD358: .4byte gBattleAnimPlayerMonIndex
+_080CD358: .4byte gBattleAnimBankAttacker
_080CD35C: .4byte gBattleAnimArgs
_080CD360:
ldr r2, _080CD388 @ =gBattleAnimArgs
@@ -5850,7 +5850,7 @@ sub_80CD3E0: @ 80CD3E0
ldr r1, _080CD400 @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080CD404 @ =sub_80CD408
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -5877,7 +5877,7 @@ _080CD41E:
str r0, [r5, 0x1C]
ldr r1, _080CD434 @ =sub_80CD408
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD49E
.align 2, 0
_080CD430: .4byte sub_80782D8
@@ -5917,7 +5917,7 @@ _080CD438:
str r0, [r5, 0x1C]
ldr r1, _080CD4B4 @ =sub_80CD4B8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r1, 0x80
lsls r1, 1
adds r0, r1, 0
@@ -5960,7 +5960,7 @@ sub_80CD4B8: @ 80CD4B8
str r0, [r2, 0x1C]
ldr r1, _080CD4DC @ =sub_80CD4EC
adds r0, r2, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD4E4
.align 2, 0
_080CD4D8: .4byte sub_80782D8
@@ -5990,7 +5990,7 @@ sub_80CD4EC: @ 80CD4EC
str r0, [r5, 0x1C]
ldr r1, _080CD510 @ =sub_80CD5A8
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080CD594
.align 2, 0
_080CD50C: .4byte sub_80782D8
@@ -6043,7 +6043,7 @@ _080CD54C:
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080CD59C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CD59C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -6062,13 +6062,13 @@ _080CD54C:
str r0, [r5, 0x1C]
ldr r1, _080CD5A4 @ =sub_80CD654
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CD594:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080CD59C: .4byte gBattleAnimEnemyMonIndex
+_080CD59C: .4byte gBattleAnimBankTarget
_080CD5A0: .4byte sub_8078B34
_080CD5A4: .4byte sub_80CD654
thumb_func_end sub_80CD4EC
@@ -6376,7 +6376,7 @@ sub_80CD7CC: @ 80CD7CC
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
- ldr r5, _080CD80C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CD80C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6397,14 +6397,14 @@ _080CD7EA:
strh r0, [r4, 0x34]
ldr r1, _080CD814 @ =sub_80CD81C
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD818 @ =sub_8078458
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CD80C: .4byte gBattleAnimPlayerMonIndex
+_080CD80C: .4byte gBattleAnimBankAttacker
_080CD810: .4byte gObjectBankIDs
_080CD814: .4byte sub_80CD81C
_080CD818: .4byte sub_8078458
@@ -6419,7 +6419,7 @@ sub_80CD81C: @ 80CD81C
cmp r6, 0
bne _080CD858
ldr r1, _080CD898 @ =gObjectBankIDs
- ldr r4, _080CD89C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CD89C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6475,7 +6475,7 @@ _080CD892:
bx r0
.align 2, 0
_080CD898: .4byte gObjectBankIDs
-_080CD89C: .4byte gBattleAnimPlayerMonIndex
+_080CD89C: .4byte gBattleAnimBankAttacker
_080CD8A0: .4byte 0xfffffd00
_080CD8A4: .4byte sub_80CD9B8
thumb_func_end sub_80CD81C
@@ -6486,7 +6486,7 @@ sub_80CD8A8: @ 80CD8A8
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
- ldr r5, _080CD8E8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CD8E8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6507,14 +6507,14 @@ _080CD8C6:
strh r0, [r4, 0x34]
ldr r1, _080CD8F0 @ =sub_80CD9B8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CD8F4 @ =sub_8078458
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CD8E8: .4byte gBattleAnimPlayerMonIndex
+_080CD8E8: .4byte gBattleAnimBankAttacker
_080CD8EC: .4byte gObjectBankIDs
_080CD8F0: .4byte sub_80CD9B8
_080CD8F4: .4byte sub_8078458
@@ -6551,7 +6551,7 @@ sub_80CD91C: @ 80CD91C
cmp r0, 0
bne _080CD96C
ldr r1, _080CD958 @ =gObjectBankIDs
- ldr r4, _080CD95C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CD95C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6574,7 +6574,7 @@ sub_80CD91C: @ 80CD91C
b _080CD96A
.align 2, 0
_080CD958: .4byte gObjectBankIDs
-_080CD95C: .4byte gBattleAnimPlayerMonIndex
+_080CD95C: .4byte gBattleAnimBankAttacker
_080CD960:
movs r0, 0x80
lsls r0, 3
@@ -6660,7 +6660,7 @@ _080CD9EA:
_080CD9F0:
strh r5, [r4, 0x30]
ldr r1, _080CDA74 @ =gObjectBankIDs
- ldr r2, _080CDA78 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080CDA78 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6724,7 +6724,7 @@ _080CDA2E:
b _080CDAC2
.align 2, 0
_080CDA74: .4byte gObjectBankIDs
-_080CDA78: .4byte gBattleAnimPlayerMonIndex
+_080CDA78: .4byte gBattleAnimBankAttacker
_080CDA7C: .4byte 0xfffffe00
_080CDA80:
ldrh r0, [r4, 0x36]
@@ -6773,7 +6773,7 @@ sub_80CDAC8: @ 80CDAC8
lsls r0, 3
adds r5, r0, r1
ldr r1, _080CDB10 @ =gObjectBankIDs
- ldr r2, _080CDB14 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080CDB14 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6798,7 +6798,7 @@ sub_80CDAC8: @ 80CDAC8
.align 2, 0
_080CDB0C: .4byte gTasks
_080CDB10: .4byte gObjectBankIDs
-_080CDB14: .4byte gBattleAnimPlayerMonIndex
+_080CDB14: .4byte gBattleAnimBankAttacker
_080CDB18: .4byte gBattleAnimArgs
_080CDB1C:
strh r1, [r5, 0xC]
@@ -7134,13 +7134,13 @@ sub_80CDD74: @ 80CDD74
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDD90
- ldr r4, _080CDD8C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CDD8C @ =gBattleAnimBankAttacker
b _080CDD92
.align 2, 0
_080CDD88: .4byte gBattleAnimArgs
-_080CDD8C: .4byte gBattleAnimPlayerMonIndex
+_080CDD8C: .4byte gBattleAnimBankAttacker
_080CDD90:
- ldr r4, _080CDDD0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CDDD0 @ =gBattleAnimBankTarget
_080CDD92:
ldrb r0, [r4]
movs r1, 0x2
@@ -7163,14 +7163,14 @@ _080CDD92:
strh r0, [r5, 0x30]
ldr r1, _080CDDD4 @ =sub_80CDEC0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDDD8 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CDDD0: .4byte gBattleAnimEnemyMonIndex
+_080CDDD0: .4byte gBattleAnimBankTarget
_080CDDD4: .4byte sub_80CDEC0
_080CDDD8: .4byte sub_8078600
thumb_func_end sub_80CDD74
@@ -7179,7 +7179,7 @@ _080CDDD8: .4byte sub_8078600
sub_80CDDDC: @ 80CDDDC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080CDE14 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CDE14 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -7196,14 +7196,14 @@ sub_80CDDDC: @ 80CDDDC
strh r0, [r4, 0x22]
ldr r1, _080CDE1C @ =sub_80CDE78
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDE20 @ =sub_8078600
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CDE14: .4byte gBattleAnimEnemyMonIndex
+_080CDE14: .4byte gBattleAnimBankTarget
_080CDE18: .4byte 0x0000ffd0
_080CDE1C: .4byte sub_80CDE78
_080CDE20: .4byte sub_8078600
@@ -7213,7 +7213,7 @@ _080CDE20: .4byte sub_8078600
sub_80CDE24: @ 80CDE24
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, _080CDE68 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080CDE68 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -7243,7 +7243,7 @@ sub_80CDE24: @ 80CDE24
pop {r0}
bx r0
.align 2, 0
-_080CDE68: .4byte gBattleAnimEnemyMonIndex
+_080CDE68: .4byte gBattleAnimBankTarget
_080CDE6C: .4byte gBattleAnimArgs
_080CDE70: .4byte 0x0000ffd0
_080CDE74: .4byte sub_80CDEC0
@@ -7268,7 +7268,7 @@ sub_80CDE78: @ 80CDE78
strh r0, [r4, 0x32]
ldr r1, _080CDEA8 @ =sub_80CDEB0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CDEAC @ =sub_8078364
str r0, [r4, 0x1C]
_080CDEA2:
@@ -7343,13 +7343,13 @@ sub_80CDF0C: @ 80CDF0C
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CDF28
- ldr r4, _080CDF24 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CDF24 @ =gBattleAnimBankAttacker
b _080CDF2A
.align 2, 0
_080CDF20: .4byte gBattleAnimArgs
-_080CDF24: .4byte gBattleAnimPlayerMonIndex
+_080CDF24: .4byte gBattleAnimBankAttacker
_080CDF28:
- ldr r4, _080CDF64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CDF64 @ =gBattleAnimBankTarget
_080CDF2A:
ldrb r0, [r4]
movs r1, 0
@@ -7378,7 +7378,7 @@ _080CDF2A:
pop {r0}
bx r0
.align 2, 0
-_080CDF64: .4byte gBattleAnimEnemyMonIndex
+_080CDF64: .4byte gBattleAnimBankTarget
_080CDF68: .4byte gBattleAnimArgs
_080CDF6C: .4byte sub_80CDF70
thumb_func_end sub_80CDF0C
@@ -7424,7 +7424,7 @@ _080CDFAC:
sub_80CDFB0: @ 80CDFB0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080CDFF8 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080CDFF8 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -7456,7 +7456,7 @@ sub_80CDFB0: @ 80CDFB0
pop {r0}
bx r0
.align 2, 0
-_080CDFF8: .4byte gBattleAnimPlayerMonIndex
+_080CDFF8: .4byte gBattleAnimBankAttacker
_080CDFFC: .4byte sub_80CE000
thumb_func_end sub_80CDFB0
@@ -7551,7 +7551,7 @@ sub_80CE09C: @ 80CE09C
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080CE0E6
- ldr r4, _080CE0FC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CE0FC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -7593,7 +7593,7 @@ _080CE0F6:
pop {r0}
bx r0
.align 2, 0
-_080CE0FC: .4byte gBattleAnimPlayerMonIndex
+_080CE0FC: .4byte gBattleAnimBankAttacker
_080CE100: .4byte gBattleAnimArgs
_080CE104: .4byte 0x0000ffff
thumb_func_end sub_80CE09C
@@ -7708,7 +7708,7 @@ _080CE1C0:
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
- ldr r4, _080CE204 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CE204 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -7725,13 +7725,13 @@ _080CE1C0:
str r0, [r5, 0x1C]
ldr r1, _080CE20C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080CE1FC:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CE204: .4byte gBattleAnimPlayerMonIndex
+_080CE204: .4byte gBattleAnimBankAttacker
_080CE208: .4byte sub_8078B34
_080CE20C: .4byte move_anim_8072740
thumb_func_end sub_80CE1AC
@@ -7926,7 +7926,7 @@ _080CE366:
sub_80CE36C: @ 80CE36C
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CE3A4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE3A4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
@@ -7951,7 +7951,7 @@ sub_80CE36C: @ 80CE36C
pop {r0}
bx r0
.align 2, 0
-_080CE3A4: .4byte gBattleAnimPlayerMonIndex
+_080CE3A4: .4byte gBattleAnimBankAttacker
_080CE3A8: .4byte gBattleAnimArgs
_080CE3AC: .4byte sub_80CE3B0
thumb_func_end sub_80CE36C
@@ -8339,7 +8339,7 @@ _080CE68E:
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
- ldr r4, _080CE6F8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CE6F8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -8384,10 +8384,10 @@ _080CE68E:
b _080CE726
.align 2, 0
_080CE6F4: .4byte gBattleAnimArgs
-_080CE6F8: .4byte gBattleAnimEnemyMonIndex
+_080CE6F8: .4byte gBattleAnimBankTarget
_080CE6FC: .4byte 0xffffec00
_080CE700:
- ldr r0, _080CE740 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE740 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -8417,7 +8417,7 @@ _080CE726:
strh r0, [r5, 0x38]
b _080CE784
.align 2, 0
-_080CE740: .4byte gBattleAnimPlayerMonIndex
+_080CE740: .4byte gBattleAnimBankAttacker
_080CE744: .4byte 0xfffff600
_080CE748:
ldrh r0, [r5, 0x20]
@@ -8515,7 +8515,7 @@ sub_80CE7E0: @ 80CE7E0
ldr r1, _080CE870 @ =gTasks
adds r6, r0, r1
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
@@ -8615,7 +8615,7 @@ _080CE8B4:
_080CE8C6:
ldr r0, _080CE8E8 @ =sub_80CE910
str r0, [r6]
- ldr r0, _080CE8EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE8EC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -8630,7 +8630,7 @@ _080CE8C6:
.align 2, 0
_080CE8E4: .4byte sub_80CE974
_080CE8E8: .4byte sub_80CE910
-_080CE8EC: .4byte gBattleAnimPlayerMonIndex
+_080CE8EC: .4byte gBattleAnimBankAttacker
_080CE8F0: .4byte 0x0000fdff
_080CE8F4:
movs r2, 0x80
@@ -8664,7 +8664,7 @@ sub_80CE910: @ 80CE910
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CE968
- ldr r0, _080CE948 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CE948 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -8679,7 +8679,7 @@ sub_80CE910: @ 80CE910
b _080CE956
.align 2, 0
_080CE944: .4byte gTasks
-_080CE948: .4byte gBattleAnimPlayerMonIndex
+_080CE948: .4byte gBattleAnimBankAttacker
_080CE94C:
movs r0, 0x80
lsls r0, 19
@@ -8782,7 +8782,7 @@ sub_80CEA04: @ 80CEA04
push {r4,lr}
adds r4, r0, 0
ldr r1, _080CEA18 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CEA1C @ =sub_8078600
str r0, [r4, 0x1C]
pop {r4}
@@ -8964,7 +8964,7 @@ _080CEB48:
_080CEB64: .4byte gBattleAnimArgs
_080CEB68: .4byte gUnknown_083D712C
_080CEB6C:
- ldr r4, _080CEBBC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CEBBC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9002,7 +9002,7 @@ _080CEB86:
pop {r0}
bx r0
.align 2, 0
-_080CEBBC: .4byte gBattleAnimEnemyMonIndex
+_080CEBBC: .4byte gBattleAnimBankTarget
_080CEBC0: .4byte sub_80CEC1C
thumb_func_end sub_80CEB0C
@@ -9165,7 +9165,7 @@ _080CECE4: .4byte gUnknown_083D712C
sub_80CECE8: @ 80CECE8
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, _080CED6C @ =gBattleAnimPlayerMonIndex
+ ldr r7, _080CED6C @ =gBattleAnimBankAttacker
ldrb r0, [r7]
bl GetBankSide
lsls r0, 24
@@ -9225,7 +9225,7 @@ _080CED06:
pop {r0}
bx r0
.align 2, 0
-_080CED6C: .4byte gBattleAnimPlayerMonIndex
+_080CED6C: .4byte gBattleAnimBankAttacker
_080CED70: .4byte gBattleAnimArgs
_080CED74: .4byte sub_80CED78
thumb_func_end sub_80CECE8
@@ -9316,7 +9316,7 @@ _080CEE10: .4byte gBattleAnimArgs
_080CEE14:
ldr r6, _080CEE50 @ =0x0000fff0
_080CEE16:
- ldr r4, _080CEE54 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CEE54 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -9337,13 +9337,13 @@ _080CEE16:
str r0, [r5, 0x1C]
ldr r1, _080CEE5C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080CEE50: .4byte 0x0000fff0
-_080CEE54: .4byte gBattleAnimPlayerMonIndex
+_080CEE54: .4byte gBattleAnimBankAttacker
_080CEE58: .4byte sub_80782D8
_080CEE5C: .4byte move_anim_8072740
thumb_func_end sub_80CEDF0
@@ -9519,13 +9519,13 @@ sub_80CEF9C: @ 80CEF9C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CEFB8
- ldr r0, _080CEFB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CEFB4 @ =gBattleAnimBankAttacker
b _080CEFBA
.align 2, 0
_080CEFB0: .4byte gBattleAnimArgs
-_080CEFB4: .4byte gBattleAnimPlayerMonIndex
+_080CEFB4: .4byte gBattleAnimBankAttacker
_080CEFB8:
- ldr r0, _080CEFF8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CEFF8 @ =gBattleAnimBankTarget
_080CEFBA:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9547,14 +9547,14 @@ _080CEFBA:
bl StartSpriteAnim
ldr r1, _080CF000 @ =sub_80CF008
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF004 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080CEFF8: .4byte gBattleAnimEnemyMonIndex
+_080CEFF8: .4byte gBattleAnimBankTarget
_080CEFFC: .4byte gBattleAnimArgs
_080CF000: .4byte sub_80CF008
_080CF004: .4byte sub_8078600
@@ -9572,7 +9572,7 @@ sub_80CF008: @ 80CF008
bne _080CF030
ldr r1, _080CF038 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r1, [r4, 0x30]
lsls r1, 24
lsrs r1, 24
@@ -9598,13 +9598,13 @@ sub_80CF040: @ 80CF040
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF05C
- ldr r0, _080CF058 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF058 @ =gBattleAnimBankAttacker
b _080CF05E
.align 2, 0
_080CF054: .4byte gBattleAnimArgs
-_080CF058: .4byte gBattleAnimPlayerMonIndex
+_080CF058: .4byte gBattleAnimBankAttacker
_080CF05C:
- ldr r0, _080CF07C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF07C @ =gBattleAnimBankTarget
_080CF05E:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9613,14 +9613,14 @@ _080CF05E:
strh r0, [r4, 0x2E]
ldr r1, _080CF080 @ =sub_80CF088
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF084 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080CF07C: .4byte gBattleAnimEnemyMonIndex
+_080CF07C: .4byte gBattleAnimBankTarget
_080CF080: .4byte sub_80CF088
_080CF084: .4byte sub_80785E4
thumb_func_end sub_80CF040
@@ -9641,7 +9641,7 @@ sub_80CF088: @ 80CF088
bl StartSpriteAffineAnim
ldr r1, _080CF0B4 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF0B8 @ =sub_80785E4
str r0, [r4, 0x1C]
_080CF0AE:
@@ -9662,13 +9662,13 @@ sub_80CF0BC: @ 80CF0BC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF0D8
- ldr r0, _080CF0D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF0D4 @ =gBattleAnimBankAttacker
b _080CF0DA
.align 2, 0
_080CF0D0: .4byte gBattleAnimArgs
-_080CF0D4: .4byte gBattleAnimPlayerMonIndex
+_080CF0D4: .4byte gBattleAnimBankAttacker
_080CF0D8:
- ldr r0, _080CF12C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF12C @ =gBattleAnimBankTarget
_080CF0DA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -9702,14 +9702,14 @@ _080CF102:
strh r6, [r4, 0x36]
ldr r1, _080CF130 @ =sub_80CF138
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF134 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080CF12C: .4byte gBattleAnimEnemyMonIndex
+_080CF12C: .4byte gBattleAnimBankTarget
_080CF130: .4byte sub_80CF138
_080CF134: .4byte sub_80785E4
thumb_func_end sub_80CF0BC
@@ -9808,13 +9808,13 @@ sub_80CF1C8: @ 80CF1C8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF1E4
- ldr r0, _080CF1E0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF1E0 @ =gBattleAnimBankAttacker
b _080CF1E6
.align 2, 0
_080CF1DC: .4byte gBattleAnimArgs
-_080CF1E0: .4byte gBattleAnimPlayerMonIndex
+_080CF1E0: .4byte gBattleAnimBankAttacker
_080CF1E4:
- ldr r0, _080CF208 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF208 @ =gBattleAnimBankTarget
_080CF1E6:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9831,7 +9831,7 @@ _080CF1E6:
movs r0, 0x2
b _080CF216
.align 2, 0
-_080CF208: .4byte gBattleAnimEnemyMonIndex
+_080CF208: .4byte gBattleAnimBankTarget
_080CF20C:
adds r0, r5, 0
movs r1, 0x1
@@ -9868,7 +9868,7 @@ sub_80CF228: @ 80CF228
bl StartSpriteAnim
ldr r1, _080CF25C @ =sub_80CF264
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080CF260 @ =sub_8078600
str r0, [r4, 0x1C]
_080CF256:
@@ -9922,7 +9922,7 @@ sub_80CF280: @ 80CF280
strh r0, [r4, 0x36]
ldr r1, _080CF2C8 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080CF2CC @ =sub_8078278
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -9945,13 +9945,13 @@ sub_80CF2D0: @ 80CF2D0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080CF2EC
- ldr r0, _080CF2E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF2E8 @ =gBattleAnimBankAttacker
b _080CF2EE
.align 2, 0
_080CF2E4: .4byte gBattleAnimArgs
-_080CF2E8: .4byte gBattleAnimPlayerMonIndex
+_080CF2E8: .4byte gBattleAnimBankAttacker
_080CF2EC:
- ldr r0, _080CF308 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF308 @ =gBattleAnimBankTarget
_080CF2EE:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9965,7 +9965,7 @@ _080CF2EE:
pop {r0}
bx r0
.align 2, 0
-_080CF308: .4byte gBattleAnimEnemyMonIndex
+_080CF308: .4byte gBattleAnimBankTarget
_080CF30C: .4byte sub_80CF310
thumb_func_end sub_80CF2D0
@@ -10075,7 +10075,7 @@ _080CF3C0: .4byte gSprites
sub_80CF3C4: @ 80CF3C4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080CF40C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080CF40C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10089,7 +10089,7 @@ sub_80CF3C4: @ 80CF3C4
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r1, _080CF410 @ =gObjectBankIDs
- ldr r0, _080CF414 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CF414 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -10106,9 +10106,9 @@ sub_80CF3C4: @ 80CF3C4
adds r1, r0, 0
b _080CF426
.align 2, 0
-_080CF40C: .4byte gBattleAnimPlayerMonIndex
+_080CF40C: .4byte gBattleAnimBankAttacker
_080CF410: .4byte gObjectBankIDs
-_080CF414: .4byte gBattleAnimEnemyMonIndex
+_080CF414: .4byte gBattleAnimBankTarget
_080CF418: .4byte gBattleAnimArgs
_080CF41C:
ldr r1, _080CF450 @ =gBattleAnimArgs
@@ -10159,7 +10159,7 @@ sub_80CF458: @ 80CF458
str r0, [r4, 0x1C]
ldr r1, _080CF48C @ =sub_80CF490
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -10182,7 +10182,7 @@ sub_80CF490: @ 80CF490
ldr r1, _080CF4B0 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080CF4B4 @ =sub_80CF4B8
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -10217,7 +10217,7 @@ sub_80CF4D8: @ 80CF4D8
lsls r4, 24
lsrs r4, 24
ldr r1, _080CF504 @ =gObjectBankIDs
- ldr r0, _080CF508 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF508 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -10235,7 +10235,7 @@ sub_80CF4D8: @ 80CF4D8
bx r0
.align 2, 0
_080CF504: .4byte gObjectBankIDs
-_080CF508: .4byte gBattleAnimPlayerMonIndex
+_080CF508: .4byte gBattleAnimBankAttacker
_080CF50C: .4byte gTasks
_080CF510: .4byte sub_80CF514
thumb_func_end sub_80CF4D8
@@ -10246,7 +10246,7 @@ sub_80CF514: @ 80CF514
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _080CF544 @ =gObjectBankIDs
- ldr r0, _080CF548 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF548 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
@@ -10267,7 +10267,7 @@ sub_80CF514: @ 80CF514
b _080CF55E
.align 2, 0
_080CF544: .4byte gObjectBankIDs
-_080CF548: .4byte gBattleAnimPlayerMonIndex
+_080CF548: .4byte gBattleAnimBankAttacker
_080CF54C: .4byte gTasks
_080CF550:
ldr r2, _080CF590 @ =gTasks
@@ -10382,7 +10382,7 @@ sub_80CF610: @ 80CF610
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080CF65C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF65C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10404,7 +10404,7 @@ sub_80CF610: @ 80CF610
b _080CF674
.align 2, 0
_080CF658: .4byte gBattleAnimArgs
-_080CF65C: .4byte gBattleAnimPlayerMonIndex
+_080CF65C: .4byte gBattleAnimBankAttacker
_080CF660:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -10421,7 +10421,7 @@ _080CF674:
str r0, [r4, 0x1C]
ldr r1, _080CF68C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -10440,7 +10440,7 @@ sub_80CF690: @ 80CF690
str r0, [r4, 0x1C]
ldr r1, _080CF6B0 @ =sub_80CF6B4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -10462,7 +10462,7 @@ sub_80CF6B4: @ 80CF6B4
ldr r1, _080CF6D4 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080CF6D8 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -10489,7 +10489,7 @@ sub_80CF6DC: @ 80CF6DC
.align 2, 0
_080CF6FC: .4byte gBattleAnimArgs
_080CF700:
- ldr r0, _080CF7C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CF7C8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10509,7 +10509,7 @@ _080CF722:
adds r0, r5, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CF7D0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CF7D0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10575,7 +10575,7 @@ _080CF794:
str r0, [r5, 0x1C]
ldr r1, _080CF7DC @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r3}
mov r8, r3
@@ -10583,9 +10583,9 @@ _080CF794:
pop {r0}
bx r0
.align 2, 0
-_080CF7C8: .4byte gBattleAnimPlayerMonIndex
+_080CF7C8: .4byte gBattleAnimBankAttacker
_080CF7CC: .4byte gBattleAnimArgs
-_080CF7D0: .4byte gBattleAnimEnemyMonIndex
+_080CF7D0: .4byte gBattleAnimBankTarget
_080CF7D4: .4byte 0xffffa000
_080CF7D8: .4byte sub_8078B34
_080CF7DC: .4byte move_anim_8072740
@@ -11068,7 +11068,7 @@ _080CFB68:
b _080CFBCA
_080CFB70:
ldr r1, _080CFBB4 @ =gBanksBySide
- ldr r0, _080CFBB8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFBB8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -11102,7 +11102,7 @@ _080CFB70:
b _080CFBC8
.align 2, 0
_080CFBB4: .4byte gBanksBySide
-_080CFBB8: .4byte gBattleAnimEnemyMonIndex
+_080CFBB8: .4byte gBattleAnimBankTarget
_080CFBBC: .4byte gTasks
_080CFBC0: .4byte gBattleAnimArgs
_080CFBC4:
@@ -11111,7 +11111,7 @@ _080CFBC4:
_080CFBC8:
strh r0, [r2, 0x4]
_080CFBCA:
- ldr r5, _080CFC24 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080CFC24 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -11137,11 +11137,11 @@ _080CFBCA:
ands r0, r1
cmp r0, 0
beq _080CFC34
- ldr r4, _080CFC30 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFC30 @ =gBattleAnimBankTarget
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080CFC34
@@ -11152,13 +11152,13 @@ _080CFBCA:
bl sub_807A3FC
b _080CFC56
.align 2, 0
-_080CFC24: .4byte gBattleAnimPlayerMonIndex
+_080CFC24: .4byte gBattleAnimBankAttacker
_080CFC28: .4byte gTasks
_080CFC2C: .4byte gBattleTypeFlags
-_080CFC30: .4byte gBattleAnimEnemyMonIndex
+_080CFC30: .4byte gBattleAnimBankTarget
_080CFC34:
mov r5, sp
- ldr r4, _080CFC90 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFC90 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -11203,7 +11203,7 @@ _080CFC56:
subs r0, r2, r1
b _080CFC9E
.align 2, 0
-_080CFC90: .4byte gBattleAnimEnemyMonIndex
+_080CFC90: .4byte gBattleAnimBankTarget
_080CFC94: .4byte gTasks
_080CFC98: .4byte gBattleAnimArgs
_080CFC9C:
@@ -11301,7 +11301,7 @@ _080CFD3C:
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFD84 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFD84 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11315,14 +11315,14 @@ _080CFD3C:
.align 2, 0
_080CFD7C: .4byte gTasks
_080CFD80: .4byte gBattleAnimArgs
-_080CFD84: .4byte gBattleAnimEnemyMonIndex
+_080CFD84: .4byte gBattleAnimBankTarget
_080CFD88: .4byte 0x0000ffc0
_080CFD8C:
lsls r0, r1, 16
asrs r0, 16
cmp r0, 0x3F
ble _080CFDB4
- ldr r0, _080CFDAC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFDAC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11334,10 +11334,10 @@ _080CFD8C:
adds r0, r1
b _080CFDC4
.align 2, 0
-_080CFDAC: .4byte gBattleAnimEnemyMonIndex
+_080CFDAC: .4byte gBattleAnimBankTarget
_080CFDB0: .4byte 0x0000ffc0
_080CFDB4:
- ldr r0, _080CFDF0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080CFDF0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11369,7 +11369,7 @@ _080CFDDC:
pop {r0}
bx r0
.align 2, 0
-_080CFDF0: .4byte gBattleAnimEnemyMonIndex
+_080CFDF0: .4byte gBattleAnimBankTarget
_080CFDF4: .4byte gTasks
_080CFDF8: .4byte sub_80CFA20
thumb_func_end sub_80CFB04
@@ -11466,7 +11466,7 @@ sub_80CFE9C: @ 80CFE9C
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080CFF3C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080CFF3C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11482,7 +11482,7 @@ sub_80CFE9C: @ 80CFE9C
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, _080CFF44 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CFF44 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11530,15 +11530,15 @@ _080CFEE0:
str r0, [r5, 0x1C]
ldr r1, _080CFF4C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080CFF3C: .4byte gBattleAnimEnemyMonIndex
+_080CFF3C: .4byte gBattleAnimBankTarget
_080CFF40: .4byte gBattleAnimArgs
-_080CFF44: .4byte gBattleAnimPlayerMonIndex
+_080CFF44: .4byte gBattleAnimBankAttacker
_080CFF48: .4byte sub_8078C00
_080CFF4C: .4byte move_anim_8072740
thumb_func_end sub_80CFE9C
@@ -11568,7 +11568,7 @@ sub_80CFF68: @ 80CFF68
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
- ldr r0, _080CFFD4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080CFFD4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11613,7 +11613,7 @@ _080CFFCC:
pop {r0}
bx r0
.align 2, 0
-_080CFFD4: .4byte gBattleAnimPlayerMonIndex
+_080CFFD4: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80CFF68
thumb_func_start sub_80CFFD8
@@ -11624,7 +11624,7 @@ sub_80CFFD8: @ 80CFFD8
bl sub_80787B0
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080D0024 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D0024 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -11647,12 +11647,12 @@ sub_80CFFD8: @ 80CFFD8
strb r0, [r2]
ldr r1, _080D002C @ =sub_80D0030
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D0024: .4byte gBattleAnimEnemyMonIndex
+_080D0024: .4byte gBattleAnimBankTarget
_080D0028: .4byte sub_8078B34
_080D002C: .4byte sub_80D0030
thumb_func_end sub_80CFFD8
@@ -11781,7 +11781,7 @@ sub_80D0118: @ 80D0118
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D0168 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D0168 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11806,7 +11806,7 @@ _080D0136:
str r0, [r4, 0x1C]
ldr r1, _080D0174 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -11814,7 +11814,7 @@ _080D0136:
pop {r0}
bx r0
.align 2, 0
-_080D0168: .4byte gBattleAnimPlayerMonIndex
+_080D0168: .4byte gBattleAnimBankAttacker
_080D016C: .4byte gBattleAnimArgs
_080D0170: .4byte sub_8078114
_080D0174: .4byte move_anim_8072740
@@ -11856,7 +11856,7 @@ _080D01A4:
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D0200 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D0200 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11875,7 +11875,7 @@ _080D01A4:
str r0, [r5, 0x1C]
ldr r1, _080D0208 @ =sub_80D020C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
@@ -11885,7 +11885,7 @@ _080D01A4:
_080D01F4: .4byte 0x0000ffe0
_080D01F8: .4byte 0x0000fff0
_080D01FC: .4byte gBattleAnimArgs
-_080D0200: .4byte gBattleAnimEnemyMonIndex
+_080D0200: .4byte gBattleAnimBankTarget
_080D0204: .4byte sub_8078B34
_080D0208: .4byte sub_80D020C
thumb_func_end sub_80D0178
@@ -11949,7 +11949,7 @@ _080D025C:
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D02C8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D02C8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -11984,7 +11984,7 @@ _080D025C:
_080D02BC: .4byte 0x0000ffe0
_080D02C0: .4byte 0x0000fff0
_080D02C4: .4byte gBattleAnimArgs
-_080D02C8: .4byte gBattleAnimEnemyMonIndex
+_080D02C8: .4byte gBattleAnimBankTarget
_080D02CC: .4byte sub_80D02D0
thumb_func_end sub_80D0228
@@ -12125,7 +12125,7 @@ sub_80D03C4: @ 80D03C4
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -12185,7 +12185,7 @@ sub_80D0428: @ 80D0428
cmp r1, r0
bne _080D0478
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -12223,7 +12223,7 @@ sub_80D0488: @ 80D0488
ldr r0, _080D04D4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -12238,7 +12238,7 @@ sub_80D0488: @ 80D0488
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
- ldr r0, _080D04D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D04D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -12251,7 +12251,7 @@ sub_80D0488: @ 80D0488
bx r0
.align 2, 0
_080D04D4: .4byte gTasks
-_080D04D8: .4byte gBattleAnimPlayerMonIndex
+_080D04D8: .4byte gBattleAnimBankAttacker
_080D04DC: .4byte sub_80D04E0
thumb_func_end sub_80D0488
@@ -12593,7 +12593,7 @@ _080D0770: .4byte gTasks
_080D0774: .4byte gBattleAnimArgs
_080D0778:
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12775,7 +12775,7 @@ sub_80D08C8: @ 80D08C8
ldr r0, _080D08F8 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12821,7 +12821,7 @@ _080D092C: .4byte gTasks
sub_80D0930: @ 80D0930
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D0960 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D0960 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -12840,7 +12840,7 @@ sub_80D0930: @ 80D0930
movs r0, 0x40
b _080D097E
.align 2, 0
-_080D0960: .4byte gBattleAnimPlayerMonIndex
+_080D0960: .4byte gBattleAnimBankAttacker
_080D0964:
adds r0, r4, 0
movs r1, 0x1
@@ -12855,7 +12855,7 @@ _080D0964:
ldr r0, _080D09B0 @ =0x0000ffc0
_080D097E:
strh r0, [r4, 0x30]
- ldr r0, _080D09B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D09B4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -12870,7 +12870,7 @@ _080D097E:
strh r1, [r4, 0x36]
ldr r1, _080D09B8 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D09BC @ =sub_8078394
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -12878,7 +12878,7 @@ _080D097E:
bx r0
.align 2, 0
_080D09B0: .4byte 0x0000ffc0
-_080D09B4: .4byte gBattleAnimPlayerMonIndex
+_080D09B4: .4byte gBattleAnimBankAttacker
_080D09B8: .4byte move_anim_8072740
_080D09BC: .4byte sub_8078394
thumb_func_end sub_80D0930
@@ -12892,13 +12892,13 @@ sub_80D09C0: @ 80D09C0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D09DC
- ldr r0, _080D09D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D09D8 @ =gBattleAnimBankAttacker
b _080D09DE
.align 2, 0
_080D09D4: .4byte gBattleAnimArgs
-_080D09D8: .4byte gBattleAnimPlayerMonIndex
+_080D09D8: .4byte gBattleAnimBankAttacker
_080D09DC:
- ldr r0, _080D0A3C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D0A3C @ =gBattleAnimBankTarget
_080D09DE:
ldrb r5, [r0]
adds r0, r5, 0
@@ -12939,14 +12939,14 @@ _080D09F8:
_080D0A2A:
ldr r1, _080D0A44 @ =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D0A48 @ =sub_80785E4
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080D0A3C: .4byte gBattleAnimEnemyMonIndex
+_080D0A3C: .4byte gBattleAnimBankTarget
_080D0A40: .4byte gBattleAnimArgs
_080D0A44: .4byte move_anim_8074EE0
_080D0A48: .4byte sub_80785E4
@@ -12963,7 +12963,7 @@ sub_80D0A4C: @ 80D0A4C
ldr r0, _080D0A80 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -13019,7 +13019,7 @@ sub_80D0AB8: @ 80D0AB8
ldr r0, _080D0B2C @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -13050,7 +13050,7 @@ sub_80D0AB8: @ 80D0AB8
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
- ldr r0, _080D0B34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D0B34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -13070,7 +13070,7 @@ _080D0B22:
.align 2, 0
_080D0B2C: .4byte gTasks
_080D0B30: .4byte gSprites
-_080D0B34: .4byte gBattleAnimPlayerMonIndex
+_080D0B34: .4byte gBattleAnimBankAttacker
_080D0B38: .4byte sub_80D0B3C
thumb_func_end sub_80D0AB8
@@ -13260,7 +13260,7 @@ sub_80D0C88: @ 80D0C88
lsls r1, 3
ldr r0, _080D0CD8 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D0CDC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D0CDC @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl sub_8077FC0
lsls r0, 24
@@ -13290,7 +13290,7 @@ sub_80D0C88: @ 80D0C88
b _080D0CF0
.align 2, 0
_080D0CD8: .4byte gTasks
-_080D0CDC: .4byte gBattleAnimEnemyMonIndex
+_080D0CDC: .4byte gBattleAnimBankTarget
_080D0CE0: .4byte gUnknown_030042C0
_080D0CE4: .4byte REG_BG1HOFS
_080D0CE8:
@@ -13472,7 +13472,7 @@ _080D0E2C: .4byte gUnknown_03004DC0
sub_80D0E30: @ 80D0E30
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080D0E84 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D0E84 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -13509,7 +13509,7 @@ sub_80D0E30: @ 80D0E30
pop {r0}
bx r0
.align 2, 0
-_080D0E84: .4byte gBattleAnimEnemyMonIndex
+_080D0E84: .4byte gBattleAnimBankTarget
_080D0E88: .4byte sub_80D0E8C
thumb_func_end sub_80D0E30
@@ -13709,13 +13709,13 @@ sub_80D0FD8: @ 80D0FD8
adds r1, r0, 0
cmp r2, 0
bne _080D1004
- ldr r0, _080D1000 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1000 @ =gBattleAnimBankAttacker
b _080D1006
.align 2, 0
_080D0FFC: .4byte gBattleAnimArgs
-_080D1000: .4byte gBattleAnimPlayerMonIndex
+_080D1000: .4byte gBattleAnimBankAttacker
_080D1004:
- ldr r0, _080D1040 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1040 @ =gBattleAnimBankTarget
_080D1006:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
@@ -13729,7 +13729,7 @@ _080D1006:
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D107E
@@ -13744,7 +13744,7 @@ _080D1006:
movs r1, 0
b _080D1048
.align 2, 0
-_080D1040: .4byte gBattleAnimEnemyMonIndex
+_080D1040: .4byte gBattleAnimBankTarget
_080D1044:
adds r0, r5, 0
movs r1, 0x2
@@ -13826,18 +13826,18 @@ sub_80D10B8: @ 80D10B8
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080D10F0
- ldr r0, _080D10E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D10E8 @ =gBattleAnimBankAttacker
ldrb r7, [r0]
- ldr r0, _080D10EC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D10EC @ =gBattleAnimBankTarget
b _080D10F6
.align 2, 0
_080D10E4: .4byte gBattleAnimArgs
-_080D10E8: .4byte gBattleAnimPlayerMonIndex
-_080D10EC: .4byte gBattleAnimEnemyMonIndex
+_080D10E8: .4byte gBattleAnimBankAttacker
+_080D10EC: .4byte gBattleAnimBankTarget
_080D10F0:
- ldr r0, _080D1110 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1110 @ =gBattleAnimBankTarget
ldrb r7, [r0]
- ldr r0, _080D1114 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1114 @ =gBattleAnimBankAttacker
_080D10F6:
ldrb r0, [r0]
mov r8, r0
@@ -13852,8 +13852,8 @@ _080D10F6:
str r1, [sp, 0x4]
b _080D1124
.align 2, 0
-_080D1110: .4byte gBattleAnimEnemyMonIndex
-_080D1114: .4byte gBattleAnimPlayerMonIndex
+_080D1110: .4byte gBattleAnimBankTarget
+_080D1114: .4byte gBattleAnimBankAttacker
_080D1118: .4byte gBattleAnimArgs
_080D111C:
movs r2, 0x2
@@ -13881,7 +13881,7 @@ _080D1124:
mov r4, r8
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D1170
@@ -13925,7 +13925,7 @@ _080D1180:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D1204
@@ -14002,7 +14002,7 @@ _080D121A:
mov r0, r8
movs r1, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D127C
@@ -14139,7 +14139,7 @@ sub_80D1368: @ 80D1368
adds r4, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r0, _080D139C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D139C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14161,7 +14161,7 @@ _080D1384:
pop {r0}
bx r0
.align 2, 0
-_080D139C: .4byte gBattleAnimPlayerMonIndex
+_080D139C: .4byte gBattleAnimBankAttacker
_080D13A0: .4byte 0x0000ff60
_080D13A4: .4byte gBattleAnimArgs
_080D13A8: .4byte sub_80D13AC
@@ -14184,7 +14184,7 @@ sub_80D13AC: @ 80D13AC
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
- ldr r0, _080D1418 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D1418 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14223,7 +14223,7 @@ _080D1410:
pop {r0}
bx r0
.align 2, 0
-_080D1418: .4byte gBattleAnimPlayerMonIndex
+_080D1418: .4byte gBattleAnimBankAttacker
_080D141C: .4byte 0x0000ff60
_080D1420: .4byte sub_80D1424
thumb_func_end sub_80D13AC
@@ -14449,7 +14449,7 @@ sub_80D15A4: @ 80D15A4
ldr r0, _080D15D4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -14531,7 +14531,7 @@ sub_80D1638: @ 80D1638
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
- ldr r0, _080D1670 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D1670 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14543,7 +14543,7 @@ sub_80D1638: @ 80D1638
b _080D167E
.align 2, 0
_080D166C: .4byte gTasks
-_080D1670: .4byte gBattleAnimEnemyMonIndex
+_080D1670: .4byte gBattleAnimBankTarget
_080D1674: .4byte 0x0000ffff
_080D1678:
movs r0, 0x1
@@ -14552,7 +14552,7 @@ _080D1678:
_080D167E:
strh r0, [r4, 0x24]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14745,7 +14745,7 @@ sub_80D17C4: @ 80D17C4
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14888,7 +14888,7 @@ sub_80D18D4: @ 80D18D4
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
- ldr r5, _080D1928 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D1928 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -14908,7 +14908,7 @@ sub_80D18D4: @ 80D18D4
bx r0
.align 2, 0
_080D1924: .4byte gTasks
-_080D1928: .4byte gBattleAnimPlayerMonIndex
+_080D1928: .4byte gBattleAnimBankAttacker
_080D192C: .4byte sub_80D1930
thumb_func_end sub_80D18D4
@@ -15171,7 +15171,7 @@ _080D1AF4:
adds r1, r0
_080D1B1C:
adds r0, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
movs r5, 0
_080D1B24:
lsls r4, r5, 5
@@ -15293,7 +15293,7 @@ sub_80D1C08: @ 80D1C08
adds r5, r0, 0
movs r1, 0
bl sub_80787B0
- ldr r6, _080D1C70 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080D1C70 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -15327,7 +15327,7 @@ _080D1C28:
str r0, [r5, 0x1C]
ldr r1, _080D1C7C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
ldrb r2, [r4, 0xC]
adds r0, r5, 0
@@ -15336,7 +15336,7 @@ _080D1C28:
pop {r0}
bx r0
.align 2, 0
-_080D1C70: .4byte gBattleAnimPlayerMonIndex
+_080D1C70: .4byte gBattleAnimBankAttacker
_080D1C74: .4byte gBattleAnimArgs
_080D1C78: .4byte sub_8078B34
_080D1C7C: .4byte move_anim_8072740
@@ -15569,7 +15569,7 @@ sub_80D1E38: @ 80D1E38
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080D1E88 @ =gTasks
@@ -15585,7 +15585,7 @@ sub_80D1E38: @ 80D1E38
cmp r0, 0x1
bne _080D1E94
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15638,7 +15638,7 @@ sub_80D1EC8: @ 80D1EC8
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, _080D1F18 @ =gTasks
@@ -15654,7 +15654,7 @@ sub_80D1EC8: @ 80D1EC8
cmp r0, 0x1
bne _080D1F24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15710,7 +15710,7 @@ sub_80D1F58: @ 80D1F58
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080D1F9C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D1F9C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -15733,7 +15733,7 @@ sub_80D1F58: @ 80D1F58
pop {r0}
bx r0
.align 2, 0
-_080D1F9C: .4byte gBattleAnimEnemyMonIndex
+_080D1F9C: .4byte gBattleAnimBankTarget
_080D1FA0: .4byte sub_80D1FA4
thumb_func_end sub_80D1F58
@@ -15853,7 +15853,7 @@ sub_80D2064: @ 80D2064
ldr r1, _080D208C @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D2090 @ =sub_80D2094
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -16330,7 +16330,7 @@ _080D2450: .4byte 0x040000d4
_080D2454: .4byte 0x85000400
_080D2458: .4byte gBattleAnimBackgroundTilemap_ScaryFaceContest
_080D245C:
- ldr r0, _080D2478 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2478 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -16343,7 +16343,7 @@ _080D246E:
bl LZDecompressVram
b _080D2488
.align 2, 0
-_080D2478: .4byte gBattleAnimEnemyMonIndex
+_080D2478: .4byte gBattleAnimBankTarget
_080D247C: .4byte gBattleAnimBackgroundTilemap_ScaryFacePlayer
_080D2480:
ldr r0, _080D24CC @ =gBattleAnimBackgroundTilemap_ScaryFaceOpponent
@@ -16621,7 +16621,7 @@ _080D26A0: .4byte REG_BLDCNT
sub_80D26A4: @ 80D26A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D26F8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D26F8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -16658,7 +16658,7 @@ sub_80D26A4: @ 80D26A4
pop {r0}
bx r0
.align 2, 0
-_080D26F8: .4byte gBattleAnimPlayerMonIndex
+_080D26F8: .4byte gBattleAnimBankAttacker
_080D26FC: .4byte gBattleAnimArgs
_080D2700: .4byte sub_80D2704
thumb_func_end sub_80D26A4
@@ -16779,7 +16779,7 @@ _080D27DC: .4byte 0x0000ffff
sub_80D27E0: @ 80D27E0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D2828 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D2828 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16809,7 +16809,7 @@ sub_80D27E0: @ 80D27E0
pop {r0}
bx r0
.align 2, 0
-_080D2828: .4byte gBattleAnimPlayerMonIndex
+_080D2828: .4byte gBattleAnimBankAttacker
_080D282C: .4byte gBattleAnimArgs
_080D2830: .4byte sub_80D2834
thumb_func_end sub_80D27E0
@@ -16887,7 +16887,7 @@ _080D28A8:
sub_80D28AC: @ 80D28AC
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D28F8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D28F8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -16919,7 +16919,7 @@ sub_80D28AC: @ 80D28AC
pop {r0}
bx r0
.align 2, 0
-_080D28F8: .4byte gBattleAnimPlayerMonIndex
+_080D28F8: .4byte gBattleAnimBankAttacker
_080D28FC: .4byte gBattleAnimArgs
_080D2900: .4byte sub_80D287C
thumb_func_end sub_80D28AC
@@ -17179,7 +17179,7 @@ sub_80D2ABC: @ 80D2ABC
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
- ldr r0, _080D2BBC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2BBC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -17291,7 +17291,7 @@ _080D2B80:
b _080D2BD2
.align 2, 0
_080D2BB8: .4byte gBattleAnimArgs
-_080D2BBC: .4byte gBattleAnimEnemyMonIndex
+_080D2BBC: .4byte gBattleAnimBankTarget
_080D2BC0: .4byte 0x0000ffff
_080D2BC4:
adds r2, r4, 0
@@ -17375,12 +17375,12 @@ _080D2C54:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D2C64
- ldr r4, _080D2C60 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D2C60 @ =gBattleAnimBankAttacker
b _080D2C66
.align 2, 0
-_080D2C60: .4byte gBattleAnimPlayerMonIndex
+_080D2C60: .4byte gBattleAnimBankAttacker
_080D2C64:
- ldr r4, _080D2C94 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D2C94 @ =gBattleAnimBankTarget
_080D2C66:
ldrb r0, [r4]
movs r1, 0x2
@@ -17404,7 +17404,7 @@ _080D2C66:
adds r0, 0x20
b _080D2CA0
.align 2, 0
-_080D2C94: .4byte gBattleAnimEnemyMonIndex
+_080D2C94: .4byte gBattleAnimBankTarget
_080D2C98: .4byte gBattleAnimArgs
_080D2C9C:
ldrh r0, [r5, 0x20]
@@ -17467,7 +17467,7 @@ sub_80D2CF8: @ 80D2CF8
lsrs r5, 24
ldr r0, _080D2D2C @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -17524,13 +17524,13 @@ sub_80D2D68: @ 80D2D68
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D2D84
- ldr r0, _080D2D80 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D2D80 @ =gBattleAnimBankAttacker
b _080D2D86
.align 2, 0
_080D2D7C: .4byte gBattleAnimArgs
-_080D2D80: .4byte gBattleAnimPlayerMonIndex
+_080D2D80: .4byte gBattleAnimBankAttacker
_080D2D84:
- ldr r0, _080D2E1C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D2E1C @ =gBattleAnimBankTarget
_080D2D86:
ldrb r6, [r0]
adds r0, r6, 0
@@ -17607,7 +17607,7 @@ _080D2DF0:
pop {r0}
bx r0
.align 2, 0
-_080D2E1C: .4byte gBattleAnimEnemyMonIndex
+_080D2E1C: .4byte gBattleAnimBankTarget
_080D2E20: .4byte gBattleAnimArgs
_080D2E24: .4byte 0x000003ff
_080D2E28: .4byte 0xfffffc00
@@ -17882,11 +17882,11 @@ sub_80D3014: @ 80D3014
ands r0, r1
cmp r0, 0
beq _080D3060
- ldr r4, _080D305C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D305C @ =gBattleAnimBankAttacker
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D3060
@@ -17906,9 +17906,9 @@ sub_80D3014: @ 80D3014
b _080D3080
.align 2, 0
_080D3058: .4byte gBattleTypeFlags
-_080D305C: .4byte gBattleAnimPlayerMonIndex
+_080D305C: .4byte gBattleAnimBankAttacker
_080D3060:
- ldr r4, _080D30A0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D30A0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -17934,12 +17934,12 @@ _080D3080:
str r0, [r5, 0x1C]
ldr r1, _080D30A8 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D30A0: .4byte gBattleAnimPlayerMonIndex
+_080D30A0: .4byte gBattleAnimBankAttacker
_080D30A4: .4byte sub_8078B34
_080D30A8: .4byte move_anim_8072740
thumb_func_end sub_80D3014
@@ -18099,7 +18099,7 @@ _080D31C2:
sub_80D31C8: @ 80D31C8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D31F0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D31F0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -18115,7 +18115,7 @@ sub_80D31C8: @ 80D31C8
subs r0, r1
b _080D320A
.align 2, 0
-_080D31F0: .4byte gBattleAnimPlayerMonIndex
+_080D31F0: .4byte gBattleAnimBankAttacker
_080D31F4: .4byte gBattleAnimArgs
_080D31F8:
ldrb r0, [r5]
@@ -18142,7 +18142,7 @@ _080D320A:
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D32D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D32D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18158,7 +18158,7 @@ _080D3240:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r4, _080D32D8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D32D8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18220,8 +18220,8 @@ _080D3240:
bx r0
.align 2, 0
_080D32D0: .4byte gBattleAnimArgs
-_080D32D4: .4byte gBattleAnimPlayerMonIndex
-_080D32D8: .4byte gBattleAnimEnemyMonIndex
+_080D32D4: .4byte gBattleAnimBankAttacker
+_080D32D8: .4byte gBattleAnimBankTarget
_080D32DC: .4byte SpriteCallbackDummy
_080D32E0: .4byte gSprites
_080D32E4: .4byte sub_80D32E8
@@ -18309,7 +18309,7 @@ sub_80D3370: @ 80D3370
ldr r1, _080D3390 @ =sub_8078600
str r1, [r0, 0x1C]
ldr r1, _080D3394 @ =sub_80D3398
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -18325,7 +18325,7 @@ sub_80D3398: @ 80D3398
ldr r1, _080D33AC @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D33B0 @ =move_anim_8074EE0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -18339,7 +18339,7 @@ sub_80D33B4: @ 80D33B4
adds r5, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D33DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D33DC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18353,7 +18353,7 @@ sub_80D33B4: @ 80D33B4
adds r7, r1, 0
b _080D33EA
.align 2, 0
-_080D33DC: .4byte gBattleAnimPlayerMonIndex
+_080D33DC: .4byte gBattleAnimBankAttacker
_080D33E0: .4byte gBattleAnimArgs
_080D33E4:
ldr r0, _080D3440 @ =gBattleAnimArgs
@@ -18364,7 +18364,7 @@ _080D33EA:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D3444 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D3444 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18400,7 +18400,7 @@ _080D33EA:
bx r0
.align 2, 0
_080D3440: .4byte gBattleAnimArgs
-_080D3444: .4byte gBattleAnimEnemyMonIndex
+_080D3444: .4byte gBattleAnimBankTarget
_080D3448: .4byte sub_80D344C
thumb_func_end sub_80D33B4
@@ -18551,7 +18551,7 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D35BC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D35BC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18590,7 +18590,7 @@ sub_80D3554: @ 80D3554
strh r0, [r5, 0x3C]
b _080D35C8
.align 2, 0
-_080D35BC: .4byte gBattleAnimEnemyMonIndex
+_080D35BC: .4byte gBattleAnimBankTarget
_080D35C0: .4byte gBattleAnimArgs
_080D35C4:
lsls r0, r1, 8
@@ -18711,7 +18711,7 @@ _080D3694: .4byte gTasks
sub_80D3698: @ 80D3698
push {r4-r7,lr}
adds r4, r0, 0
- ldr r7, _080D36E4 @ =gBattleAnimPlayerMonIndex
+ ldr r7, _080D36E4 @ =gBattleAnimBankAttacker
ldrb r0, [r7]
movs r1, 0
bl sub_8077ABC
@@ -18743,7 +18743,7 @@ sub_80D3698: @ 80D3698
strh r0, [r4, 0x24]
b _080D36F4
.align 2, 0
-_080D36E4: .4byte gBattleAnimPlayerMonIndex
+_080D36E4: .4byte gBattleAnimBankAttacker
_080D36E8: .4byte 0x0000fff6
_080D36EC:
strh r6, [r4, 0x24]
@@ -18787,11 +18787,11 @@ _080D3722:
sub_80D3728: @ 80D3728
push {r4-r7,lr}
adds r6, r0, 0
- ldr r5, _080D37E8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D37E8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D37EC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D37EC @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -18839,7 +18839,7 @@ _080D3786:
_080D3790:
adds r0, r6, 0
bl sub_80787B0
- ldr r0, _080D37E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D37E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18851,7 +18851,7 @@ _080D3790:
_080D37AA:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
- ldr r4, _080D37EC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D37EC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -18872,13 +18872,13 @@ _080D37AA:
str r0, [r6, 0x1C]
ldr r1, _080D37F8 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080D37E8: .4byte gBattleAnimPlayerMonIndex
-_080D37EC: .4byte gBattleAnimEnemyMonIndex
+_080D37E8: .4byte gBattleAnimBankAttacker
+_080D37EC: .4byte gBattleAnimBankTarget
_080D37F0: .4byte gBattleAnimArgs
_080D37F4: .4byte sub_8078B34
_080D37F8: .4byte move_anim_8072740
@@ -18904,7 +18904,7 @@ sub_80D37FC: @ 80D37FC
str r0, [r4, 0x1C]
ldr r1, _080D3834 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -19080,7 +19080,7 @@ _080D3920:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _080D39A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D39A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -19095,7 +19095,7 @@ _080D3990: .4byte 0x00003f42
_080D3994: .4byte REG_BG1CNT
_080D3998: .4byte 0x040000d4
_080D399C: .4byte 0x85000400
-_080D39A0: .4byte gBattleAnimPlayerMonIndex
+_080D39A0: .4byte gBattleAnimBankAttacker
_080D39A4: .4byte gUnknown_08E70968
_080D39A8:
ldr r0, _080D39B4 @ =gUnknown_08E70C38
@@ -19203,7 +19203,7 @@ _080D3A88: .4byte gUnknown_030042C0
_080D3A8C: .4byte 0x0000ffd0
_080D3A90: .4byte gUnknown_030041B4
_080D3A94:
- ldr r0, _080D3AC4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D3AC4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -19226,7 +19226,7 @@ _080D3A94:
strh r1, [r7, 0xE]
b _080D3AEE
.align 2, 0
-_080D3AC4: .4byte gBattleAnimPlayerMonIndex
+_080D3AC4: .4byte gBattleAnimBankAttacker
_080D3AC8: .4byte 0x0000ff20
_080D3ACC: .4byte gUnknown_030042C0
_080D3AD0: .4byte gUnknown_030041B4
@@ -20048,7 +20048,7 @@ sub_80D40F4: @ 80D40F4
ldr r0, _080D4144 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -20374,7 +20374,7 @@ _080D438A:
thumb_func_start sub_80D4394
sub_80D4394: @ 80D4394
push {r4,r5,lr}
- ldr r4, _080D43B8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D43B8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -20390,7 +20390,7 @@ sub_80D4394: @ 80D4394
ldr r0, _080D43C0 @ =gPlayerParty
b _080D43D8
.align 2, 0
-_080D43B8: .4byte gBattleAnimPlayerMonIndex
+_080D43B8: .4byte gBattleAnimBankAttacker
_080D43BC: .4byte gBattlePartyID
_080D43C0: .4byte gPlayerParty
_080D43C4:
@@ -20451,7 +20451,7 @@ sub_80D4418: @ 80D4418
lsls r1, 24
lsrs r1, 24
str r1, [sp]
- ldr r4, _080D4520 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D4520 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -20571,7 +20571,7 @@ _080D44EA:
pop {r0}
bx r0
.align 2, 0
-_080D4520: .4byte gBattleAnimPlayerMonIndex
+_080D4520: .4byte gBattleAnimBankAttacker
_080D4524: .4byte gSpriteTemplate_83D9378
_080D4528: .4byte gSprites
thumb_func_end sub_80D4418
@@ -20681,7 +20681,7 @@ sub_80D45D8: @ 80D45D8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- ldr r0, _080D460C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D460C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -20693,7 +20693,7 @@ sub_80D45D8: @ 80D45D8
b _080D4616
.align 2, 0
_080D4608: .4byte gTasks
-_080D460C: .4byte gBattleAnimPlayerMonIndex
+_080D460C: .4byte gBattleAnimBankAttacker
_080D4610:
movs r0, 0x10
strh r0, [r4, 0x10]
@@ -21079,7 +21079,7 @@ sub_80D48F4: @ 80D48F4
lsls r1, 3
ldr r0, _080D4978 @ =gTasks
adds r5, r1, r0
- ldr r4, _080D497C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D497C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -21136,7 +21136,7 @@ _080D494C:
bx r0
.align 2, 0
_080D4978: .4byte gTasks
-_080D497C: .4byte gBattleAnimPlayerMonIndex
+_080D497C: .4byte gBattleAnimBankAttacker
_080D4980: .4byte 0x0000ffe0
_080D4984: .4byte sub_80D4988
thumb_func_end sub_80D48F4
@@ -21556,7 +21556,7 @@ sub_80D4CA4: @ 80D4CA4
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080D4CE0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D4CE0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -21580,7 +21580,7 @@ sub_80D4CA4: @ 80D4CA4
pop {r0}
bx r0
.align 2, 0
-_080D4CE0: .4byte gBattleAnimEnemyMonIndex
+_080D4CE0: .4byte gBattleAnimBankTarget
_080D4CE4: .4byte gBattleAnimArgs
_080D4CE8: .4byte sub_80D4CEC
thumb_func_end sub_80D4CA4
@@ -21734,7 +21734,7 @@ _080D4DF2:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4E3C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4E3C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21750,7 +21750,7 @@ _080D4DF2:
.align 2, 0
_080D4E34: .4byte gSpriteTemplate_83D9420
_080D4E38: .4byte gSprites
-_080D4E3C: .4byte gBattleAnimPlayerMonIndex
+_080D4E3C: .4byte gBattleAnimBankAttacker
_080D4E40:
strh r7, [r4, 0x32]
_080D4E42:
@@ -21792,7 +21792,7 @@ _080D4E68:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, _080D4EB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4EB4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
@@ -21808,7 +21808,7 @@ _080D4E68:
.align 2, 0
_080D4EAC: .4byte gSpriteTemplate_83D9420
_080D4EB0: .4byte gSprites
-_080D4EB4: .4byte gBattleAnimPlayerMonIndex
+_080D4EB4: .4byte gBattleAnimBankAttacker
_080D4EB8:
strh r7, [r4, 0x32]
_080D4EBA:
@@ -21847,7 +21847,7 @@ sub_80D4ED8: @ 80D4ED8
strh r0, [r4, 0x36]
ldr r1, _080D4F10 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080D4F14 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -21884,7 +21884,7 @@ sub_80D4F18: @ 80D4F18
str r0, [r4, 0x1C]
ldr r1, _080D4F58 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -21899,7 +21899,7 @@ sub_80D4F5C: @ 80D4F5C
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D4F90 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4F90 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21920,7 +21920,7 @@ sub_80D4F5C: @ 80D4F5C
adds r1, r2, 0
b _080D4FAE
.align 2, 0
-_080D4F90: .4byte gBattleAnimPlayerMonIndex
+_080D4F90: .4byte gBattleAnimBankAttacker
_080D4F94: .4byte gBattleAnimArgs
_080D4F98:
ldr r1, _080D4FC4 @ =gBattleAnimArgs
@@ -21955,7 +21955,7 @@ _080D4FC8: .4byte sub_80D5038
sub_80D4FCC: @ 80D4FCC
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D4FF8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D4FF8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21975,7 +21975,7 @@ sub_80D4FCC: @ 80D4FCC
adds r1, r2, 0
b _080D5018
.align 2, 0
-_080D4FF8: .4byte gBattleAnimPlayerMonIndex
+_080D4FF8: .4byte gBattleAnimBankAttacker
_080D4FFC: .4byte gBattleAnimArgs
_080D5000:
ldr r1, _080D5030 @ =gBattleAnimArgs
@@ -22047,7 +22047,7 @@ sub_80D5074: @ 80D5074
push {r4,lr}
adds r4, r0, 0
bl sub_8078650
- ldr r0, _080D5098 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5098 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22060,7 +22060,7 @@ sub_80D5074: @ 80D5074
strh r1, [r4, 0x20]
b _080D50B2
.align 2, 0
-_080D5098: .4byte gBattleAnimPlayerMonIndex
+_080D5098: .4byte gBattleAnimBankAttacker
_080D509C: .4byte gBattleAnimArgs
_080D50A0:
ldr r0, _080D50E0 @ =gBattleAnimArgs
@@ -22194,7 +22194,7 @@ sub_80D517C: @ 80D517C
ldr r1, _080D51A0 @ =sub_8078B34
str r1, [r0, 0x1C]
ldr r1, _080D51A4 @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -22206,11 +22206,11 @@ _080D51A4: .4byte move_anim_8072740
sub_80D51A8: @ 80D51A8
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, _080D5200 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D5200 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080D5204 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5204 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -22245,8 +22245,8 @@ _080D51EE:
pop {r0}
bx r0
.align 2, 0
-_080D5200: .4byte gBattleAnimPlayerMonIndex
-_080D5204: .4byte gBattleAnimEnemyMonIndex
+_080D5200: .4byte gBattleAnimBankAttacker
+_080D5204: .4byte gBattleAnimBankTarget
_080D5208: .4byte gBattleAnimArgs
_080D520C: .4byte sub_8079534
thumb_func_end sub_80D51A8
@@ -22305,7 +22305,7 @@ sub_80D5254: @ 80D5254
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080D52A4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D52A4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -22329,7 +22329,7 @@ _080D529E:
pop {r0}
bx r0
.align 2, 0
-_080D52A4: .4byte gBattleAnimEnemyMonIndex
+_080D52A4: .4byte gBattleAnimBankTarget
_080D52A8: .4byte sub_80D52AC
thumb_func_end sub_80D5254
@@ -22343,7 +22343,7 @@ sub_80D52AC: @ 80D52AC
beq _080D52F4
movs r4, 0
strh r4, [r6, 0x2E]
- ldr r5, _080D52EC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D52EC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -22364,7 +22364,7 @@ sub_80D52AC: @ 80D52AC
bl _call_via_r1
b _080D531E
.align 2, 0
-_080D52EC: .4byte gBattleAnimEnemyMonIndex
+_080D52EC: .4byte gBattleAnimBankTarget
_080D52F0: .4byte sub_80D5324
_080D52F4:
movs r1, 0x3C
@@ -22457,7 +22457,7 @@ sub_80D5374: @ 80D5374
strh r0, [r4, 0x32]
ldr r1, _080D53AC @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D53B0 @ =sub_8078364
str r0, [r4, 0x1C]
pop {r4}
@@ -22490,7 +22490,7 @@ sub_80D53B4: @ 80D53B4
str r0, [r4, 0x1C]
ldr r1, _080D53F0 @ =sub_80D53F4
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -22577,7 +22577,7 @@ sub_80D5470: @ 80D5470
ldr r0, _080D54D0 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -22595,7 +22595,7 @@ sub_80D5470: @ 80D5470
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
- ldr r0, _080D54D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D54D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22615,7 +22615,7 @@ sub_80D5470: @ 80D5470
.align 2, 0
_080D54D0: .4byte gTasks
_080D54D4: .4byte gSprites
-_080D54D8: .4byte gBattleAnimPlayerMonIndex
+_080D54D8: .4byte gBattleAnimBankAttacker
_080D54DC: .4byte sub_80D54E0
thumb_func_end sub_80D5470
@@ -23021,7 +23021,7 @@ sub_80D57C4: @ 80D57C4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
- ldr r0, _080D5818 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5818 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23035,7 +23035,7 @@ sub_80D57C4: @ 80D57C4
b _080D5826
.align 2, 0
_080D5814: .4byte gSprites
-_080D5818: .4byte gBattleAnimPlayerMonIndex
+_080D5818: .4byte gBattleAnimBankAttacker
_080D581C:
adds r0, r4, 0
adds r0, 0x10
@@ -23203,7 +23203,7 @@ sub_80D5940: @ 80D5940
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, _080D597C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D597C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23215,7 +23215,7 @@ sub_80D5940: @ 80D5940
b _080D5986
.align 2, 0
_080D5978: .4byte gSprites
-_080D597C: .4byte gBattleAnimPlayerMonIndex
+_080D597C: .4byte gBattleAnimBankAttacker
_080D5980:
lsls r0, r4, 16
movs r1, 0xB0
@@ -23466,7 +23466,7 @@ _080D5B28:
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
- ldr r0, _080D5B54 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5B54 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23476,12 +23476,12 @@ _080D5B28:
b _080D5B5A
.align 2, 0
_080D5B50: .4byte gBattleAnimArgs
-_080D5B54: .4byte gBattleAnimPlayerMonIndex
+_080D5B54: .4byte gBattleAnimBankAttacker
_080D5B58:
ldr r0, _080D5B78 @ =0x0000fffc
_080D5B5A:
strh r0, [r5, 0x36]
- ldr r0, _080D5B7C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5B7C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23496,12 +23496,12 @@ _080D5B5A:
b _080D5BD6
.align 2, 0
_080D5B78: .4byte 0x0000fffc
-_080D5B7C: .4byte gBattleAnimEnemyMonIndex
+_080D5B7C: .4byte gBattleAnimBankTarget
_080D5B80:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
- ldr r0, _080D5BA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5BA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23513,7 +23513,7 @@ _080D5B80:
negs r0, r0
b _080D5BAA
.align 2, 0
-_080D5BA0: .4byte gBattleAnimPlayerMonIndex
+_080D5BA0: .4byte gBattleAnimBankAttacker
_080D5BA4:
ldrh r0, [r5, 0x30]
lsls r0, 16
@@ -23579,7 +23579,7 @@ _080D5BDE:
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, _080D5C54 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D5C54 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -23603,7 +23603,7 @@ _080D5C4E:
pop {r0}
bx r0
.align 2, 0
-_080D5C54: .4byte gBattleAnimEnemyMonIndex
+_080D5C54: .4byte gBattleAnimBankTarget
_080D5C58: .4byte sub_80D5C5C
thumb_func_end sub_80D5B0C
@@ -23715,7 +23715,7 @@ _080D5CD8:
lsrs r0, 16
cmp r0, 0x83
bls _080D5D5C
- ldr r0, _080D5D58 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5D58 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -23732,9 +23732,9 @@ _080D5CD8:
_080D5D4C: .4byte gBattleAnimArgs
_080D5D50: .4byte gMain
_080D5D54: .4byte 0x0000043d
-_080D5D58: .4byte gBattleAnimEnemyMonIndex
+_080D5D58: .4byte gBattleAnimBankTarget
_080D5D5C:
- ldr r0, _080D5D80 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5D80 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -23751,7 +23751,7 @@ _080D5D5C:
strb r1, [r4, 0x5]
b _080D5DA0
.align 2, 0
-_080D5D80: .4byte gBattleAnimEnemyMonIndex
+_080D5D80: .4byte gBattleAnimBankTarget
_080D5D84:
adds r0, r2, 0
subs r0, 0x40
@@ -23813,7 +23813,7 @@ sub_80D5DDC: @ 80D5DDC
lsls r1, 3
ldr r0, _080D5E3C @ =gTasks
adds r4, r1, r0
- ldr r0, _080D5E40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D5E40 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23825,22 +23825,22 @@ sub_80D5DDC: @ 80D5DDC
movs r1, 0x1
_080D5E02:
strh r1, [r4, 0x20]
- ldr r0, _080D5E44 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D5E44 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -23851,8 +23851,8 @@ _080D5E02:
bx r0
.align 2, 0
_080D5E3C: .4byte gTasks
-_080D5E40: .4byte gBattleAnimPlayerMonIndex
-_080D5E44: .4byte gBattleAnimEnemyMonIndex
+_080D5E40: .4byte gBattleAnimBankAttacker
+_080D5E44: .4byte gBattleAnimBankTarget
_080D5E48: .4byte sub_80D5E4C
thumb_func_end sub_80D5DDC
@@ -24222,7 +24222,7 @@ _080D60EA:
adds r0, 0x1
strh r0, [r2, 0x8]
ldr r1, _080D6114 @ =gObjectBankIDs
- ldr r0, _080D6118 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D6118 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -24238,7 +24238,7 @@ _080D60EA:
_080D610C: .4byte gTasks
_080D6110: .4byte gBattleAnimArgs
_080D6114: .4byte gObjectBankIDs
-_080D6118: .4byte gBattleAnimEnemyMonIndex
+_080D6118: .4byte gBattleAnimBankTarget
_080D611C: .4byte gUnknown_083D9794
_080D6120:
ldr r4, _080D616C @ =gUnknown_083D97A4
@@ -24331,7 +24331,7 @@ _080D61C4: .4byte gSprites
sub_80D61C8: @ 80D61C8
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D61E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D61E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24344,7 +24344,7 @@ sub_80D61C8: @ 80D61C8
strh r1, [r4, 0x20]
b _080D61FC
.align 2, 0
-_080D61E8: .4byte gBattleAnimPlayerMonIndex
+_080D61E8: .4byte gBattleAnimBankAttacker
_080D61EC: .4byte gBattleAnimArgs
_080D61F0:
ldr r1, _080D6210 @ =gBattleAnimArgs
@@ -24389,7 +24389,7 @@ _080D622E:
sub_80D6234: @ 80D6234
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D6254 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6254 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24402,7 +24402,7 @@ sub_80D6234: @ 80D6234
strh r1, [r4, 0x20]
b _080D6266
.align 2, 0
-_080D6254: .4byte gBattleAnimPlayerMonIndex
+_080D6254: .4byte gBattleAnimBankAttacker
_080D6258: .4byte gBattleAnimArgs
_080D625C:
ldr r0, _080D6270 @ =gBattleAnimArgs
@@ -24442,7 +24442,7 @@ _080D628E:
sub_80D6294: @ 80D6294
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080D62D8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D62D8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -24455,7 +24455,7 @@ sub_80D6294: @ 80D6294
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D62DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D62DC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24472,8 +24472,8 @@ sub_80D6294: @ 80D6294
strh r0, [r5, 0x22]
b _080D62F8
.align 2, 0
-_080D62D8: .4byte gBattleAnimEnemyMonIndex
-_080D62DC: .4byte gBattleAnimPlayerMonIndex
+_080D62D8: .4byte gBattleAnimBankTarget
+_080D62DC: .4byte gBattleAnimBankAttacker
_080D62E0: .4byte gBattleAnimArgs
_080D62E4:
ldr r0, _080D631C @ =gBattleAnimArgs
@@ -24497,7 +24497,7 @@ _080D62F8:
strh r0, [r5, 0x34]
ldr r1, _080D6320 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6324 @ =sub_8078114
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -24532,46 +24532,46 @@ _080D6344:
beq _080D637C
b _080D63A0
_080D634E:
- ldr r0, _080D6354 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6354 @ =gBattleAnimBankAttacker
b _080D63A2
.align 2, 0
-_080D6354: .4byte gBattleAnimPlayerMonIndex
+_080D6354: .4byte gBattleAnimBankAttacker
_080D6358:
- ldr r4, _080D6370 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6370 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080D6374
ldrb r4, [r4]
b _080D63A4
.align 2, 0
-_080D6370: .4byte gBattleAnimPlayerMonIndex
+_080D6370: .4byte gBattleAnimBankAttacker
_080D6374:
ldrb r0, [r4]
adds r4, r6, 0
eors r4, r0
b _080D63A4
_080D637C:
- ldr r0, _080D6398 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D6398 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D63A0
- ldr r0, _080D639C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D639C @ =gBattleAnimBankTarget
ldrb r0, [r0]
eors r4, r0
b _080D63A4
.align 2, 0
-_080D6398: .4byte gBattleAnimPlayerMonIndex
-_080D639C: .4byte gBattleAnimEnemyMonIndex
+_080D6398: .4byte gBattleAnimBankAttacker
+_080D639C: .4byte gBattleAnimBankTarget
_080D63A0:
- ldr r0, _080D63C4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D63C4 @ =gBattleAnimBankTarget
_080D63A2:
ldrb r4, [r0]
_080D63A4:
@@ -24590,7 +24590,7 @@ _080D63A4:
movs r1, 0x1
b _080D63DE
.align 2, 0
-_080D63C4: .4byte gBattleAnimEnemyMonIndex
+_080D63C4: .4byte gBattleAnimBankTarget
_080D63C8: .4byte gBattleAnimArgs
_080D63CC:
adds r0, r4, 0
@@ -24698,7 +24698,7 @@ sub_80D648C: @ 80D648C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r6, _080D6504 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D6504 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -24744,7 +24744,7 @@ sub_80D648C: @ 80D648C
bx r0
.align 2, 0
_080D6500: .4byte gBattleAnimArgs
-_080D6504: .4byte gBattleAnimEnemyMonIndex
+_080D6504: .4byte gBattleAnimBankTarget
_080D6508: .4byte 0x000003ff
_080D650C: .4byte 0xfffffc00
_080D6510: .4byte sub_80D6514
@@ -24866,7 +24866,7 @@ sub_80D65DC: @ 80D65DC
ands r0, r1
cmp r0, 0
beq _080D65FE
- ldr r0, _080D664C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D664C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -24878,7 +24878,7 @@ _080D65FE:
negs r0, r0
strh r0, [r1, 0x2]
_080D6606:
- ldr r5, _080D664C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080D664C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -24909,7 +24909,7 @@ _080D6606:
.align 2, 0
_080D6644: .4byte gMain
_080D6648: .4byte 0x0000043d
-_080D664C: .4byte gBattleAnimEnemyMonIndex
+_080D664C: .4byte gBattleAnimBankTarget
_080D6650: .4byte gBattleAnimArgs
_080D6654: .4byte sub_80D658C
thumb_func_end sub_80D65DC
@@ -24928,13 +24928,13 @@ sub_80D6658: @ 80D6658
ands r0, r1
cmp r0, 0
beq _080D667C
- ldr r0, _080D6678 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D6678 @ =gBattleAnimBankTarget
b _080D667E
.align 2, 0
_080D6674: .4byte gBattleAnimArgs
-_080D6678: .4byte gBattleAnimEnemyMonIndex
+_080D6678: .4byte gBattleAnimBankTarget
_080D667C:
- ldr r0, _080D670C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D670C @ =gBattleAnimBankAttacker
_080D667E:
ldrb r6, [r0]
ldr r0, _080D6710 @ =gMain
@@ -25005,7 +25005,7 @@ _080D66A4:
pop {r0}
bx r0
.align 2, 0
-_080D670C: .4byte gBattleAnimPlayerMonIndex
+_080D670C: .4byte gBattleAnimBankAttacker
_080D6710: .4byte gMain
_080D6714: .4byte 0x0000043d
_080D6718: .4byte gBattleAnimArgs
@@ -25126,7 +25126,7 @@ _080D67F6:
str r0, [r4, 0x1C]
ldr r1, _080D6818 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -25142,7 +25142,7 @@ sub_80D681C: @ 80D681C
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _080D6864 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D6864 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -25173,7 +25173,7 @@ sub_80D681C: @ 80D681C
pop {r0}
bx r0
.align 2, 0
-_080D6864: .4byte gBattleAnimEnemyMonIndex
+_080D6864: .4byte gBattleAnimBankTarget
_080D6868: .4byte gTasks
_080D686C: .4byte gBattleAnimArgs
_080D6870: .4byte sub_80D6874
@@ -25556,14 +25556,14 @@ sub_80D6B3C: @ 80D6B3C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6B68
- ldr r4, _080D6B64 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6B64 @ =gBattleAnimBankAttacker
b _080D6B6A
.align 2, 0
_080D6B5C: .4byte gTasks
_080D6B60: .4byte gBattleAnimArgs
-_080D6B64: .4byte gBattleAnimPlayerMonIndex
+_080D6B64: .4byte gBattleAnimBankAttacker
_080D6B68:
- ldr r4, _080D6BAC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6BAC @ =gBattleAnimBankTarget
_080D6B6A:
ldrb r0, [r4]
movs r1, 0x2
@@ -25596,7 +25596,7 @@ _080D6B6A:
pop {r0}
bx r0
.align 2, 0
-_080D6BAC: .4byte gBattleAnimEnemyMonIndex
+_080D6BAC: .4byte gBattleAnimBankTarget
_080D6BB0: .4byte gBattleAnimArgs
_080D6BB4: .4byte sub_80D6BB8
thumb_func_end sub_80D6B3C
@@ -25681,7 +25681,7 @@ sub_80D6BB8: @ 80D6BB8
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D6CB0 @ =sub_80D6D00
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6CB4 @ =sub_8078600
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x1A]
@@ -25790,13 +25790,13 @@ sub_80D6D18: @ 80D6D18
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D34
- ldr r4, _080D6D30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6D30 @ =gBattleAnimBankAttacker
b _080D6D36
.align 2, 0
_080D6D2C: .4byte gBattleAnimArgs
-_080D6D30: .4byte gBattleAnimPlayerMonIndex
+_080D6D30: .4byte gBattleAnimBankAttacker
_080D6D34:
- ldr r4, _080D6D64 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6D64 @ =gBattleAnimBankTarget
_080D6D36:
ldrb r0, [r4]
movs r1, 0x2
@@ -25812,14 +25812,14 @@ _080D6D36:
strh r0, [r5, 0x22]
ldr r1, _080D6D68 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6D6C @ =sub_80785E4
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D6D64: .4byte gBattleAnimEnemyMonIndex
+_080D6D64: .4byte gBattleAnimBankTarget
_080D6D68: .4byte move_anim_8074EE0
_080D6D6C: .4byte sub_80785E4
thumb_func_end sub_80D6D18
@@ -25833,13 +25833,13 @@ sub_80D6D70: @ 80D6D70
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D6D8C
- ldr r4, _080D6D88 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6D88 @ =gBattleAnimBankAttacker
b _080D6D8E
.align 2, 0
_080D6D84: .4byte gBattleAnimArgs
-_080D6D88: .4byte gBattleAnimPlayerMonIndex
+_080D6D88: .4byte gBattleAnimBankAttacker
_080D6D8C:
- ldr r4, _080D6DC8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D6DC8 @ =gBattleAnimBankTarget
_080D6D8E:
ldrb r0, [r4]
movs r1, 0x2
@@ -25860,14 +25860,14 @@ _080D6D8E:
strh r0, [r5, 0x26]
ldr r1, _080D6DD0 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D6DD4 @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D6DC8: .4byte gBattleAnimEnemyMonIndex
+_080D6DC8: .4byte gBattleAnimBankTarget
_080D6DCC: .4byte gBattleAnimArgs
_080D6DD0: .4byte move_anim_8072740
_080D6DD4: .4byte sub_8078600
@@ -25879,7 +25879,7 @@ sub_80D6DD8: @ 80D6DD8
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r4, _080D6E30 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6E30 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -25893,7 +25893,7 @@ sub_80D6DD8: @ 80D6DD8
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -25916,7 +25916,7 @@ _080D6E26:
pop {r0}
bx r0
.align 2, 0
-_080D6E30: .4byte gBattleAnimPlayerMonIndex
+_080D6E30: .4byte gBattleAnimBankAttacker
_080D6E34: .4byte sub_80D6E38
thumb_func_end sub_80D6DD8
@@ -26006,12 +26006,12 @@ _080D6ECE:
b _080D7000
_080D6ED0:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
- ldr r4, _080D6F04 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D6F04 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26028,7 +26028,7 @@ _080D6ED0:
movs r0, 0x2
b _080D6F12
.align 2, 0
-_080D6F04: .4byte gBattleAnimPlayerMonIndex
+_080D6F04: .4byte gBattleAnimBankAttacker
_080D6F08: .4byte 0x0000ffe0
_080D6F0C:
movs r0, 0x20
@@ -26193,7 +26193,7 @@ _080D7034:
_080D703A:
b _080D718E
_080D703C:
- ldr r4, _080D707C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D707C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -26225,7 +26225,7 @@ _080D7052:
ldr r0, _080D7084 @ =0x0000fff0
b _080D70F0
.align 2, 0
-_080D707C: .4byte gBattleAnimPlayerMonIndex
+_080D707C: .4byte gBattleAnimBankAttacker
_080D7080: .4byte gBattleAnimArgs
_080D7084: .4byte 0x0000fff0
_080D7088:
@@ -26254,7 +26254,7 @@ _080D70B0:
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
- ldr r4, _080D70E4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D70E4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x3
bl sub_8077ABC
@@ -26273,7 +26273,7 @@ _080D70B0:
strh r0, [r5, 0x10]
b _080D7126
.align 2, 0
-_080D70E4: .4byte gBattleAnimEnemyMonIndex
+_080D70E4: .4byte gBattleAnimBankTarget
_080D70E8:
ldr r0, _080D710C @ =0x0000fff0
strh r0, [r5, 0xE]
@@ -26506,7 +26506,7 @@ sub_80D727C: @ 80D727C
beq _080D72C0
b _080D72D4
_080D728E:
- ldr r4, _080D72BC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D72BC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26527,7 +26527,7 @@ _080D728E:
strh r0, [r5, 0x2E]
b _080D72D4
.align 2, 0
-_080D72BC: .4byte gBattleAnimPlayerMonIndex
+_080D72BC: .4byte gBattleAnimBankAttacker
_080D72C0:
adds r0, r5, 0
adds r0, 0x3F
@@ -26576,7 +26576,7 @@ _080D7308:
.4byte _080D7444
.4byte _080D7454
_080D731C:
- ldr r4, _080D73A0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D73A0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26591,7 +26591,7 @@ _080D731C:
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
- ldr r0, _080D73A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D73A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
@@ -26636,8 +26636,8 @@ _080D731C:
adds r0, 0x1
b _080D7466
.align 2, 0
-_080D73A0: .4byte gBattleAnimPlayerMonIndex
-_080D73A4: .4byte gBattleAnimEnemyMonIndex
+_080D73A0: .4byte gBattleAnimBankAttacker
+_080D73A4: .4byte gBattleAnimBankTarget
_080D73A8: .4byte 0x0000ffff
_080D73AC:
ldrh r0, [r5, 0xA]
@@ -26934,7 +26934,7 @@ _080D75C4:
beq _080D7640
b _080D764E
_080D75CA:
- ldr r0, _080D7614 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7614 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -26956,7 +26956,7 @@ _080D75E4:
bgt _080D75E4
strh r1, [r5, 0x24]
_080D75F4:
- ldr r4, _080D7614 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7614 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -26971,7 +26971,7 @@ _080D75F4:
strh r0, [r5, 0x20]
b _080D7638
.align 2, 0
-_080D7614: .4byte gBattleAnimEnemyMonIndex
+_080D7614: .4byte gBattleAnimBankTarget
_080D7618:
ldrh r0, [r5, 0xA]
adds r0, 0x1
@@ -27121,7 +27121,7 @@ sub_80D7704: @ 80D7704
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r4, _080D7814 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7814 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27134,7 +27134,7 @@ sub_80D7704: @ 80D7704
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r4, _080D7818 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D7818 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27235,8 +27235,8 @@ _080D77DE:
.align 2, 0
_080D780C: .4byte 0x000003ff
_080D7810: .4byte 0xfffffc00
-_080D7814: .4byte gBattleAnimEnemyMonIndex
-_080D7818: .4byte gBattleAnimPlayerMonIndex
+_080D7814: .4byte gBattleAnimBankTarget
+_080D7818: .4byte gBattleAnimBankAttacker
_080D781C: .4byte gBattleAnimArgs
_080D7820:
lsls r1, r3, 16
@@ -27365,7 +27365,7 @@ sub_80D78EC: @ 80D78EC
strh r0, [r4, 0x36]
ldr r1, _080D7924 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080D7928 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -27385,14 +27385,14 @@ sub_80D792C: @ 80D792C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D7960 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7960 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r0, _080D7964 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7964 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27405,8 +27405,8 @@ sub_80D792C: @ 80D792C
strh r1, [r4, 0x32]
b _080D7976
.align 2, 0
-_080D7960: .4byte gBattleAnimEnemyMonIndex
-_080D7964: .4byte gBattleAnimPlayerMonIndex
+_080D7960: .4byte gBattleAnimBankTarget
+_080D7964: .4byte gBattleAnimBankAttacker
_080D7968: .4byte gBattleAnimArgs
_080D796C:
ldr r0, _080D79A4 @ =gBattleAnimArgs
@@ -27415,7 +27415,7 @@ _080D796C:
adds r0, r1
strh r0, [r4, 0x32]
_080D7976:
- ldr r0, _080D79A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D79A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -27429,7 +27429,7 @@ _080D7976:
strh r0, [r4, 0x2E]
ldr r1, _080D79AC @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D79B0 @ =sub_8078B34
str r0, [r4, 0x1C]
pop {r4}
@@ -27437,7 +27437,7 @@ _080D7976:
bx r0
.align 2, 0
_080D79A4: .4byte gBattleAnimArgs
-_080D79A8: .4byte gBattleAnimEnemyMonIndex
+_080D79A8: .4byte gBattleAnimBankTarget
_080D79AC: .4byte move_anim_8072740
_080D79B0: .4byte sub_8078B34
thumb_func_end sub_80D792C
@@ -27458,7 +27458,7 @@ sub_80D79B4: @ 80D79B4
.align 2, 0
_080D79CC: .4byte gBattleAnimArgs
_080D79D0:
- ldr r0, _080D7A18 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7A18 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -27466,7 +27466,7 @@ _080D79D0:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D7A1C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7A1C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27487,15 +27487,15 @@ _080D79F6:
_080D7A06:
ldr r1, _080D7A20 @ =sub_80D7A28
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D7A24 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D7A18: .4byte gBattleAnimEnemyMonIndex
-_080D7A1C: .4byte gBattleAnimPlayerMonIndex
+_080D7A18: .4byte gBattleAnimBankTarget
+_080D7A1C: .4byte gBattleAnimBankAttacker
_080D7A20: .4byte sub_80D7A28
_080D7A24: .4byte sub_80785E4
thumb_func_end sub_80D79B4
@@ -27551,7 +27551,7 @@ sub_80D7A64: @ 80D7A64
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D7AB4
- ldr r4, _080D7AB0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7AB0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27569,9 +27569,9 @@ sub_80D7A64: @ 80D7A64
b _080D7AC6
.align 2, 0
_080D7AAC: .4byte gBattleAnimArgs
-_080D7AB0: .4byte gBattleAnimEnemyMonIndex
+_080D7AB0: .4byte gBattleAnimBankTarget
_080D7AB4:
- ldr r0, _080D7AE0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7AE0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27580,7 +27580,7 @@ _080D7AB4:
movs r1, 0x1
bl sub_807A3FC
_080D7AC6:
- ldr r0, _080D7AE4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7AE4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27593,8 +27593,8 @@ _080D7AC6:
strh r1, [r5, 0x32]
b _080D7AF6
.align 2, 0
-_080D7AE0: .4byte gBattleAnimEnemyMonIndex
-_080D7AE4: .4byte gBattleAnimPlayerMonIndex
+_080D7AE0: .4byte gBattleAnimBankTarget
+_080D7AE4: .4byte gBattleAnimBankAttacker
_080D7AE8: .4byte gBattleAnimArgs
_080D7AEC:
ldr r0, _080D7B94 @ =gBattleAnimArgs
@@ -27678,7 +27678,7 @@ _080D7B76:
bge _080D7B76
str r6, [r5, 0x1C]
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x10
pop {r4-r7}
pop {r0}
@@ -27706,7 +27706,7 @@ sub_80D7BA0: @ 80D7BA0
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
- ldr r0, _080D7BFC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7BFC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27735,7 +27735,7 @@ _080D7BD0:
pop {r0}
bx r0
.align 2, 0
-_080D7BFC: .4byte gBattleAnimPlayerMonIndex
+_080D7BFC: .4byte gBattleAnimBankAttacker
_080D7C00: .4byte 0x0000ffec
_080D7C04: .4byte sub_80D7C08
thumb_func_end sub_80D7BA0
@@ -27744,7 +27744,7 @@ _080D7C04: .4byte sub_80D7C08
sub_80D7C08: @ 80D7C08
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D7C5C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7C5C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27782,7 +27782,7 @@ _080D7C1E:
strh r0, [r4, 0x38]
b _080D7C82
.align 2, 0
-_080D7C5C: .4byte gBattleAnimPlayerMonIndex
+_080D7C5C: .4byte gBattleAnimBankAttacker
_080D7C60: .4byte 0x0000ffec
_080D7C64:
ldrh r0, [r4, 0x24]
@@ -27866,7 +27866,7 @@ sub_80D7CD4: @ 80D7CD4
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080D7D20
- ldr r4, _080D7D1C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7D1C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -27882,9 +27882,9 @@ sub_80D7CD4: @ 80D7CD4
b _080D7D32
.align 2, 0
_080D7D18: .4byte gBattleAnimArgs
-_080D7D1C: .4byte gBattleAnimEnemyMonIndex
+_080D7D1C: .4byte gBattleAnimBankTarget
_080D7D20:
- ldr r0, _080D7D50 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7D50 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -27893,7 +27893,7 @@ _080D7D20:
movs r1, 0x1
bl sub_807A3FC
_080D7D32:
- ldr r0, _080D7D54 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7D54 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -27907,8 +27907,8 @@ _080D7D32:
adds r1, r0, 0
b _080D7D66
.align 2, 0
-_080D7D50: .4byte gBattleAnimEnemyMonIndex
-_080D7D54: .4byte gBattleAnimPlayerMonIndex
+_080D7D50: .4byte gBattleAnimBankTarget
+_080D7D54: .4byte gBattleAnimBankAttacker
_080D7D58: .4byte gBattleAnimArgs
_080D7D5C:
ldr r1, _080D7E10 @ =gBattleAnimArgs
@@ -28088,7 +28088,7 @@ sub_80D7E88: @ 80D7E88
.align 2, 0
_080D7EA8: .4byte gBattleAnimArgs
_080D7EAC:
- ldr r0, _080D7EEC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7EEC @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -28096,7 +28096,7 @@ _080D7EAC:
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080D7EF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7EF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28120,8 +28120,8 @@ _080D7EE2:
strh r0, [r4, 0x2E]
b _080D7F08
.align 2, 0
-_080D7EEC: .4byte gBattleAnimEnemyMonIndex
-_080D7EF0: .4byte gBattleAnimPlayerMonIndex
+_080D7EEC: .4byte gBattleAnimBankTarget
+_080D7EF0: .4byte gBattleAnimBankAttacker
_080D7EF4:
adds r0, r4, 0
adds r0, 0x3F
@@ -28158,7 +28158,7 @@ sub_80D7F10: @ 80D7F10
.align 2, 0
_080D7F30: .4byte gBattleAnimArgs
_080D7F34:
- ldr r4, _080D7F5C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D7F5C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28176,7 +28176,7 @@ _080D7F34:
subs r0, r1
b _080D7F66
.align 2, 0
-_080D7F5C: .4byte gBattleAnimPlayerMonIndex
+_080D7F5C: .4byte gBattleAnimBankAttacker
_080D7F60:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
@@ -28189,11 +28189,11 @@ _080D7F66:
adds r0, r1
strh r0, [r5, 0x22]
_080D7F72:
- ldr r0, _080D7F7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D7F7C @ =gBattleAnimBankAttacker
b _080D7FD0
.align 2, 0
_080D7F78: .4byte gBattleAnimArgs
-_080D7F7C: .4byte gBattleAnimPlayerMonIndex
+_080D7F7C: .4byte gBattleAnimBankAttacker
_080D7F80:
movs r1, 0xA
ldrsh r0, [r6, r1]
@@ -28204,7 +28204,7 @@ _080D7F80:
bl sub_8078764
b _080D7FCE
_080D7F92:
- ldr r4, _080D7FB8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D7FB8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -28222,7 +28222,7 @@ _080D7F92:
subs r0, r1
b _080D7FC2
.align 2, 0
-_080D7FB8: .4byte gBattleAnimEnemyMonIndex
+_080D7FB8: .4byte gBattleAnimBankTarget
_080D7FBC:
ldrh r0, [r6]
ldrh r1, [r5, 0x20]
@@ -28235,7 +28235,7 @@ _080D7FC2:
adds r0, r1
strh r0, [r5, 0x22]
_080D7FCE:
- ldr r0, _080D7FF0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D7FF0 @ =gBattleAnimBankTarget
_080D7FD0:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -28253,12 +28253,12 @@ _080D7FE8:
b _080D7FF6
.align 2, 0
_080D7FEC: .4byte gBattleAnimArgs
-_080D7FF0: .4byte gBattleAnimEnemyMonIndex
+_080D7FF0: .4byte gBattleAnimBankTarget
_080D7FF4:
movs r0, 0x40
_080D7FF6:
strh r0, [r5, 0x3A]
- ldr r0, _080D803C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D803C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28291,7 +28291,7 @@ _080D800C:
pop {r0}
bx r0
.align 2, 0
-_080D803C: .4byte gBattleAnimEnemyMonIndex
+_080D803C: .4byte gBattleAnimBankTarget
_080D8040: .4byte gBattleAnimArgs
_080D8044: .4byte sub_80D8048
thumb_func_end sub_80D7F10
@@ -28742,7 +28742,7 @@ _080D83DC: .4byte REG_BLDCNT
sub_80D83E0: @ 80D83E0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080D840C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080D840C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -28761,7 +28761,7 @@ sub_80D83E0: @ 80D83E0
pop {r0}
bx r0
.align 2, 0
-_080D840C: .4byte gBattleAnimPlayerMonIndex
+_080D840C: .4byte gBattleAnimBankAttacker
_080D8410: .4byte sub_807941C
thumb_func_end sub_80D83E0
@@ -29129,13 +29129,13 @@ sub_80D8700: @ 80D8700
ldr r6, _080D87E8 @ =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
- ldr r0, _080D87EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D87EC @ =gBattleAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl sub_8077ABC
adds r4, r0, 0
- ldr r7, _080D87F0 @ =gBattleAnimEnemyMonIndex
+ ldr r7, _080D87F0 @ =gBattleAnimBankTarget
ldrb r0, [r7]
movs r1, 0x2
bl sub_8077ABC
@@ -29178,7 +29178,7 @@ _080D8734:
cmp r0, 0
bne _080D8790
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080D87F8 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -29196,7 +29196,7 @@ _080D8790:
movs r0, 0x1
strh r0, [r5, 0x3A]
_080D8794:
- ldr r4, _080D87EC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D87EC @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29218,7 +29218,7 @@ _080D8794:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D87F0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D87F0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -29236,8 +29236,8 @@ _080D8794:
b _080D8824
.align 2, 0
_080D87E8: .4byte gBattleAnimArgs
-_080D87EC: .4byte gBattleAnimPlayerMonIndex
-_080D87F0: .4byte gBattleAnimEnemyMonIndex
+_080D87EC: .4byte gBattleAnimBankAttacker
+_080D87F0: .4byte gBattleAnimBankTarget
_080D87F4: .4byte gBanksBySide
_080D87F8: .4byte gSprites
_080D87FC:
@@ -29245,7 +29245,7 @@ _080D87FC:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, _080D886C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D886C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -29295,7 +29295,7 @@ _080D8858:
pop {r0}
bx r0
.align 2, 0
-_080D886C: .4byte gBattleAnimEnemyMonIndex
+_080D886C: .4byte gBattleAnimBankTarget
_080D8870: .4byte sub_80D8874
thumb_func_end sub_80D8700
@@ -29357,7 +29357,7 @@ _080D88C8:
_080D88D6:
movs r5, 0x50
strh r5, [r4, 0x2E]
- ldr r6, _080D8928 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080D8928 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_8077ABC
@@ -29396,7 +29396,7 @@ _080D88D6:
strh r0, [r4, 0x38]
b _080D893A
.align 2, 0
-_080D8928: .4byte gBattleAnimEnemyMonIndex
+_080D8928: .4byte gBattleAnimBankTarget
_080D892C: .4byte gMain
_080D8930: .4byte 0x0000043d
_080D8934: .4byte gBanksBySide
@@ -29545,7 +29545,7 @@ _080D8A12:
cmp r0, 0
beq _080D8A78
ldr r1, _080D8A70 @ =gBanksBySide
- ldr r0, _080D8A74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D8A74 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -29560,7 +29560,7 @@ _080D8A12:
_080D8A68: .4byte gMain
_080D8A6C: .4byte 0x0000043d
_080D8A70: .4byte gBanksBySide
-_080D8A74: .4byte gBattleAnimEnemyMonIndex
+_080D8A74: .4byte gBattleAnimBankTarget
_080D8A78:
ldr r0, _080D8A90 @ =0x0000fff0
_080D8A7A:
@@ -29764,7 +29764,7 @@ sub_80D8BA8: @ 80D8BA8
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D8C94
@@ -30089,7 +30089,7 @@ _080D8E6A:
ldr r6, _080D8ED0 @ =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, _080D8ED4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D8ED4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30099,7 +30099,7 @@ _080D8E6A:
negs r0, r0
strh r0, [r6, 0x4]
_080D8E92:
- ldr r4, _080D8ED8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D8ED8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30128,8 +30128,8 @@ _080D8E92:
.align 2, 0
_080D8ECC: .4byte gDisableStructMoveAnim
_080D8ED0: .4byte gBattleAnimArgs
-_080D8ED4: .4byte gBattleAnimPlayerMonIndex
-_080D8ED8: .4byte gBattleAnimEnemyMonIndex
+_080D8ED4: .4byte gBattleAnimBankAttacker
+_080D8ED8: .4byte gBattleAnimBankTarget
_080D8EDC: .4byte sub_80D8EE0
thumb_func_end unc_080B06FC
@@ -30148,7 +30148,7 @@ sub_80D8EE0: @ 80D8EE0
str r0, [r4, 0x1C]
ldr r1, _080D8F0C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D8F02:
pop {r4}
pop {r0}
@@ -30296,7 +30296,7 @@ unc_080B08A0: @ 80D8FF0
str r0, [r4, 0x1C]
ldr r1, _080D9028 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30315,7 +30315,7 @@ sub_80D902C: @ 80D902C
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080D9054
- ldr r0, _080D9074 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9074 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30341,7 +30341,7 @@ _080D9054:
bx r0
.align 2, 0
_080D9070: .4byte gBattleAnimArgs
-_080D9074: .4byte gBattleAnimPlayerMonIndex
+_080D9074: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80D902C
thumb_func_start sub_80D9078
@@ -30398,7 +30398,7 @@ _080D90D0:
str r0, [r5, 0x1C]
ldr r1, _080D90F0 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30421,13 +30421,13 @@ sub_80D90F4: @ 80D90F4
mov r9, r0
cmp r1, 0
bne _080D9118
- ldr r0, _080D9114 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9114 @ =gBattleAnimBankAttacker
b _080D911A
.align 2, 0
_080D9110: .4byte gBattleAnimArgs
-_080D9114: .4byte gBattleAnimPlayerMonIndex
+_080D9114: .4byte gBattleAnimBankAttacker
_080D9118:
- ldr r0, _080D9260 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9260 @ =gBattleAnimBankTarget
_080D911A:
ldrb r0, [r0]
mov r8, r0
@@ -30584,7 +30584,7 @@ _080D9250:
pop {r0}
bx r0
.align 2, 0
-_080D9260: .4byte gBattleAnimEnemyMonIndex
+_080D9260: .4byte gBattleAnimBankTarget
_080D9264: .4byte gBanksBySide
_080D9268: .4byte 0xfff00000
_080D926C: .4byte gBattleAnimSpriteTemplate_83DB4A8
@@ -30675,7 +30675,7 @@ _080D9306:
str r0, [r4, 0x1C]
ldr r1, _080D9324 @ =sub_80D9328
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30716,7 +30716,7 @@ sub_80D9328: @ 80D9328
str r0, [r5, 0x1C]
ldr r1, _080D9374 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D9368:
pop {r4-r6}
pop {r0}
@@ -30730,10 +30730,10 @@ _080D9374: .4byte move_anim_8072740
sub_80D9378: @ 80D9378
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
- ldr r2, _080D93F8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080D93F8 @ =gBattleAnimBankTarget
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
@@ -30753,7 +30753,7 @@ _080D93A4:
adds r0, r6, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080D93F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D93F4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30789,8 +30789,8 @@ _080D93C2:
pop {r0}
bx r0
.align 2, 0
-_080D93F4: .4byte gBattleAnimPlayerMonIndex
-_080D93F8: .4byte gBattleAnimEnemyMonIndex
+_080D93F4: .4byte gBattleAnimBankAttacker
+_080D93F8: .4byte gBattleAnimBankTarget
_080D93FC: .4byte gBattleAnimArgs
_080D9400: .4byte sub_80D9404
thumb_func_end sub_80D9378
@@ -30842,7 +30842,7 @@ sub_80D943C: @ 80D943C
str r0, [r4, 0x1C]
ldr r1, _080D9470 @ =sub_80D9474
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -30870,7 +30870,7 @@ sub_80D9474: @ 80D9474
str r0, [r4, 0x1C]
ldr r1, _080D94A4 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -30913,7 +30913,7 @@ sub_80D94CC: @ 80D94CC
bne _080D9510
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, _080D9518 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9518 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -30930,13 +30930,13 @@ sub_80D94CC: @ 80D94CC
str r0, [r5, 0x1C]
ldr r1, _080D9520 @ =sub_80D9524
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080D9510:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080D9518: .4byte gBattleAnimEnemyMonIndex
+_080D9518: .4byte gBattleAnimBankTarget
_080D951C: .4byte sub_8078B34
_080D9520: .4byte sub_80D9524
thumb_func_end sub_80D94CC
@@ -30949,7 +30949,7 @@ sub_80D9524: @ 80D9524
ldr r1, _080D9538 @ =sub_80782D8
str r1, [r0, 0x1C]
ldr r1, _080D953C @ =move_anim_8072740
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r0}
bx r0
.align 2, 0
@@ -31040,13 +31040,13 @@ sub_80D95D0: @ 80D95D0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D95EC
- ldr r4, _080D95E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D95E8 @ =gBattleAnimBankAttacker
b _080D95EE
.align 2, 0
_080D95E4: .4byte gBattleAnimArgs
-_080D95E8: .4byte gBattleAnimPlayerMonIndex
+_080D95E8: .4byte gBattleAnimBankAttacker
_080D95EC:
- ldr r4, _080D9634 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9634 @ =gBattleAnimBankTarget
_080D95EE:
ldrb r0, [r4]
movs r1, 0
@@ -31082,7 +31082,7 @@ _080D95EE:
pop {r0}
bx r0
.align 2, 0
-_080D9634: .4byte gBattleAnimEnemyMonIndex
+_080D9634: .4byte gBattleAnimBankTarget
_080D9638: .4byte gBattleAnimArgs
_080D963C: .4byte sub_80D9640
thumb_func_end sub_80D95D0
@@ -31165,7 +31165,7 @@ sub_80D96B8: @ 80D96B8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D96E4
- ldr r4, _080D96E0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D96E0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31176,9 +31176,9 @@ sub_80D96B8: @ 80D96B8
b _080D96F6
.align 2, 0
_080D96DC: .4byte gBattleAnimArgs
-_080D96E0: .4byte gBattleAnimPlayerMonIndex
+_080D96E0: .4byte gBattleAnimBankAttacker
_080D96E4:
- ldr r4, _080D9740 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9740 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -31224,7 +31224,7 @@ _080D96F6:
beq _080D975A
b _080D978A
.align 2, 0
-_080D9740: .4byte gBattleAnimEnemyMonIndex
+_080D9740: .4byte gBattleAnimBankTarget
_080D9744: .4byte gBattleAnimArgs
_080D9748: .4byte 0x000003ff
_080D974C: .4byte 0xfffffc00
@@ -31322,7 +31322,7 @@ sub_80D97CC: @ 80D97CC
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9820 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9820 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31334,15 +31334,15 @@ sub_80D97CC: @ 80D97CC
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9824 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9824 @ =gBattleAnimBankTarget
b _080D9844
.align 2, 0
_080D9818: .4byte gBattleAnimArgs
_080D981C: .4byte gBankAttacker
-_080D9820: .4byte gBattleAnimPlayerMonIndex
-_080D9824: .4byte gBattleAnimEnemyMonIndex
+_080D9820: .4byte gBattleAnimBankAttacker
+_080D9824: .4byte gBattleAnimBankTarget
_080D9828:
- ldr r0, _080D9860 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9860 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -31354,7 +31354,7 @@ _080D9828:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, _080D9864 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9864 @ =gBattleAnimBankAttacker
_080D9844:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -31370,8 +31370,8 @@ _080D9844:
pop {r0}
bx r0
.align 2, 0
-_080D9860: .4byte gBattleAnimEnemyMonIndex
-_080D9864: .4byte gBattleAnimPlayerMonIndex
+_080D9860: .4byte gBattleAnimBankTarget
+_080D9864: .4byte gBattleAnimBankAttacker
_080D9868: .4byte sub_80D986C
thumb_func_end sub_80D97CC
@@ -31415,7 +31415,7 @@ sub_80D986C: @ 80D986C
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D98D0 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D98D4 @ =sub_8078BB8
str r0, [r4, 0x1C]
_080D98C6:
@@ -31515,7 +31515,7 @@ _080D997E:
strh r0, [r7, 0x2E]
b _080D99DC
_080D9986:
- ldr r4, _080D99E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080D99E8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31528,7 +31528,7 @@ _080D9986:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r2, _080D99EC @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080D99EC @ =gBattleAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0x2
@@ -31561,8 +31561,8 @@ _080D99DC:
pop {r0}
bx r0
.align 2, 0
-_080D99E8: .4byte gBattleAnimPlayerMonIndex
-_080D99EC: .4byte gBattleAnimEnemyMonIndex
+_080D99E8: .4byte gBattleAnimBankAttacker
+_080D99EC: .4byte gBattleAnimBankTarget
_080D99F0: .4byte sub_80D99F4
thumb_func_end sub_80D9934
@@ -31627,19 +31627,19 @@ sub_80D9A38: @ 80D9A38
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, _080D9A74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9A74 @ =gBattleAnimBankTarget
ldrb r4, [r0]
- ldr r0, _080D9A78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9A78 @ =gBattleAnimBankAttacker
b _080D9A82
.align 2, 0
_080D9A6C: .4byte gBattleAnimArgs
_080D9A70: .4byte gBankAttacker
-_080D9A74: .4byte gBattleAnimEnemyMonIndex
-_080D9A78: .4byte gBattleAnimPlayerMonIndex
+_080D9A74: .4byte gBattleAnimBankTarget
+_080D9A78: .4byte gBattleAnimBankAttacker
_080D9A7C:
- ldr r0, _080D9AB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9AB4 @ =gBattleAnimBankAttacker
ldrb r4, [r0]
- ldr r0, _080D9AB8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9AB8 @ =gBattleAnimBankTarget
_080D9A82:
ldrb r0, [r0]
bl sub_8079ED4
@@ -31665,8 +31665,8 @@ _080D9A82:
subs r0, 0x47
b _080D9AD6
.align 2, 0
-_080D9AB4: .4byte gBattleAnimPlayerMonIndex
-_080D9AB8: .4byte gBattleAnimEnemyMonIndex
+_080D9AB4: .4byte gBattleAnimBankAttacker
+_080D9AB8: .4byte gBattleAnimBankTarget
_080D9ABC:
adds r0, r4, 0
bl GetBankSide
@@ -31707,7 +31707,7 @@ _080D9ADC:
bl obj_translate_based_on_private_1_2_3_4
ldr r1, _080D9B1C @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080D9B20 @ =sub_8078BB8
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -31743,7 +31743,7 @@ _080D9B3A:
sub_80D9B48: @ 80D9B48
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, _080D9BC4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9BC4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -31802,7 +31802,7 @@ _080D9BA6:
pop {r0}
bx r0
.align 2, 0
-_080D9BC4: .4byte gBattleAnimEnemyMonIndex
+_080D9BC4: .4byte gBattleAnimBankTarget
_080D9BC8: .4byte gBattleAnimArgs
_080D9BCC: .4byte gUnknown_0202F7C4
_080D9BD0: .4byte sub_80D9B24
@@ -31837,7 +31837,7 @@ _080D9BF8:
bl StartSpriteAnim
b _080D9C22
_080D9C0C:
- ldr r0, _080D9C34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9C34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -31851,12 +31851,12 @@ _080D9C22:
str r0, [r4, 0x1C]
ldr r1, _080D9C3C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080D9C34: .4byte gBattleAnimPlayerMonIndex
+_080D9C34: .4byte gBattleAnimBankAttacker
_080D9C38: .4byte sub_8078600
_080D9C3C: .4byte move_anim_8072740
thumb_func_end sub_80D9BD4
@@ -31952,7 +31952,7 @@ _080D9CDE:
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
- ldr r0, _080D9D0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9D0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -31968,7 +31968,7 @@ _080D9CDE:
adds r7, r1, 0
b _080D9D24
.align 2, 0
-_080D9D0C: .4byte gBattleAnimEnemyMonIndex
+_080D9D0C: .4byte gBattleAnimBankTarget
_080D9D10: .4byte gUnknown_030041B0
_080D9D14:
ldr r2, _080D9D64 @ =gUnknown_030041B0
@@ -32034,7 +32034,7 @@ _080D9D86:
bl sub_80787B0
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r4, _080D9DC8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080D9DC8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32058,7 +32058,7 @@ _080D9D86:
bx r0
.align 2, 0
_080D9DC4: .4byte gBattleAnimArgs
-_080D9DC8: .4byte gBattleAnimEnemyMonIndex
+_080D9DC8: .4byte gBattleAnimBankTarget
_080D9DCC: .4byte 0x0000ffe2
_080D9DD0: .4byte sub_80D9DD4
thumb_func_end sub_80D9D70
@@ -32096,7 +32096,7 @@ _080D9E08:
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080D9E68 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9E68 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
@@ -32104,7 +32104,7 @@ _080D9E08:
mov r2, sp
adds r3, r6, 0
bl sub_807A3FC
- ldr r0, _080D9E6C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9E6C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32137,8 +32137,8 @@ _080D9E36:
bx r0
.align 2, 0
_080D9E64: .4byte gBattleAnimArgs
-_080D9E68: .4byte gBattleAnimEnemyMonIndex
-_080D9E6C: .4byte gBattleAnimPlayerMonIndex
+_080D9E68: .4byte gBattleAnimBankTarget
+_080D9E6C: .4byte gBattleAnimBankAttacker
_080D9E70: .4byte 0x0000ffe2
_080D9E74: .4byte sub_80D9E78
thumb_func_end sub_80D9DF0
@@ -32229,7 +32229,7 @@ _080D9F0E:
sub_80D9F14: @ 80D9F14
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080D9F74 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9F74 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32237,7 +32237,7 @@ sub_80D9F14: @ 80D9F14
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9F78 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9F78 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32268,13 +32268,13 @@ _080D9F40:
str r0, [r4, 0x1C]
ldr r1, _080D9F84 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
.align 2, 0
-_080D9F74: .4byte gBattleAnimEnemyMonIndex
-_080D9F78: .4byte gBattleAnimPlayerMonIndex
+_080D9F74: .4byte gBattleAnimBankTarget
+_080D9F78: .4byte gBattleAnimBankAttacker
_080D9F7C: .4byte gBattleAnimArgs
_080D9F80: .4byte sub_8078B34
_080D9F84: .4byte move_anim_8072740
@@ -32296,7 +32296,7 @@ sub_80D9F88: @ 80D9F88
.align 2, 0
_080D9FA0: .4byte gBattleAnimArgs
_080D9FA4:
- ldr r0, _080D9FE4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080D9FE4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -32304,7 +32304,7 @@ _080D9FA4:
adds r3, 0x22
movs r1, 0x1
bl sub_807A3FC
- ldr r0, _080D9FE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080D9FE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32329,8 +32329,8 @@ _080D9FDA:
pop {r0}
bx r0
.align 2, 0
-_080D9FE4: .4byte gBattleAnimEnemyMonIndex
-_080D9FE8: .4byte gBattleAnimPlayerMonIndex
+_080D9FE4: .4byte gBattleAnimBankTarget
+_080D9FE8: .4byte gBattleAnimBankAttacker
_080D9FEC: .4byte sub_80D9FF0
thumb_func_end sub_80D9F88
@@ -32538,7 +32538,7 @@ sub_80DA16C: @ 80DA16C
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DA1D8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA1D8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32554,7 +32554,7 @@ _080DA18C:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r5, _080DA1E0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DA1E0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -32579,14 +32579,14 @@ _080DA18C:
str r0, [r6, 0x1C]
ldr r1, _080DA1E8 @ =sub_80DA1EC
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DA1D8: .4byte gBattleAnimPlayerMonIndex
+_080DA1D8: .4byte gBattleAnimBankAttacker
_080DA1DC: .4byte gBattleAnimArgs
-_080DA1E0: .4byte gBattleAnimEnemyMonIndex
+_080DA1E0: .4byte gBattleAnimBankTarget
_080DA1E4: .4byte sub_80785E4
_080DA1E8: .4byte sub_80DA1EC
thumb_func_end sub_80DA16C
@@ -32611,7 +32611,7 @@ _080DA200:
sub_80DA208: @ 80DA208
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DA2A4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DA2A4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -32668,7 +32668,7 @@ _080DA24C:
ldrsh r0, [r2, r3]
cmp r0, 0
bne _080DA2B0
- ldr r4, _080DA2AC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DA2AC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32683,11 +32683,11 @@ _080DA24C:
strh r0, [r5, 0x36]
b _080DA2C2
.align 2, 0
-_080DA2A4: .4byte gBattleAnimPlayerMonIndex
+_080DA2A4: .4byte gBattleAnimBankAttacker
_080DA2A8: .4byte gBattleAnimArgs
-_080DA2AC: .4byte gBattleAnimEnemyMonIndex
+_080DA2AC: .4byte gBattleAnimBankTarget
_080DA2B0:
- ldr r0, _080DA2F0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DA2F0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -32709,7 +32709,7 @@ _080DA2C2:
str r0, [r5, 0x1C]
ldr r1, _080DA2FC @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
adds r0, r5, 0
bl SeekSpriteAnim
@@ -32717,7 +32717,7 @@ _080DA2C2:
pop {r0}
bx r0
.align 2, 0
-_080DA2F0: .4byte gBattleAnimEnemyMonIndex
+_080DA2F0: .4byte gBattleAnimBankTarget
_080DA2F4: .4byte gBattleAnimArgs
_080DA2F8: .4byte sub_8078B34
_080DA2FC: .4byte move_anim_8072740
@@ -32737,7 +32737,7 @@ sub_80DA300: @ 80DA300
ldr r0, _080DA340 @ =sub_80DA348
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DA344 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32802,7 +32802,7 @@ _080DA386:
sub_80DA38C: @ 80DA38C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, _080DA3B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA3B4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32818,7 +32818,7 @@ sub_80DA38C: @ 80DA38C
bl StartSpriteAffineAnim
b _080DA3C2
.align 2, 0
-_080DA3B4: .4byte gBattleAnimPlayerMonIndex
+_080DA3B4: .4byte gBattleAnimBankAttacker
_080DA3B8: .4byte 0x0000ffe0
_080DA3BC:
ldr r0, _080DA400 @ =0x0000ffe0
@@ -32830,7 +32830,7 @@ _080DA3C2:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, _080DA408 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DA408 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -32855,7 +32855,7 @@ _080DA3C2:
.align 2, 0
_080DA400: .4byte 0x0000ffe0
_080DA404: .4byte gBattleAnimArgs
-_080DA408: .4byte gBattleAnimEnemyMonIndex
+_080DA408: .4byte gBattleAnimBankTarget
_080DA40C: .4byte sub_80DA410
thumb_func_end sub_80DA38C
@@ -32900,7 +32900,7 @@ _080DA438:
ble _080DA480
_080DA45A:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DA488 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32980,13 +32980,13 @@ sub_80DA4D8: @ 80DA4D8
ands r0, r1
cmp r0, 0
beq _080DA500
- ldr r0, _080DA4FC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DA4FC @ =gBattleAnimBankAttacker
b _080DA502
.align 2, 0
_080DA4F8: .4byte gBattleAnimArgs
-_080DA4FC: .4byte gBattleAnimPlayerMonIndex
+_080DA4FC: .4byte gBattleAnimBankAttacker
_080DA500:
- ldr r0, _080DA5B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DA5B0 @ =gBattleAnimBankTarget
_080DA502:
ldrb r6, [r0]
adds r0, r6, 0
@@ -33073,7 +33073,7 @@ _080DA518:
strb r1, [r7, 0x5]
b _080DA5D8
.align 2, 0
-_080DA5B0: .4byte gBattleAnimEnemyMonIndex
+_080DA5B0: .4byte gBattleAnimBankTarget
_080DA5B4: .4byte gBattleAnimArgs
_080DA5B8: .4byte gMain
_080DA5BC: .4byte 0x0000043d
@@ -34081,7 +34081,7 @@ _080DAD2C: .4byte sub_80DA48C
sub_80DAD30: @ 80DAD30
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, _080DAD78 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAD78 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34093,7 +34093,7 @@ sub_80DAD30: @ 80DAD30
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
- ldr r5, _080DAD7C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DAD7C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34112,8 +34112,8 @@ sub_80DAD30: @ 80DAD30
pop {r0}
bx r0
.align 2, 0
-_080DAD78: .4byte gBattleAnimEnemyMonIndex
-_080DAD7C: .4byte gBattleAnimPlayerMonIndex
+_080DAD78: .4byte gBattleAnimBankTarget
+_080DAD7C: .4byte gBattleAnimBankAttacker
_080DAD80: .4byte sub_807941C
thumb_func_end sub_80DAD30
@@ -34137,7 +34137,7 @@ sub_80DAD84: @ 80DAD84
cmp r0, 0
beq _080DAE44
ldr r0, _080DADD8 @ =gBanksBySide
- ldr r1, _080DADDC @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080DADDC @ =gBattleAnimBankTarget
ldrb r2, [r1]
adds r0, r2, r0
ldrb r1, [r0]
@@ -34158,7 +34158,7 @@ _080DADCC: .4byte gBattleAnimArgs
_080DADD0: .4byte gMain
_080DADD4: .4byte 0x0000043d
_080DADD8: .4byte gBanksBySide
-_080DADDC: .4byte gBattleAnimEnemyMonIndex
+_080DADDC: .4byte gBattleAnimBankTarget
_080DADE0:
adds r0, r2, 0
movs r1, 0x1
@@ -34173,7 +34173,7 @@ _080DADEE:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DAE24
- ldr r0, _080DAE20 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAE20 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
@@ -34191,9 +34191,9 @@ _080DADEE:
b _080DAE58
.align 2, 0
_080DAE1C: .4byte gBattleAnimArgs
-_080DAE20: .4byte gBattleAnimEnemyMonIndex
+_080DAE20: .4byte gBattleAnimBankTarget
_080DAE24:
- ldr r0, _080DAE40 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAE40 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8079ED4
movs r1, 0x3
@@ -34207,9 +34207,9 @@ _080DAE24:
strb r0, [r4, 0x5]
b _080DAE58
.align 2, 0
-_080DAE40: .4byte gBattleAnimEnemyMonIndex
+_080DAE40: .4byte gBattleAnimBankTarget
_080DAE44:
- ldr r0, _080DAEFC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DAEFC @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34303,7 +34303,7 @@ _080DAEF2:
pop {r0}
bx r0
.align 2, 0
-_080DAEFC: .4byte gBattleAnimEnemyMonIndex
+_080DAEFC: .4byte gBattleAnimBankTarget
_080DAF00: .4byte gSineTable
_080DAF04: .4byte gOamMatrices
_080DAF08: .4byte sub_80DAF0C
@@ -34463,7 +34463,7 @@ _080DB024:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _080DB03C
- ldr r0, _080DB090 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB090 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34474,7 +34474,7 @@ _080DB03C:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _080DB058
- ldr r0, _080DB094 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DB094 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -34512,8 +34512,8 @@ _080DB058:
bx r0
.align 2, 0
_080DB08C: .4byte gBattleAnimArgs
-_080DB090: .4byte gBattleAnimPlayerMonIndex
-_080DB094: .4byte gBattleAnimEnemyMonIndex
+_080DB090: .4byte gBattleAnimBankAttacker
+_080DB094: .4byte gBattleAnimBankTarget
_080DB098: .4byte 0x00000ccc
_080DB09C: .4byte sub_80DB0A0
thumb_func_end sub_80DB000
@@ -34599,7 +34599,7 @@ sub_80DB0E8: @ 80DB0E8
strh r0, [r4, 0x6]
ldr r0, _080DB18C @ =gBattleAnimSpriteTemplate_83DB538
mov r8, r0
- ldr r5, _080DB190 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DB190 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -34637,7 +34637,7 @@ _080DB180: .4byte gTasks
_080DB184: .4byte gAnimVisualTaskCount
_080DB188: .4byte gBattleAnimArgs
_080DB18C: .4byte gBattleAnimSpriteTemplate_83DB538
-_080DB190: .4byte gBattleAnimEnemyMonIndex
+_080DB190: .4byte gBattleAnimBankTarget
thumb_func_end sub_80DB0E8
thumb_func_start sub_80DB194
@@ -34656,7 +34656,7 @@ _080DB1A6:
movs r1, 0x1
bl sub_80787B0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB1D4 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34709,7 +34709,7 @@ _080DB20A:
beq _080DB240
b _080DB27E
_080DB210:
- ldr r0, _080DB228 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DB228 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -34721,7 +34721,7 @@ _080DB210:
strh r0, [r4, 0x26]
b _080DB238
.align 2, 0
-_080DB228: .4byte gBattleAnimEnemyMonIndex
+_080DB228: .4byte gBattleAnimBankTarget
_080DB22C:
ldrh r0, [r4, 0x26]
adds r0, 0xA
@@ -34748,7 +34748,7 @@ _080DB240:
cmp r0, r1
bge _080DB27E
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB284 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34786,7 +34786,7 @@ sub_80DB288: @ 80DB288
ldr r0, _080DB2C8 @ =sub_80DB2D0
str r0, [r4, 0x1C]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _080DB2CC @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -34919,13 +34919,13 @@ _080DB388:
ldrsh r0, [r0, r2]
cmp r0, 0
bne _080DB3A0
- ldr r4, _080DB39C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DB39C @ =gBattleAnimBankAttacker
b _080DB3A2
.align 2, 0
_080DB398: .4byte gBattleAnimArgs
-_080DB39C: .4byte gBattleAnimPlayerMonIndex
+_080DB39C: .4byte gBattleAnimBankAttacker
_080DB3A0:
- ldr r4, _080DB3DC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DB3DC @ =gBattleAnimBankTarget
_080DB3A2:
ldrb r0, [r4]
movs r1, 0
@@ -34954,7 +34954,7 @@ _080DB3A2:
strh r0, [r5, 0x2E]
b _080DB44C
.align 2, 0
-_080DB3DC: .4byte gBattleAnimEnemyMonIndex
+_080DB3DC: .4byte gBattleAnimBankTarget
_080DB3E0:
movs r1, 0x32
ldrsh r0, [r5, r1]
@@ -35079,13 +35079,13 @@ _080DB4C0:
ldrsh r0, [r2, r1]
cmp r0, 0
bne _080DB4D4
- ldr r4, _080DB4D0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DB4D0 @ =gBattleAnimBankAttacker
b _080DB4D6
.align 2, 0
_080DB4CC: .4byte gBattleAnimArgs
-_080DB4D0: .4byte gBattleAnimPlayerMonIndex
+_080DB4D0: .4byte gBattleAnimBankAttacker
_080DB4D4:
- ldr r4, _080DB500 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DB500 @ =gBattleAnimBankTarget
_080DB4D6:
ldrb r0, [r4]
movs r1, 0
@@ -35106,7 +35106,7 @@ _080DB4D6:
pop {r0}
bx r0
.align 2, 0
-_080DB500: .4byte gBattleAnimEnemyMonIndex
+_080DB500: .4byte gBattleAnimBankTarget
_080DB504: .4byte sub_80DB508
thumb_func_end sub_80DB458
@@ -35245,7 +35245,7 @@ sub_80DB5E4: @ 80DB5E4
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
- ldr r6, _080DB698 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080DB698 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -35321,7 +35321,7 @@ sub_80DB5E4: @ 80DB5E4
pop {r0}
bx r0
.align 2, 0
-_080DB698: .4byte gBattleAnimPlayerMonIndex
+_080DB698: .4byte gBattleAnimBankAttacker
_080DB69C: .4byte sub_80DB6A0
thumb_func_end sub_80DB5E4
@@ -35375,7 +35375,7 @@ unref_sub_80DB6E4: @ 80DB6E4
cmp r0, 0
bne _080DB71C
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080DB718 @ =gSprites
@@ -35393,7 +35393,7 @@ _080DB714: .4byte gBattleAnimArgs
_080DB718: .4byte gSprites
_080DB71C:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080DB748 @ =gSprites
@@ -35421,7 +35421,7 @@ _080DB748: .4byte gSprites
sub_80DB74C: @ 80DB74C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB804 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35463,7 +35463,7 @@ _080DB77E:
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB7BC
@@ -35475,7 +35475,7 @@ _080DB7BC:
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB7DA
@@ -35493,7 +35493,7 @@ _080DB7DA:
lsls r0, 24
cmp r0, 0
beq _080DB810
- ldr r0, _080DB804 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DB804 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35504,14 +35504,14 @@ _080DB7DA:
movs r0, 0x50
b _080DB84A
.align 2, 0
-_080DB804: .4byte gBattleAnimPlayerMonIndex
+_080DB804: .4byte gBattleAnimBankAttacker
_080DB808:
movs r0, 0xB0
strh r0, [r6, 0x20]
movs r0, 0x28
b _080DB84A
_080DB810:
- ldr r5, _080DB880 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DB880 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -35565,7 +35565,7 @@ _080DB85C:
pop {r0}
bx r0
.align 2, 0
-_080DB880: .4byte gBattleAnimPlayerMonIndex
+_080DB880: .4byte gBattleAnimBankAttacker
_080DB884: .4byte gBattleAnimArgs
_080DB888: .4byte sub_80DB88C
thumb_func_end sub_80DB74C
@@ -35689,7 +35689,7 @@ sub_80DB92C: @ 80DB92C
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB98E
@@ -35712,7 +35712,7 @@ _080DB98E:
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DB9BC
@@ -35772,7 +35772,7 @@ sub_80DB9E4: @ 80DB9E4
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DBA22
@@ -35782,7 +35782,7 @@ _080DBA22:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DBA3C
@@ -35824,7 +35824,7 @@ _080DBA66:
lsls r0, 24
cmp r0, 0
beq _080DBAAE
- ldr r0, _080DBA9C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DBA9C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35840,7 +35840,7 @@ _080DBA66:
b _080DBAD0
.align 2, 0
_080DBA98: .4byte gBattleAnimArgs
-_080DBA9C: .4byte gBattleAnimPlayerMonIndex
+_080DBA9C: .4byte gBattleAnimBankAttacker
_080DBAA0:
ldrh r0, [r5]
adds r0, 0xB0
@@ -35890,7 +35890,7 @@ _080DBAEC:
sub_80DBAF4: @ 80DBAF4
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DBB3C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DBB3C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -35920,7 +35920,7 @@ sub_80DBAF4: @ 80DBAF4
ldr r0, _080DBB40 @ =0x0000ffff
b _080DBB52
.align 2, 0
-_080DBB3C: .4byte gBattleAnimPlayerMonIndex
+_080DBB3C: .4byte gBattleAnimBankAttacker
_080DBB40: .4byte 0x0000ffff
_080DBB44:
ldrh r0, [r5, 0x20]
@@ -35934,7 +35934,7 @@ _080DBB52:
strh r0, [r5, 0x30]
ldr r1, _080DBB68 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DBB6C @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -35949,7 +35949,7 @@ _080DBB6C: .4byte sub_8078600
sub_80DBB70: @ 80DBB70
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, _080DBBF4 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080DBBF4 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x1
bl sub_807A100
@@ -36003,14 +36003,14 @@ _080DBBB6:
_080DBBE2:
ldr r1, _080DBBF8 @ =sub_80DBC00
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DBBFC @ =sub_8078600
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080DBBF4: .4byte gBattleAnimPlayerMonIndex
+_080DBBF4: .4byte gBattleAnimBankAttacker
_080DBBF8: .4byte sub_80DBC00
_080DBBFC: .4byte sub_8078600
thumb_func_end sub_80DBB70
@@ -36105,7 +36105,7 @@ sub_80DBC94: @ 80DBC94
ldr r0, _080DBCC4 @ =gTasks
adds r4, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -36159,14 +36159,14 @@ sub_80DBCFC: @ 80DBCFC
ldr r0, _080DBD48 @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
- ldr r0, _080DBD4C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DBD4C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -36187,7 +36187,7 @@ _080DBD30:
bx r0
.align 2, 0
_080DBD48: .4byte gTasks
-_080DBD4C: .4byte gBattleAnimPlayerMonIndex
+_080DBD4C: .4byte gBattleAnimBankAttacker
_080DBD50: .4byte gUnknown_083DA8C4
_080DBD54: .4byte sub_80DBD58
thumb_func_end sub_80DBCFC
@@ -36294,7 +36294,7 @@ sub_80DBE00: @ 80DBE00
movs r7, 0x10
strh r7, [r5, 0xE]
strh r0, [r5, 0x10]
- ldr r4, _080DBE88 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DBE88 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36345,7 +36345,7 @@ _080DBE6A:
bx r0
.align 2, 0
_080DBE84: .4byte gTasks
-_080DBE88: .4byte gBattleAnimPlayerMonIndex
+_080DBE88: .4byte gBattleAnimBankAttacker
_080DBE8C: .4byte REG_BLDCNT
_080DBE90: .4byte REG_BLDALPHA
_080DBE94: .4byte sub_80DBE98
@@ -36614,7 +36614,7 @@ sub_80DC068: @ 80DC068
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DC094
- ldr r4, _080DC0A8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC0A8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -36637,7 +36637,7 @@ _080DC094:
bx r0
.align 2, 0
_080DC0A4: .4byte gBattleAnimArgs
-_080DC0A8: .4byte gBattleAnimPlayerMonIndex
+_080DC0A8: .4byte gBattleAnimBankAttacker
_080DC0AC: .4byte sub_80DC020
thumb_func_end sub_80DC068
@@ -36662,7 +36662,7 @@ sub_80DC0B0: @ 80DC0B0
bne _080DC120
ldr r0, _080DC114 @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC118 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC118 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36673,7 +36673,7 @@ sub_80DC0B0: @ 80DC0B0
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC11C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC11C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36688,12 +36688,12 @@ sub_80DC0B0: @ 80DC0B0
_080DC10C: .4byte gTasks
_080DC110: .4byte gBattleAnimArgs
_080DC114: .4byte 0x0000fff6
-_080DC118: .4byte gBattleAnimEnemyMonIndex
-_080DC11C: .4byte gBattleAnimPlayerMonIndex
+_080DC118: .4byte gBattleAnimBankTarget
+_080DC11C: .4byte gBattleAnimBankAttacker
_080DC120:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC14C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC14C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36704,15 +36704,15 @@ _080DC120:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC150 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC150 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
adds r0, 0x8
b _080DC1D2
.align 2, 0
-_080DC14C: .4byte gBattleAnimPlayerMonIndex
-_080DC150: .4byte gBattleAnimEnemyMonIndex
+_080DC14C: .4byte gBattleAnimBankAttacker
+_080DC150: .4byte gBattleAnimBankTarget
_080DC154:
ldr r0, _080DC198 @ =gBattleAnimArgs
movs r1, 0
@@ -36721,7 +36721,7 @@ _080DC154:
bne _080DC1A8
ldr r0, _080DC19C @ =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, _080DC1A0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC1A0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36732,7 +36732,7 @@ _080DC154:
bl sub_807A100
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1A4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC1A4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_807A100
@@ -36746,12 +36746,12 @@ _080DC154:
.align 2, 0
_080DC198: .4byte gBattleAnimArgs
_080DC19C: .4byte 0x0000fff6
-_080DC1A0: .4byte gBattleAnimEnemyMonIndex
-_080DC1A4: .4byte gBattleAnimPlayerMonIndex
+_080DC1A0: .4byte gBattleAnimBankTarget
+_080DC1A4: .4byte gBattleAnimBankAttacker
_080DC1A8:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, _080DC1F0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC1F0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36762,7 +36762,7 @@ _080DC1A8:
bl sub_807A100
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, _080DC1F4 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DC1F4 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_807A100
@@ -36783,8 +36783,8 @@ _080DC1DE:
pop {r0}
bx r0
.align 2, 0
-_080DC1F0: .4byte gBattleAnimPlayerMonIndex
-_080DC1F4: .4byte gBattleAnimEnemyMonIndex
+_080DC1F0: .4byte gBattleAnimBankAttacker
+_080DC1F4: .4byte gBattleAnimBankTarget
_080DC1F8: .4byte sub_80DC1FC
thumb_func_end sub_80DC0B0
@@ -36909,7 +36909,7 @@ sub_80DC2D4: @ 80DC2D4
lsls r1, 3
ldr r0, _080DC30C @ =gTasks
adds r4, r1, r0
- ldr r0, _080DC310 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC310 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -36929,7 +36929,7 @@ sub_80DC2D4: @ 80DC2D4
b _080DC346
.align 2, 0
_080DC30C: .4byte gTasks
-_080DC310: .4byte gBattleAnimEnemyMonIndex
+_080DC310: .4byte gBattleAnimBankTarget
_080DC314: .4byte gBattleAnimArgs
_080DC318:
cmp r0, 0x2
@@ -36967,7 +36967,7 @@ _080DC346:
movs r0, 0
strh r0, [r4, 0x24]
_080DC352:
- ldr r0, _080DC36C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC36C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -36980,7 +36980,7 @@ _080DC352:
ldr r0, _080DC374 @ =REG_BG1HOFS
b _080DC380
.align 2, 0
-_080DC36C: .4byte gBattleAnimEnemyMonIndex
+_080DC36C: .4byte gBattleAnimBankTarget
_080DC370: .4byte gUnknown_030042C0
_080DC374: .4byte REG_BG1HOFS
_080DC378:
@@ -37282,7 +37282,7 @@ _080DC554:
bl CalcCenterToCornerVec
ldr r1, _080DC5EC @ =gBattleAnimArgs
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
@@ -37461,7 +37461,7 @@ _080DC716:
beq _080DC808
b _080DC818
_080DC720:
- ldr r4, _080DC76C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DC76C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -37498,7 +37498,7 @@ _080DC74E:
strh r0, [r2]
b _080DC7A2
.align 2, 0
-_080DC76C: .4byte gBattleAnimPlayerMonIndex
+_080DC76C: .4byte gBattleAnimBankAttacker
_080DC770: .4byte REG_BLDCNT
_080DC774: .4byte REG_BLDALPHA
_080DC778:
@@ -37612,7 +37612,7 @@ sub_80DC824: @ 80DC824
.align 2, 0
_080DC84C: .4byte gBattleAnimArgs
_080DC850:
- ldr r0, _080DC8E4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC8E4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37635,7 +37635,7 @@ _080DC850:
negs r0, r0
strh r0, [r1]
_080DC880:
- ldr r5, _080DC8E4 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DC8E4 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
@@ -37675,12 +37675,12 @@ _080DC880:
str r0, [r6, 0x1C]
ldr r1, _080DC8F0 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DC8E4: .4byte gBattleAnimEnemyMonIndex
+_080DC8E4: .4byte gBattleAnimBankTarget
_080DC8E8: .4byte gBattleAnimArgs
_080DC8EC: .4byte sub_8078B34
_080DC8F0: .4byte move_anim_8072740
@@ -37705,7 +37705,7 @@ sub_80DC8F4: @ 80DC8F4
.align 2, 0
_080DC914: .4byte gBattleAnimArgs
_080DC918:
- ldr r0, _080DC990 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DC990 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37719,7 +37719,7 @@ _080DC918:
negs r1, r1
strh r1, [r0]
_080DC934:
- ldr r5, _080DC990 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DC990 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077EE4
@@ -37755,12 +37755,12 @@ _080DC934:
str r0, [r6, 0x1C]
ldr r1, _080DC99C @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080DC990: .4byte gBattleAnimEnemyMonIndex
+_080DC990: .4byte gBattleAnimBankTarget
_080DC994: .4byte gBattleAnimArgs
_080DC998: .4byte sub_8078B34
_080DC99C: .4byte move_anim_8072740
@@ -37796,7 +37796,7 @@ _080DC9BC:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _080DCA04
- ldr r4, _080DCA00 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DCA00 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -37812,9 +37812,9 @@ _080DC9BC:
b _080DCA16
.align 2, 0
_080DC9FC: .4byte gBattleAnimArgs
-_080DCA00: .4byte gBattleAnimEnemyMonIndex
+_080DCA00: .4byte gBattleAnimBankTarget
_080DCA04:
- ldr r0, _080DCA2C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCA2C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -37834,7 +37834,7 @@ _080DCA16:
pop {r0}
bx r0
.align 2, 0
-_080DCA2C: .4byte gBattleAnimEnemyMonIndex
+_080DCA2C: .4byte gBattleAnimBankTarget
_080DCA30: .4byte gBattleAnimArgs
_080DCA34: .4byte sub_80DCA38
thumb_func_end sub_80DC9A0
@@ -37874,7 +37874,7 @@ _080DCA6A:
sub_80DCA70: @ 80DCA70
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DCAA0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCAA0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -37882,7 +37882,7 @@ sub_80DCA70: @ 80DCA70
adds r3, 0x22
movs r1, 0
bl sub_807A3FC
- ldr r0, _080DCAA4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCAA4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37895,8 +37895,8 @@ sub_80DCA70: @ 80DCA70
strh r1, [r4, 0x20]
b _080DCAB8
.align 2, 0
-_080DCAA0: .4byte gBattleAnimEnemyMonIndex
-_080DCAA4: .4byte gBattleAnimPlayerMonIndex
+_080DCAA0: .4byte gBattleAnimBankTarget
+_080DCAA4: .4byte gBattleAnimBankAttacker
_080DCAA8: .4byte gBattleAnimArgs
_080DCAAC:
ldr r1, _080DCAE0 @ =gBattleAnimArgs
@@ -37910,7 +37910,7 @@ _080DCAB8:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, _080DCAE4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCAE4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37927,7 +37927,7 @@ _080DCAD4:
bx r0
.align 2, 0
_080DCAE0: .4byte gBattleAnimArgs
-_080DCAE4: .4byte gBattleAnimEnemyMonIndex
+_080DCAE4: .4byte gBattleAnimBankTarget
_080DCAE8: .4byte sub_80DCAEC
thumb_func_end sub_80DCA70
@@ -38075,7 +38075,7 @@ sub_80DCBCC: @ 80DCBCC
.align 2, 0
_080DCBE8: .4byte gBattleAnimArgs
_080DCBEC:
- ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCCE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38096,11 +38096,11 @@ _080DCC0E:
lsls r0, 24
cmp r0, 0
bne _080DCC5E
- ldr r0, _080DCCE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCCE8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
bl GetBankSide
lsls r4, 24
@@ -38132,7 +38132,7 @@ _080DCC5E:
adds r0, r7, 0
movs r1, 0x1
bl sub_80787B0
- ldr r5, _080DCCF0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCCF0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -38186,15 +38186,15 @@ _080DCC5E:
str r0, [r7, 0x1C]
ldr r1, _080DCCF8 @ =move_anim_8072740
adds r0, r7, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080DCCE8: .4byte gBattleAnimPlayerMonIndex
+_080DCCE8: .4byte gBattleAnimBankAttacker
_080DCCEC: .4byte gBattleAnimArgs
-_080DCCF0: .4byte gBattleAnimEnemyMonIndex
+_080DCCF0: .4byte gBattleAnimBankTarget
_080DCCF4: .4byte sub_8078B34
_080DCCF8: .4byte move_anim_8072740
thumb_func_end sub_80DCBCC
@@ -38205,7 +38205,7 @@ sub_80DCCFC: @ 80DCCFC
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DCD68 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCD68 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38219,7 +38219,7 @@ _080DCD1C:
ldr r4, _080DCD6C @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080DCD70 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DCD70 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -38252,9 +38252,9 @@ _080DCD1C:
pop {r0}
bx r0
.align 2, 0
-_080DCD68: .4byte gBattleAnimPlayerMonIndex
+_080DCD68: .4byte gBattleAnimBankAttacker
_080DCD6C: .4byte gBattleAnimArgs
-_080DCD70: .4byte gBattleAnimEnemyMonIndex
+_080DCD70: .4byte gBattleAnimBankTarget
_080DCD74: .4byte sub_80DCD78
thumb_func_end sub_80DCCFC
@@ -38370,13 +38370,13 @@ sub_80DCE40: @ 80DCE40
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DCE5C
- ldr r4, _080DCE58 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DCE58 @ =gBattleAnimBankAttacker
b _080DCE5E
.align 2, 0
_080DCE54: .4byte gBattleAnimArgs
-_080DCE58: .4byte gBattleAnimPlayerMonIndex
+_080DCE58: .4byte gBattleAnimBankAttacker
_080DCE5C:
- ldr r4, _080DCE90 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DCE90 @ =gBattleAnimBankTarget
_080DCE5E:
ldrb r0, [r4]
movs r1, 0x2
@@ -38393,14 +38393,14 @@ _080DCE5E:
strh r0, [r5, 0x22]
ldr r1, _080DCE94 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DCE98 @ =sub_80785E4
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080DCE90: .4byte gBattleAnimEnemyMonIndex
+_080DCE90: .4byte gBattleAnimBankTarget
_080DCE94: .4byte move_anim_8074EE0
_080DCE98: .4byte sub_80785E4
thumb_func_end sub_80DCE40
@@ -38414,7 +38414,7 @@ sub_80DCE9C: @ 80DCE9C
ldrsh r0, [r6, r1]
cmp r0, 0
beq _080DCEBC
- ldr r0, _080DCF0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DCF0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
@@ -38448,7 +38448,7 @@ _080DCEBC:
strh r0, [r5, 0x38]
ldr r1, _080DCF14 @ =sub_80DCF1C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080DCF18 @ =sub_8078278
str r1, [r5, 0x1C]
adds r0, r5, 0
@@ -38458,7 +38458,7 @@ _080DCEBC:
bx r0
.align 2, 0
_080DCF08: .4byte gBattleAnimArgs
-_080DCF0C: .4byte gBattleAnimEnemyMonIndex
+_080DCF0C: .4byte gBattleAnimBankTarget
_080DCF10: .4byte 0x0000ffba
_080DCF14: .4byte sub_80DCF1C
_080DCF18: .4byte sub_8078278
@@ -38483,7 +38483,7 @@ sub_80DCF1C: @ 80DCF1C
strh r0, [r4, 0x36]
ldr r1, _080DCF58 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080DCF5C @ =sub_8078278
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -38506,7 +38506,7 @@ sub_80DCF60: @ 80DCF60
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
- ldr r0, _080DCF8C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DCF8C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38518,7 +38518,7 @@ sub_80DCF60: @ 80DCF60
b _080DCF96
.align 2, 0
_080DCF88: .4byte gBattleAnimArgs
-_080DCF8C: .4byte gBattleAnimPlayerMonIndex
+_080DCF8C: .4byte gBattleAnimBankAttacker
_080DCF90:
ldrh r0, [r4]
ldrh r1, [r5, 0x20]
@@ -38550,7 +38550,7 @@ _080DCF96:
str r0, [r5, 0x1C]
ldr r1, _080DCFE0 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -38726,7 +38726,7 @@ _080DD120:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080DD13A
- ldr r0, _080DD184 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD184 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38759,7 +38759,7 @@ _080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew
_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew
_080DD17C: .4byte gBattleAnimSpritePalette_261
_080DD180: .4byte gBattleAnimArgs
-_080DD184: .4byte gBattleAnimPlayerMonIndex
+_080DD184: .4byte gBattleAnimBankAttacker
_080DD188: .4byte gTasks
_080DD18C: .4byte sub_80DD190
thumb_func_end do_boulder_dust
@@ -39044,7 +39044,7 @@ sub_80DD3AC: @ 80DD3AC
ldrsh r0, [r4, r2]
cmp r0, 0
beq _080DD3F8
- ldr r0, _080DD3F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD3F4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -39067,7 +39067,7 @@ sub_80DD3AC: @ 80DD3AC
b _080DD3FC
.align 2, 0
_080DD3F0: .4byte gBattleAnimArgs
-_080DD3F4: .4byte gBattleAnimPlayerMonIndex
+_080DD3F4: .4byte gBattleAnimBankAttacker
_080DD3F8:
ldr r0, _080DD41C @ =0x0000ffc0
strh r0, [r5, 0x20]
@@ -39169,7 +39169,7 @@ sub_80DD490: @ 80DD490
str r0, [r4, 0x1C]
ldr r1, _080DD4D0 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -39193,7 +39193,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 3
ldr r0, _080DD554 @ =gTasks
adds r6, r1, r0
- ldr r5, _080DD558 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DD558 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -39209,7 +39209,7 @@ sub_80DD4D4: @ 80DD4D4
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
- ldr r4, _080DD55C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DD55C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -39243,8 +39243,8 @@ _080DD544:
b _080DD566
.align 2, 0
_080DD554: .4byte gTasks
-_080DD558: .4byte gBattleAnimPlayerMonIndex
-_080DD55C: .4byte gBattleAnimEnemyMonIndex
+_080DD558: .4byte gBattleAnimBankAttacker
+_080DD55C: .4byte gBattleAnimBankTarget
_080DD560:
lsls r1, r5, 3
movs r0, 0x30
@@ -39308,7 +39308,7 @@ _080DD57E:
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -39787,7 +39787,7 @@ _080DD972:
sub_80DD978: @ 80DD978
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DD9A0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DD9A0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -39804,14 +39804,14 @@ _080DD994:
pop {r0}
bx r0
.align 2, 0
-_080DD9A0: .4byte gBattleAnimPlayerMonIndex
+_080DD9A0: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80DD978
thumb_func_start sub_80DD9A4
sub_80DD9A4: @ 80DD9A4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080DD9F0 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DD9F0 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -39844,7 +39844,7 @@ sub_80DD9A4: @ 80DD9A4
pop {r0}
bx r0
.align 2, 0
-_080DD9F0: .4byte gBattleAnimEnemyMonIndex
+_080DD9F0: .4byte gBattleAnimBankTarget
_080DD9F4: .4byte gBattleAnimArgs
_080DD9F8: .4byte sub_80DD9FC
thumb_func_end sub_80DD9A4
@@ -40049,7 +40049,7 @@ sub_80DDB6C: @ 80DDB6C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, _080DDBCC @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080DDBCC @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -40083,7 +40083,7 @@ sub_80DDB6C: @ 80DDB6C
bx r0
.align 2, 0
_080DDBC8: .4byte gBattleAnimArgs
-_080DDBCC: .4byte gBattleAnimEnemyMonIndex
+_080DDBCC: .4byte gBattleAnimBankTarget
_080DDBD0: .4byte sub_80DDBD8
_080DDBD4: .4byte REG_BLDCNT
thumb_func_end sub_80DDB6C
@@ -40389,7 +40389,7 @@ sub_80DDDF0: @ 80DDDF0
adds r0, r2, 0
strh r0, [r1]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -40506,7 +40506,7 @@ sub_80DDED0: @ 80DDED0
_080DDEF4: .4byte gTasks
_080DDEF8:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
@@ -40551,7 +40551,7 @@ sub_80DDF40: @ 80DDF40
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
- ldr r0, _080DDFDC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DDFDC @ =gBattleAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -40618,7 +40618,7 @@ sub_80DDF40: @ 80DDF40
pop {r0}
bx r0
.align 2, 0
-_080DDFDC: .4byte gBattleAnimPlayerMonIndex
+_080DDFDC: .4byte gBattleAnimBankAttacker
_080DDFE0: .4byte gBattleAnimArgs
_080DDFE4: .4byte sub_80DDFE8
thumb_func_end sub_80DDF40
@@ -40671,7 +40671,7 @@ _080DE032:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE098 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE098 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40712,7 +40712,7 @@ _080DE032:
strh r0, [r5, 0x3C]
b _080DE0E2
.align 2, 0
-_080DE098: .4byte gBattleAnimEnemyMonIndex
+_080DE098: .4byte gBattleAnimBankTarget
_080DE09C:
ldrh r0, [r5, 0x3A]
ldrh r1, [r5, 0x36]
@@ -40734,7 +40734,7 @@ _080DE09C:
lsls r0, 16
cmp r0, 0
bgt _080DE0F6
- ldr r4, _080DE0EC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE0EC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -40753,7 +40753,7 @@ _080DE0E2:
strh r0, [r5, 0x2E]
b _080DE0F6
.align 2, 0
-_080DE0EC: .4byte gBattleAnimEnemyMonIndex
+_080DE0EC: .4byte gBattleAnimBankTarget
_080DE0F0:
adds r0, r5, 0
bl move_anim_8074EE0
@@ -40917,7 +40917,7 @@ _080DE1E0:
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
- ldr r0, _080DE250 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE250 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40943,7 +40943,7 @@ _080DE1E0:
_080DE244: .4byte REG_BLDCNT
_080DE248: .4byte REG_BLDALPHA
_080DE24C: .4byte gSprites
-_080DE250: .4byte gBattleAnimEnemyMonIndex
+_080DE250: .4byte gBattleAnimBankTarget
_080DE254: .4byte 0x0000ff70
_080DE258:
movs r2, 0x8
@@ -40986,7 +40986,7 @@ _080DE276:
lsls r0, 2
adds r0, r4
ldr r1, _080DE2D0 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
movs r0, 0x8
ldrsh r1, [r5, r0]
lsls r0, r1, 4
@@ -41156,7 +41156,7 @@ sub_80DE3D4: @ 80DE3D4
lsls r0, 3
ldr r1, _080DE40C @ =gTasks
adds r5, r0, r1
- ldr r0, _080DE410 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE410 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -41174,7 +41174,7 @@ _080DE400:
mov pc, r0
.align 2, 0
_080DE40C: .4byte gTasks
-_080DE410: .4byte gBattleAnimEnemyMonIndex
+_080DE410: .4byte gBattleAnimBankTarget
_080DE414: .4byte _080DE418
.align 2, 0
_080DE418:
@@ -41250,7 +41250,7 @@ _080DE464:
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -41516,7 +41516,7 @@ sub_80DE6B0: @ 80DE6B0
lsls r0, 3
ldr r1, _080DE6E0 @ =gTasks
adds r4, r0, r1
- ldr r0, _080DE6E4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080DE6E4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -41532,7 +41532,7 @@ sub_80DE6B0: @ 80DE6B0
b _080DE7AA
.align 2, 0
_080DE6E0: .4byte gTasks
-_080DE6E4: .4byte gBattleAnimEnemyMonIndex
+_080DE6E4: .4byte gBattleAnimBankTarget
_080DE6E8:
cmp r0, 0x2
beq _080DE740
@@ -41542,7 +41542,7 @@ _080DE6EE:
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -41648,7 +41648,7 @@ sub_80DE7B8: @ 80DE7B8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DE800
- ldr r4, _080DE7F8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DE7F8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41663,14 +41663,14 @@ sub_80DE7B8: @ 80DE7B8
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE7FC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE7FC @ =gBattleAnimBankTarget
b _080DE824
.align 2, 0
_080DE7F4: .4byte gBattleAnimArgs
-_080DE7F8: .4byte gBattleAnimPlayerMonIndex
-_080DE7FC: .4byte gBattleAnimEnemyMonIndex
+_080DE7F8: .4byte gBattleAnimBankAttacker
+_080DE7FC: .4byte gBattleAnimBankTarget
_080DE800:
- ldr r4, _080DE8C8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DE8C8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -41685,7 +41685,7 @@ _080DE800:
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, _080DE8CC @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DE8CC @ =gBattleAnimBankAttacker
_080DE824:
ldrb r0, [r4]
movs r1, 0
@@ -41765,8 +41765,8 @@ _080DE824:
pop {r0}
bx r0
.align 2, 0
-_080DE8C8: .4byte gBattleAnimEnemyMonIndex
-_080DE8CC: .4byte gBattleAnimPlayerMonIndex
+_080DE8C8: .4byte gBattleAnimBankTarget
+_080DE8CC: .4byte gBattleAnimBankAttacker
_080DE8D0: .4byte gBattleAnimArgs
_080DE8D4: .4byte sub_80DE8D8
thumb_func_end sub_80DE7B8
@@ -41844,7 +41844,7 @@ sub_80DE918: @ 80DE918
ldr r2, _080DEA70 @ =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
- ldr r4, _080DEA74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DEA74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -41867,7 +41867,7 @@ _080DE988:
_080DE98A:
lsls r1, r4, 16
asrs r3, r1, 16
- ldr r0, _080DEA74 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DEA74 @ =gBattleAnimBankAttacker
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
@@ -41879,7 +41879,7 @@ _080DE98A:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080DEA56
@@ -41975,7 +41975,7 @@ _080DEA56:
_080DEA68: .4byte gTasks
_080DEA6C: .4byte REG_BLDCNT
_080DEA70: .4byte gBattleAnimArgs
-_080DEA74: .4byte gBattleAnimPlayerMonIndex
+_080DEA74: .4byte gBattleAnimBankAttacker
_080DEA78: .4byte gSpriteTemplate_83DAF08
_080DEA7C: .4byte gSprites
_080DEA80: .4byte gSprites + 0x1C
@@ -42290,7 +42290,7 @@ sub_80DECB0: @ 80DECB0
adds r1, 0x4
movs r0, 0x10
strh r0, [r1]
- ldr r0, _080DED08 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DED08 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42308,7 +42308,7 @@ _080DECF8: .4byte gUnknown_030042C4
_080DECFC: .4byte gUnknown_03004240
_080DED00: .4byte REG_WININ
_080DED04: .4byte 0x00003f3f
-_080DED08: .4byte gBattleAnimPlayerMonIndex
+_080DED08: .4byte gBattleAnimBankAttacker
_080DED0C:
movs r6, 0xC8
_080DED0E:
@@ -42571,7 +42571,7 @@ sub_80DEF3C: @ 80DEF3C
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _080DEF68 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DEF68 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42588,7 +42588,7 @@ sub_80DEF3C: @ 80DEF3C
strb r1, [r4, 0x3]
b _080DEF74
.align 2, 0
-_080DEF68: .4byte gBattleAnimPlayerMonIndex
+_080DEF68: .4byte gBattleAnimBankAttacker
_080DEF6C: .4byte 0x0000fffe
_080DEF70:
ldr r2, _080DEF90 @ =0x0000ffe8
@@ -42662,7 +42662,7 @@ _080DEFAA:
str r0, [r3, 0x1C]
ldr r1, _080DF008 @ =sub_80DF018
adds r0, r3, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080DF010
.align 2, 0
_080DEFFC: .4byte 0x000003ff
@@ -42775,7 +42775,7 @@ sub_80DF0B8: @ 80DF0B8
movs r1, 0xC
bl Sin
strh r0, [r4, 0x24]
- ldr r0, _080DF120 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF120 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -42819,7 +42819,7 @@ _080DF0DC:
strh r0, [r1]
b _080DF17E
.align 2, 0
-_080DF120: .4byte gBattleAnimPlayerMonIndex
+_080DF120: .4byte gBattleAnimBankAttacker
_080DF124: .4byte 0x0000050b
_080DF128: .4byte REG_BLDCNT
_080DF12C:
@@ -42908,7 +42908,7 @@ sub_80DF1A4: @ 80DF1A4
mov r8, r0
mov r2, r8
strh r2, [r4, 0xA]
- ldr r5, _080DF240 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DF240 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -42965,7 +42965,7 @@ sub_80DF1A4: @ 80DF1A4
bx r0
.align 2, 0
_080DF23C: .4byte gTasks
-_080DF240: .4byte gBattleAnimPlayerMonIndex
+_080DF240: .4byte gBattleAnimBankAttacker
_080DF244: .4byte REG_BLDCNT
_080DF248: .4byte sub_80DF24C
thumb_func_end sub_80DF1A4
@@ -43022,7 +43022,7 @@ _080DF292:
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
- ldr r0, _080DF2FC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF2FC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
movs r1, 0
@@ -43056,7 +43056,7 @@ _080DF2E6:
.align 2, 0
_080DF2F4: .4byte gSpriteTemplate_83DAF80
_080DF2F8: .4byte gSprites
-_080DF2FC: .4byte gBattleAnimPlayerMonIndex
+_080DF2FC: .4byte gBattleAnimBankAttacker
_080DF300:
ldrh r0, [r4, 0xA]
adds r0, 0x1
@@ -43289,7 +43289,7 @@ sub_80DF49C: @ 80DF49C
orrs r1, r2
strb r1, [r3]
ldr r2, _080DF4E0 @ =gObjectBankIDs
- ldr r1, _080DF4E4 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080DF4E4 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
@@ -43318,7 +43318,7 @@ sub_80DF49C: @ 80DF49C
bx lr
.align 2, 0
_080DF4E0: .4byte gObjectBankIDs
-_080DF4E4: .4byte gBattleAnimPlayerMonIndex
+_080DF4E4: .4byte gBattleAnimBankAttacker
_080DF4E8: .4byte gBattleAnimArgs
_080DF4EC: .4byte sub_80DF4F4
_080DF4F0: .4byte gSprites
@@ -43415,7 +43415,7 @@ _080DF59C: .4byte move_anim_8074EE0
sub_80DF5A0: @ 80DF5A0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _080DF5E8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF5E8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43447,7 +43447,7 @@ sub_80DF5A0: @ 80DF5A0
adds r1, r2, 0
b _080DF5FA
.align 2, 0
-_080DF5E8: .4byte gBattleAnimPlayerMonIndex
+_080DF5E8: .4byte gBattleAnimBankAttacker
_080DF5EC: .4byte gBattleAnimArgs
_080DF5F0:
ldr r1, _080DF630 @ =gBattleAnimArgs
@@ -43476,7 +43476,7 @@ _080DF5FA:
strb r0, [r2]
ldr r1, _080DF634 @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080DF638 @ =sub_8078504
str r0, [r5, 0x1C]
pop {r4,r5}
@@ -43493,7 +43493,7 @@ sub_80DF63C: @ 80DF63C
push {r4,r5,lr}
adds r5, r0, 0
bl sub_8078650
- ldr r4, _080DF694 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DF694 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43506,7 +43506,7 @@ sub_80DF63C: @ 80DF63C
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, _080DF698 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF698 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -43530,8 +43530,8 @@ sub_80DF63C: @ 80DF63C
strh r0, [r5, 0x36]
b _080DF6CA
.align 2, 0
-_080DF694: .4byte gBattleAnimEnemyMonIndex
-_080DF698: .4byte gBattleAnimPlayerMonIndex
+_080DF694: .4byte gBattleAnimBankTarget
+_080DF698: .4byte gBattleAnimBankAttacker
_080DF69C: .4byte gBattleAnimArgs
_080DF6A0:
ldr r1, _080DF6E4 @ =gBattleAnimArgs
@@ -43562,7 +43562,7 @@ _080DF6CA:
str r0, [r5, 0x1C]
ldr r1, _080DF6EC @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -43581,13 +43581,13 @@ sub_80DF6F0: @ 80DF6F0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080DF70C
- ldr r4, _080DF708 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF708 @ =gBattleAnimBankAttacker
b _080DF70E
.align 2, 0
_080DF704: .4byte gBattleAnimArgs
-_080DF708: .4byte gBattleAnimPlayerMonIndex
+_080DF708: .4byte gBattleAnimBankAttacker
_080DF70C:
- ldr r4, _080DF750 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080DF750 @ =gBattleAnimBankTarget
_080DF70E:
ldrb r0, [r4]
movs r1, 0
@@ -43614,12 +43614,12 @@ _080DF70E:
str r0, [r5, 0x1C]
ldr r1, _080DF75C @ =move_anim_8074EE0
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_080DF750: .4byte gBattleAnimEnemyMonIndex
+_080DF750: .4byte gBattleAnimBankTarget
_080DF754: .4byte gBattleAnimArgs
_080DF758: .4byte sub_8078600
_080DF75C: .4byte move_anim_8074EE0
@@ -43629,7 +43629,7 @@ _080DF75C: .4byte move_anim_8074EE0
sub_80DF760: @ 80DF760
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080DF788 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF788 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -43645,14 +43645,14 @@ _080DF77A:
pop {r0}
bx r0
.align 2, 0
-_080DF788: .4byte gBattleAnimPlayerMonIndex
+_080DF788: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80DF760
thumb_func_start sub_80DF78C
sub_80DF78C: @ 80DF78C
push {r4-r7,lr}
adds r6, r0, 0
- ldr r4, _080DF7E0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080DF7E0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -43688,7 +43688,7 @@ sub_80DF78C: @ 80DF78C
lsrs r0, r7, 17
b _080DF7EE
.align 2, 0
-_080DF7E0: .4byte gBattleAnimPlayerMonIndex
+_080DF7E0: .4byte gBattleAnimBankAttacker
_080DF7E4: .4byte gBattleAnimArgs
_080DF7E8: .4byte gBankAttacker
_080DF7EC:
@@ -43864,7 +43864,7 @@ sub_80DF924: @ 80DF924
lsls r1, 3
ldr r0, _080DF950 @ =gTasks
adds r4, r1, r0
- ldr r0, _080DF954 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF954 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -43877,7 +43877,7 @@ sub_80DF924: @ 80DF924
b _080DF966
.align 2, 0
_080DF950: .4byte gTasks
-_080DF954: .4byte gBattleAnimPlayerMonIndex
+_080DF954: .4byte gBattleAnimBankAttacker
_080DF958: .4byte REG_BG1HOFS
_080DF95C: .4byte gUnknown_030042C0
_080DF960:
@@ -43895,7 +43895,7 @@ _080DF966:
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
- ldr r0, _080DF9E8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DF9E8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -43948,7 +43948,7 @@ _080DF9C4:
_080DF9DC: .4byte REG_BG2HOFS
_080DF9E0: .4byte gUnknown_03004288
_080DF9E4: .4byte 0xa2600001
-_080DF9E8: .4byte gBattleAnimPlayerMonIndex
+_080DF9E8: .4byte gBattleAnimBankAttacker
_080DF9EC: .4byte gUnknown_03004DE0
_080DF9F0: .4byte sub_80DF9F4
thumb_func_end sub_80DF924
@@ -44128,7 +44128,7 @@ sub_80DFB28: @ 80DFB28
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
- ldr r1, _080DFBCC @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080DFBCC @ =gBattleAnimBankAttacker
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
@@ -44194,7 +44194,7 @@ _080DFBB0:
bx r0
.align 2, 0
_080DFBC8: .4byte gBattleAnimArgs
-_080DFBCC: .4byte gBattleAnimPlayerMonIndex
+_080DFBCC: .4byte gBattleAnimBankAttacker
_080DFBD0: .4byte sub_80DFBD8
_080DFBD4: .4byte gUnknown_03000730
thumb_func_end sub_80DFB28
@@ -44251,7 +44251,7 @@ sub_80DFC24: @ 80DFC24
ldr r0, _080DFC5C @ =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r1, 0x8]
- ldr r0, _080DFC60 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFC60 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r2, 0x10
strh r2, [r1, 0xA]
@@ -44268,7 +44268,7 @@ sub_80DFC24: @ 80DFC24
.align 2, 0
_080DFC58: .4byte gTasks
_080DFC5C: .4byte gBattleAnimArgs
-_080DFC60: .4byte gBattleAnimPlayerMonIndex
+_080DFC60: .4byte gBattleAnimBankAttacker
_080DFC64: .4byte REG_BLDALPHA
_080DFC68: .4byte REG_BLDCNT
_080DFC6C: .4byte 0x00003f42
@@ -44331,7 +44331,7 @@ sub_80DFC9C: @ 80DFC9C
bne _080DFD1E
ldr r2, _080DFD0C @ =gSprites
ldr r1, _080DFD10 @ =gObjectBankIDs
- ldr r0, _080DFD14 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFD14 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -44352,7 +44352,7 @@ _080DFD04: .4byte gTasks
_080DFD08: .4byte REG_BLDALPHA
_080DFD0C: .4byte gSprites
_080DFD10: .4byte gObjectBankIDs
-_080DFD14: .4byte gBattleAnimPlayerMonIndex
+_080DFD14: .4byte gBattleAnimBankAttacker
_080DFD18:
ldrh r0, [r4, 0xC]
adds r0, 0x1
@@ -44454,7 +44454,7 @@ sub_80DFDC0: @ 80DFDC0
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _080DFDEC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFDEC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -44466,7 +44466,7 @@ sub_80DFDC0: @ 80DFDC0
b _080DFDFC
.align 2, 0
_080DFDE8: .4byte REG_BLDALPHA
-_080DFDEC: .4byte gBattleAnimPlayerMonIndex
+_080DFDEC: .4byte gBattleAnimBankAttacker
_080DFDF0: .4byte REG_BLDCNT
_080DFDF4: .4byte 0x00003f42
_080DFDF8:
@@ -44489,14 +44489,14 @@ _080DFE10: .4byte 0x00003f44
sub_80DFE14: @ 80DFE14
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, _080DFE80 @ =gBattleAnimEnemyMonIndex
+ ldr r6, _080DFE80 @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
- ldr r5, _080DFE84 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080DFE84 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -44535,8 +44535,8 @@ sub_80DFE14: @ 80DFE14
pop {r0}
bx r0
.align 2, 0
-_080DFE80: .4byte gBattleAnimEnemyMonIndex
-_080DFE84: .4byte gBattleAnimPlayerMonIndex
+_080DFE80: .4byte gBattleAnimBankTarget
+_080DFE84: .4byte gBattleAnimBankAttacker
_080DFE88: .4byte 0x0000ffd8
_080DFE8C: .4byte sub_80DFE90
thumb_func_end sub_80DFE14
@@ -44724,13 +44724,13 @@ sub_80DFFD0: @ 80DFFD0
adds r3, r0, 0
cmp r1, 0
bne _080DFFEC
- ldr r0, _080DFFE8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080DFFE8 @ =gBattleAnimBankAttacker
b _080DFFEE
.align 2, 0
_080DFFE4: .4byte gBattleAnimArgs
-_080DFFE8: .4byte gBattleAnimPlayerMonIndex
+_080DFFE8: .4byte gBattleAnimBankAttacker
_080DFFEC:
- ldr r0, _080E001C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E001C @ =gBattleAnimBankTarget
_080DFFEE:
ldrb r5, [r0]
movs r6, 0x14
@@ -44755,7 +44755,7 @@ _080DFFEE:
beq _080E0032
b _080E00A0
.align 2, 0
-_080E001C: .4byte gBattleAnimEnemyMonIndex
+_080E001C: .4byte gBattleAnimBankTarget
_080E0020: .4byte 0x000003ff
_080E0024: .4byte 0xfffffc00
_080E0028:
@@ -44867,7 +44867,7 @@ sub_80E00EC: @ 80E00EC
lsls r1, 3
ldr r0, _080E0150 @ =gTasks
adds r5, r1, r0
- ldr r4, _080E0154 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0154 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -44906,13 +44906,13 @@ sub_80E00EC: @ 80E00EC
b _080E015E
.align 2, 0
_080E0150: .4byte gTasks
-_080E0154: .4byte gBattleAnimPlayerMonIndex
+_080E0154: .4byte gBattleAnimBankAttacker
_080E0158: .4byte 0x0000fff4
_080E015C:
ldr r0, _080E01A8 @ =0x0000ffc0
_080E015E:
strh r0, [r5, 0x18]
- ldr r0, _080E01AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E01AC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -44946,7 +44946,7 @@ _080E015E:
b _080E01EE
.align 2, 0
_080E01A8: .4byte 0x0000ffc0
-_080E01AC: .4byte gBattleAnimPlayerMonIndex
+_080E01AC: .4byte gBattleAnimBankAttacker
_080E01B0: .4byte gUnknown_030041B4
_080E01B4: .4byte REG_BLDCNT
_080E01B8: .4byte 0x00003f42
@@ -45260,7 +45260,7 @@ _080E0430: .4byte gUnknown_03004240
_080E0434: .4byte REG_WININ
_080E0438: .4byte 0x00003f3f
_080E043C:
- ldr r0, _080E045C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E045C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45275,7 +45275,7 @@ _080E043C:
ldr r1, _080E0468 @ =gUnknown_03004288
b _080E0476
.align 2, 0
-_080E045C: .4byte gBattleAnimEnemyMonIndex
+_080E045C: .4byte gBattleAnimBankTarget
_080E0460: .4byte REG_BLDCNT
_080E0464: .4byte 0x00003f42
_080E0468: .4byte gUnknown_03004288
@@ -45328,7 +45328,7 @@ _080E04C4:
.align 2, 0
_080E04CC: .4byte gUnknown_03004280
_080E04D0:
- ldr r4, _080E051C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080E051C @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_8077ABC
@@ -45363,7 +45363,7 @@ _080E04D0:
ldr r0, _080E0520 @ =0x0000fff4
b _080E0526
.align 2, 0
-_080E051C: .4byte gBattleAnimEnemyMonIndex
+_080E051C: .4byte gBattleAnimBankTarget
_080E0520: .4byte 0x0000fff4
_080E0524:
ldr r0, _080E0538 @ =0x0000ffc0
@@ -45865,7 +45865,7 @@ sub_80E08CC: @ 80E08CC
_080E08E2:
lsls r0, r4, 24
lsrs r0, 24
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -45901,7 +45901,7 @@ sub_80E0918: @ 80E0918
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r6, _080E09B8 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _080E09B8 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45935,7 +45935,7 @@ sub_80E0918: @ 80E0918
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E09A2
@@ -45969,7 +45969,7 @@ _080E09A2:
pop {r0}
bx r0
.align 2, 0
-_080E09B8: .4byte gBattleAnimPlayerMonIndex
+_080E09B8: .4byte gBattleAnimBankAttacker
_080E09BC: .4byte gSprites
_080E09C0: .4byte gObjectBankIDs
thumb_func_end sub_80E0918
@@ -45979,7 +45979,7 @@ sub_80E09C4: @ 80E09C4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, _080E0A0C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0A0C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -45994,7 +45994,7 @@ sub_80E09C4: @ 80E09C4
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E0A00
@@ -46009,7 +46009,7 @@ _080E0A00:
pop {r0}
bx r0
.align 2, 0
-_080E0A0C: .4byte gBattleAnimPlayerMonIndex
+_080E0A0C: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E09C4
thumb_func_start sub_80E0A10
@@ -46032,7 +46032,7 @@ sub_80E0A10: @ 80E0A10
str r0, [r4, 0x1C]
ldr r1, _080E0A48 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4}
pop {r0}
bx r0
@@ -46112,7 +46112,7 @@ _080E0AC4:
lsls r0, 24
cmp r0, 0
bne _080E0B40
- ldr r4, _080E0B74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0B74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankIdentity
lsls r0, 24
@@ -46128,7 +46128,7 @@ _080E0AF4:
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -46180,12 +46180,12 @@ _080E0B64: .4byte REG_BLDCNT
_080E0B68: .4byte 0x00003f42
_080E0B6C: .4byte 0x00000c08
_080E0B70: .4byte REG_BG1CNT
-_080E0B74: .4byte gBattleAnimPlayerMonIndex
+_080E0B74: .4byte gBattleAnimBankAttacker
_080E0B78: .4byte gSprites
_080E0B7C: .4byte gObjectBankIDs
_080E0B80: .4byte 0x02019348
_080E0B84:
- ldr r4, _080E0BA4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0BA4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -46201,7 +46201,7 @@ _080E0B84:
ldr r1, _080E0BAC @ =gEnemyParty
b _080E0BC0
.align 2, 0
-_080E0BA4: .4byte gBattleAnimPlayerMonIndex
+_080E0BA4: .4byte gBattleAnimBankAttacker
_080E0BA8: .4byte gBattlePartyID
_080E0BAC: .4byte gEnemyParty
_080E0BB0:
@@ -46221,11 +46221,11 @@ _080E0BC0:
lsrs r5, r0, 16
_080E0BCC:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E0C60 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E0C60 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -46286,7 +46286,7 @@ _080E0BCC:
.align 2, 0
_080E0C58: .4byte gBattlePartyID
_080E0C5C: .4byte gPlayerParty
-_080E0C60: .4byte gBattleAnimPlayerMonIndex
+_080E0C60: .4byte gBattleAnimBankAttacker
_080E0C64: .4byte 0x040000d4
_080E0C68: .4byte 0x85000400
_080E0C6C: .4byte gUnknown_08D1D574
@@ -46403,7 +46403,7 @@ _080E0D40:
adds r0, 0x2
strh r5, [r0]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r6, _080E0E10 @ =gSprites
@@ -46446,7 +46446,7 @@ _080E0D84:
cmp r0, 0x1
bne _080E0DE2
ldr r2, _080E0E1C @ =gObjectBankIDs
- ldr r0, _080E0E20 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E0E20 @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -46489,7 +46489,7 @@ _080E0E10: .4byte gSprites
_080E0E14: .4byte 0x040000d4
_080E0E18: .4byte 0x85000200
_080E0E1C: .4byte gObjectBankIDs
-_080E0E20: .4byte gBattleAnimPlayerMonIndex
+_080E0E20: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E0CD0
thumb_func_start sub_80E0E24
@@ -46524,7 +46524,7 @@ _080E0E4C:
.4byte _080E0E84
_080E0E6C:
ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _080E0E8A
@@ -46552,7 +46552,7 @@ _080E0E90:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E0EB4
@@ -46622,7 +46622,7 @@ _080E0F18: .4byte gBattleAnimArgs
sub_80E0F1C: @ 80E0F1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _080E0F74 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E0F74 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46637,7 +46637,7 @@ sub_80E0F1C: @ 80E0F1C
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, _080E0F78 @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080E0F78 @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46660,8 +46660,8 @@ sub_80E0F1C: @ 80E0F1C
pop {r0}
bx r0
.align 2, 0
-_080E0F74: .4byte gBattleAnimPlayerMonIndex
-_080E0F78: .4byte gBattleAnimEnemyMonIndex
+_080E0F74: .4byte gBattleAnimBankAttacker
+_080E0F78: .4byte gBattleAnimBankTarget
_080E0F7C: .4byte 0x0000ffd8
_080E0F80: .4byte sub_80E0F84
thumb_func_end sub_80E0F1C
@@ -46687,7 +46687,7 @@ sub_80E0F84: @ 80E0F84
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _080E0FE0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E0FE0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46711,7 +46711,7 @@ _080E0FD8:
pop {r0}
bx r0
.align 2, 0
-_080E0FE0: .4byte gBattleAnimPlayerMonIndex
+_080E0FE0: .4byte gBattleAnimBankAttacker
_080E0FE4: .4byte sub_80E0FE8
thumb_func_end sub_80E0F84
@@ -46737,7 +46737,7 @@ sub_80E1004: @ 80E1004
adds r6, r0, 0
movs r1, 0x1
bl sub_8078764
- ldr r0, _080E1064 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1064 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -46751,7 +46751,7 @@ _080E1024:
ldr r4, _080E1068 @ =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, _080E106C @ =gBattleAnimEnemyMonIndex
+ ldr r5, _080E106C @ =gBattleAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -46772,14 +46772,14 @@ _080E1024:
str r0, [r6, 0x1C]
ldr r1, _080E1074 @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
-_080E1064: .4byte gBattleAnimPlayerMonIndex
+_080E1064: .4byte gBattleAnimBankAttacker
_080E1068: .4byte gBattleAnimArgs
-_080E106C: .4byte gBattleAnimEnemyMonIndex
+_080E106C: .4byte gBattleAnimBankTarget
_080E1070: .4byte sub_8078B34
_080E1074: .4byte move_anim_8072740
thumb_func_end sub_80E1004
@@ -46792,7 +46792,7 @@ sub_80E1078: @ 80E1078
adds r6, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r4, _080E10F8 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _080E10F8 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077EE4
@@ -46839,14 +46839,14 @@ _080E10D0:
str r0, [r6, 0x1C]
ldr r1, _080E1104 @ =move_anim_8074EE0
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_080E10F8: .4byte gBattleAnimEnemyMonIndex
+_080E10F8: .4byte gBattleAnimBankTarget
_080E10FC: .4byte gBattleAnimArgs
_080E1100: .4byte sub_8078B34
_080E1104: .4byte move_anim_8074EE0
@@ -46872,7 +46872,7 @@ sub_80E1108: @ 80E1108
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080E117C
- ldr r4, _080E1174 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E1174 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -46905,7 +46905,7 @@ _080E1162:
_080E1168: .4byte 0x000003ff
_080E116C: .4byte 0xfffffc00
_080E1170: .4byte gBattleAnimArgs
-_080E1174: .4byte gBattleAnimPlayerMonIndex
+_080E1174: .4byte gBattleAnimBankAttacker
_080E1178: .4byte sub_80E1198
_080E117C:
ldrh r0, [r6, 0x2]
@@ -47086,11 +47086,11 @@ _080E12B0:
.4byte _080E1414
_080E12C4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E12EC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E12EC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47104,7 +47104,7 @@ _080E12C4:
ldr r0, _080E12F4 @ =gUnknown_030041B4
b _080E1300
.align 2, 0
-_080E12EC: .4byte gBattleAnimPlayerMonIndex
+_080E12EC: .4byte gBattleAnimBankAttacker
_080E12F0: .4byte gUnknown_030042C0
_080E12F4: .4byte gUnknown_030041B4
_080E12F8:
@@ -47115,7 +47115,7 @@ _080E12F8:
_080E1300:
ldrh r0, [r0]
strh r0, [r4, 0x22]
- ldr r0, _080E1344 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1344 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47146,7 +47146,7 @@ _080E1322:
.align 2, 0
_080E133C: .4byte gUnknown_03004288
_080E1340: .4byte gUnknown_03004280
-_080E1344: .4byte gBattleAnimPlayerMonIndex
+_080E1344: .4byte gBattleAnimBankAttacker
_080E1348: .4byte gSprites
_080E134C:
ldrb r0, [r4, 0x1E]
@@ -47281,7 +47281,7 @@ sub_80E143C: @ 80E143C
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _080E147C @ =gSprites
@@ -47298,7 +47298,7 @@ sub_80E143C: @ 80E143C
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
- ldr r0, _080E1480 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1480 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47309,7 +47309,7 @@ sub_80E143C: @ 80E143C
b _080E148A
.align 2, 0
_080E147C: .4byte gSprites
-_080E1480: .4byte gBattleAnimPlayerMonIndex
+_080E1480: .4byte gBattleAnimBankAttacker
_080E1484: .4byte gUnknown_030041B4
_080E1488:
ldr r0, _080E1498 @ =gUnknown_03004280
@@ -47379,7 +47379,7 @@ sub_80E14DC: @ 80E14DC
_080E14FC: .4byte gTasks
_080E1500:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -47459,11 +47459,11 @@ _080E158C:
.4byte _080E165C
_080E15A0:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, _080E15C4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E15C4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -47474,14 +47474,14 @@ _080E15A0:
ldr r0, _080E15C8 @ =gUnknown_030042C0
b _080E15CE
.align 2, 0
-_080E15C4: .4byte gBattleAnimPlayerMonIndex
+_080E15C4: .4byte gBattleAnimBankAttacker
_080E15C8: .4byte gUnknown_030042C0
_080E15CC:
ldr r0, _080E15EC @ =gUnknown_03004288
_080E15CE:
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, _080E15F0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E15F0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8077FC0
lsls r0, 24
@@ -47494,7 +47494,7 @@ _080E15CE:
b _080E164A
.align 2, 0
_080E15EC: .4byte gUnknown_03004288
-_080E15F0: .4byte gBattleAnimPlayerMonIndex
+_080E15F0: .4byte gBattleAnimBankAttacker
_080E15F4:
ldrb r0, [r4, 0x1E]
movs r1, 0x26
@@ -47668,13 +47668,13 @@ sub_80E1728: @ 80E1728
adds r7, r0, 0
cmp r1, 0
bne _080E1744
- ldr r0, _080E1740 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1740 @ =gBattleAnimBankAttacker
b _080E1746
.align 2, 0
_080E173C: .4byte gBattleAnimArgs
-_080E1740: .4byte gBattleAnimPlayerMonIndex
+_080E1740: .4byte gBattleAnimBankAttacker
_080E1744:
- ldr r0, _080E17A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E17A8 @ =gBattleAnimBankTarget
_080E1746:
ldrb r4, [r0]
movs r6, 0x18
@@ -47723,7 +47723,7 @@ _080E1762:
pop {r0}
bx r0
.align 2, 0
-_080E17A8: .4byte gBattleAnimEnemyMonIndex
+_080E17A8: .4byte gBattleAnimBankTarget
_080E17AC: .4byte sub_80E17B0
thumb_func_end sub_80E1728
@@ -47752,13 +47752,13 @@ sub_80E17CC: @ 80E17CC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080E17E8
- ldr r0, _080E17E4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E17E4 @ =gBattleAnimBankAttacker
b _080E17EA
.align 2, 0
_080E17E0: .4byte gBattleAnimArgs
-_080E17E4: .4byte gBattleAnimPlayerMonIndex
+_080E17E4: .4byte gBattleAnimBankAttacker
_080E17E8:
- ldr r0, _080E1848 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E1848 @ =gBattleAnimBankTarget
_080E17EA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -47796,7 +47796,7 @@ _080E17EA:
strh r0, [r6, 0x4]
ldr r1, _080E185C @ =move_anim_8072740
adds r0, r6, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
strh r0, [r6, 0x2E]
ldr r0, _080E1860 @ =sub_80782D8
@@ -47805,7 +47805,7 @@ _080E17EA:
pop {r0}
bx r0
.align 2, 0
-_080E1848: .4byte gBattleAnimEnemyMonIndex
+_080E1848: .4byte gBattleAnimBankTarget
_080E184C: .4byte 0x0000fff0
_080E1850: .4byte gBattleAnimArgs
_080E1854: .4byte 0x000003ff
@@ -47870,7 +47870,7 @@ _080E18C8:
_080E18CE:
lsls r0, r5, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E18F8
@@ -47899,7 +47899,7 @@ _080E18F8:
_080E1904: .4byte gObjectBankIDs
_080E1908:
ldrb r0, [r6]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
@@ -48282,13 +48282,13 @@ sub_80E1BB0: @ 80E1BB0
adds r6, r2, 0
cmp r0, 0
beq _080E1BD0
- ldr r0, _080E1BCC @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E1BCC @ =gBattleAnimBankTarget
b _080E1BD2
.align 2, 0
_080E1BC8: .4byte gBattleAnimArgs
-_080E1BCC: .4byte gBattleAnimEnemyMonIndex
+_080E1BCC: .4byte gBattleAnimBankTarget
_080E1BD0:
- ldr r0, _080E1C40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1C40 @ =gBattleAnimBankAttacker
_080E1BD2:
ldrb r0, [r0]
adds r5, r0, 0
@@ -48343,7 +48343,7 @@ _080E1BE2:
pop {r0}
bx r0
.align 2, 0
-_080E1C40: .4byte gBattleAnimPlayerMonIndex
+_080E1C40: .4byte gBattleAnimBankAttacker
_080E1C44: .4byte sub_80E1C58
_080E1C48: .4byte gTasks
_080E1C4C: .4byte 0x000001ff
@@ -48412,7 +48412,7 @@ sub_80E1CB4: @ 80E1CB4
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, _080E1CF0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E1CF0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -48427,7 +48427,7 @@ sub_80E1CB4: @ 80E1CB4
b _080E1D02
.align 2, 0
_080E1CEC: .4byte gBattleAnimArgs
-_080E1CF0: .4byte gBattleAnimPlayerMonIndex
+_080E1CF0: .4byte gBattleAnimBankAttacker
_080E1CF4:
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
@@ -48763,7 +48763,7 @@ sub_80E1F3C: @ 80E1F3C
strh r2, [r4, 0x38]
ldr r1, _080E1F84 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _080E1F88 @ =sub_8078174
str r1, [r4, 0x1C]
adds r0, r4, 0
@@ -49265,9 +49265,9 @@ sub_80E2324: @ 80E2324
lsrs r0, 24
mov r8, r0
movs r2, 0
- ldr r0, _080E239C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E239C @ =gBattleAnimBankAttacker
ldrb r6, [r0]
- ldr r0, _080E23A0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E23A0 @ =gBattleAnimBankTarget
ldrb r7, [r0]
ldr r4, _080E23A4 @ =gBattleAnimArgs
ldrh r1, [r4]
@@ -49317,8 +49317,8 @@ _080E2382:
pop {r0}
bx r0
.align 2, 0
-_080E239C: .4byte gBattleAnimPlayerMonIndex
-_080E23A0: .4byte gBattleAnimEnemyMonIndex
+_080E239C: .4byte gBattleAnimBankAttacker
+_080E23A0: .4byte gBattleAnimBankTarget
_080E23A4: .4byte gBattleAnimArgs
thumb_func_end sub_80E2324
@@ -49361,10 +49361,10 @@ _080E23EA:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, _080E24A4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E24A4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
mov r9, r0
- ldr r0, _080E24A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E24A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
@@ -49451,8 +49451,8 @@ _080E248E:
.align 2, 0
_080E249C: .4byte gTasks
_080E24A0: .4byte gBattleAnimArgs
-_080E24A4: .4byte gBattleAnimPlayerMonIndex
-_080E24A8: .4byte gBattleAnimEnemyMonIndex
+_080E24A4: .4byte gBattleAnimBankAttacker
+_080E24A8: .4byte gBattleAnimBankTarget
_080E24AC: .4byte 0x0000ffff
_080E24B0: .4byte gSprites
_080E24B4: .4byte gHealthboxIDs
@@ -49506,14 +49506,14 @@ _080E2508:
ldr r1, _080E2514 @ =gSpriteCoordOffsetX
_080E250A:
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
b _080E2520
.align 2, 0
_080E2514: .4byte gSpriteCoordOffsetX
_080E2518:
ldr r1, _080E2550 @ =gSpriteCoordOffsetY
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_080E2520:
movs r0, 0x3A
ldrsh r1, [r4, r0]
@@ -49643,7 +49643,7 @@ sub_80E260C: @ 80E260C
push {r4-r6,lr}
ldr r6, _080E2680 @ =gSprites
ldr r4, _080E2684 @ =gObjectBankIDs
- ldr r5, _080E2688 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E2688 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -49658,7 +49658,7 @@ sub_80E260C: @ 80E260C
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
- ldr r3, _080E268C @ =gBattleAnimEnemyMonIndex
+ ldr r3, _080E268C @ =gBattleAnimBankTarget
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
@@ -49700,8 +49700,8 @@ sub_80E260C: @ 80E260C
.align 2, 0
_080E2680: .4byte gSprites
_080E2684: .4byte gObjectBankIDs
-_080E2688: .4byte gBattleAnimPlayerMonIndex
-_080E268C: .4byte gBattleAnimEnemyMonIndex
+_080E2688: .4byte gBattleAnimBankAttacker
+_080E268C: .4byte gBattleAnimBankTarget
_080E2690: .4byte gBattleAnimArgs
_080E2694:
cmp r0, 0
@@ -49874,7 +49874,7 @@ _080E27CC:
str r0, [r5, 0x1C]
ldr r1, _080E27E4 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -49912,7 +49912,7 @@ _080E2814:
str r0, [r5, 0x1C]
ldr r1, _080E2834 @ =sub_80DA48C
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -49926,7 +49926,7 @@ _080E2834: .4byte sub_80DA48C
sub_80E2838: @ 80E2838
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080E2868 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2868 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -49947,7 +49947,7 @@ _080E285C:
pop {r0}
bx r0
.align 2, 0
-_080E2868: .4byte gBattleAnimPlayerMonIndex
+_080E2868: .4byte gBattleAnimBankAttacker
_080E286C: .4byte gBattleAnimArgs
thumb_func_end sub_80E2838
@@ -50007,7 +50007,7 @@ _080E28B4:
strh r0, [r4, 0x26]
ldr r1, _080E2900 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E2904 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -50026,7 +50026,7 @@ sub_80E2908: @ 80E2908
adds r4, r0, 0
ldr r5, _080E2968 @ =gBattleAnimArgs
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
@@ -50060,7 +50060,7 @@ sub_80E2908: @ 80E2908
bl StartSpriteAffineAnim
ldr r1, _080E2970 @ =move_anim_8074EE0
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E2974 @ =sub_80785E4
str r0, [r4, 0x1C]
pop {r4,r5}
@@ -50098,7 +50098,7 @@ _080E299C:
strh r0, [r4, 0x2E]
ldr r1, _080E29B8 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _080E29BC @ =sub_80782D8
str r0, [r4, 0x1C]
pop {r4}
@@ -50247,33 +50247,33 @@ _080E2AD0:
movs r5, 0
_080E2AD2:
mov r0, sp
- ldr r1, _080E2AD8 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E2AD8 @ =gBattleAnimBankAttacker
b _080E2AE2
.align 2, 0
-_080E2AD8: .4byte gBattleAnimPlayerMonIndex
+_080E2AD8: .4byte gBattleAnimBankAttacker
_080E2ADC:
movs r5, 0
_080E2ADE:
mov r0, sp
- ldr r1, _080E2AE8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E2AE8 @ =gBattleAnimBankTarget
_080E2AE2:
ldrb r1, [r1]
strb r1, [r0]
b _080E2B26
.align 2, 0
-_080E2AE8: .4byte gBattleAnimEnemyMonIndex
+_080E2AE8: .4byte gBattleAnimBankTarget
_080E2AEC:
mov r1, sp
- ldr r0, _080E2AFC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2AFC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, _080E2B00 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E2B00 @ =gBattleAnimBankTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _080E2B26
.align 2, 0
-_080E2AFC: .4byte gBattleAnimPlayerMonIndex
-_080E2B00: .4byte gBattleAnimEnemyMonIndex
+_080E2AFC: .4byte gBattleAnimBankAttacker
+_080E2B00: .4byte gBattleAnimBankTarget
_080E2B04:
mov r1, sp
movs r0, 0xFF
@@ -50282,14 +50282,14 @@ _080E2B04:
_080E2B0C:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B14 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E2B14 @ =gBattleAnimBankAttacker
b _080E2B1E
.align 2, 0
-_080E2B14: .4byte gBattleAnimPlayerMonIndex
+_080E2B14: .4byte gBattleAnimBankAttacker
_080E2B18:
movs r5, 0
mov r2, sp
- ldr r0, _080E2B70 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E2B70 @ =gBattleAnimBankTarget
_080E2B1E:
ldrb r0, [r0]
movs r1, 0x2
@@ -50306,7 +50306,7 @@ _080E2B2A:
cmp r4, r0
beq _080E2B54
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E2B54
@@ -50332,7 +50332,7 @@ _080E2B54:
pop {r0}
bx r0
.align 2, 0
-_080E2B70: .4byte gBattleAnimEnemyMonIndex
+_080E2B70: .4byte gBattleAnimBankTarget
thumb_func_end sub_80E2A7C
thumb_func_start sub_80E2B74
@@ -50900,7 +50900,7 @@ _080E2FAC:
lsls r0, 24
cmp r0, 0
bne _080E3028
- ldr r5, _080E305C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _080E305C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankIdentity
lsls r0, 24
@@ -50916,7 +50916,7 @@ _080E2FDC:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -50968,12 +50968,12 @@ _080E304C: .4byte REG_BLDCNT
_080E3050: .4byte 0x00003f42
_080E3054: .4byte 0x00000c08
_080E3058: .4byte REG_BG1CNT
-_080E305C: .4byte gBattleAnimPlayerMonIndex
+_080E305C: .4byte gBattleAnimBankAttacker
_080E3060: .4byte gSprites
_080E3064: .4byte gObjectBankIDs
_080E3068: .4byte 0x02019348
_080E306C:
- ldr r4, _080E308C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _080E308C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -50989,7 +50989,7 @@ _080E306C:
ldr r1, _080E3094 @ =gEnemyParty
b _080E30A8
.align 2, 0
-_080E308C: .4byte gBattleAnimPlayerMonIndex
+_080E308C: .4byte gBattleAnimBankAttacker
_080E3090: .4byte gBattlePartyID
_080E3094: .4byte gEnemyParty
_080E3098:
@@ -51009,10 +51009,10 @@ _080E30A8:
lsrs r4, r0, 16
_080E30B4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E3168 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3168 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r1, r5, 0
adds r2, r4, 0
@@ -51089,7 +51089,7 @@ _080E3106:
.align 2, 0
_080E3160: .4byte gBattlePartyID
_080E3164: .4byte gPlayerParty
-_080E3168: .4byte gBattleAnimPlayerMonIndex
+_080E3168: .4byte gBattleAnimBankAttacker
_080E316C: .4byte 0x040000d4
_080E3170: .4byte 0x85000400
_080E3174: .4byte gUnknown_08D20A30
@@ -51174,7 +51174,7 @@ _080E3208:
adds r0, 0x2
strh r5, [r0]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r0, _080E32CC @ =gSprites
mov r8, r0
movs r2, 0x8
@@ -51200,7 +51200,7 @@ _080E3208:
cmp r0, 0x1
bne _080E3288
ldr r2, _080E32D8 @ =gObjectBankIDs
- ldr r0, _080E32DC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E32DC @ =gBattleAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -51253,7 +51253,7 @@ _080E32CC: .4byte gSprites
_080E32D0: .4byte 0x040000d4
_080E32D4: .4byte 0x85000200
_080E32D8: .4byte gObjectBankIDs
-_080E32DC: .4byte gBattleAnimPlayerMonIndex
+_080E32DC: .4byte gBattleAnimBankAttacker
thumb_func_end sub_80E3194
thumb_func_start sub_80E32E0
@@ -51344,13 +51344,13 @@ _080E336C:
ldrsh r0, [r7, r1]
cmp r0, 0
bne _080E3390
- ldr r0, _080E338C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E338C @ =gBattleAnimBankAttacker
b _080E3392
.align 2, 0
_080E3388: .4byte gTasks
-_080E338C: .4byte gBattleAnimPlayerMonIndex
+_080E338C: .4byte gBattleAnimBankAttacker
_080E3390:
- ldr r0, _080E34B4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E34B4 @ =gBattleAnimBankTarget
_080E3392:
ldrb r5, [r0]
movs r0, 0x2
@@ -51367,7 +51367,7 @@ _080E3392:
cmp r0, 0
beq _080E33C0
mov r0, r8
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080E33C0
@@ -51453,7 +51453,7 @@ _080E3432:
bne _080E34A4
_080E345E:
mov r0, r8
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -51495,7 +51495,7 @@ _080E34A4:
ldrh r4, [r0]
b _080E3522
.align 2, 0
-_080E34B4: .4byte gBattleAnimEnemyMonIndex
+_080E34B4: .4byte gBattleAnimBankTarget
_080E34B8: .4byte gUnknown_030042C4
_080E34BC: .4byte gUnknown_03004240
_080E34C0: .4byte REG_WININ
@@ -52181,7 +52181,7 @@ sub_80E3A08: @ 80E3A08
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
- ldr r0, _080E3A50 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3A50 @ =gBattleAnimBankAttacker
ldrb r3, [r0]
movs r5, 0x1
_080E3A18:
@@ -52214,7 +52214,7 @@ _080E3A34:
pop {r0}
bx r0
.align 2, 0
-_080E3A50: .4byte gBattleAnimPlayerMonIndex
+_080E3A50: .4byte gBattleAnimBankAttacker
_080E3A54: .4byte gBattleAnimArgs
thumb_func_end sub_80E3A08
@@ -52235,7 +52235,7 @@ sub_80E3A58: @ 80E3A58
ldrsh r0, [r4, r1]
cmp r0, 0
beq _080E3A94
- ldr r0, _080E3AC8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3AC8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -52271,7 +52271,7 @@ _080E3A94:
.align 2, 0
_080E3AC0: .4byte sub_80E3AD0
_080E3AC4: .4byte gBattleAnimArgs
-_080E3AC8: .4byte gBattleAnimPlayerMonIndex
+_080E3AC8: .4byte gBattleAnimBankAttacker
_080E3ACC: .4byte gTasks
thumb_func_end sub_80E3A58
@@ -52343,7 +52343,7 @@ sub_80E3B4C: @ 80E3B4C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3B70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
ldr r1, _080E3B74 @ =gBattleAnimArgs
@@ -52356,7 +52356,7 @@ sub_80E3B4C: @ 80E3B4C
pop {r0}
bx r0
.align 2, 0
-_080E3B70: .4byte gBattleAnimPlayerMonIndex
+_080E3B70: .4byte gBattleAnimBankAttacker
_080E3B74: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B4C
@@ -52366,7 +52366,7 @@ sub_80E3B78: @ 80E3B78
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080E3B9C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E3B9C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
ldr r1, _080E3BA0 @ =gBattleAnimArgs
@@ -52379,7 +52379,7 @@ sub_80E3B78: @ 80E3B78
pop {r0}
bx r0
.align 2, 0
-_080E3B9C: .4byte gBattleAnimEnemyMonIndex
+_080E3B9C: .4byte gBattleAnimBankTarget
_080E3BA0: .4byte gBattleAnimArgs
thumb_func_end sub_80E3B78
@@ -52390,10 +52390,10 @@ sub_80E3BA4: @ 80E3BA4
lsrs r3, r0, 24
ldr r5, _080E3BD0 @ =gBattleAnimArgs
movs r4, 0
- ldr r0, _080E3BD4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3BD4 @ =gBattleAnimBankAttacker
ldrb r2, [r0]
movs r0, 0x2
- ldr r1, _080E3BD8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _080E3BD8 @ =gBattleAnimBankTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
@@ -52408,8 +52408,8 @@ _080E3BC0:
bx r0
.align 2, 0
_080E3BD0: .4byte gBattleAnimArgs
-_080E3BD4: .4byte gBattleAnimPlayerMonIndex
-_080E3BD8: .4byte gBattleAnimEnemyMonIndex
+_080E3BD4: .4byte gBattleAnimBankAttacker
+_080E3BD8: .4byte gBattleAnimBankTarget
thumb_func_end sub_80E3BA4
thumb_func_start sub_80E3BDC
@@ -52420,13 +52420,13 @@ sub_80E3BDC: @ 80E3BDC
movs r4, 0
ldr r6, _080E3C3C @ =gSprites
_080E3BE6:
- ldr r0, _080E3C40 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E3C40 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
cmp r4, r0
beq _080E3C24
lsls r0, r4, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080E3C24
@@ -52463,7 +52463,7 @@ _080E3C24:
bx r0
.align 2, 0
_080E3C3C: .4byte gSprites
-_080E3C40: .4byte gBattleAnimPlayerMonIndex
+_080E3C40: .4byte gBattleAnimBankAttacker
_080E3C44: .4byte gObjectBankIDs
_080E3C48: .4byte gBattleAnimArgs
thumb_func_end sub_80E3BDC
@@ -52513,7 +52513,7 @@ sub_80E3C4C: @ 80E3C4C
cmp r1, 0
beq _080E3CB2
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080E3CB2
@@ -52986,14 +52986,14 @@ _080E4068: .4byte gBattleAnimArgs
_080E406C:
cmp r0, 0x1
bne _080E4078
- ldr r0, _080E4074 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E4074 @ =gBattleAnimBankAttacker
b _080E407E
.align 2, 0
-_080E4074: .4byte gBattleAnimPlayerMonIndex
+_080E4074: .4byte gBattleAnimBankAttacker
_080E4078:
cmp r0, 0x2
bne _080E4084
- ldr r0, _080E409C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E409C @ =gBattleAnimBankTarget
_080E407E:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53010,7 +53010,7 @@ _080E4084:
ldr r0, _080E40A4 @ =0x02014800
b _080E40AA
.align 2, 0
-_080E409C: .4byte gBattleAnimEnemyMonIndex
+_080E409C: .4byte gBattleAnimBankTarget
_080E40A0: .4byte gBattleAnimArgs
_080E40A4: .4byte 0x02014800
_080E40A8:
@@ -53073,14 +53073,14 @@ _080E4110: .4byte gBattleAnimArgs
_080E4114:
cmp r0, 0x1
bne _080E4120
- ldr r0, _080E411C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E411C @ =gBattleAnimBankAttacker
b _080E4126
.align 2, 0
-_080E411C: .4byte gBattleAnimPlayerMonIndex
+_080E411C: .4byte gBattleAnimBankAttacker
_080E4120:
cmp r0, 0x2
bne _080E412C
- ldr r0, _080E4148 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E4148 @ =gBattleAnimBankTarget
_080E4126:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53100,7 +53100,7 @@ _080E412C:
ldr r0, _080E4154 @ =0x02014800
b _080E415A
.align 2, 0
-_080E4148: .4byte gBattleAnimEnemyMonIndex
+_080E4148: .4byte gBattleAnimBankTarget
_080E414C: .4byte gPlttBufferUnfaded
_080E4150: .4byte gBattleAnimArgs
_080E4154: .4byte 0x02014800
@@ -53160,14 +53160,14 @@ _080E41B8: .4byte gBattleAnimArgs
_080E41BC:
cmp r0, 0x1
bne _080E41C8
- ldr r0, _080E41C4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E41C4 @ =gBattleAnimBankAttacker
b _080E41CE
.align 2, 0
-_080E41C4: .4byte gBattleAnimPlayerMonIndex
+_080E41C4: .4byte gBattleAnimBankAttacker
_080E41C8:
cmp r0, 0x2
bne _080E41D4
- ldr r0, _080E41F4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E41F4 @ =gBattleAnimBankTarget
_080E41CE:
ldrb r0, [r0]
adds r4, r0, 0
@@ -53187,7 +53187,7 @@ _080E41D4:
pop {r0}
bx r0
.align 2, 0
-_080E41F4: .4byte gBattleAnimEnemyMonIndex
+_080E41F4: .4byte gBattleAnimBankTarget
_080E41F8: .4byte gPlttBufferUnfaded
_080E41FC: .4byte gPlttBufferFaded
thumb_func_end sub_80E4178
@@ -53226,11 +53226,11 @@ sub_80E4234: @ 80E4234
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E4254 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080E4254 @ =gBattleAnimBankAttacker
ldr r1, _080E4258 @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E425C @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E425C @ =gBattleAnimBankTarget
ldr r1, _080E4260 @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -53238,9 +53238,9 @@ sub_80E4234: @ 80E4234
pop {r0}
bx r0
.align 2, 0
-_080E4254: .4byte gBattleAnimPlayerMonIndex
+_080E4254: .4byte gBattleAnimBankAttacker
_080E4258: .4byte gBankTarget
-_080E425C: .4byte gBattleAnimEnemyMonIndex
+_080E425C: .4byte gBattleAnimBankTarget
_080E4260: .4byte gEffectBank
thumb_func_end sub_80E4234
@@ -53249,11 +53249,11 @@ sub_80E4264: @ 80E4264
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _080E428C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E428C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, _080E4290 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _080E4290 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -53264,8 +53264,8 @@ sub_80E4264: @ 80E4264
movs r0, 0x1
b _080E429C
.align 2, 0
-_080E428C: .4byte gBattleAnimPlayerMonIndex
-_080E4290: .4byte gBattleAnimEnemyMonIndex
+_080E428C: .4byte gBattleAnimBankAttacker
+_080E4290: .4byte gBattleAnimBankTarget
_080E4294: .4byte gBattleAnimArgs
_080E4298:
ldr r1, _080E42AC @ =gBattleAnimArgs
@@ -53286,7 +53286,7 @@ sub_80E42B0: @ 80E42B0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42C8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E42C8 @ =gBattleAnimBankTarget
ldr r1, _080E42CC @ =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
@@ -53294,7 +53294,7 @@ sub_80E42B0: @ 80E42B0
pop {r0}
bx r0
.align 2, 0
-_080E42C8: .4byte gBattleAnimEnemyMonIndex
+_080E42C8: .4byte gBattleAnimBankTarget
_080E42CC: .4byte gBankTarget
thumb_func_end sub_80E42B0
@@ -53303,11 +53303,11 @@ sub_80E42D0: @ 80E42D0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _080E42F0 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _080E42F0 @ =gBattleAnimBankAttacker
ldr r1, _080E42F4 @ =gBankAttacker
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, _080E42F8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _080E42F8 @ =gBattleAnimBankTarget
ldr r1, _080E42FC @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -53315,9 +53315,9 @@ sub_80E42D0: @ 80E42D0
pop {r0}
bx r0
.align 2, 0
-_080E42F0: .4byte gBattleAnimPlayerMonIndex
+_080E42F0: .4byte gBattleAnimBankAttacker
_080E42F4: .4byte gBankAttacker
-_080E42F8: .4byte gBattleAnimEnemyMonIndex
+_080E42F8: .4byte gBattleAnimBankTarget
_080E42FC: .4byte gEffectBank
thumb_func_end sub_80E42D0
@@ -53339,7 +53339,7 @@ _080E4318:
adds r3, r4
lsls r3, 3
adds r3, r0
- ldr r1, _080E4358 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _080E4358 @ =gBattleAnimBankAttacker
ldrb r0, [r1]
lsls r0, 2
ldr r2, _080E435C @ =0x02017800
@@ -53367,7 +53367,7 @@ _080E434E:
bx r0
.align 2, 0
_080E4354: .4byte gTasks
-_080E4358: .4byte gBattleAnimPlayerMonIndex
+_080E4358: .4byte gBattleAnimBankAttacker
_080E435C: .4byte 0x02017800
_080E4360: .4byte sub_80E4368
_080E4364: .4byte gAnimVisualTaskCount
@@ -53385,7 +53385,7 @@ sub_80E4368: @ 80E4368
lsls r0, 5
cmp r1, r0
bne _080E43A8
- ldr r0, _080E43B4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _080E43B4 @ =gBattleAnimBankAttacker
ldrb r3, [r0]
lsls r3, 2
ldr r0, _080E43B8 @ =0x02017800
@@ -53412,7 +53412,7 @@ _080E43A8:
bx r0
.align 2, 0
_080E43B0: .4byte gBattleAnimArgs
-_080E43B4: .4byte gBattleAnimPlayerMonIndex
+_080E43B4: .4byte gBattleAnimBankAttacker
_080E43B8: .4byte 0x02017800
_080E43BC: .4byte gTasks
thumb_func_end sub_80E4368
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s
index 951c0e2fc..69b95b703 100644
--- a/asm/battle_anim_81258BC.s
+++ b/asm/battle_anim_81258BC.s
@@ -403,29 +403,29 @@ _0812B1CC:
adds r2, r0, 0
cmp r1, 0
bne _0812B1E8
- ldr r0, _0812B1E4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B1E4 @ =gBattleAnimBankAttacker
ldrb r4, [r0]
b _0812B20E
.align 2, 0
_0812B1E0: .4byte gBattleAnimArgs
-_0812B1E4: .4byte gBattleAnimPlayerMonIndex
+_0812B1E4: .4byte gBattleAnimBankAttacker
_0812B1E8:
cmp r1, 0x1
bne _0812B1F8
- ldr r0, _0812B1F4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812B1F4 @ =gBattleAnimBankTarget
ldrb r4, [r0]
b _0812B20E
.align 2, 0
-_0812B1F4: .4byte gBattleAnimEnemyMonIndex
+_0812B1F4: .4byte gBattleAnimBankTarget
_0812B1F8:
cmp r1, 0x2
bne _0812B204
- ldr r0, _0812B200 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B200 @ =gBattleAnimBankAttacker
b _0812B206
.align 2, 0
-_0812B200: .4byte gBattleAnimPlayerMonIndex
+_0812B200: .4byte gBattleAnimBankAttacker
_0812B204:
- ldr r0, _0812B230 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812B230 @ =gBattleAnimBankTarget
_0812B206:
ldrb r1, [r0]
movs r0, 0x2
@@ -440,7 +440,7 @@ _0812B20E:
bne _0812B234
_0812B21A:
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0812B234
@@ -448,7 +448,7 @@ _0812B21A:
bl DestroyAnimVisualTask
b _0812B2B0
.align 2, 0
-_0812B230: .4byte gBattleAnimEnemyMonIndex
+_0812B230: .4byte gBattleAnimBankTarget
_0812B234:
adds r0, r4, 0
bl GetBankSide
@@ -534,7 +534,7 @@ sub_812B2B8: @ 812B2B8
_0812B2D8: .4byte 0x02019348
_0812B2DC:
ldr r1, _0812B304 @ =gUnknown_0202F7CA
- ldr r0, _0812B308 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812B308 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -554,7 +554,7 @@ _0812B2F6:
bx r0
.align 2, 0
_0812B304: .4byte gUnknown_0202F7CA
-_0812B308: .4byte gBattleAnimPlayerMonIndex
+_0812B308: .4byte gBattleAnimBankAttacker
thumb_func_end sub_812B2B8
thumb_func_start sub_812B30C
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index bae3d9bc2..4562ad2f5 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -90,7 +90,7 @@ sub_812C1D0: @ 812C1D0
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, _0812C21C @ =gBattleAnimEnemyMonIndex
+ ldr r6, _0812C21C @ =gBattleAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -120,7 +120,7 @@ sub_812C1D0: @ 812C1D0
pop {r0}
bx r0
.align 2, 0
-_0812C21C: .4byte gBattleAnimEnemyMonIndex
+_0812C21C: .4byte gBattleAnimBankTarget
thumb_func_end sub_812C1D0
thumb_func_start sub_812C220
@@ -135,7 +135,7 @@ sub_812C220: @ 812C220
strh r0, [r4, 0x30]
ldr r1, _0812C25C @ =sub_812C268
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r1, _0812C260 @ =REG_BLDCNT
movs r2, 0xFD
lsls r2, 6
@@ -211,7 +211,7 @@ sub_812C2BC: @ 812C2BC
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, _0812C348 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812C348 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -267,13 +267,13 @@ _0812C31A:
str r0, [r5, 0x1C]
ldr r1, _0812C354 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_0812C348: .4byte gBattleAnimEnemyMonIndex
+_0812C348: .4byte gBattleAnimBankTarget
_0812C34C: .4byte gBattleAnimArgs
_0812C350: .4byte sub_8078B34
_0812C354: .4byte move_anim_8072740
@@ -797,7 +797,7 @@ sub_812C720: @ 812C720
adds r4, r0, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _0812C784 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812C784 @ =gBattleAnimBankTarget
ldrb r0, [r0]
mov r5, sp
adds r5, 0x2
@@ -805,7 +805,7 @@ sub_812C720: @ 812C720
mov r2, sp
adds r3, r5, 0
bl sub_807A3FC
- ldr r0, _0812C788 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812C788 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -839,8 +839,8 @@ _0812C754:
pop {r0}
bx r0
.align 2, 0
-_0812C784: .4byte gBattleAnimEnemyMonIndex
-_0812C788: .4byte gBattleAnimPlayerMonIndex
+_0812C784: .4byte gBattleAnimBankTarget
+_0812C788: .4byte gBattleAnimBankAttacker
_0812C78C: .4byte gBattleAnimArgs
_0812C790: .4byte 0x0000ffce
_0812C794: .4byte sub_812C798
@@ -862,7 +862,7 @@ sub_812C798: @ 812C798
str r0, [r4, 0x1C]
ldr r1, _0812C7C4 @ =sub_812C7C8
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
_0812C7BA:
pop {r4}
pop {r0}
@@ -929,7 +929,7 @@ sub_812C80C: @ 812C80C
str r0, [r4, 0x1C]
ldr r1, _0812C844 @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
pop {r4,r5}
pop {r0}
bx r0
@@ -958,7 +958,7 @@ sub_812C848: @ 812C848
lsls r0, 24
cmp r0, 0
bne _0812C89C
- ldr r0, _0812C888 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812C888 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -968,7 +968,7 @@ sub_812C848: @ 812C848
b _0812C8A2
.align 2, 0
_0812C884: .4byte gBattleAnimArgs
-_0812C888: .4byte gBattleAnimPlayerMonIndex
+_0812C888: .4byte gBattleAnimBankAttacker
_0812C88C:
movs r1, 0x4
ldrsh r0, [r5, r1]
@@ -1058,7 +1058,7 @@ sub_812C924: @ 812C924
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0812C940 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812C940 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1069,7 +1069,7 @@ sub_812C924: @ 812C924
movs r0, 0
b _0812C94C
.align 2, 0
-_0812C940: .4byte gBattleAnimEnemyMonIndex
+_0812C940: .4byte gBattleAnimBankTarget
_0812C944: .4byte gBattleAnimArgs
_0812C948:
ldr r1, _0812C95C @ =gBattleAnimArgs
@@ -1307,7 +1307,7 @@ sub_812CAFC: @ 812CAFC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0812CB28
- ldr r4, _0812CB74 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CB74 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -1358,7 +1358,7 @@ _0812CB28:
b _0812CB8A
.align 2, 0
_0812CB70: .4byte gBattleAnimArgs
-_0812CB74: .4byte gBattleAnimPlayerMonIndex
+_0812CB74: .4byte gBattleAnimBankAttacker
_0812CB78: .4byte 0x000003ff
_0812CB7C: .4byte 0xfffffc00
_0812CB80: .4byte 0x0000fff4
@@ -1553,13 +1553,13 @@ sub_812CCE8: @ 812CCE8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0812CD04
- ldr r4, _0812CD00 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CD00 @ =gBattleAnimBankAttacker
b _0812CD06
.align 2, 0
_0812CCFC: .4byte gBattleAnimArgs
-_0812CD00: .4byte gBattleAnimPlayerMonIndex
+_0812CD00: .4byte gBattleAnimBankAttacker
_0812CD04:
- ldr r4, _0812CD58 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812CD58 @ =gBattleAnimBankTarget
_0812CD06:
ldrb r0, [r4]
movs r1, 0
@@ -1602,7 +1602,7 @@ _0812CD3E:
pop {r0}
bx r0
.align 2, 0
-_0812CD58: .4byte gBattleAnimEnemyMonIndex
+_0812CD58: .4byte gBattleAnimBankTarget
_0812CD5C: .4byte gBattleAnimArgs
_0812CD60: .4byte sub_812CD64
thumb_func_end sub_812CCE8
@@ -1675,14 +1675,14 @@ sub_812CDC8: @ 812CDC8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812CDF4
- ldr r4, _0812CDF0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812CDF0 @ =gBattleAnimBankAttacker
b _0812CDF6
.align 2, 0
_0812CDE8: .4byte gTasks
_0812CDEC: .4byte gBattleAnimArgs
-_0812CDF0: .4byte gBattleAnimPlayerMonIndex
+_0812CDF0: .4byte gBattleAnimBankAttacker
_0812CDF4:
- ldr r4, _0812CE3C @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812CE3C @ =gBattleAnimBankTarget
_0812CDF6:
ldrb r0, [r4]
bl sub_8077FC0
@@ -1718,7 +1718,7 @@ _0812CE20:
ldr r0, _0812CE44 @ =gUnknown_030042C0
b _0812CE4A
.align 2, 0
-_0812CE3C: .4byte gBattleAnimEnemyMonIndex
+_0812CE3C: .4byte gBattleAnimBankTarget
_0812CE40: .4byte gBattleAnimArgs
_0812CE44: .4byte gUnknown_030042C0
_0812CE48:
@@ -1975,7 +1975,7 @@ sub_812D008: @ 812D008
movs r5, 0
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r6, _0812D060 @ =gBattleAnimPlayerMonIndex
+ ldr r6, _0812D060 @ =gBattleAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
@@ -1994,7 +1994,7 @@ sub_812D008: @ 812D008
strh r0, [r4, 0x12]
strh r5, [r4, 0x14]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -2005,7 +2005,7 @@ sub_812D008: @ 812D008
bx r0
.align 2, 0
_0812D05C: .4byte gTasks
-_0812D060: .4byte gBattleAnimPlayerMonIndex
+_0812D060: .4byte gBattleAnimBankAttacker
_0812D064: .4byte 0x0000ffec
_0812D068: .4byte sub_812D06C
thumb_func_end sub_812D008
@@ -2350,7 +2350,7 @@ _0812D2F0:
bne _0812D33C
ldr r1, _0812D344 @ =move_anim_8072740
adds r0, r5, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldrh r0, [r5, 0x24]
ldrh r2, [r5, 0x20]
adds r0, r2
@@ -2364,7 +2364,7 @@ _0812D2F0:
strh r1, [r5, 0x26]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, _0812D348 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812D348 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -2385,7 +2385,7 @@ _0812D33C:
bx r0
.align 2, 0
_0812D344: .4byte move_anim_8072740
-_0812D348: .4byte gBattleAnimEnemyMonIndex
+_0812D348: .4byte gBattleAnimBankTarget
_0812D34C: .4byte sub_8078B34
thumb_func_end sub_812D294
@@ -2410,7 +2410,7 @@ sub_812D350: @ 812D350
_0812D370: .4byte gTasks
_0812D374:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2442,7 +2442,7 @@ sub_812D3AC: @ 812D3AC
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x2E
@@ -2461,7 +2461,7 @@ _0812D3CC:
beq _0812D490
b _0812D4AE
_0812D3D6:
- ldr r4, _0812D408 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812D408 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -2483,7 +2483,7 @@ _0812D3D6:
strh r0, [r5, 0x32]
b _0812D484
.align 2, 0
-_0812D408: .4byte gBattleAnimPlayerMonIndex
+_0812D408: .4byte gBattleAnimBankAttacker
_0812D40C:
ldrh r0, [r5, 0x30]
adds r0, 0x60
@@ -2575,7 +2575,7 @@ _0812D4AE:
sub_812D4B4: @ 812D4B4
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812D4CC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D4CC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2584,7 +2584,7 @@ sub_812D4B4: @ 812D4B4
ldr r0, _0812D4D0 @ =0x0000fff0
b _0812D4D8
.align 2, 0
-_0812D4CC: .4byte gBattleAnimPlayerMonIndex
+_0812D4CC: .4byte gBattleAnimBankAttacker
_0812D4D0: .4byte 0x0000fff0
_0812D4D4:
movs r0, 0x80
@@ -2609,7 +2609,7 @@ sub_812D4EC: @ 812D4EC
ldrh r0, [r4, 0x2E]
adds r0, 0x48
strh r0, [r4, 0x2E]
- ldr r0, _0812D50C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D50C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2620,7 +2620,7 @@ sub_812D4EC: @ 812D4EC
asrs r0, 20
b _0812D518
.align 2, 0
-_0812D50C: .4byte gBattleAnimPlayerMonIndex
+_0812D50C: .4byte gBattleAnimBankAttacker
_0812D510:
ldrh r0, [r4, 0x2E]
lsls r0, 16
@@ -2830,7 +2830,7 @@ sub_812D674: @ 812D674
cmp r0, 0
bne _0812D6B4
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2874,7 +2874,7 @@ sub_812D6CC: @ 812D6CC
cmp r0, 0
bne _0812D70C
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2920,7 +2920,7 @@ _0812D736:
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
- ldr r0, _0812D75C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D75C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -2932,7 +2932,7 @@ _0812D736:
strh r0, [r4, 0x2E]
b _0812D788
.align 2, 0
-_0812D75C: .4byte gBattleAnimPlayerMonIndex
+_0812D75C: .4byte gBattleAnimBankAttacker
_0812D760:
ldrh r2, [r4, 0x30]
lsls r1, r2, 16
@@ -2975,7 +2975,7 @@ sub_812D790: @ 812D790
cmp r0, 0
bne _0812D7D0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -3044,7 +3044,7 @@ _0812D834:
ldr r1, _0812D850 @ =REG_MOSAIC
movs r0, 0
strh r0, [r1]
- ldr r0, _0812D854 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D854 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -3055,7 +3055,7 @@ _0812D834:
b _0812D85E
.align 2, 0
_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gBattleAnimPlayerMonIndex
+_0812D854: .4byte gBattleAnimBankAttacker
_0812D858: .4byte REG_BG1CNT
_0812D85C:
ldr r0, _0812D87C @ =REG_BG2CNT
@@ -3111,9 +3111,9 @@ _0812D8BC:
.align 2, 0
_0812D8C0: .4byte REG_MOSAIC
_0812D8C4:
- ldr r5, _0812D8F4 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812D8F4 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
- ldr r1, _0812D8F8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0812D8F8 @ =gBattleAnimBankTarget
ldrb r1, [r1]
mov r2, r8
lsls r4, r2, 2
@@ -3133,8 +3133,8 @@ _0812D8C4:
movs r1, 0
b _0812D906
.align 2, 0
-_0812D8F4: .4byte gBattleAnimPlayerMonIndex
-_0812D8F8: .4byte gBattleAnimEnemyMonIndex
+_0812D8F4: .4byte gBattleAnimBankAttacker
+_0812D8F8: .4byte gBattleAnimBankTarget
_0812D8FC:
ldrb r0, [r5]
bl GetBankIdentity
@@ -3145,7 +3145,7 @@ _0812D906:
lsls r1, 2
adds r1, r0
ldr r2, _0812D9D0 @ =gBattleMonForms
- ldr r0, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812D9D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r2
ldrb r0, [r0]
@@ -3229,7 +3229,7 @@ _0812D9A2:
beq _0812D9F0
ldr r3, _0812D9E4 @ =gSprites
ldr r4, _0812D9E8 @ =gObjectBankIDs
- ldr r2, _0812D9D4 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812D9D4 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3244,7 +3244,7 @@ _0812D9A2:
.align 2, 0
_0812D9CC: .4byte gUnknown_081FAF4C
_0812D9D0: .4byte gBattleMonForms
-_0812D9D4: .4byte gBattleAnimPlayerMonIndex
+_0812D9D4: .4byte gBattleAnimBankAttacker
_0812D9D8: .4byte 0x040000d4
_0812D9DC: .4byte 0x84000200
_0812D9E0: .4byte 0x02019348
@@ -3254,7 +3254,7 @@ _0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
_0812D9F0:
ldr r3, _0812DA34 @ =gSprites
ldr r4, _0812DA38 @ =gObjectBankIDs
- ldr r2, _0812DA3C @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812DA3C @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3290,7 +3290,7 @@ _0812DA2A:
.align 2, 0
_0812DA34: .4byte gSprites
_0812DA38: .4byte gObjectBankIDs
-_0812DA3C: .4byte gBattleAnimPlayerMonIndex
+_0812DA3C: .4byte gBattleAnimBankAttacker
_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
_0812DA44: .4byte gTasks
_0812DA48:
@@ -3329,7 +3329,7 @@ _0812DA84:
ldr r1, _0812DAA0 @ =REG_MOSAIC
movs r0, 0
strh r0, [r1]
- ldr r0, _0812DAA4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DAA4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -3340,7 +3340,7 @@ _0812DA84:
b _0812DAAE
.align 2, 0
_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gBattleAnimPlayerMonIndex
+_0812DAA4: .4byte gBattleAnimBankAttacker
_0812DAA8: .4byte REG_BG1CNT
_0812DAAC:
ldr r2, _0812DB08 @ =REG_BG2CNT
@@ -3354,7 +3354,7 @@ _0812DAAE:
lsls r0, 24
cmp r0, 0
bne _0812DAF4
- ldr r4, _0812DB0C @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812DB0C @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -3390,7 +3390,7 @@ _0812DAFA:
bx r0
.align 2, 0
_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gBattleAnimPlayerMonIndex
+_0812DB0C: .4byte gBattleAnimBankAttacker
_0812DB10: .4byte gTasks
_0812DB14: .4byte 0x02017800
thumb_func_end sub_812D7E8
@@ -3403,7 +3403,7 @@ c3_80DFBE4: @ 812DB18
ldr r4, _0812DB48 @ =gBattleAnimArgs
ldr r3, _0812DB4C @ =gSprites
ldr r2, _0812DB50 @ =gObjectBankIDs
- ldr r1, _0812DB54 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _0812DB54 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r2, [r1]
@@ -3424,7 +3424,7 @@ c3_80DFBE4: @ 812DB18
_0812DB48: .4byte gBattleAnimArgs
_0812DB4C: .4byte gSprites
_0812DB50: .4byte gObjectBankIDs
-_0812DB54: .4byte gBattleAnimPlayerMonIndex
+_0812DB54: .4byte gBattleAnimBankAttacker
thumb_func_end c3_80DFBE4
thumb_func_start sub_812DB58
@@ -3433,9 +3433,9 @@ sub_812DB58: @ 812DB58
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _0812DB7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DB7C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
- ldr r1, _0812DB80 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0812DB80 @ =gBattleAnimBankTarget
ldrb r1, [r1]
movs r2, 0x1
bl sub_8031FC4
@@ -3445,8 +3445,8 @@ sub_812DB58: @ 812DB58
pop {r0}
bx r0
.align 2, 0
-_0812DB7C: .4byte gBattleAnimPlayerMonIndex
-_0812DB80: .4byte gBattleAnimEnemyMonIndex
+_0812DB7C: .4byte gBattleAnimBankAttacker
+_0812DB80: .4byte gBattleAnimBankTarget
thumb_func_end sub_812DB58
thumb_func_start sub_812DB84
@@ -3572,7 +3572,7 @@ _0812DC90: .4byte gUnknown_030042C0
_0812DC94: .4byte 0x0000ffc8
_0812DC98: .4byte gUnknown_030041B4
_0812DC9C:
- ldr r0, _0812DCB4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812DCB4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3583,7 +3583,7 @@ _0812DC9C:
adds r0, r4, 0
b _0812DCC6
.align 2, 0
-_0812DCB4: .4byte gBattleAnimPlayerMonIndex
+_0812DCB4: .4byte gBattleAnimBankAttacker
_0812DCB8: .4byte gUnknown_030042C0
_0812DCBC: .4byte 0x0000ff79
_0812DCC0:
@@ -3856,7 +3856,7 @@ sub_812DEAC: @ 812DEAC
lsls r0, 16
lsrs r5, r0, 16
_0812DED6:
- ldr r4, _0812DFD0 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812DFD0 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_8077ABC
@@ -3975,7 +3975,7 @@ _0812DED6:
pop {r0}
bx r0
.align 2, 0
-_0812DFD0: .4byte gBattleAnimPlayerMonIndex
+_0812DFD0: .4byte gBattleAnimBankAttacker
_0812DFD4: .4byte gBattleAnimArgs
_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
_0812DFDC: .4byte gSprites
@@ -4292,7 +4292,7 @@ _0812E254: .4byte gUnknown_030042C0
_0812E258: .4byte 0x0000ffc8
_0812E25C: .4byte gUnknown_030041B4
_0812E260:
- ldr r0, _0812E2A0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E2A0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity
lsls r0, 24
@@ -4326,7 +4326,7 @@ _0812E296:
ldr r2, _0812E2B0 @ =0x0000ffec
b _0812E2C8
.align 2, 0
-_0812E2A0: .4byte gBattleAnimEnemyMonIndex
+_0812E2A0: .4byte gBattleAnimBankTarget
_0812E2A4: .4byte gUnknown_030042C0
_0812E2A8: .4byte 0x0000ff65
_0812E2AC: .4byte 0x0000ff8d
@@ -4377,7 +4377,7 @@ _0812E300:
adds r5, r0, r1
movs r0, 0
strh r0, [r5, 0xE]
- ldr r0, _0812E338 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E338 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4397,7 +4397,7 @@ _0812E300:
b _0812E356
.align 2, 0
_0812E334: .4byte gTasks
-_0812E338: .4byte gBattleAnimEnemyMonIndex
+_0812E338: .4byte gBattleAnimBankTarget
_0812E33C: .4byte gUnknown_030042C0
_0812E340: .4byte gUnknown_08402604
_0812E344:
@@ -4588,7 +4588,7 @@ sub_812E498: @ 812E498
cmp r0, 0
bne _0812E4D8
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4643,7 +4643,7 @@ _0812E50E:
ldrh r0, [r4, 0x32]
adds r0, 0x80
strh r0, [r4, 0x32]
- ldr r0, _0812E53C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E53C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4655,7 +4655,7 @@ _0812E50E:
negs r0, r0
b _0812E546
.align 2, 0
-_0812E53C: .4byte gBattleAnimPlayerMonIndex
+_0812E53C: .4byte gBattleAnimBankAttacker
_0812E540:
ldrh r0, [r4, 0x30]
lsls r0, 16
@@ -4740,7 +4740,7 @@ _0812E5AC:
subs r0, 0x1
strh r0, [r4, 0x14]
ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4748,12 +4748,12 @@ _0812E5AC:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0812E5F8
- ldr r0, _0812E5F4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E5F4 @ =gBattleAnimBankAttacker
b _0812E5FA
.align 2, 0
-_0812E5F4: .4byte gBattleAnimPlayerMonIndex
+_0812E5F4: .4byte gBattleAnimBankAttacker
_0812E5F8:
- ldr r0, _0812E630 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812E630 @ =gBattleAnimBankTarget
_0812E5FA:
ldrb r0, [r0]
bl GetBankSide
@@ -4782,7 +4782,7 @@ _0812E628:
pop {r0}
bx r0
.align 2, 0
-_0812E630: .4byte gBattleAnimEnemyMonIndex
+_0812E630: .4byte gBattleAnimBankTarget
_0812E634: .4byte sub_812E638
thumb_func_end sub_812E568
@@ -4971,7 +4971,7 @@ _0812E798:
sub_812E7A0: @ 812E7A0
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0812E7BC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E7BC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4983,7 +4983,7 @@ sub_812E7A0: @ 812E7A0
ldrh r0, [r1]
b _0812E7CE
.align 2, 0
-_0812E7BC: .4byte gBattleAnimPlayerMonIndex
+_0812E7BC: .4byte gBattleAnimBankAttacker
_0812E7C0: .4byte gBattleAnimArgs
_0812E7C4:
movs r0, 0xF0
@@ -5015,7 +5015,7 @@ sub_812E7F0: @ 812E7F0
ldrh r0, [r4, 0x2E]
adds r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, _0812E830 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812E830 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5041,7 +5041,7 @@ _0812E822:
bl Sin
b _0812E858
.align 2, 0
-_0812E830: .4byte gBattleAnimPlayerMonIndex
+_0812E830: .4byte gBattleAnimBankAttacker
_0812E834:
ldrh r1, [r4, 0x20]
subs r1, 0x5
@@ -5091,7 +5091,7 @@ sub_812E860: @ 812E860
strh r0, [r4, 0x24]
ldr r0, _0812E8AC @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -5330,7 +5330,7 @@ sub_812EA4C: @ 812EA4C
ldrsh r0, [r6, r2]
cmp r0, 0
bne _0812EA80
- ldr r4, _0812EAA8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812EAA8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -5364,7 +5364,7 @@ _0812EA80:
b _0812EB0A
.align 2, 0
_0812EAA4: .4byte gBattleAnimArgs
-_0812EAA8: .4byte gBattleAnimPlayerMonIndex
+_0812EAA8: .4byte gBattleAnimBankAttacker
_0812EAAC:
ldrh r1, [r5, 0x30]
lsls r0, r1, 16
@@ -5441,20 +5441,20 @@ sub_812EB10: @ 812EB10
mov r8, r0
cmp r1, 0
bne _0812EB4C
- ldr r0, _0812EB48 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EB48 @ =gBattleAnimBankAttacker
b _0812EB4E
.align 2, 0
_0812EB40: .4byte gTasks
_0812EB44: .4byte gBattleAnimArgs
-_0812EB48: .4byte gBattleAnimPlayerMonIndex
+_0812EB48: .4byte gBattleAnimBankAttacker
_0812EB4C:
- ldr r0, _0812EB88 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812EB88 @ =gBattleAnimBankTarget
_0812EB4E:
ldrb r0, [r0]
strh r0, [r2, 0x1E]
mov r1, r8
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0812EB8C @ =gTasks
@@ -5478,7 +5478,7 @@ _0812EB4E:
lsls r2, r5, 4
b _0812EBF8
.align 2, 0
-_0812EB88: .4byte gBattleAnimEnemyMonIndex
+_0812EB88: .4byte gBattleAnimBankTarget
_0812EB8C: .4byte gTasks
_0812EB90:
cmp r0, 0x2
@@ -5893,7 +5893,7 @@ _0812EEA0: .4byte 0x00003f3f
sub_812EEA4: @ 812EEA4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, _0812EEE0 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812EEE0 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_8077ABC
@@ -5919,7 +5919,7 @@ sub_812EEA4: @ 812EEA4
pop {r0}
bx r0
.align 2, 0
-_0812EEE0: .4byte gBattleAnimPlayerMonIndex
+_0812EEE0: .4byte gBattleAnimBankAttacker
_0812EEE4: .4byte gBattleAnimArgs
_0812EEE8: .4byte sub_812EEEC
thumb_func_end sub_812EEA4
@@ -5954,15 +5954,15 @@ sub_812EEEC: @ 812EEEC
cmp r0, 0xC3
ble _0812EF38
_0812EF26:
- ldr r0, _0812EF34 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EF34 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
subs r0, 0x1
b _0812EF42
.align 2, 0
-_0812EF34: .4byte gBattleAnimPlayerMonIndex
+_0812EF34: .4byte gBattleAnimBankAttacker
_0812EF38:
- ldr r0, _0812EF84 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812EF84 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
adds r0, 0x1
@@ -6000,7 +6000,7 @@ _0812EF42:
strh r0, [r4, 0x38]
b _0812EFB8
.align 2, 0
-_0812EF84: .4byte gBattleAnimPlayerMonIndex
+_0812EF84: .4byte gBattleAnimBankAttacker
_0812EF88:
cmp r2, 0x1
bne _0812EFB8
@@ -6046,7 +6046,7 @@ sub_812EFC8: @ 812EFC8
lsrs r0, 24
str r0, [sp, 0x10]
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -6064,7 +6064,7 @@ sub_812EFC8: @ 812EFC8
.align 2, 0
_0812F000: .4byte 0x02019348
_0812F004:
- ldr r0, _0812F070 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F070 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6073,7 +6073,7 @@ _0812F004:
movs r0, 0
str r0, [sp, 0x14]
ldr r6, _0812F074 @ =gBattlePartyID
- ldr r4, _0812F078 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812F078 @ =gBattleAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -6114,9 +6114,9 @@ _0812F004:
adds r0, r7
b _0812F092
.align 2, 0
-_0812F070: .4byte gBattleAnimPlayerMonIndex
+_0812F070: .4byte gBattleAnimBankAttacker
_0812F074: .4byte gBattlePartyID
-_0812F078: .4byte gBattleAnimEnemyMonIndex
+_0812F078: .4byte gBattleAnimBankTarget
_0812F07C: .4byte gPlayerParty
_0812F080: .4byte 0x02017800
_0812F084:
@@ -6145,7 +6145,7 @@ _0812F0AC:
movs r2, 0x1
str r2, [sp, 0x14]
ldr r6, _0812F10C @ =gBattlePartyID
- ldr r4, _0812F110 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _0812F110 @ =gBattleAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -6188,7 +6188,7 @@ _0812F0AC:
b _0812F12C
.align 2, 0
_0812F10C: .4byte gBattlePartyID
-_0812F110: .4byte gBattleAnimEnemyMonIndex
+_0812F110: .4byte gBattleAnimBankTarget
_0812F114: .4byte gEnemyParty
_0812F118: .4byte 0x02017800
_0812F11C: .4byte gPlayerParty
@@ -6212,12 +6212,12 @@ _0812F13A:
_0812F13C:
mov r10, r3
_0812F13E:
- ldr r0, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F21C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079ED4
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, _0812F21C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0812F21C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -6318,7 +6318,7 @@ _0812F13E:
bx r0
.align 2, 0
_0812F218: .4byte 0x0000ffec
-_0812F21C: .4byte gBattleAnimPlayerMonIndex
+_0812F21C: .4byte gBattleAnimBankAttacker
_0812F220: .4byte gSprites
_0812F224: .4byte 0x00007fff
_0812F228: .4byte REG_BLDCNT
@@ -6455,14 +6455,14 @@ sub_812F314: @ 812F314
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812F340
- ldr r0, _0812F33C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812F33C @ =gBattleAnimBankAttacker
b _0812F342
.align 2, 0
_0812F334: .4byte gTasks
_0812F338: .4byte gBattleAnimArgs
-_0812F33C: .4byte gBattleAnimPlayerMonIndex
+_0812F33C: .4byte gBattleAnimBankAttacker
_0812F340:
- ldr r0, _0812F3C0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812F3C0 @ =gBattleAnimBankTarget
_0812F342:
ldrb r5, [r0]
movs r6, 0
@@ -6504,7 +6504,7 @@ _0812F388:
strh r0, [r4, 0x24]
ldr r0, _0812F3C4 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -6525,7 +6525,7 @@ _0812F388:
ldr r0, _0812F3D8 @ =gUnknown_030041B4
b _0812F3EE
.align 2, 0
-_0812F3C0: .4byte gBattleAnimEnemyMonIndex
+_0812F3C0: .4byte gBattleAnimBankTarget
_0812F3C4: .4byte gBattleAnimArgs
_0812F3C8: .4byte REG_BG1HOFS
_0812F3CC: .4byte REG_BLDCNT
@@ -6975,7 +6975,7 @@ sub_812F724: @ 812F724
strh r0, [r4, 0x8]
ldr r0, _0812F760 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7250,7 +7250,7 @@ sub_812F948: @ 812F948
ldrb r1, [r6]
adds r0, r5, 0
bl StartSpriteAffineAnim
- ldr r0, _0812F9A4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812F9A4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -7260,7 +7260,7 @@ sub_812F948: @ 812F948
negs r0, r0
strh r0, [r6, 0x2]
_0812F96E:
- ldr r4, _0812F9A8 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0812F9A8 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -7284,8 +7284,8 @@ _0812F96E:
bx r0
.align 2, 0
_0812F9A0: .4byte gBattleAnimArgs
-_0812F9A4: .4byte gBattleAnimEnemyMonIndex
-_0812F9A8: .4byte gBattleAnimPlayerMonIndex
+_0812F9A4: .4byte gBattleAnimBankTarget
+_0812F9A8: .4byte gBattleAnimBankAttacker
_0812F9AC: .4byte sub_80DA48C
thumb_func_end sub_812F948
@@ -7674,7 +7674,7 @@ sub_812FC68: @ 812FC68
mov r1, r8
adds r4, r0, r1
ldr r1, _0812FCCC @ =gObjectBankIDs
- ldr r2, _0812FCD0 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _0812FCD0 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -7711,7 +7711,7 @@ _0812FCAC:
.align 2, 0
_0812FCC8: .4byte gTasks
_0812FCCC: .4byte gObjectBankIDs
-_0812FCD0: .4byte gBattleAnimPlayerMonIndex
+_0812FCD0: .4byte gBattleAnimBankAttacker
_0812FCD4: .4byte gBattleAnimArgs
_0812FCD8: .4byte 0xffff8000
_0812FCDC:
@@ -7822,14 +7822,14 @@ _0812FD9C:
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0812FDC0
- ldr r0, _0812FDBC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0812FDBC @ =gBattleAnimBankAttacker
b _0812FDC2
.align 2, 0
_0812FDB4: .4byte gTasks
_0812FDB8: .4byte gBattleAnimArgs
-_0812FDBC: .4byte gBattleAnimPlayerMonIndex
+_0812FDBC: .4byte gBattleAnimBankAttacker
_0812FDC0:
- ldr r0, _0812FE10 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0812FE10 @ =gBattleAnimBankTarget
_0812FDC2:
ldrb r4, [r0]
adds r0, r4, 0
@@ -7851,7 +7851,7 @@ _0812FDC2:
strh r0, [r5, 0x14]
ldr r0, _0812FE14 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7865,7 +7865,7 @@ _0812FDC2:
pop {r0}
bx r0
.align 2, 0
-_0812FE10: .4byte gBattleAnimEnemyMonIndex
+_0812FE10: .4byte gBattleAnimBankTarget
_0812FE14: .4byte gBattleAnimArgs
_0812FE18: .4byte gUnknown_084028AC
_0812FE1C: .4byte sub_812FE20
@@ -8124,7 +8124,7 @@ sub_812FFE4: @ 812FFE4
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, _08130034 @ =gSprites
@@ -8215,7 +8215,7 @@ sub_81300A4: @ 81300A4
lsrs r0, 24
movs r2, 0xD0
lsls r2, 1
- ldr r1, _081300E0 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _081300E0 @ =gBattleAnimBankAttacker
ldrb r3, [r1]
ldr r1, _081300E4 @ =gBattleAnimArgs
ldrb r1, [r1]
@@ -8238,7 +8238,7 @@ sub_81300A4: @ 81300A4
pop {r0}
bx r0
.align 2, 0
-_081300E0: .4byte gBattleAnimPlayerMonIndex
+_081300E0: .4byte gBattleAnimBankAttacker
_081300E4: .4byte gBattleAnimArgs
_081300E8: .4byte gUnknown_08D2E014
_081300EC: .4byte gUnknown_08D2E170
@@ -8249,7 +8249,7 @@ _081300F0: .4byte gUnknown_08D2E150
sub_81300F4: @ 81300F4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, _0813014C @ =gBattleAnimPlayerMonIndex
+ ldr r6, _0813014C @ =gBattleAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -8289,7 +8289,7 @@ _08130110:
strh r0, [r5, 0x30]
b _08130180
.align 2, 0
-_0813014C: .4byte gBattleAnimPlayerMonIndex
+_0813014C: .4byte gBattleAnimBankAttacker
_08130150: .4byte gBattleAnimArgs
_08130154: .4byte 0x0000fd80
_08130158:
@@ -8314,7 +8314,7 @@ _08130172:
lsls r0, 2
strh r0, [r5, 0x2E]
_08130180:
- ldr r0, _081301AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081301AC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -8336,7 +8336,7 @@ _081301A0:
pop {r0}
bx r0
.align 2, 0
-_081301AC: .4byte gBattleAnimPlayerMonIndex
+_081301AC: .4byte gBattleAnimBankAttacker
_081301B0: .4byte sub_81301B4
thumb_func_end sub_81300F4
@@ -8403,7 +8403,7 @@ _0813021C:
strh r0, [r6, 0x14]
strh r1, [r6, 0x16]
_08130226:
- ldr r5, _0813025C @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0813025C @ =gBattleAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -8428,7 +8428,7 @@ _08130254:
adds r0, r4, r0
b _08130284
.align 2, 0
-_0813025C: .4byte gBattleAnimPlayerMonIndex
+_0813025C: .4byte gBattleAnimBankAttacker
_08130260:
ldrb r0, [r5]
movs r1, 0x2
@@ -8449,7 +8449,7 @@ _08130280:
subs r0, r4, r0
_08130284:
strh r0, [r6, 0x1E]
- ldr r5, _081302D8 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _081302D8 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x3
bl sub_8077ABC
@@ -8468,7 +8468,7 @@ _081302A8:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x20]
- ldr r4, _081302DC @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081302DC @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -8487,8 +8487,8 @@ _081302A8:
pop {r0}
bx r0
.align 2, 0
-_081302D8: .4byte gBattleAnimPlayerMonIndex
-_081302DC: .4byte gBattleAnimEnemyMonIndex
+_081302D8: .4byte gBattleAnimBankAttacker
+_081302DC: .4byte gBattleAnimBankTarget
_081302E0: .4byte sub_81302E4
thumb_func_end sub_81301EC
@@ -8810,7 +8810,7 @@ sub_813051C: @ 813051C
strh r0, [r4, 0x2E]
ldr r1, _0813054C @ =move_anim_8072740
adds r0, r4, 0
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r0, _08130550 @ =sub_8078CC0
str r0, [r4, 0x1C]
pop {r4}
@@ -8837,7 +8837,7 @@ sub_8130554: @ 8130554
lsls r0, 3
ldr r1, _08130674 @ =gTasks
adds r7, r0, r1
- ldr r0, _08130678 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130678 @ =gBattleAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8852,7 +8852,7 @@ sub_8130554: @ 8130554
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x20]
- ldr r0, _0813067C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813067C @ =gBattleAnimBankTarget
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8962,8 +8962,8 @@ _0813066E:
b _08130696
.align 2, 0
_08130674: .4byte gTasks
-_08130678: .4byte gBattleAnimPlayerMonIndex
-_0813067C: .4byte gBattleAnimEnemyMonIndex
+_08130678: .4byte gBattleAnimBankAttacker
+_0813067C: .4byte gBattleAnimBankTarget
_08130680: .4byte gSpriteTemplate_84029AC
_08130684: .4byte gSprites
_08130688: .4byte 0x0000ffe0
@@ -9129,13 +9129,13 @@ sub_81307B0: @ 81307B0
adds r6, r0, 0
cmp r1, 0
bne _081307CC
- ldr r0, _081307C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081307C8 @ =gBattleAnimBankAttacker
b _081307CE
.align 2, 0
_081307C4: .4byte gBattleAnimArgs
-_081307C8: .4byte gBattleAnimPlayerMonIndex
+_081307C8: .4byte gBattleAnimBankAttacker
_081307CC:
- ldr r0, _08130834 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08130834 @ =gBattleAnimBankTarget
_081307CE:
ldrb r5, [r0]
ldrh r2, [r4, 0x4]
@@ -9188,7 +9188,7 @@ _081307FC:
subs r0, 0x8
b _0813084A
.align 2, 0
-_08130834: .4byte gBattleAnimEnemyMonIndex
+_08130834: .4byte gBattleAnimBankTarget
_08130838: .4byte 0x000003ff
_0813083C: .4byte 0xfffffc00
_08130840:
@@ -9337,7 +9337,7 @@ _08130934:
ldrh r0, [r2, 0x2]
strh r0, [r4, 0x8]
ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -9461,13 +9461,13 @@ sub_8130A2C: @ 8130A2C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08130A48
- ldr r4, _08130A44 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08130A44 @ =gBattleAnimBankAttacker
b _08130A4A
.align 2, 0
_08130A40: .4byte gBattleAnimArgs
-_08130A44: .4byte gBattleAnimPlayerMonIndex
+_08130A44: .4byte gBattleAnimBankAttacker
_08130A48:
- ldr r4, _08130A88 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _08130A88 @ =gBattleAnimBankTarget
_08130A4A:
ldrb r0, [r4]
movs r1, 0x2
@@ -9500,7 +9500,7 @@ _08130A6E:
pop {r0}
bx r0
.align 2, 0
-_08130A88: .4byte gBattleAnimEnemyMonIndex
+_08130A88: .4byte gBattleAnimBankTarget
_08130A8C: .4byte gBattleAnimArgs
_08130A90: .4byte sub_8130A94
thumb_func_end sub_8130A2C
@@ -9859,7 +9859,7 @@ sub_8130D20: @ 8130D20
ldr r0, _08130D7C @ =gTasks
adds r6, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -9872,7 +9872,7 @@ sub_8130D20: @ 8130D20
lsrs r7, r0, 24
cmp r7, 0x1
bne _08130D8C
- ldr r5, _08130D80 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _08130D80 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -9892,14 +9892,14 @@ sub_8130D20: @ 8130D20
b _08130DAC
.align 2, 0
_08130D7C: .4byte gTasks
-_08130D80: .4byte gBattleAnimPlayerMonIndex
+_08130D80: .4byte gBattleAnimBankAttacker
_08130D84:
ldr r0, _08130D88 @ =0x0000ffff
b _08130DAA
.align 2, 0
_08130D88: .4byte 0x0000ffff
_08130D8C:
- ldr r0, _08130DA0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130DA0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -9908,7 +9908,7 @@ _08130D8C:
ldr r0, _08130DA4 @ =0x0000ffff
b _08130DAA
.align 2, 0
-_08130DA0: .4byte gBattleAnimPlayerMonIndex
+_08130DA0: .4byte gBattleAnimBankAttacker
_08130DA4: .4byte 0x0000ffff
_08130DA8:
movs r0, 0x1
@@ -10153,13 +10153,13 @@ sub_8130F5C: @ 8130F5C
adds r0, r4, 0
movs r1, 0x1
bl sub_80787B0
- ldr r0, _08130F7C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08130F7C @ =gBattleAnimBankAttacker
b _08130F82
.align 2, 0
_08130F78: .4byte gBattleAnimArgs
-_08130F7C: .4byte gBattleAnimPlayerMonIndex
+_08130F7C: .4byte gBattleAnimBankAttacker
_08130F80:
- ldr r0, _08130FD8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08130FD8 @ =gBattleAnimBankTarget
_08130F82:
ldrb r0, [r0]
strh r0, [r4, 0x3C]
@@ -10204,7 +10204,7 @@ _08130FA6:
pop {r0}
bx r0
.align 2, 0
-_08130FD8: .4byte gBattleAnimEnemyMonIndex
+_08130FD8: .4byte gBattleAnimBankTarget
_08130FDC: .4byte sub_8130FE0
thumb_func_end sub_8130F5C
@@ -10545,7 +10545,7 @@ _08131260: .4byte gSpriteTemplate_8402500
sub_8131264: @ 8131264
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _081312A0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081312A0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -10571,7 +10571,7 @@ _08131290:
subs r1, r0
b _081312B6
.align 2, 0
-_081312A0: .4byte gBattleAnimEnemyMonIndex
+_081312A0: .4byte gBattleAnimBankTarget
_081312A4: .4byte gBattleAnimArgs
_081312A8:
ldr r2, _081312DC @ =gBattleAnimArgs
@@ -10615,7 +10615,7 @@ sub_81312E4: @ 81312E4
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
@@ -10686,7 +10686,7 @@ _08131378:
.align 2, 0
_08131380: .4byte gSprites
_08131384:
- ldr r4, _081313F4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _081313F4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl refresh_graphics_maybe
@@ -10743,7 +10743,7 @@ _081313E8:
pop {r0}
bx r0
.align 2, 0
-_081313F4: .4byte gBattleAnimPlayerMonIndex
+_081313F4: .4byte gBattleAnimBankAttacker
_081313F8: .4byte gSprites
_081313FC: .4byte gObjectBankIDs
_08131400: .4byte gSpriteAffineAnimTable_81E7C18
@@ -10756,7 +10756,7 @@ sub_8131408: @ 8131408
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r3, r0, 24
ldr r1, _08131434 @ =gTasks
@@ -10932,7 +10932,7 @@ _08131560: .4byte gSprites
sub_8131564: @ 8131564
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08131588 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _08131588 @ =gBattleAnimBankTarget
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -10947,7 +10947,7 @@ sub_8131564: @ 8131564
ldr r4, _0813158C @ =0x0000ff70
b _081315A0
.align 2, 0
-_08131588: .4byte gBattleAnimEnemyMonIndex
+_08131588: .4byte gBattleAnimBankTarget
_0813158C: .4byte 0x0000ff70
_08131590:
ldrb r0, [r4]
@@ -10958,7 +10958,7 @@ _08131590:
strb r0, [r1]
ldr r4, _081315BC @ =0x0000ffa0
_081315A0:
- ldr r0, _081315C0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081315C0 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_8077ABC
@@ -10973,7 +10973,7 @@ _081315A0:
bx r0
.align 2, 0
_081315BC: .4byte 0x0000ffa0
-_081315C0: .4byte gBattleAnimEnemyMonIndex
+_081315C0: .4byte gBattleAnimBankTarget
_081315C4: .4byte sub_81315C8
thumb_func_end sub_8131564
@@ -11474,7 +11474,7 @@ _0813197C:
.4byte _08131DC4
_08131990:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _081319DC @ =gTasks
@@ -11489,7 +11489,7 @@ _08131990:
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
- ldr r0, _081319E0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081319E0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11510,7 +11510,7 @@ _08131990:
b _08131A02
.align 2, 0
_081319DC: .4byte gTasks
-_081319E0: .4byte gBattleAnimPlayerMonIndex
+_081319E0: .4byte gBattleAnimBankAttacker
_081319E4: .4byte gSprites
_081319E8:
ldr r3, _08131A3C @ =gSprites
@@ -11570,7 +11570,7 @@ _08131A44:
ldr r3, [r0, 0xC]
mov r9, r3
ldrh r5, [r0]
- ldr r0, _08131A70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131A70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl sub_8079E90
lsls r0, 24
@@ -11579,9 +11579,9 @@ _08131A44:
b _08131B92
.align 2, 0
_08131A6C: .4byte 0x02019348
-_08131A70: .4byte gBattleAnimPlayerMonIndex
+_08131A70: .4byte gBattleAnimBankAttacker
_08131A74:
- ldr r4, _08131AD4 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08131AD4 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -11626,7 +11626,7 @@ _08131A74:
lsrs r5, r0, 16
b _08131AE6
.align 2, 0
-_08131AD4: .4byte gBattleAnimPlayerMonIndex
+_08131AD4: .4byte gBattleAnimBankAttacker
_08131AD8: .4byte gBattlePartyID
_08131ADC: .4byte gPlayerParty
_08131AE0: .4byte 0x02017800
@@ -11634,7 +11634,7 @@ _08131AE4:
ldrh r5, [r1, 0x2]
_08131AE6:
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131B0C @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11700,7 +11700,7 @@ _08131B70:
ldrh r5, [r1, 0x2]
_08131B72:
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131C04 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11717,7 +11717,7 @@ _08131B72:
_08131B92:
ldr r6, _08131C08 @ =0x0000ffe0
_08131B94:
- ldr r0, _08131C0C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131C0C @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -11737,7 +11737,7 @@ _08131B94:
bl sub_8079F44
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, _08131C10 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131C10 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
lsls r0, 2
ldr r1, _08131C14 @ =0x02017800
@@ -11773,8 +11773,8 @@ _08131BF2:
.align 2, 0
_08131C04: .4byte gSprites
_08131C08: .4byte 0x0000ffe0
-_08131C0C: .4byte gBattleAnimEnemyMonIndex
-_08131C10: .4byte gBattleAnimPlayerMonIndex
+_08131C0C: .4byte gBattleAnimBankTarget
+_08131C10: .4byte gBattleAnimBankAttacker
_08131C14: .4byte 0x02017800
_08131C18: .4byte 0x00007fff
_08131C1C: .4byte gTasks
@@ -11794,7 +11794,7 @@ _08131C20:
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
- ldr r0, _08131C70 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131C70 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11817,7 +11817,7 @@ _08131C20:
b _08131C8E
.align 2, 0
_08131C6C: .4byte gTasks
-_08131C70: .4byte gBattleAnimPlayerMonIndex
+_08131C70: .4byte gBattleAnimBankAttacker
_08131C74: .4byte gSprites
_08131C78:
ldr r2, _08131CDC @ =gSprites
@@ -11851,7 +11851,7 @@ _08131C8E:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08131D0E
- ldr r0, _08131CE4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131CE4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11859,7 +11859,7 @@ _08131C8E:
bne _08131CEC
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _08131CE8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131CE8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -11871,12 +11871,12 @@ _08131C8E:
.align 2, 0
_08131CDC: .4byte gSprites
_08131CE0: .4byte gTasks
-_08131CE4: .4byte gBattleAnimPlayerMonIndex
-_08131CE8: .4byte gBattleAnimEnemyMonIndex
+_08131CE4: .4byte gBattleAnimBankAttacker
+_08131CE8: .4byte gBattleAnimBankTarget
_08131CEC:
lsls r4, r5, 16
asrs r4, 16
- ldr r0, _08131D30 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131D30 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -11911,13 +11911,13 @@ _08131D20:
strh r0, [r1, 0xA]
b _08131DB6
.align 2, 0
-_08131D30: .4byte gBattleAnimEnemyMonIndex
+_08131D30: .4byte gBattleAnimBankTarget
_08131D34: .4byte gBattleAnimArgs
_08131D38: .4byte 0x0000ffff
_08131D3C: .4byte gTasks
_08131D40:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131D8C @ =gTasks
@@ -11935,7 +11935,7 @@ _08131D40:
ldr r5, _08131D90 @ =gSprites
adds r0, r5
bl sub_807A0F4
- ldr r0, _08131D94 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131D94 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11954,7 +11954,7 @@ _08131D40:
.align 2, 0
_08131D8C: .4byte gTasks
_08131D90: .4byte gSprites
-_08131D94: .4byte gBattleAnimPlayerMonIndex
+_08131D94: .4byte gBattleAnimBankAttacker
_08131D98:
lsls r0, r7, 4
adds r0, r7
@@ -11981,7 +11981,7 @@ _08131DB6:
_08131DC0: .4byte gTasks
_08131DC4:
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, _08131E38 @ =gTasks
@@ -11996,7 +11996,7 @@ _08131DC4:
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
- ldr r0, _08131E3C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131E3C @ =gBattleAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x10]
@@ -12036,7 +12036,7 @@ _08131DC4:
b _08131E7C
.align 2, 0
_08131E38: .4byte gTasks
-_08131E3C: .4byte gBattleAnimPlayerMonIndex
+_08131E3C: .4byte gBattleAnimBankAttacker
_08131E40: .4byte gSprites
_08131E44:
ldr r1, _08131EB0 @ =gSprites
@@ -12124,7 +12124,7 @@ _08131ECA:
asrs r1, 24
movs r0, 0x7A
bl PlaySE12WithPanning
- ldr r0, _08131F54 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08131F54 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_8077ABC
@@ -12144,7 +12144,7 @@ _08131ECA:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, _08131F5C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131F5C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12156,7 +12156,7 @@ _08131ECA:
cmp r0, 0
bne _08131FF4
movs r0, 0x1
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
ldr r2, _08131F60 @ =gSprites
lsls r0, 24
lsrs r0, 24
@@ -12173,9 +12173,9 @@ _08131ECA:
b _08131FF4
.align 2, 0
_08131F50: .4byte gBattleAnimArgs
-_08131F54: .4byte gBattleAnimEnemyMonIndex
+_08131F54: .4byte gBattleAnimBankTarget
_08131F58: .4byte 0x0000ffe0
-_08131F5C: .4byte gBattleAnimPlayerMonIndex
+_08131F5C: .4byte gBattleAnimBankAttacker
_08131F60: .4byte gSprites
_08131F64:
adds r0, r4, 0
@@ -12218,7 +12218,7 @@ _08131FA6:
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
- ldr r0, _08131FD0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08131FD0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12233,7 +12233,7 @@ _08131FA6:
adds r1, r2, 0
b _08131FE0
.align 2, 0
-_08131FD0: .4byte gBattleAnimPlayerMonIndex
+_08131FD0: .4byte gBattleAnimBankAttacker
_08131FD4:
ldrh r1, [r4, 0x32]
lsls r0, r1, 16
@@ -12290,14 +12290,14 @@ _0813202C:
.4byte _08132104
.4byte _0813216A
_08132040:
- ldr r0, _08132084 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132084 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r0, _08132088 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _08132088 @ =gBattleAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_8077ABC
@@ -12323,12 +12323,12 @@ _08132076:
strh r0, [r1, 0x26]
b _08132188
.align 2, 0
-_08132084: .4byte gBattleAnimPlayerMonIndex
-_08132088: .4byte gBattleAnimEnemyMonIndex
+_08132084: .4byte gBattleAnimBankAttacker
+_08132088: .4byte gBattleAnimBankTarget
_0813208C: .4byte gTasks
_08132090:
ldr r1, _081320CC @ =gObjectBankIDs
- ldr r0, _081320D0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _081320D0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12359,7 +12359,7 @@ _08132090:
b _0813215E
.align 2, 0
_081320CC: .4byte gObjectBankIDs
-_081320D0: .4byte gBattleAnimPlayerMonIndex
+_081320D0: .4byte gBattleAnimBankAttacker
_081320D4: .4byte gSprites
_081320D8:
movs r3, 0x20
@@ -12387,7 +12387,7 @@ _081320EC:
b _08132188
_08132104:
ldr r1, _08132144 @ =gObjectBankIDs
- ldr r0, _08132148 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132148 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12420,7 +12420,7 @@ _08132104:
b _08132162
.align 2, 0
_08132144: .4byte gObjectBankIDs
-_08132148: .4byte gBattleAnimPlayerMonIndex
+_08132148: .4byte gBattleAnimBankAttacker
_0813214C: .4byte gSprites
_08132150:
movs r3, 0x20
@@ -12440,7 +12440,7 @@ _08132162:
b _08132188
_0813216A:
ldr r1, _08132190 @ =gObjectBankIDs
- ldr r0, _08132194 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132194 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -12459,7 +12459,7 @@ _08132188:
bx r0
.align 2, 0
_08132190: .4byte gObjectBankIDs
-_08132194: .4byte gBattleAnimPlayerMonIndex
+_08132194: .4byte gBattleAnimBankAttacker
_08132198: .4byte gSprites
thumb_func_end sub_8131FFC
@@ -12474,12 +12474,12 @@ sub_813219C: @ 813219C
ldr r0, _08132204 @ =gTasks
adds r4, r1, r0
movs r0, 0
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
- ldr r0, _08132208 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08132208 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12518,7 +12518,7 @@ _081321D0:
bx r0
.align 2, 0
_08132204: .4byte gTasks
-_08132208: .4byte gBattleAnimPlayerMonIndex
+_08132208: .4byte gBattleAnimBankAttacker
_0813220C: .4byte gSprites
_08132210: .4byte sub_8132214
thumb_func_end sub_813219C
@@ -12662,7 +12662,7 @@ _08132312:
sub_8132318: @ 8132318
push {r4,lr}
adds r4, r0, 0
- ldr r0, _0813236C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813236C @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12699,14 +12699,14 @@ _0813235E:
pop {r0}
bx r0
.align 2, 0
-_0813236C: .4byte gBattleAnimEnemyMonIndex
+_0813236C: .4byte gBattleAnimBankTarget
thumb_func_end sub_8132318
thumb_func_start sub_8132370
sub_8132370: @ 8132370
push {r4,lr}
adds r4, r0, 0
- ldr r0, _081323A8 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081323A8 @ =gBattleAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12730,7 +12730,7 @@ sub_8132370: @ 8132370
bl StartSpriteAffineAnim
b _081323CE
.align 2, 0
-_081323A8: .4byte gBattleAnimEnemyMonIndex
+_081323A8: .4byte gBattleAnimBankTarget
_081323AC: .4byte gBattleAnimArgs
_081323B0: .4byte 0x0000fff5
_081323B4:
@@ -12762,7 +12762,7 @@ _081323DC: .4byte sub_8132318
sub_81323E0: @ 81323E0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, _08132424 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _08132424 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_8077ABC
@@ -12793,7 +12793,7 @@ _0813240A:
pop {r0}
bx r0
.align 2, 0
-_08132424: .4byte gBattleAnimPlayerMonIndex
+_08132424: .4byte gBattleAnimBankAttacker
_08132428: .4byte sub_8132430
_0813242C: .4byte REG_BLDALPHA
thumb_func_end sub_81323E0
@@ -12997,7 +12997,7 @@ sub_813257C: @ 813257C
strh r0, [r4, 0x8]
ldr r0, _081325B8 @ =gBattleAnimArgs
ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
+ bl GetAnimBankSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s
index a5ab2fb83..ab8a222df 100644
--- a/asm/battle_anim_813F0F4.s
+++ b/asm/battle_anim_813F0F4.s
@@ -17,7 +17,7 @@ unref_sub_813F0F4: @ 813F0F4
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
- ldr r0, _0813F2AC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F2AC @ =gBattleAnimBankAttacker
ldrb r3, [r0]
ldr r0, _0813F2B0 @ =gUnknown_030042C4
movs r1, 0
@@ -220,7 +220,7 @@ unref_sub_813F0F4: @ 813F0F4
pop {r0}
bx r0
.align 2, 0
-_0813F2AC: .4byte gBattleAnimPlayerMonIndex
+_0813F2AC: .4byte gBattleAnimBankAttacker
_0813F2B0: .4byte gUnknown_030042C4
_0813F2B4: .4byte gUnknown_03004240
_0813F2B8: .4byte REG_WININ
@@ -252,7 +252,7 @@ sub_813F300: @ 813F300
sub sp, 0x10
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, _0813F34C @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F34C @ =gBattleAnimBankAttacker
ldrb r0, [r0]
mov r9, r0
ldr r1, _0813F350 @ =gTasks
@@ -284,7 +284,7 @@ sub_813F300: @ 813F300
beq _0813F35E
b _0813F4B2
.align 2, 0
-_0813F34C: .4byte gBattleAnimPlayerMonIndex
+_0813F34C: .4byte gBattleAnimBankAttacker
_0813F350: .4byte gTasks
_0813F354: .4byte gUnknown_030041B4
_0813F358:
@@ -495,7 +495,7 @@ sub_813F4EC: @ 813F4EC
lsrs r0, 24
str r0, [sp]
ldr r1, _0813F5D0 @ =gHealthboxIDs
- ldr r0, _0813F5D4 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F5D4 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -595,7 +595,7 @@ sub_813F4EC: @ 813F4EC
bx r0
.align 2, 0
_0813F5D0: .4byte gHealthboxIDs
-_0813F5D4: .4byte gBattleAnimPlayerMonIndex
+_0813F5D4: .4byte gBattleAnimBankAttacker
_0813F5D8: .4byte gSprites
_0813F5DC: .4byte 0x0000d709
_0813F5E0: .4byte 0x0000d70a
@@ -614,7 +614,7 @@ sub_813F5E8: @ 813F5E8
lsrs r0, 24
mov r8, r0
ldr r1, _0813F684 @ =gHealthboxIDs
- ldr r0, _0813F688 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F688 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -678,7 +678,7 @@ sub_813F5E8: @ 813F5E8
bx r0
.align 2, 0
_0813F684: .4byte gHealthboxIDs
-_0813F688: .4byte gBattleAnimPlayerMonIndex
+_0813F688: .4byte gBattleAnimBankAttacker
_0813F68C: .4byte gSprites
_0813F690: .4byte 0x0000d709
_0813F694: .4byte 0x0000d70a
@@ -820,7 +820,7 @@ sub_813F798: @ 813F798
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _0813F7C4 @ =gObjectBankIDs
- ldr r0, _0813F7C8 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _0813F7C8 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r5, [r0]
@@ -840,7 +840,7 @@ sub_813F798: @ 813F798
b _0813F838
.align 2, 0
_0813F7C4: .4byte gObjectBankIDs
-_0813F7C8: .4byte gBattleAnimPlayerMonIndex
+_0813F7C8: .4byte gBattleAnimBankAttacker
_0813F7CC: .4byte gTasks
_0813F7D0:
cmp r0, 0x2
@@ -911,7 +911,7 @@ sub_813F844: @ 813F844
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0813F87C @ =gObjectBankIDs
- ldr r4, _0813F880 @ =gBattleAnimPlayerMonIndex
+ ldr r4, _0813F880 @ =gBattleAnimBankAttacker
ldrb r0, [r4]
adds r1, r0, r1
ldrb r1, [r1]
@@ -931,7 +931,7 @@ sub_813F844: @ 813F844
b _0813F89C
.align 2, 0
_0813F87C: .4byte gObjectBankIDs
-_0813F880: .4byte gBattleAnimPlayerMonIndex
+_0813F880: .4byte gBattleAnimBankAttacker
_0813F884: .4byte gBattlePartyID
_0813F888: .4byte gPlayerParty
_0813F88C:
@@ -970,7 +970,7 @@ _0813F8CC: .4byte gBattlePartyID
_0813F8D0: .4byte gEnemyParty
_0813F8D4: .4byte gTasks
_0813F8D8:
- ldr r5, _0813F950 @ =gBattleAnimPlayerMonIndex
+ ldr r5, _0813F950 @ =gBattleAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_8077ABC
@@ -1025,7 +1025,7 @@ _0813F8D8:
strh r0, [r6, 0x8]
b _0813F982
.align 2, 0
-_0813F950: .4byte gBattleAnimPlayerMonIndex
+_0813F950: .4byte gBattleAnimBankAttacker
_0813F954: .4byte gSprites
_0813F958:
movs r1, 0x1C
@@ -1235,7 +1235,7 @@ sub_813FA94: @ 813FA94
adds r6, r4, r1
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r2, _0813FB64 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _0813FB64 @ =gBattleAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0
@@ -1297,7 +1297,7 @@ sub_813FA94: @ 813FA94
_0813FB58: .4byte gLastUsedItem
_0813FB5C: .4byte gBallSpriteTemplates
_0813FB60: .4byte gSprites
-_0813FB64: .4byte gBattleAnimEnemyMonIndex
+_0813FB64: .4byte gBattleAnimBankTarget
_0813FB68: .4byte sub_813FD90
_0813FB6C: .4byte 0x02017840
_0813FB70: .4byte gObjectBankIDs
@@ -1397,7 +1397,7 @@ _0813FBE0:
adds r6, r4, r0
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _0813FCA8 @ =gBattleAnimBankTarget
mov r8, r1
ldrb r0, [r1]
movs r1, 0
@@ -1449,7 +1449,7 @@ _0813FBE0:
_0813FC9C: .4byte gLastUsedItem
_0813FCA0: .4byte gBallSpriteTemplates
_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gBattleAnimEnemyMonIndex
+_0813FCA8: .4byte gBattleAnimBankTarget
_0813FCAC: .4byte SpriteCallbackDummy
_0813FCB0: .4byte gObjectBankIDs
_0813FCB4: .4byte gTasks
@@ -1652,7 +1652,7 @@ _0813FE10:
movs r2, 0x1
movs r3, 0x1C
bl sub_814086C
- ldr r0, _0813FE6C @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FE6C @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0
movs r2, 0xE
@@ -1666,7 +1666,7 @@ _0813FE5A:
.align 2, 0
_0813FE64: .4byte sub_813FE70
_0813FE68: .4byte gLastUsedItem
-_0813FE6C: .4byte gBattleAnimEnemyMonIndex
+_0813FE6C: .4byte gBattleAnimBankTarget
thumb_func_end sub_813FDC0
thumb_func_start sub_813FE70
@@ -1690,7 +1690,7 @@ sub_813FE70: @ 813FE70
str r0, [r4, 0x1C]
ldr r2, _0813FEBC @ =gSprites
ldr r1, _0813FEC0 @ =gObjectBankIDs
- ldr r0, _0813FEC4 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FEC4 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -1709,7 +1709,7 @@ _0813FEB4: .4byte TaskDummy
_0813FEB8: .4byte sub_813FEC8
_0813FEBC: .4byte gSprites
_0813FEC0: .4byte gObjectBankIDs
-_0813FEC4: .4byte gBattleAnimEnemyMonIndex
+_0813FEC4: .4byte gBattleAnimBankTarget
thumb_func_end sub_813FE70
thumb_func_start sub_813FEC8
@@ -1717,7 +1717,7 @@ sub_813FEC8: @ 813FEC8
push {r4-r7,lr}
adds r7, r0, 0
ldr r1, _0813FF0C @ =gObjectBankIDs
- ldr r0, _0813FF10 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _0813FF10 @ =gBattleAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r4, [r0]
@@ -1750,7 +1750,7 @@ _0813FEFA:
b _0813FFDC
.align 2, 0
_0813FF0C: .4byte gObjectBankIDs
-_0813FF10: .4byte gBattleAnimEnemyMonIndex
+_0813FF10: .4byte gBattleAnimBankTarget
_0813FF14: .4byte gTasks
_0813FF18:
cmp r0, 0x2
@@ -2451,7 +2451,7 @@ _08140450: .4byte sub_8140454
sub_8140454: @ 8140454
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, _08140484 @ =gBattleAnimEnemyMonIndex
+ ldr r7, _08140484 @ =gBattleAnimBankTarget
ldrh r0, [r6, 0x36]
adds r0, 0x1
strh r0, [r6, 0x36]
@@ -2471,7 +2471,7 @@ sub_8140454: @ 8140454
bl PlaySE
b _081404CC
.align 2, 0
-_08140484: .4byte gBattleAnimEnemyMonIndex
+_08140484: .4byte gBattleAnimBankTarget
_08140488: .4byte gDoingBattleAnim
_0814048C: .4byte 0x00000173
_08140490:
@@ -2690,7 +2690,7 @@ sub_81405F4: @ 81405F4
movs r2, 0x1
movs r3, 0x1C
bl sub_814086C
- ldr r0, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldr r0, _081406B0 @ =gBattleAnimBankTarget
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0xE
@@ -2699,7 +2699,7 @@ sub_81405F4: @ 81405F4
_08140646:
ldr r6, _081406B4 @ =gSprites
ldr r5, _081406B8 @ =gObjectBankIDs
- ldr r4, _081406B0 @ =gBattleAnimEnemyMonIndex
+ ldr r4, _081406B0 @ =gBattleAnimBankTarget
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -2747,7 +2747,7 @@ _08140646:
.align 2, 0
_081406A8: .4byte sub_81406BC
_081406AC: .4byte gLastUsedItem
-_081406B0: .4byte gBattleAnimEnemyMonIndex
+_081406B0: .4byte gBattleAnimBankTarget
_081406B4: .4byte gSprites
_081406B8: .4byte gObjectBankIDs
thumb_func_end sub_81405F4
@@ -2772,7 +2772,7 @@ sub_81406BC: @ 81406BC
_081406DA:
ldr r4, _08140708 @ =gSprites
ldr r3, _0814070C @ =gObjectBankIDs
- ldr r2, _08140710 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08140710 @ =gBattleAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2794,7 +2794,7 @@ _081406DA:
.align 2, 0
_08140708: .4byte gSprites
_0814070C: .4byte gObjectBankIDs
-_08140710: .4byte gBattleAnimEnemyMonIndex
+_08140710: .4byte gBattleAnimBankTarget
_08140714:
ldr r6, _0814079C @ =0xfffffee0
adds r0, r6, 0
@@ -2824,7 +2824,7 @@ _08140734:
beq _08140796
ldr r4, _081407A0 @ =gSprites
ldr r3, _081407A4 @ =gObjectBankIDs
- ldr r2, _081407A8 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _081407A8 @ =gBattleAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2869,7 +2869,7 @@ _08140796:
_0814079C: .4byte 0xfffffee0
_081407A0: .4byte gSprites
_081407A4: .4byte gObjectBankIDs
-_081407A8: .4byte gBattleAnimEnemyMonIndex
+_081407A8: .4byte gBattleAnimBankTarget
_081407AC: .4byte 0x02017840
_081407B0: .4byte sub_81405C8
_081407B4: .4byte gDoingBattleAnim
@@ -4583,7 +4583,7 @@ sub_814151C: @ 814151C
movs r0, 0
mov r8, r0
ldr r0, _08141550 @ =gObjectBankIDs
- ldr r3, _08141554 @ =gBattleAnimPlayerMonIndex
+ ldr r3, _08141554 @ =gBattleAnimBankAttacker
ldrb r2, [r3]
adds r0, r2, r0
ldrb r6, [r0]
@@ -4603,7 +4603,7 @@ sub_814151C: @ 814151C
b _081416B6
.align 2, 0
_08141550: .4byte gObjectBankIDs
-_08141554: .4byte gBattleAnimPlayerMonIndex
+_08141554: .4byte gBattleAnimBankAttacker
_08141558: .4byte gTasks
_0814155C:
cmp r0, 0x2
@@ -4738,7 +4738,7 @@ _08141654:
adds r0, r1
ldrb r1, [r0, 0x8]
strh r1, [r0, 0x8]
- ldr r0, _08141690 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141690 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4759,7 +4759,7 @@ _08141654:
.align 2, 0
_08141688: .4byte gSprites
_0814168C: .4byte gTasks
-_08141690: .4byte gBattleAnimPlayerMonIndex
+_08141690: .4byte gBattleAnimBankAttacker
_08141694:
ldr r0, _081416C0 @ =gSprites
adds r1, r4, r6
@@ -4816,7 +4816,7 @@ _081416EC:
beq _0814177C
b _081417B8
_081416F2:
- ldr r0, _08141708 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141708 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
bl GetBankIdentity_permutated
lsls r0, 24
@@ -4827,7 +4827,7 @@ _081416F2:
ldr r2, _08141710 @ =0x00003f42
b _08141718
.align 2, 0
-_08141708: .4byte gBattleAnimPlayerMonIndex
+_08141708: .4byte gBattleAnimBankAttacker
_0814170C: .4byte REG_BLDCNT
_08141710: .4byte 0x00003f42
_08141714:
@@ -4884,7 +4884,7 @@ _08141744:
_08141778: .4byte REG_BLDALPHA
_0814177C:
ldr r1, _081417C0 @ =gObjectBankIDs
- ldr r3, _081417C4 @ =gBattleAnimPlayerMonIndex
+ ldr r3, _081417C4 @ =gBattleAnimBankAttacker
ldrb r0, [r3]
adds r0, r1
ldrb r1, [r0]
@@ -4918,7 +4918,7 @@ _081417B8:
bx r0
.align 2, 0
_081417C0: .4byte gObjectBankIDs
-_081417C4: .4byte gBattleAnimPlayerMonIndex
+_081417C4: .4byte gBattleAnimBankAttacker
_081417C8: .4byte gSprites
_081417CC: .4byte 0x06010000
_081417D0: .4byte 0x040000d4
@@ -4931,7 +4931,7 @@ sub_81417D8: @ 81417D8
lsls r0, 24
lsrs r0, 24
ldr r3, _081417FC @ =gBattleAnimArgs
- ldr r1, _08141800 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _08141800 @ =gBattleAnimBankAttacker
ldrb r1, [r1]
lsls r1, 2
ldr r2, _08141804 @ =0x02017800
@@ -4945,7 +4945,7 @@ sub_81417D8: @ 81417D8
bx r0
.align 2, 0
_081417FC: .4byte gBattleAnimArgs
-_08141800: .4byte gBattleAnimPlayerMonIndex
+_08141800: .4byte gBattleAnimBankAttacker
_08141804: .4byte 0x02017800
thumb_func_end sub_81417D8
@@ -4954,7 +4954,7 @@ sub_8141808: @ 8141808
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08141820 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08141820 @ =gBattleAnimBankTarget
ldr r1, _08141824 @ =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -4962,7 +4962,7 @@ sub_8141808: @ 8141808
pop {r0}
bx r0
.align 2, 0
-_08141820: .4byte gBattleAnimEnemyMonIndex
+_08141820: .4byte gBattleAnimBankTarget
_08141824: .4byte gEffectBank
thumb_func_end sub_8141808
@@ -4994,7 +4994,7 @@ sub_8141828: @ 8141828
bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081418FC
@@ -5511,7 +5511,7 @@ sub_8141C30: @ 8141C30
adds r0, r4, 0
bl sub_80786EC
ldr r1, _08141CAC @ =gObjectBankIDs
- ldr r0, _08141CB0 @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141CB0 @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5531,7 +5531,7 @@ sub_8141C30: @ 8141C30
_08141CA4: .4byte gBattleAnimArgs
_08141CA8: .4byte 0x0000ffe0
_08141CAC: .4byte gObjectBankIDs
-_08141CB0: .4byte gBattleAnimPlayerMonIndex
+_08141CB0: .4byte gBattleAnimBankAttacker
_08141CB4: .4byte gSprites
_08141CB8: .4byte sub_8141CBC
thumb_func_end sub_8141C30
@@ -5542,7 +5542,7 @@ sub_8141CBC: @ 8141CBC
adds r3, r0, 0
ldr r2, _08141CE4 @ =gSprites
ldr r1, _08141CE8 @ =gObjectBankIDs
- ldr r0, _08141CEC @ =gBattleAnimPlayerMonIndex
+ ldr r0, _08141CEC @ =gBattleAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5562,7 +5562,7 @@ _08141CE0:
.align 2, 0
_08141CE4: .4byte gSprites
_08141CE8: .4byte gObjectBankIDs
-_08141CEC: .4byte gBattleAnimPlayerMonIndex
+_08141CEC: .4byte gBattleAnimBankAttacker
_08141CF0: .4byte sub_8141CF4
thumb_func_end sub_8141CBC
@@ -5598,7 +5598,7 @@ sub_8141D20: @ 8141D20
adds r4, r0, 0
ldr r5, _08141D70 @ =gSprites
ldr r3, _08141D74 @ =gObjectBankIDs
- ldr r2, _08141D78 @ =gBattleAnimPlayerMonIndex
+ ldr r2, _08141D78 @ =gBattleAnimBankAttacker
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -5635,7 +5635,7 @@ _08141D68:
.align 2, 0
_08141D70: .4byte gSprites
_08141D74: .4byte gObjectBankIDs
-_08141D78: .4byte gBattleAnimPlayerMonIndex
+_08141D78: .4byte gBattleAnimBankAttacker
thumb_func_end sub_8141D20
thumb_func_start sub_8141D7C
@@ -5646,11 +5646,11 @@ sub_8141D7C: @ 8141D7C
lsrs r4, 24
movs r0, 0
bl GetBankByPlayerAI
- ldr r1, _08141DA4 @ =gBattleAnimPlayerMonIndex
+ ldr r1, _08141DA4 @ =gBattleAnimBankAttacker
strb r0, [r1]
movs r0, 0x1
bl GetBankByPlayerAI
- ldr r1, _08141DA8 @ =gBattleAnimEnemyMonIndex
+ ldr r1, _08141DA8 @ =gBattleAnimBankTarget
strb r0, [r1]
adds r0, r4, 0
bl DestroyAnimVisualTask
@@ -5658,8 +5658,8 @@ sub_8141D7C: @ 8141D7C
pop {r0}
bx r0
.align 2, 0
-_08141DA4: .4byte gBattleAnimPlayerMonIndex
-_08141DA8: .4byte gBattleAnimEnemyMonIndex
+_08141DA4: .4byte gBattleAnimBankAttacker
+_08141DA8: .4byte gBattleAnimBankTarget
thumb_func_end sub_8141D7C
thumb_func_start sub_8141DAC
@@ -5721,20 +5721,20 @@ sub_8141E10: @ 8141E10
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08141E2C @ =gBattleAnimPlayerMonIndex
+ ldr r2, _08141E2C @ =gBattleAnimBankAttacker
ldr r1, _08141E30 @ =0x02017840
ldrh r1, [r1]
strb r1, [r2]
- ldr r2, _08141E34 @ =gBattleAnimEnemyMonIndex
+ ldr r2, _08141E34 @ =gBattleAnimBankTarget
lsrs r1, 8
strb r1, [r2]
bl DestroyAnimVisualTask
pop {r0}
bx r0
.align 2, 0
-_08141E2C: .4byte gBattleAnimPlayerMonIndex
+_08141E2C: .4byte gBattleAnimBankAttacker
_08141E30: .4byte 0x02017840
-_08141E34: .4byte gBattleAnimEnemyMonIndex
+_08141E34: .4byte gBattleAnimBankTarget
thumb_func_end sub_8141E10
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 65fbd0c05..cd8eede60 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -1522,7 +1522,7 @@ _081350AE:
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
lsls r0, 24
cmp r0, 0
beq _081350C6
@@ -1555,7 +1555,7 @@ AppendBattleTowerBannedSpeciesName: @ 81350E0
lsls r0, 16
lsrs r0, 16
movs r1, 0x1
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
lsls r0, 24
cmp r0, 0
beq _081351E6
diff --git a/asm/cable_car.s b/asm/cable_car.s
index e4d989844..385cd404d 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -256,22 +256,22 @@ _081233EC:
ldr r0, _0812345C @ =gCableCarMtChimneyTilemap
ldr r4, _08123460 @ =0x02019000
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123464 @ =gCableCarTreeTilemap
movs r2, 0xB4
lsls r2, 1
adds r1, r4, r2
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123468 @ =gCableCarMountainTilemap
movs r2, 0xA5
lsls r2, 3
adds r1, r4, r2
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _0812346C @ =gCableCarPylonStemTilemap
ldr r1, _08123470 @ =0x000009d8
adds r4, r1
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _08123474 @ =gCableCarBG_Pal
movs r1, 0
movs r2, 0x80
diff --git a/asm/contest.s b/asm/contest.s
index 4a85f3d16..c5dfe3e2e 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -6904,7 +6904,7 @@ sub_80AE9FC: @ 80AE9FC
adds r0, r5, 0
mov r1, r8
adds r2, r6, 0
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
movs r1, 0x90
lsls r1, 1
movs r2, 0x20
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index 93dd26eee..b91a9665b 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -1361,7 +1361,7 @@ _080C2B14:
adds r0, r6, 0
ldr r1, [sp, 0xC]
adds r2, r4, 0
- bl sub_80409C8
+ bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
adds r0, r6, 0
@@ -1601,7 +1601,7 @@ _080C2D42:
lsls r0, 16
lsrs r0, 16
movs r1, 0x2
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
adds r5, 0x40
subs r4, 0x1
cmp r4, 0
diff --git a/asm/daycare.s b/asm/daycare.s
deleted file mode 100644
index a0ea9124a..000000000
--- a/asm/daycare.s
+++ /dev/null
@@ -1,2399 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80416A0
-sub_80416A0: @ 80416A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- lsls r0, r4, 2
- mov r8, r0
- add r4, r8
- lsls r4, 4
- adds r4, r5, r4
- adds r0, r4, 0
- bl GetLevelFromBoxMonExp
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x88
- lsls r0, 1
- adds r5, r0
- add r5, r8
- ldr r1, [r5]
- adds r0, r4, 0
- bl Daycare_GetLevelAfterSteps
- lsls r0, 24
- lsrs r0, 24
- subs r0, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80416A0
-
- thumb_func_start sub_80416E8
-sub_80416E8: @ 80416E8
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041720 @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- ldr r0, _08041724 @ =gStringVar2
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041720: .4byte gStringVar1
-_08041724: .4byte gStringVar2
- thumb_func_end sub_80416E8
-
- thumb_func_start sub_8041728
-sub_8041728: @ 8041728
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_80416A0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- adds r6, r0
- ldr r1, _08041768 @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- adds r4, 0x64
- ldr r0, _0804176C @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08041768: .4byte gStringVar1
-_0804176C: .4byte gStringVar2
- thumb_func_end sub_8041728
-
- thumb_func_start sub_8041770
-sub_8041770: @ 8041770
- push {lr}
- ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041788 @ =gSpecialVar_0x8004
- ldrb r1, [r1]
- bl sub_8041728
- ldr r1, _0804178C @ =gSpecialVar_0x8005
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08041784: .4byte gSaveBlock1 + 0x2F9C
-_08041788: .4byte gSpecialVar_0x8004
-_0804178C: .4byte gSpecialVar_0x8005
- thumb_func_end sub_8041770
-
- thumb_func_start sub_8041790
-sub_8041790: @ 8041790
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080417AC @ =gSaveBlock1
- ldr r1, _080417B0 @ =0x000030ac
- adds r3, r2, r1
- ldr r1, [r3]
- adds r1, r0
- str r1, [r3]
- ldr r1, _080417B4 @ =0x000030b0
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
- bx lr
- .align 2, 0
-_080417AC: .4byte gSaveBlock1
-_080417B0: .4byte 0x000030ac
-_080417B4: .4byte 0x000030b0
- thumb_func_end sub_8041790
-
- thumb_func_start sub_80417B8
-sub_80417B8: @ 80417B8
- push {r4,r5,lr}
- ldr r5, _080417D8 @ =gSpecialVar_0x8004
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- ldr r4, _080417DC @ =gSaveBlock1 + 0x2F9C
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- bne _080417E0
- movs r0, 0
- b _080417EC
- .align 2, 0
-_080417D8: .4byte gSpecialVar_0x8004
-_080417DC: .4byte gSaveBlock1 + 0x2F9C
-_080417E0:
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80416E8
- lsls r0, 24
- lsrs r0, 24
-_080417EC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80417B8
-
- thumb_func_start sub_80417F4
-sub_80417F4: @ 80417F4
- push {lr}
- movs r3, 0
- movs r2, 0x7
- adds r1, r0, 0
- adds r1, 0x2B
-_080417FE:
- strb r3, [r1]
- subs r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _080417FE
- adds r2, r0, 0
- adds r2, 0x2C
- movs r3, 0
- adds r1, r0, 0
- adds r1, 0x36
-_08041812:
- strb r3, [r1]
- subs r1, 0x1
- cmp r1, r2
- bge _08041812
- bl ClearMailStruct
- pop {r0}
- bx r0
- thumb_func_end sub_80417F4
-
- thumb_func_start unref_sub_8041824
-unref_sub_8041824: @ 8041824
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
-_0804182A:
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 4
- adds r0, r6, r0
- bl ZeroBoxMonData
- movs r1, 0x88
- lsls r1, 1
- adds r0, r6, r1
- adds r0, r4
- movs r4, 0
- str r4, [r0]
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 3
- adds r0, 0xA0
- adds r0, r6, r0
- bl sub_80417F4
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0804182A
- movs r2, 0x8C
- lsls r2, 1
- adds r0, r6, r2
- movs r1, 0
- strh r4, [r0]
- adds r2, 0x2
- adds r0, r6, r2
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8041824
-
- thumb_func_start sub_8041870
-sub_8041870: @ 8041870
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- mov r8, r0
- ldr r0, _0804189C @ =gEvolutionTable
- mov r12, r0
-_08041882:
- movs r7, 0
- movs r6, 0x1
- movs r4, 0x80
- lsls r4, 9
- movs r5, 0x28
- mov r3, r12
- adds r3, 0x28
-_08041890:
- movs r1, 0
- ldrh r0, [r3, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- b _080418CC
- .align 2, 0
-_0804189C: .4byte gEvolutionTable
-_080418A0:
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080418B6
- lsls r0, r1, 3
- adds r0, r5
- add r0, r12
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080418A0
- lsrs r2, r4, 16
- movs r7, 0x1
-_080418B6:
- cmp r7, 0
- bne _080418CC
- movs r0, 0x80
- lsls r0, 9
- adds r4, r0
- adds r5, 0x28
- adds r3, 0x28
- adds r6, 0x1
- ldr r0, _080418EC @ =0x0000019b
- cmp r6, r0
- ble _08041890
-_080418CC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- beq _080418DE
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x4
- ble _08041882
-_080418DE:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080418EC: .4byte 0x0000019b
- thumb_func_end sub_8041870
-
- thumb_func_start sub_80418F0
-sub_80418F0: @ 80418F0
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041918 @ =0x0000fffe
- bl __umodsi3
- adds r0, 0x1
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08041918: .4byte 0x0000fffe
- thumb_func_end sub_80418F0
-
- thumb_func_start sub_804191C
-sub_804191C: @ 804191C
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- orrs r1, r0
- strh r1, [r4]
- movs r0, 0x86
- bl FlagSet
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_804191C
-
- thumb_func_start sub_8041940
-sub_8041940: @ 8041940
- push {lr}
- ldr r0, _0804194C @ =gSaveBlock1 + 0x2F9C
- bl sub_80418F0
- pop {r0}
- bx r0
- .align 2, 0
-_0804194C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041940
-
- thumb_func_start sub_8041950
-sub_8041950: @ 8041950
- push {lr}
- ldr r0, _0804195C @ =gSaveBlock1 + 0x2F9C
- bl sub_804191C
- pop {r0}
- bx r0
- .align 2, 0
-_0804195C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041950
-
- thumb_func_start sub_8041960
-sub_8041960: @ 8041960
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
-_08041972:
- mov r1, sp
- adds r0, r1, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041972
- movs r3, 0
- movs r2, 0
-_08041986:
- mov r1, sp
- adds r0, r1, r2
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08041998
- adds r0, r4, r3
- strb r1, [r0]
- adds r3, 0x1
-_08041998:
- adds r2, 0x1
- cmp r2, 0x5
- ble _08041986
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8041960
-
- thumb_func_start sub_80419A8
-sub_80419A8: @ 80419A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r9, r0
- mov r8, r1
- movs r5, 0
- add r1, sp, 0x4
- add r7, sp, 0xC
- adds r2, r1, 0
-_080419BE:
- adds r0, r2, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080419BE
- movs r5, 0
- adds r6, r1, 0
-_080419D0:
- bl Random
- mov r1, sp
- adds r4, r1, r5
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- subs r1, r5
- bl __modsi3
- adds r0, r6, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- adds r0, r6, 0
- bl sub_8041960
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080419D0
- movs r5, 0
- movs r4, 0x1
-_08041A00:
- bl Random
- adds r1, r7, r5
- lsls r0, 16
- lsrs r0, 16
- ands r0, r4
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A00
- movs r5, 0
-_08041A1A:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08041B02
- lsls r0, 2
- ldr r1, _08041A30 @ =_08041A34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08041A30: .4byte _08041A34
- .align 2, 0
-_08041A34:
- .4byte _08041A4C
- .4byte _08041A6C
- .4byte _08041A88
- .4byte _08041AA4
- .4byte _08041AC0
- .4byte _08041AE2
-_08041A4C:
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x27
- bl GetBoxMonData
- add r2, sp, 0x10
- strb r0, [r2]
- mov r0, r9
- movs r1, 0x27
- bl SetMonData
- b _08041B02
-_08041A6C:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x28
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x28
- b _08041ADA
-_08041A88:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x29
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x29
- b _08041ADA
-_08041AA4:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2A
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2A
- b _08041ADA
-_08041AC0:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2B
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2B
-_08041ADA:
- adds r2, r4, 0
- bl SetMonData
- b _08041B02
-_08041AE2:
- add r4, sp, 0x10
- adds r0, r7, r5
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- movs r1, 0x2C
- bl GetBoxMonData
- strb r0, [r4]
- mov r0, r9
- movs r1, 0x2C
- adds r2, r4, 0
- bl SetMonData
-_08041B02:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08041A1A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80419A8
-
- thumb_func_start pokemon_get_eggmoves
-pokemon_get_eggmoves: @ 8041B1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- movs r6, 0
- movs r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _08041B44 @ =gEggMoves
- ldrh r1, [r5]
- ldr r7, _08041B48 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- movs r4, 0x1
- b _08041B6E
- .align 2, 0
-_08041B44: .4byte gEggMoves
-_08041B48: .4byte 0x00004e20
-_08041B4C:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _08041BB8 @ =0x00000471
- ldr r5, _08041BBC @ =gEggMoves
- cmp r2, r0
- bhi _08041B6E
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r7, _08041BC0 @ =0x00004e20
- adds r0, r3, r7
- cmp r1, r0
- bne _08041B4C
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08041B6E:
- movs r2, 0
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- ldr r1, _08041BC0 @ =0x00004e20
- cmp r0, r1
- bhi _08041BAA
- adds r7, r5, 0
- adds r3, r1, 0
-_08041B80:
- lsls r1, r2, 1
- add r1, r8
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bhi _08041BAA
- adds r0, r4, r2
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r3
- bls _08041B80
-_08041BAA:
- lsls r0, r6, 24
- lsrs r0, 24
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041BB8: .4byte 0x00000471
-_08041BBC: .4byte gEggMoves
-_08041BC0: .4byte 0x00004e20
- thumb_func_end pokemon_get_eggmoves
-
- thumb_func_start daycare_build_child_moveset
-daycare_build_child_moveset: @ 8041BC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- adds r7, r0, 0
- mov r10, r1
- mov r9, r2
- movs r0, 0
- str r0, [sp]
- movs r6, 0
- ldr r5, _08041CC8 @ =gUnknown_03000500
- movs r2, 0
- ldr r4, _08041CCC @ =gUnknown_030004D8
- ldr r3, _08041CD0 @ =gUnknown_030004E0
-_08041BE4:
- lsls r1, r6, 1
- adds r0, r1, r5
- strh r2, [r0]
- adds r0, r1, r4
- strh r2, [r0]
- adds r1, r3
- strh r2, [r1]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041BE4
- movs r6, 0
- ldr r2, _08041CD4 @ =gUnknown_030004E8
- movs r1, 0
-_08041C02:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x9
- bls _08041C02
- movs r6, 0
- ldr r2, _08041CD8 @ =gUnknown_03000470
- movs r1, 0
-_08041C18:
- lsls r0, r6, 1
- adds r0, r2
- strh r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x31
- bls _08041C18
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08041CD8 @ =gUnknown_03000470
- bl GetLevelUpMovesBySpecies
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r6, 0
- ldr r1, _08041CCC @ =gUnknown_030004D8
- mov r8, r1
-_08041C46:
- adds r5, r6, 0
- adds r5, 0xD
- mov r0, r10
- adds r1, r5, 0
- bl GetBoxMonData
- lsls r4, r6, 1
- mov r2, r8
- adds r1, r4, r2
- strh r0, [r1]
- mov r0, r9
- adds r1, r5, 0
- bl GetBoxMonData
- ldr r1, _08041CC8 @ =gUnknown_03000500
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041C46
- ldr r1, _08041CD4 @ =gUnknown_030004E8
- adds r0, r7, 0
- bl pokemon_get_eggmoves
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r6, 0
-_08041C82:
- ldr r0, _08041CCC @ =gUnknown_030004D8
- lsls r1, r6, 1
- adds r2, r1, r0
- ldrh r1, [r2]
- mov r9, r0
- cmp r1, 0
- beq _08041CF8
- movs r5, 0
- cmp r5, r8
- bcs _08041CEA
- adds r4, r2, 0
- ldr r2, _08041CDC @ =0x0000ffff
-_08041C9A:
- ldr r0, _08041CD4 @ =gUnknown_030004E8
- lsls r1, r5, 1
- adds r1, r0
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08041CE0
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041CEA
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041CEA
- .align 2, 0
-_08041CC8: .4byte gUnknown_03000500
-_08041CCC: .4byte gUnknown_030004D8
-_08041CD0: .4byte gUnknown_030004E0
-_08041CD4: .4byte gUnknown_030004E8
-_08041CD8: .4byte gUnknown_03000470
-_08041CDC: .4byte 0x0000ffff
-_08041CE0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- bcc _08041C9A
-_08041CEA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _08041E14 @ =gUnknown_030004D8
- mov r9, r3
- cmp r6, 0x3
- bls _08041C82
-_08041CF8:
- movs r6, 0
-_08041CFA:
- lsls r0, r6, 1
- mov r2, r9
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- adds r6, 0x1
- mov r8, r6
- cmp r1, 0
- beq _08041D5C
- movs r5, 0
- ldr r0, _08041E14 @ =gUnknown_030004D8
- adds r4, r2, r0
- ldr r6, _08041E18 @ =0x0000ffff
- mov r9, r0
-_08041D16:
- ldr r3, _08041E1C @ =0x00000121
- adds r0, r5, r3
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBattleMoveId
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bne _08041D52
- lsls r1, r5, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl CanMonLearnTMHM
- cmp r0, 0
- beq _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bne _08041D52
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_08041D52:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x39
- bls _08041D16
-_08041D5C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bls _08041CFA
- movs r6, 0
- mov r2, r9
- ldrh r0, [r2]
- ldr r3, _08041E20 @ =gUnknown_030004E0
- mov r10, r3
- cmp r0, 0
- beq _08041DC6
- mov r4, r9
- ldr r0, _08041E24 @ =gUnknown_03000500
- mov r9, r0
- mov r12, r10
-_08041D7C:
- movs r5, 0
- lsls r2, r6, 1
- adds r6, 0x1
- mov r8, r6
- adds r3, r2, r4
-_08041D86:
- lsls r0, r5, 1
- add r0, r9
- ldrh r2, [r3]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bne _08041DA8
- cmp r1, 0
- beq _08041DA8
- ldr r1, [sp]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 1
- add r1, r12
- strh r2, [r1]
-_08041DA8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3
- bls _08041D86
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041DC6
- lsls r0, r6, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0
- bne _08041D7C
-_08041DC6:
- movs r6, 0
- mov r2, r10
- ldrh r0, [r2]
- cmp r0, 0
- beq _08041E50
-_08041DD0:
- movs r5, 0
- adds r3, r6, 0x1
- mov r8, r3
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcs _08041E38
- ldr r2, _08041E18 @ =0x0000ffff
-_08041DDE:
- ldr r1, _08041E28 @ =gUnknown_03000470
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08041E2C
- lsls r0, r6, 1
- mov r3, r10
- adds r4, r0, r3
- ldrh r0, [r4]
- cmp r0, r1
- bne _08041E2C
- adds r1, r0, 0
- adds r0, r7, 0
- str r2, [sp, 0x8]
- bl GiveMoveToMon
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _08041E38
- ldrh r1, [r4]
- adds r0, r7, 0
- bl DeleteFirstMoveAndGiveMoveToMon
- b _08041E38
- .align 2, 0
-_08041E14: .4byte gUnknown_030004D8
-_08041E18: .4byte 0x0000ffff
-_08041E1C: .4byte 0x00000121
-_08041E20: .4byte gUnknown_030004E0
-_08041E24: .4byte gUnknown_03000500
-_08041E28: .4byte gUnknown_03000470
-_08041E2C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [sp, 0x4]
- cmp r5, r0
- bcc _08041DDE
-_08041E38:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0x3
- bhi _08041E50
- ldr r0, _08041E60 @ =gUnknown_030004E0
- lsls r1, r6, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r10, r0
- cmp r1, 0
- bne _08041DD0
-_08041E50:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041E60: .4byte gUnknown_030004E0
- thumb_func_end daycare_build_child_moveset
-
- thumb_func_start sub_8041E64
-sub_8041E64: @ 8041E64
- adds r3, r0, 0
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r3, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- movs r1, 0x8D
- lsls r1, 1
- adds r0, r3, r1
- strb r2, [r0]
- bx lr
- thumb_func_end sub_8041E64
-
- thumb_func_start sub_8041E7C
-sub_8041E7C: @ 8041E7C
- push {lr}
- ldr r0, _08041E88 @ =gSaveBlock1 + 0x2F9C
- bl sub_8041E64
- pop {r0}
- bx r0
- .align 2, 0
-_08041E88: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_8041E7C
-
- thumb_func_start incense_effects
-incense_effects: @ 8041E8C
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrh r1, [r4]
- movs r7, 0xB4
- lsls r7, 1
- cmp r1, r7
- beq _08041EA4
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
-_08041EA4:
- adds r0, r5, 0
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- adds r0, 0x50
- movs r1, 0xC
- bl GetBoxMonData
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r4]
- cmp r0, r7
- bne _08041ED0
- cmp r6, 0xDD
- beq _08041ED0
- cmp r2, 0xDD
- beq _08041ED0
- movs r0, 0xCA
- strh r0, [r4]
-_08041ED0:
- ldrh r1, [r4]
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _08041EE6
- cmp r6, 0xDC
- beq _08041EE6
- cmp r2, 0xDC
- beq _08041EE6
- movs r0, 0xB7
- strh r0, [r4]
-_08041EE6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end incense_effects
-
- thumb_func_start sub_8041EEC
-sub_8041EEC: @ 8041EEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- movs r4, 0
- movs r7, 0x1
-_08041EFC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- mov r1, r8
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- lsls r1, r4, 1
- add r1, sp
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x84
- bne _08041F26
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6]
- strb r4, [r6, 0x1]
- b _08041F3C
-_08041F26:
- adds r0, r5, 0
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- bne _08041F3C
- strb r4, [r6]
- adds r0, r4, 0
- eors r0, r7
- strb r0, [r6, 0x1]
-_08041F3C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08041EFC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- bl sub_8041870
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bne _08041F6E
- movs r0, 0x8C
- lsls r0, 1
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F6E
- movs r4, 0x20
-_08041F6E:
- ldr r0, _08041FC0 @ =0x00000183
- cmp r4, r0
- bne _08041F88
- subs r0, 0x6B
- add r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08041F88
- movs r4, 0xC1
- lsls r4, 1
-_08041F88:
- ldrb r0, [r6, 0x1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- cmp r0, 0x84
- bne _08041FB2
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 4
- add r0, r8
- bl GetBoxMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFE
- beq _08041FB2
- ldrb r1, [r6, 0x1]
- ldrb r0, [r6]
- strb r0, [r6, 0x1]
- strb r1, [r6]
-_08041FB2:
- adds r0, r4, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08041FC0: .4byte 0x00000183
- thumb_func_end sub_8041EEC
-
- thumb_func_start sub_8041FC4
-sub_8041FC4: @ 8041FC4
- push {r4-r6,lr}
- sub sp, 0x6C
- adds r5, r0, 0
- add r6, sp, 0x64
- adds r1, r6, 0
- bl sub_8041EEC
- add r4, sp, 0x68
- strh r0, [r4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl incense_effects
- ldrh r1, [r4]
- mov r0, sp
- adds r2, r5, 0
- bl sub_80420FC
- mov r0, sp
- adds r1, r5, 0
- bl sub_80419A8
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 4
- adds r1, r5, r1
- ldrb r0, [r6]
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 4
- adds r2, r5, r2
- mov r0, sp
- bl daycare_build_child_moveset
- mov r2, sp
- adds r2, 0x6A
- movs r0, 0x1
- strb r0, [r2]
- mov r0, sp
- movs r1, 0x2D
- bl SetMonData
- ldr r0, _08042040 @ =gPlayerParty
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- bl party_compaction
- bl CalculatePlayerPartyCount
- adds r0, r5, 0
- bl sub_8041E64
- add sp, 0x6C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042040: .4byte gPlayerParty
- thumb_func_end sub_8041FC4
-
- thumb_func_start sub_8042044
-sub_8042044: @ 8042044
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- adds r7, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r0, 0x12
- add r0, sp
- mov r8, r0
- strb r4, [r0]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- movs r0, 0x1
- mov r9, r0
- mov r0, r9
- strb r0, [r4]
- adds r0, r7, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _080420F4 @ =gUnknown_08209AD4
- adds r0, r7, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _080420F8 @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r7, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x24
- mov r2, r8
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- cmp r6, 0
- beq _080420D6
- add r2, sp, 0x14
- movs r0, 0xFD
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x23
- bl SetMonData
-_080420D6:
- mov r2, sp
- adds r2, 0x15
- mov r0, r9
- strb r0, [r2]
- adds r0, r7, 0
- movs r1, 0x2D
- bl SetMonData
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080420F4: .4byte gUnknown_08209AD4
-_080420F8: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_8042044
-
- thumb_func_start sub_80420FC
-sub_80420FC: @ 80420FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r5, 16
- lsrs r5, 16
- bl Random
- movs r1, 0x8C
- lsls r1, 1
- adds r4, r1
- ldrh r1, [r4]
- lsls r0, 16
- orrs r1, r0
- movs r0, 0x1
- mov r8, r0
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x12
- add r1, sp
- mov r9, r1
- strb r4, [r1]
- movs r1, 0x4
- add r0, sp, 0x10
- strh r1, [r0]
- mov r4, sp
- adds r4, 0x13
- mov r0, r8
- strb r0, [r4]
- adds r0, r6, 0
- movs r1, 0x26
- add r2, sp, 0x10
- bl SetMonData
- ldr r2, _08042198 @ =gUnknown_08209AD4
- adds r0, r6, 0
- movs r1, 0x2
- bl SetMonData
- lsls r2, r5, 3
- subs r2, r5
- lsls r2, 2
- ldr r0, _0804219C @ =gBaseStats + 0x11 @ egg cycles offset
- adds r2, r0
- adds r0, r6, 0
- movs r1, 0x20
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x24
- mov r2, r9
- bl SetMonData
- adds r0, r6, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl SetMonData
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042198: .4byte gUnknown_08209AD4
-_0804219C: .4byte gBaseStats + 0x11 @ egg cycles offset
- thumb_func_end sub_80420FC
-
- thumb_func_start sp0B8_daycare
-sp0B8_daycare: @ 80421A0
- push {lr}
- ldr r0, _080421AC @ =gSaveBlock1 + 0x2F9C
- bl sub_8041FC4
- pop {r0}
- bx r0
- .align 2, 0
-_080421AC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B8_daycare
-
- thumb_func_start sub_80421B0
-sub_80421B0: @ 80421B0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r7, r0, 0
- movs r2, 0
- movs r6, 0
- adds r5, r7, 0
-_080421BC:
- lsls r4, r6, 2
- adds r0, r5, 0
- movs r1, 0x5
- str r2, [sp, 0x4]
- bl GetBoxMonData
- ldr r2, [sp, 0x4]
- cmp r0, 0
- beq _080421DE
- movs r0, 0x88
- lsls r0, 1
- adds r1, r7, r0
- adds r1, r4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- adds r2, 0x1
-_080421DE:
- adds r5, 0x50
- adds r6, 0x1
- cmp r6, 0x1
- bls _080421BC
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r7, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _08042226
- cmp r2, 0x2
- bne _08042226
- subs r1, 0x4
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042226
- adds r0, r7, 0
- bl daycare_relationship_score
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08042240 @ =0x0000ffff
- bl __udivsi3
- cmp r4, r0
- bls _08042226
- bl sub_8041940
-_08042226:
- movs r0, 0x8D
- lsls r0, 1
- adds r1, r7, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08042290
- movs r6, 0
- b _08042288
- .align 2, 0
-_08042240: .4byte 0x0000ffff
-_08042244:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08042270 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08042286
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- bne _08042278
- ldr r0, _08042274 @ =gSpecialVar_0x8004
- strh r6, [r0]
- movs r0, 0x1
- b _08042292
- .align 2, 0
-_08042270: .4byte gPlayerParty
-_08042274: .4byte gSpecialVar_0x8004
-_08042278:
- subs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08042286:
- adds r6, 0x1
-_08042288:
- ldr r0, _0804229C @ =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08042244
-_08042290:
- movs r0, 0
-_08042292:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804229C: .4byte gPlayerPartyCount
- thumb_func_end sub_80421B0
-
- thumb_func_start sub_80422A0
-sub_80422A0: @ 80422A0
- push {lr}
- ldr r0, _080422B0 @ =gSaveBlock1 + 0x2F9C
- bl sub_80421B0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080422B0: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sub_80422A0
-
- thumb_func_start sub_80422B4
-sub_80422B4: @ 80422B4
- movs r1, 0x8C
- lsls r1, 1
- adds r0, r1
- ldrh r1, [r0]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- thumb_func_end sub_80422B4
-
- thumb_func_start sub_80422C4
-sub_80422C4: @ 80422C4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _080422FC
- ldr r1, _0804231C @ =gStringVar1
- adds r0, r6, 0
- bl GetBoxMonNick
- adds r0, r6, 0
- movs r1, 0x3
- bl GetBoxMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08042320 @ =gStringVar3
- adds r0, r6, 0
- movs r1, 0x7
- adds r2, r5, 0
- bl GetBoxMonData
- adds r0, r5, 0
- adds r1, r4, 0
- bl ConvertInternationalString
-_080422FC:
- adds r4, r6, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08042314
- ldr r1, _08042324 @ =gStringVar2
- adds r0, r4, 0
- bl GetBoxMonNick
-_08042314:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804231C: .4byte gStringVar1
-_08042320: .4byte gStringVar3
-_08042324: .4byte gStringVar2
- thumb_func_end sub_80422C4
-
- thumb_func_start sub_8042328
-sub_8042328: @ 8042328
- push {r4-r6,lr}
- ldr r6, _08042354 @ =gLastFieldPokeMenuOpened
- ldrb r0, [r6]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08042358 @ =gPlayerParty
- adds r0, r4
- ldr r1, _0804235C @ =gStringVar1
- bl GetBoxMonNick
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetBoxMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08042354: .4byte gLastFieldPokeMenuOpened
-_08042358: .4byte gPlayerParty
-_0804235C: .4byte gStringVar1
- thumb_func_end sub_8042328
-
- thumb_func_start sp0B5_daycare
-sp0B5_daycare: @ 8042360
- push {lr}
- ldr r0, _0804236C @ =gSaveBlock1 + 0x2F9C
- bl sub_80422C4
- pop {r0}
- bx r0
- .align 2, 0
-_0804236C: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end sp0B5_daycare
-
- thumb_func_start sp0B6_daycare
-sp0B6_daycare: @ 8042370
- push {r4,lr}
- ldr r4, _08042384 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- bl sub_80422B4
- lsls r0, 24
- cmp r0, 0
- beq _08042388
- movs r0, 0x1
- b _080423A0
- .align 2, 0
-_08042384: .4byte gSaveBlock1 + 0x2F9C
-_08042388:
- adds r0, r4, 0
- bl Daycare_CountPokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0804239A
- movs r0, 0
- b _080423A0
-_0804239A:
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_080423A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sp0B6_daycare
-
- thumb_func_start sub_80423A8
-sub_80423A8: @ 80423A8
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- adds r1, r0, 0
-_080423B0:
- movs r3, 0
- ldrh r0, [r1]
- adds r2, r5, 0
-_080423B6:
- ldrh r6, [r2]
- cmp r0, r6
- bne _080423C0
- movs r0, 0x1
- b _080423D2
-_080423C0:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x1
- ble _080423B6
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x1
- ble _080423B0
- movs r0, 0
-_080423D2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80423A8
-
- thumb_func_start daycare_relationship_score
-daycare_relationship_score: @ 80423D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r1, 0
- mov r8, r1
- mov r2, sp
- adds r2, 0x8
- str r2, [sp, 0x1C]
- add r1, sp, 0xC
- mov r10, r1
- adds r2, 0xC
- str r2, [sp, 0x20]
- mov r1, sp
- adds r1, 0x2
- ldr r2, _08042488 @ =gBaseStats
- mov r9, r2
- ldr r5, [sp, 0x1C]
- adds r7, r1, 0
- mov r6, sp
- ldr r1, [sp, 0x20]
- str r1, [sp, 0x24]
- mov r2, r10
- str r2, [sp, 0x28]
- adds r4, r0, 0
-_0804240E:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBoxMonData
- ldr r1, [sp, 0x28]
- stm r1!, {r0}
- str r1, [sp, 0x28]
- adds r0, r4, 0
- movs r1, 0
- bl GetBoxMonData
- adds r1, r0, 0
- ldrh r0, [r5]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [sp, 0x24]
- stm r2!, {r0}
- str r2, [sp, 0x24]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x14]
- strh r0, [r6]
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x15]
- strh r0, [r7]
- adds r5, 0x2
- adds r7, 0x4
- adds r6, 0x4
- adds r4, 0x50
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x1
- bls _0804240E
- mov r0, sp
- ldrh r1, [r0]
- cmp r1, 0xF
- beq _08042484
- ldrh r0, [r0, 0x4]
- cmp r0, 0xF
- beq _08042484
- cmp r1, 0xD
- bne _0804248C
- cmp r0, 0xD
- bne _08042490
-_08042484:
- movs r0, 0
- b _080424E4
- .align 2, 0
-_08042488: .4byte gBaseStats
-_0804248C:
- cmp r0, 0xD
- bne _0804249C
-_08042490:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424DE
- b _080424E2
-_0804249C:
- ldr r0, [sp, 0x14]
- ldr r2, [sp, 0x20]
- ldr r1, [r2, 0x4]
- cmp r0, r1
- beq _08042484
- cmp r0, 0xFF
- beq _08042484
- cmp r1, 0xFF
- beq _08042484
- add r1, sp, 0x4
- mov r0, sp
- bl sub_80423A8
- lsls r0, 24
- cmp r0, 0
- beq _08042484
- ldr r0, [sp, 0x1C]
- ldrh r1, [r0, 0x2]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080424D4
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- beq _080424E2
- movs r0, 0x46
- b _080424E4
-_080424D4:
- ldr r1, [sp, 0xC]
- mov r2, r10
- ldr r0, [r2, 0x4]
- cmp r1, r0
- bne _080424E2
-_080424DE:
- movs r0, 0x14
- b _080424E4
-_080424E2:
- movs r0, 0x32
-_080424E4:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end daycare_relationship_score
-
- thumb_func_start daycare_relationship_score_from_savegame
-daycare_relationship_score_from_savegame: @ 80424F4
- push {lr}
- ldr r0, _08042504 @ =gSaveBlock1 + 0x2F9C
- bl daycare_relationship_score
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08042504: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_relationship_score_from_savegame
-
- thumb_func_start sp0B9_daycare_relationship_comment
-sp0B9_daycare_relationship_comment: @ 8042508
- push {lr}
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- movs r1, 0
- cmp r0, 0
- bne _0804251C
- movs r1, 0x3
-_0804251C:
- cmp r0, 0x14
- bne _08042522
- movs r1, 0x2
-_08042522:
- cmp r0, 0x32
- bne _08042528
- movs r1, 0x1
-_08042528:
- cmp r2, 0x46
- bne _0804252E
- movs r1, 0
-_0804252E:
- ldr r0, _08042540 @ =gStringVar4
- ldr r2, _08042544 @ =gUnknown_08209AC4
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .align 2, 0
-_08042540: .4byte gStringVar4
-_08042544: .4byte gUnknown_08209AC4
- thumb_func_end sp0B9_daycare_relationship_comment
-
- thumb_func_start NameHasGenderSymbol
-NameHasGenderSymbol: @ 8042548
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r2, sp
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x1]
- strb r0, [r2]
- movs r3, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _0804258C
-_08042564:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0xB5
- bne _08042572
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08042572:
- ldrb r0, [r1]
- cmp r0, 0xB6
- bne _0804257E
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- strb r0, [r2, 0x1]
-_0804257E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08042564
-_0804258C:
- cmp r5, 0
- bne _080425A0
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _080425A0
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B4
-_080425A0:
- cmp r5, 0xFE
- bne _080425B8
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080425B8
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _080425B8
-_080425B4:
- movs r0, 0x1
- b _080425BA
-_080425B8:
- movs r0, 0
-_080425BA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end NameHasGenderSymbol
-
- thumb_func_start AppendGenderSymbol
-AppendGenderSymbol: @ 80425C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- bne _080425E4
- movs r1, 0
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425E0 @ =gOtherText_MaleSymbol3
- b _08042602
- .align 2, 0
-_080425E0: .4byte gOtherText_MaleSymbol3
-_080425E4:
- cmp r1, 0xFE
- bne _08042600
- adds r0, r4, 0
- movs r1, 0xFE
- bl NameHasGenderSymbol
- lsls r0, 24
- cmp r0, 0
- bne _08042600
- ldr r1, _080425FC @ =gOtherText_FemaleSymbol3
- b _08042602
- .align 2, 0
-_080425FC: .4byte gOtherText_FemaleSymbol3
-_08042600:
- ldr r1, _08042610 @ =gOtherText_GenderlessSymbol
-_08042602:
- adds r0, r4, 0
- bl StringAppend
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08042610: .4byte gOtherText_GenderlessSymbol
- thumb_func_end AppendGenderSymbol
-
- thumb_func_start MonAppendGenderSymbol
-MonAppendGenderSymbol: @ 8042614
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- bl GetBoxMonGender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AppendGenderSymbol
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MonAppendGenderSymbol
-
- thumb_func_start DaycareLevelMenuGetText
-DaycareLevelMenuGetText: @ 8042630
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- mov r8, r0
- adds r7, r1, 0
- movs r0, 0xFF
- strb r0, [r7]
- movs r6, 0
- add r0, sp, 0x14
- mov r9, r0
-_08042648:
- lsls r0, r6, 2
- adds r0, r6
- lsls r4, r0, 4
- add r4, r8
- lsls r0, 2
- mov r1, sp
- adds r5, r1, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl GetBoxMonNick
- adds r0, r5, 0
- adds r1, r4, 0
- bl MonAppendGenderSymbol
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _08042648
- adds r0, r7, 0
- mov r1, sp
- bl StringCopy
- ldr r4, _080426A8 @ =gOtherText_NewLine2
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- adds r0, r7, 0
- mov r1, r9
- bl StringAppend
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r1, _080426AC @ =gOtherText_CancelAndLv
- adds r0, r7, 0
- bl StringAppend
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080426A8: .4byte gOtherText_NewLine2
-_080426AC: .4byte gOtherText_CancelAndLv
- thumb_func_end DaycareLevelMenuGetText
-
- thumb_func_start DaycareLevelMenuGetLevelText
-DaycareLevelMenuGetLevelText: @ 80426B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r5, 0
- movs r0, 0xFC
- mov r8, r0
- movs r7, 0x14
-_080426C6:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 4
- adds r0, r6, r0
- movs r3, 0x88
- lsls r3, 1
- adds r1, r6, r3
- adds r1, r2
- ldr r1, [r1]
- bl Daycare_GetLevelAfterSteps
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x34
- strb r0, [r4]
- mov r0, r8
- strb r0, [r4, 0x1]
- strb r7, [r4, 0x2]
- movs r0, 0x6
- strb r0, [r4, 0x3]
- adds r0, r4, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, r0, 0
- mov r3, r8
- strb r3, [r4]
- strb r7, [r4, 0x1]
- movs r0, 0
- strb r0, [r4, 0x2]
- adds r0, r4, 0x3
- ldr r1, _08042728 @ =gOtherText_NewLine2
- bl StringCopy
- adds r4, r0, 0
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _080426C6
- movs r0, 0xFF
- strb r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042728: .4byte gOtherText_NewLine2
- thumb_func_end DaycareLevelMenuGetLevelText
-
- thumb_func_start DaycareLevelMenuProcessKeyInput
-DaycareLevelMenuProcessKeyInput: @ 804272C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _08042760 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08042768
- ldr r0, _08042764 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08042816
- subs r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- negs r0, r0
- b _0804278A
- .align 2, 0
-_08042760: .4byte gMain
-_08042764: .4byte gTasks
-_08042768:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0804279C
- ldr r0, _08042798 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- cmp r0, 0x2
- beq _08042816
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
-_0804278A:
- bl MoveMenuCursor
- movs r0, 0x5
- bl PlaySE
- b _08042816
- .align 2, 0
-_08042798: .4byte gTasks
-_0804279C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080427E8
- bl HandleDestroyMenuCursors
- movs r0, 0x5
- bl PlaySE
- ldr r3, _080427DC @ =gLastFieldPokeMenuOpened
- ldr r2, _080427E0 @ =gScriptResult
- ldr r1, _080427E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strh r0, [r2]
- strb r0, [r3]
- adds r0, r4, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
- b _08042816
- .align 2, 0
-_080427DC: .4byte gLastFieldPokeMenuOpened
-_080427E0: .4byte gScriptResult
-_080427E4: .4byte gTasks
-_080427E8:
- movs r4, 0x2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08042816
- bl HandleDestroyMenuCursors
- ldr r0, _0804281C @ =gLastFieldPokeMenuOpened
- ldr r1, _08042820 @ =gScriptResult
- strh r4, [r1]
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08042816:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804281C: .4byte gLastFieldPokeMenuOpened
-_08042820: .4byte gScriptResult
- thumb_func_end DaycareLevelMenuProcessKeyInput
-
- thumb_func_start ShowDaycareLevelMenu
-ShowDaycareLevelMenu: @ 8042824
- push {r4,lr}
- sub sp, 0x6C
- movs r0, 0xF
- movs r1, 0x6
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r4, _08042880 @ =gSaveBlock1 + 0x2F9C
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetText
- add r0, sp, 0x8
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- adds r0, r4, 0
- add r1, sp, 0x8
- bl DaycareLevelMenuGetLevelText
- add r0, sp, 0x8
- movs r1, 0xCE
- movs r2, 0x38
- movs r3, 0x1
- bl MenuPrint_PixelCoords
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x7
- movs r3, 0x3
- bl InitMenu
- ldr r0, _08042884 @ =DaycareLevelMenuProcessKeyInput
- movs r1, 0x3
- bl CreateTask
- add sp, 0x6C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08042880: .4byte gSaveBlock1 + 0x2F9C
-_08042884: .4byte DaycareLevelMenuProcessKeyInput
- thumb_func_end ShowDaycareLevelMenu
-
- thumb_func_start ChooseSendDaycareMon
-ChooseSendDaycareMon: @ 8042888
- push {lr}
- movs r0, 0x6
- movs r1, 0
- bl OpenPartyMenu
- ldr r1, _0804289C @ =gMain
- ldr r0, _080428A0 @ =c2_exit_to_overworld_2_switch
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0804289C: .4byte gMain
-_080428A0: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end ChooseSendDaycareMon
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 6b85e1e76..7bb496641 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -9975,7 +9975,7 @@ _080EAE50:
lsls r0, 16
lsrs r0, 16
movs r1, 0
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
b _080EAE7C
_080EAE62:
ldr r0, _080EAE74 @ =gUnknown_083DB694
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
deleted file mode 100644
index 5e54550e3..000000000
--- a/asm/field_effect_helpers.s
+++ /dev/null
@@ -1,4349 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 812680C
- 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 obj_unfreeze
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _081268BC @ =gSprites
- adds r7, r1, r0
- ldr r0, _081268C0 @ =sub_81269E0
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, _081268C4 @ =gUnknown_0830FD14
- 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, _081268C8 @ =gDummySpriteAnimTable
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _081268CC @ =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 _081268B2
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_081268B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081268BC: .4byte gSprites
-_081268C0: .4byte sub_81269E0
-_081268C4: .4byte gUnknown_0830FD14
-_081268C8: .4byte gDummySpriteAnimTable
-_081268CC: .4byte gDummySpriteAffineAnimTable
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_81268D0
-sub_81268D0: @ 81268D0
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81268D0
-
- thumb_func_start npc_pal_op
-npc_pal_op: @ 81268E4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0812693C @ =gUnknown_08401E2C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08126940
- ldrb r0, [r5, 0x1F]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08126926
- ldrb r0, [r5, 0x1E]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08126940
-_08126926:
- 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 _0812694A
- .align 2, 0
-_0812693C: .4byte gUnknown_08401E2C
-_08126940:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_0812694A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-npc_pal_op_B: @ 8126954
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _08126980 @ =0x000011ff
- cmp r1, r0
- beq _081269A8
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _08126984
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__no_record
- b _081269A2
- .align 2, 0
-_08126980: .4byte 0x000011ff
-_08126984:
- cmp r1, 0xA
- bne _08126992
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__and_record
- b _081269A2
-_08126992:
- adds r0, r4, 0
- bl npc_paltag_by_palslot
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl pal_patch_for_npc
-_081269A2:
- adds r0, r4, 0
- bl sub_807D78C
-_081269A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 81269B0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _081269DC @ =0x000011ff
- cmp r1, r0
- beq _081269D4
- adds r0, r1, 0
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r0, r4, 0
- bl sub_807D78C
-_081269D4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081269DC: .4byte 0x000011ff
- thumb_func_end npc_pal_op_A
-
- thumb_func_start sub_81269E0
-sub_81269E0: @ 81269E0
- 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, _08126A28 @ =gMapObjects
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A2C @ =gSprites
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, _08126A30 @ =0x00020001
- ands r0, r1
- cmp r0, r1
- bne _08126A18
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _08126A34
-_08126A18:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08126B3E
- .align 2, 0
-_08126A28: .4byte gMapObjects
-_08126A2C: .4byte gSprites
-_08126A30: .4byte 0x00020001
-_08126A34:
- ldr r1, _08126B4C @ =gUnknown_0830FD14
- 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, _08126B50 @ =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_81268D0
- 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 r0, [r2]
- movs r1, 0x2
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08126B3E
- 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 _08126B3E
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08126B3E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126B4C: .4byte gUnknown_0830FD14
-_08126B50: .4byte 0xfffffc00
- thumb_func_end sub_81269E0
-
- thumb_func_start sub_8126B54
-sub_8126B54: @ 8126B54
- push {r4,lr}
- ldr r0, _08126B9C @ =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 _08126B92
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126BA0 @ =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]
-_08126B92:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126B9C: .4byte gFieldEffectObjectTemplatePointers
-_08126BA0: .4byte gSprites
- thumb_func_end sub_8126B54
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8126BA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126BC0 @ =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
- .align 2, 0
-_08126BC0: .4byte gSprites
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8126BC4
-sub_8126BC4: @ 8126BC4
- 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, _08126C68 @ =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 _08126C0E
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _08126C0E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _08126C5A
-_08126C0E:
- 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_80603CC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68 @ =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
-_08126C5A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126C68: .4byte gSprites
- thumb_func_end sub_8126BC4
-
- thumb_func_start FldEff_Shadow
-FldEff_Shadow: @ 8126C6C
- push {r4,r5,lr}
- ldr r5, _08126CF8 @ =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126CFC @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, _08126D00 @ =gFieldEffectObjectTemplatePointers
- ldr r1, _08126D04 @ =gUnknown_08401E32
- 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 _08126CF0
- ldr r0, _08126D08 @ =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, _08126D0C @ =gUnknown_08401E36
- 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]
-_08126CF0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126CF8: .4byte gFieldEffectArguments
-_08126CFC: .4byte gMapObjects
-_08126D00: .4byte gFieldEffectObjectTemplatePointers
-_08126D04: .4byte gUnknown_08401E32
-_08126D08: .4byte gSprites
-_08126D0C: .4byte gUnknown_08401E36
- thumb_func_end FldEff_Shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 8126D10
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08126D3E
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08126DC4
-_08126D3E:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126DCC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126DD0 @ =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, _08126DD4 @ =0x00400001
- ands r0, r1
- cmp r0, r1
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPokeGrass
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08126DC4
-_08126DBC:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08126DC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126DCC: .4byte gMapObjects
-_08126DD0: .4byte gSprites
-_08126DD4: .4byte 0x00400001
- thumb_func_end oamc_shadow
-
- thumb_func_start FldEff_TallGrass
-FldEff_TallGrass: @ 8126DD8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08126E70 @ =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_8060470
- ldr r0, _08126E74 @ =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 _08126E64
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126E78 @ =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 _08126E64
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08126E64:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126E70: .4byte gFieldEffectArguments
-_08126E74: .4byte gFieldEffectObjectTemplatePointers
-_08126E78: .4byte gSprites
- thumb_func_end FldEff_TallGrass
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8126E7C
- 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, _08126F24 @ =gUnknown_0202E844
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08126EC6
- ldr r2, _08126F28 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08126EAC
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _08126EC6
-_08126EAC:
- 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]
-_08126EC6:
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08126F1A
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08126F1A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08126F2C
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08126F2C
-_08126F1A:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08126F70
- .align 2, 0
-_08126F24: .4byte gUnknown_0202E844
-_08126F28: .4byte gSaveBlock1
-_08126F2C:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126F7C @ =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08126F4C
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08126F4C
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08126F4C:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08126F5A
- movs r6, 0x4
-_08126F5A:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_812882C
-_08126F70:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126F7C: .4byte gMapObjects
- thumb_func_end unc_grass_normal
-
- thumb_func_start FldEff_JumpTallGrass
-FldEff_JumpTallGrass: @ 8126F80
- push {r4,lr}
- ldr r4, _08126FE4 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _08126FE8 @ =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 _08126FDC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08126FEC @ =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]
-_08126FDC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126FE4: .4byte gFieldEffectArguments
-_08126FE8: .4byte gFieldEffectObjectTemplatePointers
-_08126FEC: .4byte gSprites
- thumb_func_end FldEff_JumpTallGrass
-
- thumb_func_start sub_8126FF0
-sub_8126FF0: @ 8126FF0
- 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, _08127060 @ =gSprites
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_08127014:
- 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 _08127068
- ldr r1, [r2, 0x1C]
- ldr r0, _08127064 @ =unc_grass_normal
- cmp r1, r0
- bne _08127068
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08127068
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08127068
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08127068
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08127068
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08127068
- adds r0, r5, 0
- b _08127074
- .align 2, 0
-_08127060: .4byte gSprites
-_08127064: .4byte unc_grass_normal
-_08127068:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _08127014
- movs r0, 0x40
-_08127074:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126FF0
-
- thumb_func_start FldEff_LongGrass
-FldEff_LongGrass: @ 8127080
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0812711C @ =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_8060470
- ldr r0, _08127120 @ =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 _08127110
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127124 @ =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 _08127110
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_08127110:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812711C: .4byte gFieldEffectArguments
-_08127120: .4byte gFieldEffectObjectTemplatePointers
-_08127124: .4byte gSprites
- thumb_func_end FldEff_LongGrass
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8127128
- 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, _081271D0 @ =gUnknown_0202E844
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08127172
- ldr r2, _081271D4 @ =gSaveBlock1
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08127158
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _08127172
-_08127158:
- 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]
-_08127172:
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081271C6
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081271C6
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081271D8
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081271D8
-_081271C6:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _0812720E
- .align 2, 0
-_081271D0: .4byte gUnknown_0202E844
-_081271D4: .4byte gSaveBlock1
-_081271D8:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812721C @ =gMapObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081271F8
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081271F8
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081271F8:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_812882C
-_0812720E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812721C: .4byte gMapObjects
- thumb_func_end unc_grass_tall
-
- thumb_func_start FldEff_JumpLongGrass
-FldEff_JumpLongGrass: @ 8127220
- push {r4,lr}
- ldr r4, _08127284 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127288 @ =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 _0812727C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812728C @ =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]
-_0812727C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127284: .4byte gFieldEffectArguments
-_08127288: .4byte gFieldEffectObjectTemplatePointers
-_0812728C: .4byte gSprites
- thumb_func_end FldEff_JumpLongGrass
-
- thumb_func_start FldEff_ShortGrass
-FldEff_ShortGrass: @ 8127290
- push {r4-r6,lr}
- ldr r6, _08127324 @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127328 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _0812732C @ =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 _0812731C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127330 @ =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]
-_0812731C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127324: .4byte gFieldEffectArguments
-_08127328: .4byte gMapObjects
-_0812732C: .4byte gFieldEffectObjectTemplatePointers
-_08127330: .4byte gSprites
- thumb_func_end FldEff_ShortGrass
-
- thumb_func_start sub_8127334
-sub_8127334: @ 8127334
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127372
- ldr r5, _0812737C @ =gMapObjects
- 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 _08127380
-_08127372:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08127416
- .align 2, 0
-_0812737C: .4byte gMapObjects
-_08127380:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- 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, _08127424 @ =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 _081273BC
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _081273D6
-_081273BC:
- 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 _081273D6
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_081273D6:
- 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 sub_806487C
-_08127416:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08127424: .4byte gSprites
- thumb_func_end sub_8127334
-
- thumb_func_start FldEff_SandFootprints
-FldEff_SandFootprints: @ 8127428
- push {r4,lr}
- ldr r4, _08127490 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127494 @ =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 _08127486
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127498 @ =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
-_08127486:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127490: .4byte gFieldEffectArguments
-_08127494: .4byte gFieldEffectObjectTemplatePointers
-_08127498: .4byte gSprites
- thumb_func_end FldEff_SandFootprints
-
- thumb_func_start FldEff_DeepSandFootprints
-FldEff_DeepSandFootprints: @ 812749C
- push {r4,r5,lr}
- ldr r4, _08127504 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127508 @ =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 _081274FC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812750C @ =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
-_081274FC:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127504: .4byte gFieldEffectArguments
-_08127508: .4byte gFieldEffectObjectTemplatePointers
-_0812750C: .4byte gSprites
- thumb_func_end FldEff_DeepSandFootprints
-
- thumb_func_start FldEff_BikeTireTracks
-FldEff_BikeTireTracks: @ 8127510
- push {r4,r5,lr}
- ldr r4, _08127578 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812757C @ =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 _08127570
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127580 @ =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
-_08127570:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127578: .4byte gFieldEffectArguments
-_0812757C: .4byte gFieldEffectObjectTemplatePointers
-_08127580: .4byte gSprites
- thumb_func_end FldEff_BikeTireTracks
-
- thumb_func_start sub_8127584
-sub_8127584: @ 8127584
- push {lr}
- ldr r2, _0812759C @ =gUnknown_08401E40
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0812759C: .4byte gUnknown_08401E40
- thumb_func_end sub_8127584
-
- thumb_func_start sub_81275A0
-sub_81275A0: @ 81275A0
- 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 _081275B6
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_081275B6:
- adds r0, r1, 0
- movs r1, 0
- bl sub_806487C
- pop {r0}
- bx r0
- thumb_func_end sub_81275A0
-
- thumb_func_start sub_81275C4
-sub_81275C4: @ 81275C4
- 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 sub_806487C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08127608
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08127608:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81275C4
-
- thumb_func_start FldEff_Splash
-FldEff_Splash: @ 8127610
- push {r4-r6,lr}
- ldr r6, _081276A4 @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081276A8 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _081276AC @ =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 _0812769A
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, _081276B0 @ =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
-_0812769A:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081276A4: .4byte gFieldEffectArguments
-_081276A8: .4byte gMapObjects
-_081276AC: .4byte gFieldEffectObjectTemplatePointers
-_081276B0: .4byte gSprites
- thumb_func_end FldEff_Splash
-
- thumb_func_start sub_81276B4
-sub_81276B4: @ 81276B4
- 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 _081276E4
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081276EE
-_081276E4:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _0812772E
-_081276EE:
- ldr r3, _08127738 @ =gSprites
- ldr r2, _0812773C @ =gMapObjects
- 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 sub_806487C
-_0812772E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127738: .4byte gSprites
-_0812773C: .4byte gMapObjects
- thumb_func_end sub_81276B4
-
- thumb_func_start FldEff_JumpSmallSplash
-FldEff_JumpSmallSplash: @ 8127740
- push {r4,lr}
- ldr r4, _081277A4 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _081277A8 @ =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 _0812779C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081277AC @ =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]
-_0812779C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081277A4: .4byte gFieldEffectArguments
-_081277A8: .4byte gFieldEffectObjectTemplatePointers
-_081277AC: .4byte gSprites
- thumb_func_end FldEff_JumpSmallSplash
-
- thumb_func_start FldEff_JumpBigSplash
-FldEff_JumpBigSplash: @ 81277B0
- push {r4,lr}
- ldr r4, _08127814 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127818 @ =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 _0812780C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812781C @ =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]
-_0812780C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127814: .4byte gFieldEffectArguments
-_08127818: .4byte gFieldEffectObjectTemplatePointers
-_0812781C: .4byte gSprites
- thumb_func_end FldEff_JumpBigSplash
-
- thumb_func_start FldEff_FeetInFlowingWater
-FldEff_FeetInFlowingWater: @ 8127820
- push {r4-r7,lr}
- ldr r7, _081278C0 @ =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081278C4 @ =gMapObjects
- adds r6, r1, r0
- ldr r0, _081278C8 @ =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 _081278B6
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, _081278CC @ =gSprites
- adds r0, r3
- ldr r1, _081278D0 @ =sub_81278D8
- 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, _081278D4 @ =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
-_081278B6:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081278C0: .4byte gFieldEffectArguments
-_081278C4: .4byte gMapObjects
-_081278C8: .4byte gFieldEffectObjectTemplatePointers
-_081278CC: .4byte gSprites
-_081278D0: .4byte sub_81278D8
-_081278D4: .4byte 0x0000ffff
- thumb_func_end FldEff_FeetInFlowingWater
-
- thumb_func_start sub_81278D8
-sub_81278D8: @ 81278D8
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127912
- ldr r2, _0812791C @ =gMapObjects
- 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 _08127920
-_08127912:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _0812796A
- .align 2, 0
-_0812791C: .4byte gMapObjects
-_08127920:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127974 @ =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 sub_806487C
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _0812796A
- 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 _0812796A
- movs r0, 0x46
- bl PlaySE
-_0812796A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127974: .4byte gSprites
- thumb_func_end sub_81278D8
-
- thumb_func_start FldEff_Ripple
-FldEff_Ripple: @ 8127978
- push {r4,lr}
- ldr r0, _081279CC @ =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x14]
- ldr r4, _081279D0 @ =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 _081279C4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081279D4 @ =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]
-_081279C4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081279CC: .4byte gFieldEffectObjectTemplatePointers
-_081279D0: .4byte gFieldEffectArguments
-_081279D4: .4byte gSprites
- thumb_func_end FldEff_Ripple
-
- thumb_func_start FldEff_HotSpringsWater
-FldEff_HotSpringsWater: @ 81279D8
- push {r4-r6,lr}
- ldr r6, _08127A6C @ =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127A70 @ =gMapObjects
- adds r5, r1, r0
- ldr r0, _08127A74 @ =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 _08127A64
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127A78 @ =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]
-_08127A64:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127A6C: .4byte gFieldEffectArguments
-_08127A70: .4byte gMapObjects
-_08127A74: .4byte gFieldEffectObjectTemplatePointers
-_08127A78: .4byte gSprites
- thumb_func_end FldEff_HotSpringsWater
-
- thumb_func_start sub_8127A7C
-sub_8127A7C: @ 8127A7C
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127AB6
- ldr r5, _08127AC0 @ =gMapObjects
- 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 _08127AC4
-_08127AB6:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _08127B08
- .align 2, 0
-_08127AC0: .4byte gMapObjects
-_08127AC4:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- 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, _08127B10 @ =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 sub_806487C
-_08127B08:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127B10: .4byte gSprites
- thumb_func_end sub_8127A7C
-
- thumb_func_start FldEff_Unknown19
-FldEff_Unknown19: @ 8127B14
- push {r4,lr}
- ldr r4, _08127B74 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127B78 @ =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 _08127B6C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127B7C @ =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]
-_08127B6C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127B74: .4byte gFieldEffectArguments
-_08127B78: .4byte gFieldEffectObjectTemplatePointers
-_08127B7C: .4byte gSprites
- thumb_func_end FldEff_Unknown19
-
- thumb_func_start FldEff_Unknown20
-FldEff_Unknown20: @ 8127B80
- push {r4,lr}
- ldr r4, _08127BE0 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127BE4 @ =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 _08127BD8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127BE8 @ =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]
-_08127BD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127BE0: .4byte gFieldEffectArguments
-_08127BE4: .4byte gFieldEffectObjectTemplatePointers
-_08127BE8: .4byte gSprites
- thumb_func_end FldEff_Unknown20
-
- thumb_func_start FldEff_Unknown21
-FldEff_Unknown21: @ 8127BEC
- push {r4,lr}
- ldr r4, _08127C4C @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127C50 @ =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 _08127C44
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127C54 @ =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]
-_08127C44:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127C4C: .4byte gFieldEffectArguments
-_08127C50: .4byte gFieldEffectObjectTemplatePointers
-_08127C54: .4byte gSprites
- thumb_func_end FldEff_Unknown21
-
- thumb_func_start FldEff_Unknown22
-FldEff_Unknown22: @ 8127C58
- push {r4,lr}
- ldr r4, _08127CB8 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127CBC @ =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 _08127CB0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127CC0 @ =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]
-_08127CB0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127CB8: .4byte gFieldEffectArguments
-_08127CBC: .4byte gFieldEffectObjectTemplatePointers
-_08127CC0: .4byte gSprites
- thumb_func_end FldEff_Unknown22
-
- thumb_func_start ash
-ash: @ 8127CC4
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _08127CF4 @ =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
- .align 2, 0
-_08127CF4: .4byte gFieldEffectArguments
- thumb_func_end ash
-
- thumb_func_start FldEff_Ash
-FldEff_Ash: @ 8127CF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08127D78 @ =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_8060470
- ldr r0, _08127D7C @ =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 _08127D6E
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127D80 @ =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]
-_08127D6E:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127D78: .4byte gFieldEffectArguments
-_08127D7C: .4byte gFieldEffectObjectTemplatePointers
-_08127D80: .4byte gSprites
- thumb_func_end FldEff_Ash
-
- thumb_func_start sub_8127D84
-sub_8127D84: @ 8127D84
- push {lr}
- ldr r2, _08127D9C @ =gUnknown_08401E48
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08127D9C: .4byte gUnknown_08401E48
- thumb_func_end sub_8127D84
-
- thumb_func_start sub_8127DA0
-sub_8127DA0: @ 8127DA0
- 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 _08127DCA
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_08127DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8127DA0
-
- thumb_func_start sub_8127DD0
-sub_8127DD0: @ 8127DD0
- 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, _08127E28 @ =gMapObjects
- ldr r0, _08127E2C @ =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
- .align 2, 0
-_08127E28: .4byte gMapObjects
-_08127E2C: .4byte gPlayerAvatar
- thumb_func_end sub_8127DD0
-
- thumb_func_start sub_8127E30
-sub_8127E30: @ 8127E30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_806487C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08127E50
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_08127E50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127E30
-
- thumb_func_start FldEff_SurfBlob
-FldEff_SurfBlob: @ 8127E58
- push {r4,r5,lr}
- ldr r4, _08127EC0 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127EC4 @ =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 _08127EB2
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127EC8 @ =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, _08127ECC @ =0x0000ffff
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_08127EB2:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127EC0: .4byte gFieldEffectArguments
-_08127EC4: .4byte gFieldEffectObjectTemplatePointers
-_08127EC8: .4byte gSprites
-_08127ECC: .4byte 0x0000ffff
- thumb_func_end FldEff_SurfBlob
-
- thumb_func_start sub_8127ED0
-sub_8127ED0: @ 8127ED0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127EF8 @ =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
- .align 2, 0
-_08127EF8: .4byte gSprites
- thumb_func_end sub_8127ED0
-
- thumb_func_start sub_8127EFC
-sub_8127EFC: @ 8127EFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127F24 @ =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
- .align 2, 0
-_08127F24: .4byte gSprites
- thumb_func_end sub_8127EFC
-
- thumb_func_start sub_8127F28
-sub_8127F28: @ 8127F28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, _08127F54 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, _08127F58 @ =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
- .align 2, 0
-_08127F54: .4byte gSprites
-_08127F58: .4byte 0xfffff0ff
- thumb_func_end sub_8127F28
-
- thumb_func_start sub_8127F5C
-sub_8127F5C: @ 8127F5C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8127F5C
-
- thumb_func_start sub_8127F64
-sub_8127F64: @ 8127F64
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8127F64
-
- thumb_func_start sub_8127F70
-sub_8127F70: @ 8127F70
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_8127F70
-
- thumb_func_start sub_8127F7C
-sub_8127F7C: @ 8127F7C
- 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, _08127FCC @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _08127FD0 @ =gSprites
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8127FD4
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_812800C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_81280A0
- 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
- .align 2, 0
-_08127FCC: .4byte gMapObjects
-_08127FD0: .4byte gSprites
- thumb_func_end sub_8127F7C
-
- thumb_func_start sub_8127FD4
-sub_8127FD4: @ 8127FD4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _08128008 @ =gUnknown_08401E54
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F64
- lsls r0, 24
- cmp r0, 0
- bne _08128000
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_08128000:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128008: .4byte gUnknown_08401E54
- thumb_func_end sub_8127FD4
-
- thumb_func_start sub_812800C
-sub_812800C: @ 812800C
- 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 _08128094
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08128048
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08128094
-_08128048:
- 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
-_0812805A:
- 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 _08128080
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08128094
-_08128080:
- 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 _0812805A
-_08128094:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812800C
-
- thumb_func_start sub_81280A0
-sub_81280A0: @ 81280A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _08128104 @ =gUnknown_08401E5A
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F5C
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _0812811A
- 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 _081280E0
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081280E0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081280F0
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081280F0:
- cmp r2, 0x2
- beq _0812811A
- adds r0, r4, 0
- bl sub_8127F70
- lsls r0, 24
- cmp r0, 0
- bne _08128108
- ldrh r0, [r4, 0x26]
- b _0812810E
- .align 2, 0
-_08128104: .4byte gUnknown_08401E5A
-_08128108:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_0812810E:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_0812811A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81280A0
-
- thumb_func_start sub_8128124
-sub_8128124: @ 8128124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08128168 @ =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, _0812816C @ =gSprites
- adds r2, r1
- ldr r1, _08128170 @ =sub_8128174
- 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
- .align 2, 0
-_08128168: .4byte gDummySpriteTemplate
-_0812816C: .4byte gSprites
-_08128170: .4byte sub_8128174
- thumb_func_end sub_8128124
-
- thumb_func_start sub_8128174
-sub_8128174: @ 8128174
- 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, _081281B0 @ =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 _0812819C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_0812819C:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081281AC
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_081281AC:
- pop {r0}
- bx r0
- .align 2, 0
-_081281B0: .4byte gSprites
- thumb_func_end sub_8128174
-
- thumb_func_start FldEff_Dust
-FldEff_Dust: @ 81281B4
- push {r4,lr}
- ldr r4, _08128218 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _0812821C @ =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 _08128210
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08128220 @ =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]
-_08128210:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128218: .4byte gFieldEffectArguments
-_0812821C: .4byte gFieldEffectObjectTemplatePointers
-_08128220: .4byte gSprites
- thumb_func_end FldEff_Dust
-
- thumb_func_start FldEff_SandPile
-FldEff_SandPile: @ 8128224
- push {r4-r7,lr}
- ldr r7, _081282D0 @ =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081282D4 @ =gMapObjects
- adds r6, r1, r0
- ldr r0, _081282D8 @ =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 _081282C8
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, _081282DC @ =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
-_081282C8:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081282D0: .4byte gFieldEffectArguments
-_081282D4: .4byte gMapObjects
-_081282D8: .4byte gFieldEffectObjectTemplatePointers
-_081282DC: .4byte gSprites
- thumb_func_end FldEff_SandPile
-
- thumb_func_start sub_81282E0
-sub_81282E0: @ 81282E0
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0812831A
- ldr r2, _08128324 @ =gMapObjects
- 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 _08128328
-_0812831A:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _0812839A
- .align 2, 0
-_08128324: .4byte gMapObjects
-_08128328:
- ldr r2, _081283A4 @ =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 _08128350
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0812836A
-_08128350:
- 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 _0812836A
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0812836A:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, _081283A4 @ =gSprites
- ldr r2, _081283A8 @ =gMapObjects
- 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 sub_806487C
-_0812839A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081283A4: .4byte gSprites
-_081283A8: .4byte gMapObjects
- thumb_func_end sub_81282E0
-
- thumb_func_start FldEff_Bubbles
-FldEff_Bubbles: @ 81283AC
- push {r4,lr}
- ldr r4, _08128404 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_8060470
- ldr r0, _08128408 @ =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 _081283FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0812840C @ =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]
-_081283FC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128404: .4byte gFieldEffectArguments
-_08128408: .4byte gFieldEffectObjectTemplatePointers
-_0812840C: .4byte gSprites
- thumb_func_end FldEff_Bubbles
-
- thumb_func_start sub_8128410
-sub_8128410: @ 8128410
- 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 sub_806487C
- ldrh r1, [r4, 0x3E]
- ldr r0, _0812844C @ =0x00001004
- ands r0, r1
- cmp r0, 0
- beq _08128444
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08128444:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812844C: .4byte 0x00001004
- thumb_func_end sub_8128410
-
- thumb_func_start FldEff_BerryTreeGrowthSparkle
-FldEff_BerryTreeGrowthSparkle: @ 8128450
- push {r4,lr}
- ldr r4, _081284B8 @ =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _081284BC @ =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 _081284B0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081284C0 @ =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]
-_081284B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081284B8: .4byte gFieldEffectArguments
-_081284BC: .4byte gFieldEffectObjectTemplatePointers
-_081284C0: .4byte gSprites
- thumb_func_end FldEff_BerryTreeGrowthSparkle
-
- thumb_func_start FldEff_TreeDisguise
-FldEff_TreeDisguise: @ 81284C4
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_TreeDisguise
-
- thumb_func_start FldEff_MountainDisguise
-FldEff_MountainDisguise: @ 81284D4
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_MountainDisguise
-
- thumb_func_start FldEff_SandDisguise
-FldEff_SandDisguise: @ 81284E4
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end FldEff_SandDisguise
-
- thumb_func_start ShowDisguiseFieldEffect
-ShowDisguiseFieldEffect: @ 81284F4
- 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, _08128528 @ =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _0812852C
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08128598
- .align 2, 0
-_08128528: .4byte gFieldEffectArguments
-_0812852C:
- ldr r1, _081285A4 @ =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 _08128594
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081285A8 @ =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]
-_08128594:
- mov r0, sp
- ldrb r0, [r0]
-_08128598:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081285A4: .4byte gFieldEffectObjectTemplatePointers
-_081285A8: .4byte gSprites
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_81285AC
-sub_81285AC: @ 81285AC
- 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 TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081285DC
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_081285DC:
- ldr r4, _08128694 @ =gMapObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- 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, _08128698 @ =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 _0812865C
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0812865C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08128678
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08128678
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08128678:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812868C
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_0812868C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128694: .4byte gMapObjects
-_08128698: .4byte gSprites
- thumb_func_end sub_81285AC
-
- thumb_func_start sub_812869C
-sub_812869C: @ 812869C
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081286BA
- ldr r2, _081286C0 @ =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]
-_081286BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081286C0: .4byte gSprites
- thumb_func_end sub_812869C
-
- thumb_func_start sub_81286C4
-sub_81286C4: @ 81286C4
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _081286FA
- cmp r1, 0
- beq _081286FA
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081286EC @ =gSprites
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081286F0
- movs r0, 0
- b _081286FC
- .align 2, 0
-_081286EC: .4byte gSprites
-_081286F0:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_081286FA:
- movs r0, 0x1
-_081286FC:
- pop {r1}
- bx r1
- thumb_func_end sub_81286C4
-
- thumb_func_start FldEff_Sparkle
-FldEff_Sparkle: @ 8128700
- push {r4,lr}
- ldr r4, _08128768 @ =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_8060470
- ldr r0, _0812876C @ =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 _08128760
- ldr r0, _08128770 @ =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]
-_08128760:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128768: .4byte gFieldEffectArguments
-_0812876C: .4byte gFieldEffectObjectTemplatePointers
-_08128770: .4byte gSprites
- thumb_func_end FldEff_Sparkle
-
- thumb_func_start sub_8128774
-sub_8128774: @ 8128774
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081287A8
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287A0
- 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]
-_081287A0:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081287BE
-_081287A8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _081287BE
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_081287BE:
- pop {r0}
- bx r0
- thumb_func_end sub_8128774
-
- thumb_func_start sub_81287C4
-sub_81287C4: @ 81287C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287E2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081287F8
-_081287E2:
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081287F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81287C4
-
- thumb_func_start sub_8128800
-sub_8128800: @ 8128800
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812881E
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _08128826
-_0812881E:
- adds r0, r2, 0
- movs r1, 0
- bl sub_806487C
-_08128826:
- pop {r0}
- bx r0
- thumb_func_end sub_8128800
-
- thumb_func_start sub_812882C
-sub_812882C: @ 812882C
- 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
-_08128842:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, _081288DC @ =gMapObjects
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081288E4
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081288E0 @ =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 _081288E4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081288E4
- 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 _081288BC
- cmp r2, r0
- bge _081288E4
-_081288BC:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081288E4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081288E4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081288EE
- .align 2, 0
-_081288DC: .4byte gMapObjects
-_081288E0: .4byte gSprites
-_081288E4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08128842
-_081288EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812882C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
deleted file mode 100644
index c8c402217..000000000
--- a/asm/field_map_obj.s
+++ /dev/null
@@ -1,628 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
-.ifndef NONMATCHING
- thumb_func_start sub_805F3EC
-sub_805F3EC: @ 805F3EC
- movs r0, 0
- bx lr
- thumb_func_end sub_805F3EC
-
- thumb_func_start sub_805F3F0
-sub_805F3F0: @ 805F3F0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0805F434 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F434: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F3F0
-
- thumb_func_start sub_805F438
-sub_805F438: @ 805F438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F4EC @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl GetGoSpeed0AnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F4BE
- mov r1, r8
- cmp r1, 0
- beq _0805F4D2
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F4D2
-_0805F4BE:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F4D2:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F4EC: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F438
-.endif
-
- thumb_func_start sub_805F4F0
-sub_805F4F0: @ 805F4F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F5A4 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_8060744
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F576
- mov r1, r8
- cmp r1, 0
- beq _0805F58A
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F58A
-_0805F576:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F58A:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F5A4: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F4F0
-
- thumb_func_start sub_805F5A8
-sub_805F5A8: @ 805F5A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F65C @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_806079C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F62E
- mov r1, r8
- cmp r1, 0
- beq _0805F642
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F642
-_0805F62E:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F642:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F65C: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F5A8
-
- thumb_func_start sub_805F660
-sub_805F660: @ 805F660
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F714 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_80607C8
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F6E6
- mov r1, r8
- cmp r1, 0
- beq _0805F6FA
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F6FA
-_0805F6E6:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F6FA:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F714: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F660
-
- thumb_func_start cph_IM_DIFFERENT
-cph_IM_DIFFERENT: @ 805F718
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, _0805F75C @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- bl state_to_direction
- bl sub_806084C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldObjectSetRegularAnim
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F75C: .4byte gUnknown_0836DC09
- thumb_func_end cph_IM_DIFFERENT
-
- thumb_func_start sub_805F760
-sub_805F760: @ 805F760
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F814 @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- mov r5, sp
- adds r5, 0x2
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- adds r3, r5, 0
- bl FieldObjectMoveDestCoords
- adds r0, r6, 0
- bl sub_80608A4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F7E6
- mov r1, r8
- cmp r1, 0
- beq _0805F7FA
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F7FA
-_0805F7E6:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F7FA:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F814: .4byte gUnknown_0836DC09
- thumb_func_end sub_805F760
-
- thumb_func_start oac_hopping
-oac_hopping: @ 805F818
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- adds r7, r1, 0
- mov r8, r3
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r1, _0805F8DC @ =gUnknown_0836DC09
- ldrb r0, [r4, 0x6]
- adds r0, r1
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x21
- ldrb r1, [r1]
- adds r2, r6, 0
- bl state_to_direction
- adds r6, r0, 0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- movs r3, 0x2
- bl sub_8060320
- adds r0, r6, 0
- bl GetJumpLedgeAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805F8AC
- mov r1, r8
- cmp r1, 0
- beq _0805F8C0
- add r0, sp, 0x4
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r8
- lsls r0, 24
- cmp r0, 0
- bne _0805F8C0
-_0805F8AC:
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl FieldObjectSetRegularAnim
-_0805F8C0:
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x2
- strh r0, [r7, 0x30]
- movs r0, 0x1
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805F8DC: .4byte gUnknown_0836DC09
- thumb_func_end oac_hopping
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index db16c2788..eaf44749b 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -12958,7 +12958,7 @@ _0809C08C:
adds r1, r6, r2
str r0, [r1]
adds r0, r7, 0
- bl pokemon_get_pal
+ bl GetMonSpritePal
ldr r2, _0809C11C @ =0x000011e8
adds r1, r6, r2
str r0, [r1]
@@ -13031,7 +13031,7 @@ _0809C120:
str r2, [r4]
ldrh r0, [r5]
mov r1, r9
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
ldr r2, _0809C1D0 @ =0x000011e8
adds r1, r6, r2
str r0, [r1]
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index fea619ac8..859fd177f 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -3859,7 +3859,7 @@ _0809F718:
adds r1, r0, 0
adds r0, r5, 0
adds r2, r6, 0
- bl sub_80409C8
+ bl GetMonSpritePalStructFromOtIdPersonality
adds r4, r0, 0
bl LoadCompressedObjectPalette
ldrh r0, [r4, 0x4]
@@ -7620,7 +7620,7 @@ sub_80A1808: @ 80A1808
ldr r0, _080A1868 @ =sub_80A1888
str r0, [r4]
adds r0, r6, 0
- bl sub_8040A3C
+ bl IsPokeSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _080A186C
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 1062abc48..a4d585815 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -17787,7 +17787,7 @@ sub_80F4824: @ 80F4824
adds r0, r5, 0
mov r1, r8
adds r2, r4, 0
- bl species_and_otid_get_pal
+ bl GetMonSpritePalFromOtIdPersonality
mov r2, r9
lsls r1, r2, 7
adds r1, r7, r1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 46af5bc0f..bebe3633e 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -10098,13 +10098,13 @@ sub_81063C0: @ 81063C0
ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx
ldr r4, _081063F4 @ =0x02010000
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _081063F8 @ =gUnknown_083EDE8C
movs r1, 0xC8
lsls r1, 6
adds r4, r1
adds r1, r4, 0
- bl sub_800D238
+ bl LZDecompressWram
ldr r0, _081063FC @ =gUnknown_083EDC2C
bl LoadSpriteSheets
ldr r0, _08106400 @ =gSlotMachineSpritePalettes
diff --git a/asm/trade.s b/asm/trade.s
index b07a3b632..fb5e8f199 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -4302,7 +4302,7 @@ _08049F8E:
lsls r0, 2
adds r0, r7
ldr r1, _0804A0A0 @ =sub_809D62C
- bl oamt_set_x3A_32
+ bl StoreSpriteCallbackInData6
ldr r2, _0804A09C @ =gUnknown_03004824
ldr r1, [r2]
adds r1, 0x80
@@ -6748,7 +6748,7 @@ _0804B330:
str r4, [sp, 0x8]
bl HandleLoadSpecialPokePic
mov r0, r10
- bl sub_8040990
+ bl GetMonSpritePalStruct
bl LoadCompressedObjectPalette
ldr r0, _0804B3A0 @ =gUnknown_03004828
ldr r0, [r0]
@@ -6766,7 +6766,7 @@ _0804B39C: .4byte gUnknown_081FAF4C
_0804B3A0: .4byte gUnknown_03004828
_0804B3A4:
mov r0, r10
- bl sub_8040990
+ bl GetMonSpritePalStruct
ldrh r0, [r0, 0x4]
adds r1, r4, 0
bl GetMonSpriteTemplate_803C56C
@@ -7501,10 +7501,10 @@ sub_804BA18: @ 804BA18
lsrs r4, 16
adds r0, r4, 0
movs r1, 0x2
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
adds r0, r4, 0
movs r1, 0x3
- bl GetNationalPokedexFlag
+ bl GetSetPokedexFlag
_0804BA5A:
pop {r4}
pop {r0}
@@ -9472,7 +9472,7 @@ _0804CC68:
lsls r1, 1
adds r0, r1
ldrh r0, [r0]
- bl sub_8040A3C
+ bl IsPokeSpriteNotFlipped
lsls r0, 24
cmp r0, 0
bne _0804CCE4
diff --git a/common_syms/battle_anim.txt b/common_syms/battle/battle_anim.txt
index a93ac9b5d..a93ac9b5d 100644
--- a/common_syms/battle_anim.txt
+++ b/common_syms/battle/battle_anim.txt
diff --git a/common_syms/mori_debug_menu.txt b/common_syms/debug/mori_debug_menu.txt
index 77ab5531c..77ab5531c 100644
--- a/common_syms/mori_debug_menu.txt
+++ b/common_syms/debug/mori_debug_menu.txt
diff --git a/common_syms/sound_check_menu.txt b/common_syms/debug/sound_check_menu.txt
index e9e3032e6..e9e3032e6 100644
--- a/common_syms/sound_check_menu.txt
+++ b/common_syms/debug/sound_check_menu.txt
diff --git a/common_syms/link.txt b/common_syms/engine/link.txt
index faafda4d0..faafda4d0 100644
--- a/common_syms/link.txt
+++ b/common_syms/engine/link.txt
diff --git a/common_syms/load_save.txt b/common_syms/engine/load_save.txt
index 3b969deca..3b969deca 100644
--- a/common_syms/load_save.txt
+++ b/common_syms/engine/load_save.txt
diff --git a/common_syms/main.txt b/common_syms/engine/main.txt
index a620083d1..a620083d1 100644
--- a/common_syms/main.txt
+++ b/common_syms/engine/main.txt
diff --git a/common_syms/record_mixing.txt b/common_syms/engine/record_mixing.txt
index a6f4f8df3..a6f4f8df3 100644
--- a/common_syms/record_mixing.txt
+++ b/common_syms/engine/record_mixing.txt
diff --git a/common_syms/rng.txt b/common_syms/engine/rng.txt
index 794439ea5..794439ea5 100644
--- a/common_syms/rng.txt
+++ b/common_syms/engine/rng.txt
diff --git a/common_syms/rtc.txt b/common_syms/engine/rtc.txt
index fa00a34d5..fa00a34d5 100644
--- a/common_syms/rtc.txt
+++ b/common_syms/engine/rtc.txt
diff --git a/common_syms/save.txt b/common_syms/engine/save.txt
index d09a52bcf..d09a52bcf 100644
--- a/common_syms/save.txt
+++ b/common_syms/engine/save.txt
diff --git a/common_syms/sound.txt b/common_syms/engine/sound.txt
index 0f6f2fc75..0f6f2fc75 100644
--- a/common_syms/sound.txt
+++ b/common_syms/engine/sound.txt
diff --git a/common_syms/sprite.txt b/common_syms/engine/sprite.txt
index fe38dc61f..fe38dc61f 100644
--- a/common_syms/sprite.txt
+++ b/common_syms/engine/sprite.txt
diff --git a/common_syms/string_util.txt b/common_syms/engine/string_util.txt
index 1ee62aaad..1ee62aaad 100644
--- a/common_syms/string_util.txt
+++ b/common_syms/engine/string_util.txt
diff --git a/common_syms/task.txt b/common_syms/engine/task.txt
index 6601bd11b..6601bd11b 100644
--- a/common_syms/task.txt
+++ b/common_syms/engine/task.txt
diff --git a/common_syms/field_camera.txt b/common_syms/field/field_camera.txt
index 7aad967f8..7aad967f8 100644
--- a/common_syms/field_camera.txt
+++ b/common_syms/field/field_camera.txt
diff --git a/common_syms/field_control_avatar.txt b/common_syms/field/field_control_avatar.txt
index 040a9e6c1..040a9e6c1 100644
--- a/common_syms/field_control_avatar.txt
+++ b/common_syms/field/field_control_avatar.txt
diff --git a/common_syms/field_map_obj.txt b/common_syms/field/field_map_obj.txt
index 32d8b1915..32d8b1915 100644
--- a/common_syms/field_map_obj.txt
+++ b/common_syms/field/field_map_obj.txt
diff --git a/common_syms/fieldmap.txt b/common_syms/field/fieldmap.txt
index 7819b3b40..7819b3b40 100644
--- a/common_syms/fieldmap.txt
+++ b/common_syms/field/fieldmap.txt
diff --git a/common_syms/overworld.txt b/common_syms/field/overworld.txt
index ecdb190b2..ecdb190b2 100644
--- a/common_syms/overworld.txt
+++ b/common_syms/field/overworld.txt
diff --git a/common_syms/start_menu.txt b/common_syms/field/start_menu.txt
index bc0c247d1..bc0c247d1 100644
--- a/common_syms/start_menu.txt
+++ b/common_syms/field/start_menu.txt
diff --git a/common_syms/tv.txt b/common_syms/field/tv.txt
index 829139f8f..829139f8f 100644
--- a/common_syms/tv.txt
+++ b/common_syms/field/tv.txt
diff --git a/common_syms/agb_flash.txt b/common_syms/libs/agb_flash.txt
index cb421ec80..cb421ec80 100644
--- a/common_syms/agb_flash.txt
+++ b/common_syms/libs/agb_flash.txt
diff --git a/common_syms/m4a_2.txt b/common_syms/libs/m4a_2.txt
index a80d8a79d..a80d8a79d 100644
--- a/common_syms/m4a_2.txt
+++ b/common_syms/libs/m4a_2.txt
diff --git a/common_syms/pokeblock_feed.txt b/common_syms/pokemon/pokeblock_feed.txt
index 827e6526e..827e6526e 100644
--- a/common_syms/pokeblock_feed.txt
+++ b/common_syms/pokemon/pokeblock_feed.txt
diff --git a/common_syms/pokedex.txt b/common_syms/pokemon/pokedex.txt
index 18b14f3ed..18b14f3ed 100644
--- a/common_syms/pokedex.txt
+++ b/common_syms/pokemon/pokedex.txt
diff --git a/common_syms/pokemon_1.txt b/common_syms/pokemon/pokemon_1.txt
index c588d53a7..c588d53a7 100644
--- a/common_syms/pokemon_1.txt
+++ b/common_syms/pokemon/pokemon_1.txt
diff --git a/common_syms/pokemon_menu.txt b/common_syms/pokemon/pokemon_menu.txt
index 98a1bf53b..98a1bf53b 100644
--- a/common_syms/pokemon_menu.txt
+++ b/common_syms/pokemon/pokemon_menu.txt
diff --git a/common_syms/berry_blender.txt b/common_syms/scene/berry_blender.txt
index 524a31411..524a31411 100644
--- a/common_syms/berry_blender.txt
+++ b/common_syms/scene/berry_blender.txt
diff --git a/common_syms/contest_painting.txt b/common_syms/scene/contest_painting.txt
index 2e8490348..2e8490348 100644
--- a/common_syms/contest_painting.txt
+++ b/common_syms/scene/contest_painting.txt
diff --git a/common_syms/cute_sketch.txt b/common_syms/scene/cute_sketch.txt
index e69de29bb..e69de29bb 100644
--- a/common_syms/cute_sketch.txt
+++ b/common_syms/scene/cute_sketch.txt
diff --git a/common_syms/egg_hatch.txt b/common_syms/scene/egg_hatch.txt
index 891ccc104..891ccc104 100644
--- a/common_syms/egg_hatch.txt
+++ b/common_syms/scene/egg_hatch.txt
diff --git a/common_syms/evolution_scene.txt b/common_syms/scene/evolution_scene.txt
index 137cd3e05..137cd3e05 100644
--- a/common_syms/evolution_scene.txt
+++ b/common_syms/scene/evolution_scene.txt
diff --git a/common_syms/intro.txt b/common_syms/scene/intro.txt
index d069b1014..d069b1014 100644
--- a/common_syms/intro.txt
+++ b/common_syms/scene/intro.txt
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 0945d75c8..e046794b3 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -3485,7 +3485,7 @@ BattleScript_PerishSongTimerGoesDown:: @ 81D921D
waitmessage 64
end2
-gUnknown_081D9224:: @ 81D9224
+BattleScript_AllStatsUp:: @ 81D9224
jumpifstat USER, 3, 1, 12, BattleScript_1D9251
jumpifstat USER, 3, 2, 12, BattleScript_1D9251
jumpifstat USER, 3, 3, 12, BattleScript_1D9251
@@ -3659,7 +3659,7 @@ BattleScript_1D93EC: @ 81D93EC
waitmessage 64
jump BattleScript_EndTurn
-gUnknown_081D93FA:: @ 81D93FA
+BattleScript_AtkDefDown:: @ 81D93FA
setbyte 0x20160dc, 0
playstatchangeanimation USER, 6, 13
playstatchangeanimation USER, 2, 9
@@ -3731,7 +3731,7 @@ BattleScript_OneHitKOMsg:: @ 81D94A9
waitmessage 64
return
-gUnknown_081D94B0:: @ 81D94B0
+BattleScript_SAtkDown2:: @ 81D94B0
setbyte 0x20160dc, 0
playstatchangeanimation USER, 16, 11
setbyte 0x201601e, 164
diff --git a/data/daycare.s b/data/daycare.s
deleted file mode 100644
index 92eb4637e..000000000
--- a/data/daycare.s
+++ /dev/null
@@ -1,17 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ 82091DC
- .include "data/egg_moves.inc"
-
- .align 2
-gUnknown_08209AC4:: @ 8209AC4
- .4byte DaycareText_GetAlongVeryWell
- .4byte DaycareText_GetAlong
- .4byte DaycareText_DontLikeOther
- .4byte DaycareText_PlayOther
-
-gUnknown_08209AD4:: @ 8209AD4
- .string "タマゴ$"
diff --git a/data/egg_moves.inc b/data/egg_moves.inc
deleted file mode 100644
index e684e04ce..000000000
--- a/data/egg_moves.inc
+++ /dev/null
@@ -1,1306 +0,0 @@
- .align 2
-gEggMoves:: @ 82091DC
- egg_moves_begin SPECIES_BULBASAUR
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_SKULL_BASH
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_CHARM
- .2byte MOVE_PETAL_DANCE
- .2byte MOVE_MAGICAL_LEAF
- .2byte MOVE_GRASS_WHISTLE
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_CHARMANDER
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_BITE
- .2byte MOVE_OUTRAGE
- .2byte MOVE_BEAT_UP
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_DRAGON_DANCE
-
- egg_moves_begin SPECIES_SQUIRTLE
- .2byte MOVE_MIRROR_COAT
- .2byte MOVE_HAZE
- .2byte MOVE_MIST
- .2byte MOVE_FORESIGHT
- .2byte MOVE_FLAIL
- .2byte MOVE_REFRESH
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_YAWN
-
- egg_moves_begin SPECIES_PIDGEY
- .2byte MOVE_PURSUIT
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_FORESIGHT
- .2byte MOVE_STEEL_WING
- .2byte MOVE_AIR_CUTTER
-
- egg_moves_begin SPECIES_RATTATA
- .2byte MOVE_SCREECH
- .2byte MOVE_FLAME_WHEEL
- .2byte MOVE_FURY_SWIPES
- .2byte MOVE_BITE
- .2byte MOVE_COUNTER
- .2byte MOVE_REVERSAL
- .2byte MOVE_UPROAR
- .2byte MOVE_SWAGGER
-
- egg_moves_begin SPECIES_SPEAROW
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_FALSE_SWIPE
- .2byte MOVE_SCARY_FACE
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_TRI_ATTACK
- .2byte MOVE_ASTONISH
- .2byte MOVE_SKY_ATTACK
-
- egg_moves_begin SPECIES_EKANS
- .2byte MOVE_PURSUIT
- .2byte MOVE_SLAM
- .2byte MOVE_SPITE
- .2byte MOVE_BEAT_UP
- .2byte MOVE_POISON_FANG
-
- egg_moves_begin SPECIES_SANDSHREW
- .2byte MOVE_FLAIL
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_COUNTER
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_METAL_CLAW
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_CRUSH_CLAW
-
- egg_moves_begin SPECIES_NIDORAN_F
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_DISABLE
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_CHARM
- .2byte MOVE_COUNTER
- .2byte MOVE_BEAT_UP
-
- egg_moves_begin SPECIES_NIDORAN_M
- .2byte MOVE_COUNTER
- .2byte MOVE_DISABLE
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_AMNESIA
- .2byte MOVE_CONFUSION
- .2byte MOVE_BEAT_UP
-
- egg_moves_begin SPECIES_VULPIX
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_FLAIL
- .2byte MOVE_SPITE
- .2byte MOVE_DISABLE
- .2byte MOVE_HOWL
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_HEAT_WAVE
-
- egg_moves_begin SPECIES_ZUBAT
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_PURSUIT
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_GUST
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_ODDISH
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_RAZOR_LEAF
- .2byte MOVE_FLAIL
- .2byte MOVE_SYNTHESIS
- .2byte MOVE_CHARM
- .2byte MOVE_INGRAIN
-
- egg_moves_begin SPECIES_PARAS
- .2byte MOVE_FALSE_SWIPE
- .2byte MOVE_SCREECH
- .2byte MOVE_COUNTER
- .2byte MOVE_PSYBEAM
- .2byte MOVE_FLAIL
- .2byte MOVE_SWEET_SCENT
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_PURSUIT
-
- egg_moves_begin SPECIES_VENONAT
- .2byte MOVE_BATON_PASS
- .2byte MOVE_SCREECH
- .2byte MOVE_GIGA_DRAIN
- .2byte MOVE_SIGNAL_BEAM
-
- egg_moves_begin SPECIES_DIGLETT
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_SCREECH
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_PURSUIT
- .2byte MOVE_BEAT_UP
- .2byte MOVE_UPROAR
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_MEOWTH
- .2byte MOVE_SPITE
- .2byte MOVE_CHARM
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_AMNESIA
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_ASSIST
-
- egg_moves_begin SPECIES_PSYDUCK
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_PSYBEAM
- .2byte MOVE_FORESIGHT
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_PSYCHIC
- .2byte MOVE_CROSS_CHOP
- .2byte MOVE_REFRESH
-
- egg_moves_begin SPECIES_MANKEY
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_FORESIGHT
- .2byte MOVE_MEDITATE
- .2byte MOVE_COUNTER
- .2byte MOVE_REVERSAL
- .2byte MOVE_BEAT_UP
- .2byte MOVE_REVENGE
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_GROWLITHE
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_CRUNCH
- .2byte MOVE_THRASH
- .2byte MOVE_FIRE_SPIN
- .2byte MOVE_HOWL
- .2byte MOVE_HEAT_WAVE
-
- egg_moves_begin SPECIES_POLIWAG
- .2byte MOVE_MIST
- .2byte MOVE_SPLASH
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_HAZE
- .2byte MOVE_MIND_READER
- .2byte MOVE_WATER_SPORT
- .2byte MOVE_ICE_BALL
-
- egg_moves_begin SPECIES_ABRA
- .2byte MOVE_ENCORE
- .2byte MOVE_BARRIER
- .2byte MOVE_KNOCK_OFF
- .2byte MOVE_FIRE_PUNCH
- .2byte MOVE_THUNDER_PUNCH
- .2byte MOVE_ICE_PUNCH
-
- egg_moves_begin SPECIES_MACHOP
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_MEDITATE
- .2byte MOVE_ROLLING_KICK
- .2byte MOVE_ENCORE
- .2byte MOVE_SMELLING_SALT
- .2byte MOVE_COUNTER
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_BELLSPROUT
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_ENCORE
- .2byte MOVE_REFLECT
- .2byte MOVE_SYNTHESIS
- .2byte MOVE_LEECH_LIFE
- .2byte MOVE_INGRAIN
- .2byte MOVE_MAGICAL_LEAF
-
- egg_moves_begin SPECIES_TENTACOOL
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_MIRROR_COAT
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_HAZE
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_CONFUSE_RAY
-
- egg_moves_begin SPECIES_GEODUDE
- .2byte MOVE_MEGA_PUNCH
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_BLOCK
-
- egg_moves_begin SPECIES_PONYTA
- .2byte MOVE_FLAME_WHEEL
- .2byte MOVE_THRASH
- .2byte MOVE_DOUBLE_KICK
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_CHARM
- .2byte MOVE_DOUBLE_EDGE
-
- egg_moves_begin SPECIES_SLOWPOKE
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_STOMP
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_SNORE
-
- egg_moves_begin SPECIES_FARFETCHD
- .2byte MOVE_STEEL_WING
- .2byte MOVE_FORESIGHT
- .2byte MOVE_MIRROR_MOVE
- .2byte MOVE_GUST
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_FLAIL
- .2byte MOVE_FEATHER_DANCE
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_DODUO
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_HAZE
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_FLAIL
- .2byte MOVE_ENDEAVOR
-
- egg_moves_begin SPECIES_SEEL
- .2byte MOVE_LICK
- .2byte MOVE_PERISH_SONG
- .2byte MOVE_DISABLE
- .2byte MOVE_HORN_DRILL
- .2byte MOVE_SLAM
- .2byte MOVE_ENCORE
- .2byte MOVE_FAKE_OUT
- .2byte MOVE_ICICLE_SPEAR
-
- egg_moves_begin SPECIES_GRIMER
- .2byte MOVE_HAZE
- .2byte MOVE_MEAN_LOOK
- .2byte MOVE_LICK
- .2byte MOVE_IMPRISON
- .2byte MOVE_CURSE
- .2byte MOVE_SHADOW_PUNCH
- .2byte MOVE_EXPLOSION
-
- egg_moves_begin SPECIES_SHELLDER
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_BARRIER
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_SCREECH
- .2byte MOVE_ICICLE_SPEAR
-
- egg_moves_begin SPECIES_GASTLY
- .2byte MOVE_PSYWAVE
- .2byte MOVE_PERISH_SONG
- .2byte MOVE_HAZE
- .2byte MOVE_ASTONISH
- .2byte MOVE_WILL_O_WISP
- .2byte MOVE_GRUDGE
- .2byte MOVE_EXPLOSION
-
- egg_moves_begin SPECIES_ONIX
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_FLAIL
- .2byte MOVE_EXPLOSION
- .2byte MOVE_BLOCK
-
- egg_moves_begin SPECIES_DROWZEE
- .2byte MOVE_BARRIER
- .2byte MOVE_ASSIST
- .2byte MOVE_ROLE_PLAY
- .2byte MOVE_FIRE_PUNCH
- .2byte MOVE_THUNDER_PUNCH
- .2byte MOVE_ICE_PUNCH
-
- egg_moves_begin SPECIES_KRABBY
- .2byte MOVE_DIG
- .2byte MOVE_HAZE
- .2byte MOVE_AMNESIA
- .2byte MOVE_FLAIL
- .2byte MOVE_SLAM
- .2byte MOVE_KNOCK_OFF
- .2byte MOVE_SWORDS_DANCE
-
- egg_moves_begin SPECIES_EXEGGCUTE
- .2byte MOVE_SYNTHESIS
- .2byte MOVE_MOONLIGHT
- .2byte MOVE_REFLECT
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_INGRAIN
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_CUBONE
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_SCREECH
- .2byte MOVE_SKULL_BASH
- .2byte MOVE_PERISH_SONG
- .2byte MOVE_SWORDS_DANCE
-
- egg_moves_begin SPECIES_LICKITUNG
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_MAGNITUDE
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_CURSE
- .2byte MOVE_SMELLING_SALT
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_SNORE
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_KOFFING
- .2byte MOVE_SCREECH
- .2byte MOVE_PSYWAVE
- .2byte MOVE_PSYBEAM
- .2byte MOVE_DESTINY_BOND
- .2byte MOVE_PAIN_SPLIT
- .2byte MOVE_WILL_O_WISP
-
- egg_moves_begin SPECIES_RHYHORN
- .2byte MOVE_CRUNCH
- .2byte MOVE_REVERSAL
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_COUNTER
- .2byte MOVE_MAGNITUDE
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_CURSE
- .2byte MOVE_CRUSH_CLAW
-
- egg_moves_begin SPECIES_CHANSEY
- .2byte MOVE_PRESENT
- .2byte MOVE_METRONOME
- .2byte MOVE_HEAL_BELL
- .2byte MOVE_AROMATHERAPY
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_TANGELA
- .2byte MOVE_FLAIL
- .2byte MOVE_CONFUSION
- .2byte MOVE_MEGA_DRAIN
- .2byte MOVE_REFLECT
- .2byte MOVE_AMNESIA
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_NATURE_POWER
-
- egg_moves_begin SPECIES_KANGASKHAN
- .2byte MOVE_STOMP
- .2byte MOVE_FORESIGHT
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_DISABLE
- .2byte MOVE_COUNTER
- .2byte MOVE_CRUSH_CLAW
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_HORSEA
- .2byte MOVE_FLAIL
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_OCTAZOOKA
- .2byte MOVE_DISABLE
- .2byte MOVE_SPLASH
- .2byte MOVE_DRAGON_RAGE
- .2byte MOVE_DRAGON_BREATH
-
- egg_moves_begin SPECIES_GOLDEEN
- .2byte MOVE_PSYBEAM
- .2byte MOVE_HAZE
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_MUD_SPORT
-
- egg_moves_begin SPECIES_MR_MIME
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_MIMIC
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_FAKE_OUT
- .2byte MOVE_TRICK
-
- egg_moves_begin SPECIES_SCYTHER
- .2byte MOVE_COUNTER
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_BATON_PASS
- .2byte MOVE_RAZOR_WIND
- .2byte MOVE_REVERSAL
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_ENDURE
- .2byte MOVE_SILVER_WIND
-
- egg_moves_begin SPECIES_PINSIR
- .2byte MOVE_FURY_ATTACK
- .2byte MOVE_FLAIL
- .2byte MOVE_FALSE_SWIPE
- .2byte MOVE_FAINT_ATTACK
-
- egg_moves_begin SPECIES_LAPRAS
- .2byte MOVE_FORESIGHT
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_TICKLE
- .2byte MOVE_REFRESH
- .2byte MOVE_DRAGON_DANCE
- .2byte MOVE_CURSE
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_HORN_DRILL
-
- egg_moves_begin SPECIES_EEVEE
- .2byte MOVE_CHARM
- .2byte MOVE_FLAIL
- .2byte MOVE_ENDURE
- .2byte MOVE_CURSE
- .2byte MOVE_TICKLE
- .2byte MOVE_WISH
-
- egg_moves_begin SPECIES_OMANYTE
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_SLAM
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_HAZE
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_SPIKES
-
- egg_moves_begin SPECIES_KABUTO
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_DIG
- .2byte MOVE_FLAIL
- .2byte MOVE_KNOCK_OFF
- .2byte MOVE_CONFUSE_RAY
-
- egg_moves_begin SPECIES_AERODACTYL
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_PURSUIT
- .2byte MOVE_FORESIGHT
- .2byte MOVE_STEEL_WING
- .2byte MOVE_DRAGON_BREATH
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_SNORLAX
- .2byte MOVE_LICK
- .2byte MOVE_CHARM
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_CURSE
- .2byte MOVE_FISSURE
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_DRATINI
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_MIST
- .2byte MOVE_HAZE
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_DRAGON_BREATH
- .2byte MOVE_DRAGON_DANCE
-
- egg_moves_begin SPECIES_CHIKORITA
- .2byte MOVE_VINE_WHIP
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_COUNTER
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_FLAIL
- .2byte MOVE_NATURE_POWER
- .2byte MOVE_INGRAIN
- .2byte MOVE_GRASS_WHISTLE
-
- egg_moves_begin SPECIES_CYNDAQUIL
- .2byte MOVE_FURY_SWIPES
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_REVERSAL
- .2byte MOVE_THRASH
- .2byte MOVE_FORESIGHT
- .2byte MOVE_COVET
- .2byte MOVE_HOWL
- .2byte MOVE_CRUSH_CLAW
-
- egg_moves_begin SPECIES_TOTODILE
- .2byte MOVE_CRUNCH
- .2byte MOVE_THRASH
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_WATER_SPORT
- .2byte MOVE_DRAGON_CLAW
-
- egg_moves_begin SPECIES_SENTRET
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_PURSUIT
- .2byte MOVE_SLASH
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_REVERSAL
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_TRICK
- .2byte MOVE_ASSIST
-
- egg_moves_begin SPECIES_HOOTHOOT
- .2byte MOVE_MIRROR_MOVE
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_WING_ATTACK
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_SKY_ATTACK
- .2byte MOVE_FEATHER_DANCE
-
- egg_moves_begin SPECIES_LEDYBA
- .2byte MOVE_PSYBEAM
- .2byte MOVE_BIDE
- .2byte MOVE_SILVER_WIND
-
- egg_moves_begin SPECIES_SPINARAK
- .2byte MOVE_PSYBEAM
- .2byte MOVE_DISABLE
- .2byte MOVE_SONIC_BOOM
- .2byte MOVE_BATON_PASS
- .2byte MOVE_PURSUIT
- .2byte MOVE_SIGNAL_BEAM
-
- egg_moves_begin SPECIES_CHINCHOU
- .2byte MOVE_FLAIL
- .2byte MOVE_SCREECH
- .2byte MOVE_AMNESIA
-
- egg_moves_begin SPECIES_PICHU
- .2byte MOVE_REVERSAL
- .2byte MOVE_BIDE
- .2byte MOVE_PRESENT
- .2byte MOVE_ENCORE
- .2byte MOVE_DOUBLE_SLAP
- .2byte MOVE_WISH
- .2byte MOVE_CHARGE
-
- egg_moves_begin SPECIES_CLEFFA
- .2byte MOVE_PRESENT
- .2byte MOVE_METRONOME
- .2byte MOVE_AMNESIA
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_SPLASH
- .2byte MOVE_MIMIC
- .2byte MOVE_WISH
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_IGGLYBUFF
- .2byte MOVE_PERISH_SONG
- .2byte MOVE_PRESENT
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_WISH
- .2byte MOVE_FAKE_TEARS
-
- egg_moves_begin SPECIES_TOGEPI
- .2byte MOVE_PRESENT
- .2byte MOVE_MIRROR_MOVE
- .2byte MOVE_PECK
- .2byte MOVE_FORESIGHT
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_PSYCH_UP
-
- egg_moves_begin SPECIES_NATU
- .2byte MOVE_HAZE
- .2byte MOVE_DRILL_PECK
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_STEEL_WING
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_FEATHER_DANCE
- .2byte MOVE_REFRESH
-
- egg_moves_begin SPECIES_MAREEP
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_SCREECH
- .2byte MOVE_REFLECT
- .2byte MOVE_ODOR_SLEUTH
- .2byte MOVE_CHARGE
-
- egg_moves_begin SPECIES_MARILL
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_PRESENT
- .2byte MOVE_AMNESIA
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_BELLY_DRUM
- .2byte MOVE_PERISH_SONG
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_SUDOWOODO
- .2byte MOVE_SELF_DESTRUCT
-
- egg_moves_begin SPECIES_HOPPIP
- .2byte MOVE_CONFUSION
- .2byte MOVE_ENCORE
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_REFLECT
- .2byte MOVE_AMNESIA
- .2byte MOVE_HELPING_HAND
- .2byte MOVE_PSYCH_UP
-
- egg_moves_begin SPECIES_AIPOM
- .2byte MOVE_COUNTER
- .2byte MOVE_SCREECH
- .2byte MOVE_PURSUIT
- .2byte MOVE_AGILITY
- .2byte MOVE_SPITE
- .2byte MOVE_SLAM
- .2byte MOVE_DOUBLE_SLAP
- .2byte MOVE_BEAT_UP
-
- egg_moves_begin SPECIES_SUNKERN
- .2byte MOVE_GRASS_WHISTLE
- .2byte MOVE_ENCORE
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_NATURE_POWER
- .2byte MOVE_CURSE
- .2byte MOVE_HELPING_HAND
-
- egg_moves_begin SPECIES_YANMA
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_REVERSAL
- .2byte MOVE_LEECH_LIFE
- .2byte MOVE_SIGNAL_BEAM
- .2byte MOVE_SILVER_WIND
-
- egg_moves_begin SPECIES_WOOPER
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_SAFEGUARD
- .2byte MOVE_CURSE
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_STOCKPILE
- .2byte MOVE_SWALLOW
- .2byte MOVE_SPIT_UP
-
- egg_moves_begin SPECIES_MURKROW
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_DRILL_PECK
- .2byte MOVE_MIRROR_MOVE
- .2byte MOVE_WING_ATTACK
- .2byte MOVE_SKY_ATTACK
- .2byte MOVE_CONFUSE_RAY
- .2byte MOVE_FEATHER_DANCE
- .2byte MOVE_PERISH_SONG
-
- egg_moves_begin SPECIES_MISDREAVUS
- .2byte MOVE_SCREECH
- .2byte MOVE_DESTINY_BOND
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_IMPRISON
-
- egg_moves_begin SPECIES_GIRAFARIG
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_AMNESIA
- .2byte MOVE_FORESIGHT
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_BEAT_UP
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_WISH
- .2byte MOVE_MAGIC_COAT
-
- egg_moves_begin SPECIES_PINECO
- .2byte MOVE_REFLECT
- .2byte MOVE_PIN_MISSILE
- .2byte MOVE_FLAIL
- .2byte MOVE_SWIFT
- .2byte MOVE_COUNTER
- .2byte MOVE_SAND_TOMB
-
- egg_moves_begin SPECIES_DUNSPARCE
- .2byte MOVE_BIDE
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_BITE
- .2byte MOVE_HEADBUTT
- .2byte MOVE_ASTONISH
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_GLIGAR
- .2byte MOVE_METAL_CLAW
- .2byte MOVE_WING_ATTACK
- .2byte MOVE_RAZOR_WIND
- .2byte MOVE_COUNTER
- .2byte MOVE_SAND_TOMB
-
- egg_moves_begin SPECIES_SNUBBULL
- .2byte MOVE_METRONOME
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_REFLECT
- .2byte MOVE_PRESENT
- .2byte MOVE_CRUNCH
- .2byte MOVE_HEAL_BELL
- .2byte MOVE_SNORE
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_QWILFISH
- .2byte MOVE_FLAIL
- .2byte MOVE_HAZE
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_ASTONISH
-
- egg_moves_begin SPECIES_SHUCKLE
- .2byte MOVE_SWEET_SCENT
-
- egg_moves_begin SPECIES_HERACROSS
- .2byte MOVE_HARDEN
- .2byte MOVE_BIDE
- .2byte MOVE_FLAIL
- .2byte MOVE_FALSE_SWIPE
-
- egg_moves_begin SPECIES_SNEASEL
- .2byte MOVE_COUNTER
- .2byte MOVE_SPITE
- .2byte MOVE_FORESIGHT
- .2byte MOVE_REFLECT
- .2byte MOVE_BITE
- .2byte MOVE_CRUSH_CLAW
- .2byte MOVE_FAKE_OUT
-
- egg_moves_begin SPECIES_TEDDIURSA
- .2byte MOVE_CRUNCH
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_SEISMIC_TOSS
- .2byte MOVE_COUNTER
- .2byte MOVE_METAL_CLAW
- .2byte MOVE_FAKE_TEARS
- .2byte MOVE_YAWN
- .2byte MOVE_SLEEP_TALK
-
- egg_moves_begin SPECIES_SLUGMA
- .2byte MOVE_ACID_ARMOR
- .2byte MOVE_HEAT_WAVE
-
- egg_moves_begin SPECIES_SWINUB
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_BITE
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_MUD_SHOT
- .2byte MOVE_ICICLE_SPEAR
- .2byte MOVE_DOUBLE_EDGE
-
- egg_moves_begin SPECIES_CORSOLA
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_SCREECH
- .2byte MOVE_MIST
- .2byte MOVE_AMNESIA
- .2byte MOVE_BARRIER
- .2byte MOVE_INGRAIN
- .2byte MOVE_CONFUSE_RAY
- .2byte MOVE_ICICLE_SPEAR
-
- egg_moves_begin SPECIES_REMORAID
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_OCTAZOOKA
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_HAZE
- .2byte MOVE_SCREECH
- .2byte MOVE_THUNDER_WAVE
- .2byte MOVE_ROCK_BLAST
-
- egg_moves_begin SPECIES_DELIBIRD
- .2byte MOVE_AURORA_BEAM
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_SPLASH
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_ICE_BALL
-
- egg_moves_begin SPECIES_MANTINE
- .2byte MOVE_TWISTER
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_HAZE
- .2byte MOVE_SLAM
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_SKARMORY
- .2byte MOVE_DRILL_PECK
- .2byte MOVE_PURSUIT
- .2byte MOVE_WHIRLWIND
- .2byte MOVE_SKY_ATTACK
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_HOUNDOUR
- .2byte MOVE_FIRE_SPIN
- .2byte MOVE_RAGE
- .2byte MOVE_PURSUIT
- .2byte MOVE_COUNTER
- .2byte MOVE_SPITE
- .2byte MOVE_REVERSAL
- .2byte MOVE_BEAT_UP
- .2byte MOVE_WILL_O_WISP
-
- egg_moves_begin SPECIES_PHANPY
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_SNORE
- .2byte MOVE_COUNTER
- .2byte MOVE_FISSURE
-
- egg_moves_begin SPECIES_STANTLER
- .2byte MOVE_SPITE
- .2byte MOVE_DISABLE
- .2byte MOVE_BITE
- .2byte MOVE_SWAGGER
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_EXTRASENSORY
-
- egg_moves_begin SPECIES_TYROGUE
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_HI_JUMP_KICK
- .2byte MOVE_MACH_PUNCH
- .2byte MOVE_MIND_READER
- .2byte MOVE_HELPING_HAND
-
- egg_moves_begin SPECIES_SMOOCHUM
- .2byte MOVE_MEDITATE
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_FAKE_OUT
- .2byte MOVE_WISH
- .2byte MOVE_ICE_PUNCH
-
- egg_moves_begin SPECIES_ELEKID
- .2byte MOVE_KARATE_CHOP
- .2byte MOVE_BARRIER
- .2byte MOVE_ROLLING_KICK
- .2byte MOVE_MEDITATE
- .2byte MOVE_CROSS_CHOP
- .2byte MOVE_FIRE_PUNCH
- .2byte MOVE_ICE_PUNCH
-
- egg_moves_begin SPECIES_MAGBY
- .2byte MOVE_KARATE_CHOP
- .2byte MOVE_MEGA_PUNCH
- .2byte MOVE_BARRIER
- .2byte MOVE_SCREECH
- .2byte MOVE_CROSS_CHOP
- .2byte MOVE_THUNDER_PUNCH
-
- egg_moves_begin SPECIES_MILTANK
- .2byte MOVE_PRESENT
- .2byte MOVE_REVERSAL
- .2byte MOVE_SEISMIC_TOSS
- .2byte MOVE_ENDURE
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_CURSE
- .2byte MOVE_HELPING_HAND
- .2byte MOVE_SLEEP_TALK
-
- egg_moves_begin SPECIES_LARVITAR
- .2byte MOVE_PURSUIT
- .2byte MOVE_STOMP
- .2byte MOVE_OUTRAGE
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_DRAGON_DANCE
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_TREECKO
- .2byte MOVE_CRUNCH
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_ENDEAVOR
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_DRAGON_BREATH
- .2byte MOVE_CRUSH_CLAW
-
- egg_moves_begin SPECIES_TORCHIC
- .2byte MOVE_COUNTER
- .2byte MOVE_REVERSAL
- .2byte MOVE_ENDURE
- .2byte MOVE_SWAGGER
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_MUDKIP
- .2byte MOVE_REFRESH
- .2byte MOVE_UPROAR
- .2byte MOVE_CURSE
- .2byte MOVE_STOMP
- .2byte MOVE_ICE_BALL
- .2byte MOVE_MIRROR_COAT
-
- egg_moves_begin SPECIES_POOCHYENA
- .2byte MOVE_ASTONISH
- .2byte MOVE_POISON_FANG
- .2byte MOVE_COVET
- .2byte MOVE_LEER
- .2byte MOVE_YAWN
-
- egg_moves_begin SPECIES_ZIGZAGOON
- .2byte MOVE_CHARM
- .2byte MOVE_PURSUIT
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_TICKLE
- .2byte MOVE_TRICK
-
- egg_moves_begin SPECIES_LOTAD
- .2byte MOVE_SYNTHESIS
- .2byte MOVE_RAZOR_LEAF
- .2byte MOVE_SWEET_SCENT
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_FLAIL
- .2byte MOVE_WATER_GUN
-
- egg_moves_begin SPECIES_SEEDOT
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_AMNESIA
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_RAZOR_WIND
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_FALSE_SWIPE
-
- egg_moves_begin SPECIES_NINCADA
- .2byte MOVE_ENDURE
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_GUST
- .2byte MOVE_SILVER_WIND
-
- egg_moves_begin SPECIES_TAILLOW
- .2byte MOVE_PURSUIT
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_REFRESH
- .2byte MOVE_MIRROR_MOVE
- .2byte MOVE_RAGE
- .2byte MOVE_SKY_ATTACK
-
- egg_moves_begin SPECIES_SHROOMISH
- .2byte MOVE_FAKE_TEARS
- .2byte MOVE_SWAGGER
- .2byte MOVE_CHARM
- .2byte MOVE_FALSE_SWIPE
- .2byte MOVE_HELPING_HAND
-
- egg_moves_begin SPECIES_SPINDA
- .2byte MOVE_ENCORE
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_ASSIST
- .2byte MOVE_DISABLE
- .2byte MOVE_BATON_PASS
- .2byte MOVE_WISH
- .2byte MOVE_TRICK
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_WINGULL
- .2byte MOVE_MIST
- .2byte MOVE_TWISTER
- .2byte MOVE_AGILITY
- .2byte MOVE_GUST
- .2byte MOVE_WATER_SPORT
-
- egg_moves_begin SPECIES_SURSKIT
- .2byte MOVE_FORESIGHT
- .2byte MOVE_MUD_SHOT
- .2byte MOVE_PSYBEAM
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_MIND_READER
-
- egg_moves_begin SPECIES_WAILMER
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_THRASH
- .2byte MOVE_SWAGGER
- .2byte MOVE_SNORE
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_CURSE
- .2byte MOVE_FISSURE
- .2byte MOVE_TICKLE
-
- egg_moves_begin SPECIES_SKITTY
- .2byte MOVE_HELPING_HAND
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_UPROAR
- .2byte MOVE_FAKE_TEARS
- .2byte MOVE_WISH
- .2byte MOVE_BATON_PASS
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_TICKLE
-
- egg_moves_begin SPECIES_KECLEON
- .2byte MOVE_DISABLE
- .2byte MOVE_MAGIC_COAT
- .2byte MOVE_TRICK
-
- egg_moves_begin SPECIES_NOSEPASS
- .2byte MOVE_MAGNITUDE
- .2byte MOVE_ROLLOUT
- .2byte MOVE_EXPLOSION
-
- egg_moves_begin SPECIES_TORKOAL
- .2byte MOVE_ERUPTION
- .2byte MOVE_ENDURE
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_YAWN
-
- egg_moves_begin SPECIES_SABLEYE
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_RECOVER
- .2byte MOVE_MOONLIGHT
-
- egg_moves_begin SPECIES_BARBOACH
- .2byte MOVE_THRASH
- .2byte MOVE_WHIRLPOOL
- .2byte MOVE_SPARK
-
- egg_moves_begin SPECIES_LUVDISC
- .2byte MOVE_SPLASH
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_WATER_SPORT
- .2byte MOVE_MUD_SPORT
-
- egg_moves_begin SPECIES_CORPHISH
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_ENDEAVOR
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_ANCIENT_POWER
-
- egg_moves_begin SPECIES_FEEBAS
- .2byte MOVE_MIRROR_COAT
- .2byte MOVE_DRAGON_BREATH
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_LIGHT_SCREEN
- .2byte MOVE_CONFUSE_RAY
-
- egg_moves_begin SPECIES_CARVANHA
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_THRASH
-
- egg_moves_begin SPECIES_TRAPINCH
- .2byte MOVE_FOCUS_ENERGY
- .2byte MOVE_QUICK_ATTACK
- .2byte MOVE_GUST
-
- egg_moves_begin SPECIES_MAKUHITA
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_DETECT
- .2byte MOVE_FORESIGHT
- .2byte MOVE_HELPING_HAND
- .2byte MOVE_CROSS_CHOP
- .2byte MOVE_REVENGE
- .2byte MOVE_DYNAMIC_PUNCH
- .2byte MOVE_COUNTER
-
- egg_moves_begin SPECIES_ELECTRIKE
- .2byte MOVE_CRUNCH
- .2byte MOVE_HEADBUTT
- .2byte MOVE_UPROAR
- .2byte MOVE_CURSE
- .2byte MOVE_SWIFT
-
- egg_moves_begin SPECIES_NUMEL
- .2byte MOVE_HOWL
- .2byte MOVE_SCARY_FACE
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_ROLLOUT
- .2byte MOVE_DEFENSE_CURL
- .2byte MOVE_STOMP
-
- egg_moves_begin SPECIES_SPHEAL
- .2byte MOVE_WATER_SPORT
- .2byte MOVE_STOCKPILE
- .2byte MOVE_SWALLOW
- .2byte MOVE_SPIT_UP
- .2byte MOVE_YAWN
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_CURSE
- .2byte MOVE_FISSURE
-
- egg_moves_begin SPECIES_CACNEA
- .2byte MOVE_GRASS_WHISTLE
- .2byte MOVE_ACID
- .2byte MOVE_TEETER_DANCE
- .2byte MOVE_DYNAMIC_PUNCH
- .2byte MOVE_COUNTER
-
- egg_moves_begin SPECIES_SNORUNT
- .2byte MOVE_BLOCK
- .2byte MOVE_SPIKES
-
- egg_moves_begin SPECIES_AZURILL
- .2byte MOVE_ENCORE
- .2byte MOVE_SING
- .2byte MOVE_REFRESH
- .2byte MOVE_SLAM
- .2byte MOVE_TICKLE
-
- egg_moves_begin SPECIES_SPOINK
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_EXTRASENSORY
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_TRICK
-
- egg_moves_begin SPECIES_PLUSLE
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_WISH
-
- egg_moves_begin SPECIES_MINUN
- .2byte MOVE_SUBSTITUTE
- .2byte MOVE_WISH
-
- egg_moves_begin SPECIES_MAWILE
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_FALSE_SWIPE
- .2byte MOVE_POISON_FANG
- .2byte MOVE_PSYCH_UP
- .2byte MOVE_ANCIENT_POWER
- .2byte MOVE_TICKLE
-
- egg_moves_begin SPECIES_MEDITITE
- .2byte MOVE_FIRE_PUNCH
- .2byte MOVE_THUNDER_PUNCH
- .2byte MOVE_ICE_PUNCH
- .2byte MOVE_FORESIGHT
- .2byte MOVE_FAKE_OUT
- .2byte MOVE_BATON_PASS
- .2byte MOVE_DYNAMIC_PUNCH
-
- egg_moves_begin SPECIES_SWABLU
- .2byte MOVE_AGILITY
- .2byte MOVE_HAZE
- .2byte MOVE_PURSUIT
- .2byte MOVE_RAGE
-
- egg_moves_begin SPECIES_DUSKULL
- .2byte MOVE_IMPRISON
- .2byte MOVE_DESTINY_BOND
- .2byte MOVE_PAIN_SPLIT
- .2byte MOVE_GRUDGE
- .2byte MOVE_MEMENTO
- .2byte MOVE_FAINT_ATTACK
-
- egg_moves_begin SPECIES_ROSELIA
- .2byte MOVE_SPIKES
- .2byte MOVE_SYNTHESIS
- .2byte MOVE_PIN_MISSILE
- .2byte MOVE_COTTON_SPORE
-
- egg_moves_begin SPECIES_SLAKOTH
- .2byte MOVE_PURSUIT
- .2byte MOVE_SLASH
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_SNORE
- .2byte MOVE_CRUSH_CLAW
- .2byte MOVE_CURSE
- .2byte MOVE_SLEEP_TALK
-
- egg_moves_begin SPECIES_GULPIN
- .2byte MOVE_DREAM_EATER
- .2byte MOVE_ACID_ARMOR
- .2byte MOVE_SMOG
- .2byte MOVE_PAIN_SPLIT
-
- egg_moves_begin SPECIES_TROPIUS
- .2byte MOVE_HEADBUTT
- .2byte MOVE_SLAM
- .2byte MOVE_RAZOR_WIND
- .2byte MOVE_LEECH_SEED
- .2byte MOVE_NATURE_POWER
-
- egg_moves_begin SPECIES_WHISMUR
- .2byte MOVE_TAKE_DOWN
- .2byte MOVE_SNORE
- .2byte MOVE_SWAGGER
- .2byte MOVE_EXTRASENSORY
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_CLAMPERL
- .2byte MOVE_REFRESH
- .2byte MOVE_MUD_SPORT
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_SUPERSONIC
- .2byte MOVE_BARRIER
- .2byte MOVE_CONFUSE_RAY
-
- egg_moves_begin SPECIES_ABSOL
- .2byte MOVE_BATON_PASS
- .2byte MOVE_FAINT_ATTACK
- .2byte MOVE_DOUBLE_EDGE
- .2byte MOVE_MAGIC_COAT
- .2byte MOVE_CURSE
- .2byte MOVE_SUBSTITUTE
-
- egg_moves_begin SPECIES_SHUPPET
- .2byte MOVE_DISABLE
- .2byte MOVE_DESTINY_BOND
- .2byte MOVE_FORESIGHT
- .2byte MOVE_ASTONISH
- .2byte MOVE_IMPRISON
-
- egg_moves_begin SPECIES_SEVIPER
- .2byte MOVE_STOCKPILE
- .2byte MOVE_SWALLOW
- .2byte MOVE_SPIT_UP
- .2byte MOVE_BODY_SLAM
-
- egg_moves_begin SPECIES_ZANGOOSE
- .2byte MOVE_FLAIL
- .2byte MOVE_DOUBLE_KICK
- .2byte MOVE_RAZOR_WIND
- .2byte MOVE_COUNTER
- .2byte MOVE_ROAR
- .2byte MOVE_CURSE
-
- egg_moves_begin SPECIES_RELICANTH
- .2byte MOVE_MAGNITUDE
- .2byte MOVE_SKULL_BASH
- .2byte MOVE_WATER_SPORT
- .2byte MOVE_AMNESIA
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_ARON
- .2byte MOVE_ENDEAVOR
- .2byte MOVE_BODY_SLAM
- .2byte MOVE_STOMP
- .2byte MOVE_SMELLING_SALT
-
- egg_moves_begin SPECIES_CASTFORM
- .2byte MOVE_FUTURE_SIGHT
- .2byte MOVE_PSYCH_UP
-
- egg_moves_begin SPECIES_VOLBEAT
- .2byte MOVE_BATON_PASS
- .2byte MOVE_SILVER_WIND
- .2byte MOVE_TRICK
-
- egg_moves_begin SPECIES_ILLUMISE
- .2byte MOVE_BATON_PASS
- .2byte MOVE_SILVER_WIND
- .2byte MOVE_GROWTH
-
- egg_moves_begin SPECIES_LILEEP
- .2byte MOVE_BARRIER
- .2byte MOVE_RECOVER
- .2byte MOVE_MIRROR_COAT
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_ANORITH
- .2byte MOVE_RAPID_SPIN
- .2byte MOVE_KNOCK_OFF
- .2byte MOVE_SWORDS_DANCE
- .2byte MOVE_ROCK_SLIDE
-
- egg_moves_begin SPECIES_RALTS
- .2byte MOVE_DISABLE
- .2byte MOVE_WILL_O_WISP
- .2byte MOVE_MEAN_LOOK
- .2byte MOVE_MEMENTO
- .2byte MOVE_DESTINY_BOND
-
- egg_moves_begin SPECIES_BAGON
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_THRASH
- .2byte MOVE_DRAGON_RAGE
- .2byte MOVE_TWISTER
- .2byte MOVE_DRAGON_DANCE
-
- egg_moves_begin SPECIES_CHIMECHO
- .2byte MOVE_DISABLE
- .2byte MOVE_CURSE
- .2byte MOVE_HYPNOSIS
- .2byte MOVE_DREAM_EATER
-
- .2byte -1
diff --git a/data/field_effect_helpers.s b/data/field_effect_helpers.s
deleted file mode 100644
index d22bd8dde..000000000
--- a/data/field_effect_helpers.s
+++ /dev/null
@@ -1,37 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ XXX: Unused? Probably aligned because it's at the beginning of an object file.
- .align 2
- .string "タマゴ$"
-
- .align 1
-gUnknown_08401E2C:: @ 8401E2C
- .2byte 0xC, 0x1C, 0x2C
-
-gUnknown_08401E32:: @ 8401E32
- .byte 0, 1, 2, 3
-
- .align 1
-gUnknown_08401E36:: @ 8401E36
- .2byte 4, 4, 4, 16
-
- .align 2
-gUnknown_08401E40:: @ 8401E40
- .4byte sub_81275A0
- .4byte sub_81275C4
-
- .align 2
-gUnknown_08401E48:: @ 8401E48
- .4byte sub_8127DA0
- .4byte sub_8127DD0
- .4byte sub_8127E30
-
-gUnknown_08401E54:: @ 8401E54
- .byte 0, 0, 1, 2, 3
-
- .align 1
-gUnknown_08401E5A:: @ 8401E5A
- .2byte 3, 7
diff --git a/include/battle.h b/include/battle.h
index 47cb7cf8e..7850a9dd6 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -243,12 +243,11 @@ struct BattleStruct /* 0x2000000 */
/*0x16001*/ u8 turnEffectsBank;
/*0x16002*/ u8 animTurn;
/*0x16003*/ u8 scriptingActive;
- /*0x16004*/ u8 wrappedMove1[4];
- /*0x16008*/ u8 wrappedMove2[4];
+ /*0x16004*/ u8 wrappedMove[8];
/*0x1600C*/ u8 cmd49StateTracker;
/*0x1600D*/ u8 unk1600D;
/*0x1600E*/ u8 turncountersTracker;
- /*0x1600F*/ u8 cmd23StateTracker;
+ /*0x1600F*/ u8 atk23StateTracker;
/*0x16010*/ u8 moveTarget[4];
/*0x16014*/ u8 unk16014;
/*0x16015*/ u8 unk16015;
@@ -796,7 +795,7 @@ void BattleTurnPassed(void);
// asm/battle_2.o
void sub_8012324(void);
void sub_8012FBC(u8, u8);
-u8 b_first_side(u8, u8, u8);
+u8 GetWhoStrikesFirst(u8, u8, u8);
void TurnValuesCleanUp(u8);
void SpecialStatusesClear(void);
void sub_80138F0(void);
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 48ceece21..2386c515c 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -53,14 +53,14 @@ struct UnknownStruct3
};
void DoMoveAnim(const u8 *const moveAnims[], u16 b, u8 c);
-bool8 b_side_obj__get_some_boolean(u8 a);
+bool8 IsAnimBankSpriteVisible(u8 a);
void sub_8076034(u8, u8);
bool8 IsContest(void);
void battle_anim_clear_some_data(void);
void move_anim_8072740(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 task);
void DestroyAnimVisualTask(u8 task);
-bool8 b_side_obj__get_some_boolean(u8);
+bool8 IsAnimBankSpriteVisible(u8);
u8 IsContest();
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h
index 63575727d..1d1fac71e 100644
--- a/include/data/field_map_obj/anim_func_ptrs.h
+++ b/include/data/field_map_obj/anim_func_ptrs.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/18/2017.
+
//
#ifndef POKERUBY_ANIM_FUNC_PTRS_H
diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h
index 8595f97e7..49c14e8c2 100644
--- a/include/data/field_map_obj/base_oam.h
+++ b/include/data/field_map_obj/base_oam.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_BASE_OAM_H
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h
index 53a0fd482..5b60fee6f 100644
--- a/include/data/field_map_obj/berry_tree_graphics_tables.h
+++ b/include/data/field_map_obj/berry_tree_graphics_tables.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_BERRY_TREE_GRAPHICS_TABLES_H
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h
index d24a47184..a324066b7 100644
--- a/include/data/field_map_obj/callback_subroutine_pointers.h
+++ b/include/data/field_map_obj/callback_subroutine_pointers.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/18/2017.
+
//
#ifndef POKERUBY_CALLBACK_SUBROUTINE_POINTERS_H
@@ -394,7 +394,7 @@ u8 (*const gUnknown_08375588[])(struct MapObject *, struct Sprite *) = {
sub_805F3C4
};
-u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8)) = {
+u8 (*const gUnknown_08375594[])(struct MapObject *, struct Sprite *, u8, bool8(u8)) = {
sub_805F3EC,
sub_805F3F0,
sub_805F438,
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h
index 8e19747ce..320af1ff8 100644
--- a/include/data/field_map_obj/field_effect_object_template_pointers.h
+++ b/include/data/field_map_obj/field_effect_object_template_pointers.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_FIELD_EFFECT_OBJECT_TEMPLATE_POINTERS_H
diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h
index dc8a38542..9d3ae343d 100644
--- a/include/data/field_map_obj/field_effect_objects.h
+++ b/include/data/field_map_obj/field_effect_objects.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_FIELD_EFFECT_OBJECTS_H
diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h
index 0d6e299ee..0993f3efd 100644
--- a/include/data/field_map_obj/map_object_anims.h
+++ b/include/data/field_map_obj/map_object_anims.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_MAP_OBJECT_ANIMS_H
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h
index 818c5b90c..7b021b66d 100644
--- a/include/data/field_map_obj/map_object_graphics_info.h
+++ b/include/data/field_map_obj/map_object_graphics_info.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_H
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h
index c36827709..22a052b0d 100644
--- a/include/data/field_map_obj/map_object_graphics_info_pointers.h
+++ b/include/data/field_map_obj/map_object_graphics_info_pointers.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_MAP_OBJECT_GRAPHICS_INFO_POINTERS_H
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h
index 37d579512..ecb5c8836 100644
--- a/include/data/field_map_obj/map_object_pic_tables.h
+++ b/include/data/field_map_obj/map_object_pic_tables.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_MAP_OBJECT_PIC_TABLES_H
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h
index f928db88a..951d71e99 100644
--- a/include/data/field_map_obj/map_object_subsprites.h
+++ b/include/data/field_map_obj/map_object_subsprites.h
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/17/2017.
+
//
#ifndef POKERUBY_MAP_OBJECT_SUBSPRITES_H
diff --git a/include/data/pokemon/base_stats.h b/include/data/pokemon/base_stats.h
index eadfbfe30..37f59e1c6 100644
--- a/include/data/pokemon/base_stats.h
+++ b/include/data/pokemon/base_stats.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_BASE_STATS_H
diff --git a/include/data/pokemon/cry_ids.h b/include/data/pokemon/cry_ids.h
index d965a41cf..6207a92f0 100644
--- a/include/data/pokemon/cry_ids.h
+++ b/include/data/pokemon/cry_ids.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_CRY_IDS_H
diff --git a/include/data/pokemon/dex_order.h b/include/data/pokemon/dex_order.h
index 6f8582533..cbb7182ed 100644
--- a/include/data/pokemon/dex_order.h
+++ b/include/data/pokemon/dex_order.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_DEX_ORDER_H
diff --git a/include/data/pokemon/egg_moves.h b/include/data/pokemon/egg_moves.h
new file mode 100644
index 000000000..ab1b1dd33
--- /dev/null
+++ b/include/data/pokemon/egg_moves.h
@@ -0,0 +1,1318 @@
+//
+
+//
+
+#ifndef POKERUBY_DAYCARE_H
+#define POKERUBY_DAYCARE_H
+
+#define EGG_MOVES_SPECIES_OFFSET 20000
+#define egg_moves(species, moves...) (SPECIES_##species + EGG_MOVES_SPECIES_OFFSET), moves
+
+#endif //POKERUBY_DAYCARE_H
+
+const u16 gEggMoves[] = {
+ egg_moves(BULBASAUR,
+ MOVE_LIGHT_SCREEN,
+ MOVE_SKULL_BASH,
+ MOVE_SAFEGUARD,
+ MOVE_CHARM,
+ MOVE_PETAL_DANCE,
+ MOVE_MAGICAL_LEAF,
+ MOVE_GRASS_WHISTLE,
+ MOVE_CURSE),
+
+ egg_moves(CHARMANDER,
+ MOVE_BELLY_DRUM,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_BITE,
+ MOVE_OUTRAGE,
+ MOVE_BEAT_UP,
+ MOVE_SWORDS_DANCE,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(SQUIRTLE,
+ MOVE_MIRROR_COAT,
+ MOVE_HAZE,
+ MOVE_MIST,
+ MOVE_FORESIGHT,
+ MOVE_FLAIL,
+ MOVE_REFRESH,
+ MOVE_MUD_SPORT,
+ MOVE_YAWN),
+
+ egg_moves(PIDGEY,
+ MOVE_PURSUIT,
+ MOVE_FAINT_ATTACK,
+ MOVE_FORESIGHT,
+ MOVE_STEEL_WING,
+ MOVE_AIR_CUTTER),
+
+ egg_moves(RATTATA,
+ MOVE_SCREECH,
+ MOVE_FLAME_WHEEL,
+ MOVE_FURY_SWIPES,
+ MOVE_BITE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_UPROAR,
+ MOVE_SWAGGER),
+
+ egg_moves(SPEAROW,
+ MOVE_FAINT_ATTACK,
+ MOVE_FALSE_SWIPE,
+ MOVE_SCARY_FACE,
+ MOVE_QUICK_ATTACK,
+ MOVE_TRI_ATTACK,
+ MOVE_ASTONISH,
+ MOVE_SKY_ATTACK),
+
+ egg_moves(EKANS,
+ MOVE_PURSUIT,
+ MOVE_SLAM,
+ MOVE_SPITE,
+ MOVE_BEAT_UP,
+ MOVE_POISON_FANG),
+
+ egg_moves(SANDSHREW,
+ MOVE_FLAIL,
+ MOVE_SAFEGUARD,
+ MOVE_COUNTER,
+ MOVE_RAPID_SPIN,
+ MOVE_ROCK_SLIDE,
+ MOVE_METAL_CLAW,
+ MOVE_SWORDS_DANCE,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(NIDORAN_F,
+ MOVE_SUPERSONIC,
+ MOVE_DISABLE,
+ MOVE_TAKE_DOWN,
+ MOVE_FOCUS_ENERGY,
+ MOVE_CHARM,
+ MOVE_COUNTER,
+ MOVE_BEAT_UP),
+
+ egg_moves(NIDORAN_M,
+ MOVE_COUNTER,
+ MOVE_DISABLE,
+ MOVE_SUPERSONIC,
+ MOVE_TAKE_DOWN,
+ MOVE_AMNESIA,
+ MOVE_CONFUSION,
+ MOVE_BEAT_UP),
+
+ egg_moves(VULPIX,
+ MOVE_FAINT_ATTACK,
+ MOVE_HYPNOSIS,
+ MOVE_FLAIL,
+ MOVE_SPITE,
+ MOVE_DISABLE,
+ MOVE_HOWL,
+ MOVE_PSYCH_UP,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(ZUBAT,
+ MOVE_QUICK_ATTACK,
+ MOVE_PURSUIT,
+ MOVE_FAINT_ATTACK,
+ MOVE_GUST,
+ MOVE_WHIRLWIND,
+ MOVE_CURSE),
+
+ egg_moves(ODDISH,
+ MOVE_SWORDS_DANCE,
+ MOVE_RAZOR_LEAF,
+ MOVE_FLAIL,
+ MOVE_SYNTHESIS,
+ MOVE_CHARM,
+ MOVE_INGRAIN),
+
+ egg_moves(PARAS,
+ MOVE_FALSE_SWIPE,
+ MOVE_SCREECH,
+ MOVE_COUNTER,
+ MOVE_PSYBEAM,
+ MOVE_FLAIL,
+ MOVE_SWEET_SCENT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PURSUIT),
+
+ egg_moves(VENONAT,
+ MOVE_BATON_PASS,
+ MOVE_SCREECH,
+ MOVE_GIGA_DRAIN,
+ MOVE_SIGNAL_BEAM),
+
+ egg_moves(DIGLETT,
+ MOVE_FAINT_ATTACK,
+ MOVE_SCREECH,
+ MOVE_ANCIENT_POWER,
+ MOVE_PURSUIT,
+ MOVE_BEAT_UP,
+ MOVE_UPROAR,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(MEOWTH,
+ MOVE_SPITE,
+ MOVE_CHARM,
+ MOVE_HYPNOSIS,
+ MOVE_AMNESIA,
+ MOVE_PSYCH_UP,
+ MOVE_ASSIST),
+
+ egg_moves(PSYDUCK,
+ MOVE_HYPNOSIS,
+ MOVE_PSYBEAM,
+ MOVE_FORESIGHT,
+ MOVE_LIGHT_SCREEN,
+ MOVE_FUTURE_SIGHT,
+ MOVE_PSYCHIC,
+ MOVE_CROSS_CHOP,
+ MOVE_REFRESH),
+
+ egg_moves(MANKEY,
+ MOVE_ROCK_SLIDE,
+ MOVE_FORESIGHT,
+ MOVE_MEDITATE,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_BEAT_UP,
+ MOVE_REVENGE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(GROWLITHE,
+ MOVE_BODY_SLAM,
+ MOVE_SAFEGUARD,
+ MOVE_CRUNCH,
+ MOVE_THRASH,
+ MOVE_FIRE_SPIN,
+ MOVE_HOWL,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(POLIWAG,
+ MOVE_MIST,
+ MOVE_SPLASH,
+ MOVE_BUBBLE_BEAM,
+ MOVE_HAZE,
+ MOVE_MIND_READER,
+ MOVE_WATER_SPORT,
+ MOVE_ICE_BALL),
+
+ egg_moves(ABRA,
+ MOVE_ENCORE,
+ MOVE_BARRIER,
+ MOVE_KNOCK_OFF,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(MACHOP,
+ MOVE_LIGHT_SCREEN,
+ MOVE_MEDITATE,
+ MOVE_ROLLING_KICK,
+ MOVE_ENCORE,
+ MOVE_SMELLING_SALT,
+ MOVE_COUNTER,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(BELLSPROUT,
+ MOVE_SWORDS_DANCE,
+ MOVE_ENCORE,
+ MOVE_REFLECT,
+ MOVE_SYNTHESIS,
+ MOVE_LEECH_LIFE,
+ MOVE_INGRAIN,
+ MOVE_MAGICAL_LEAF),
+
+ egg_moves(TENTACOOL,
+ MOVE_AURORA_BEAM,
+ MOVE_MIRROR_COAT,
+ MOVE_RAPID_SPIN,
+ MOVE_HAZE,
+ MOVE_SAFEGUARD,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(GEODUDE,
+ MOVE_MEGA_PUNCH,
+ MOVE_ROCK_SLIDE,
+ MOVE_BLOCK),
+
+ egg_moves(PONYTA,
+ MOVE_FLAME_WHEEL,
+ MOVE_THRASH,
+ MOVE_DOUBLE_KICK,
+ MOVE_HYPNOSIS,
+ MOVE_CHARM,
+ MOVE_DOUBLE_EDGE),
+
+ egg_moves(SLOWPOKE,
+ MOVE_SAFEGUARD,
+ MOVE_BELLY_DRUM,
+ MOVE_FUTURE_SIGHT,
+ MOVE_STOMP,
+ MOVE_MUD_SPORT,
+ MOVE_SLEEP_TALK,
+ MOVE_SNORE),
+
+ egg_moves(FARFETCHD,
+ MOVE_STEEL_WING,
+ MOVE_FORESIGHT,
+ MOVE_MIRROR_MOVE,
+ MOVE_GUST,
+ MOVE_QUICK_ATTACK,
+ MOVE_FLAIL,
+ MOVE_FEATHER_DANCE,
+ MOVE_CURSE),
+
+ egg_moves(DODUO,
+ MOVE_QUICK_ATTACK,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_FAINT_ATTACK,
+ MOVE_FLAIL,
+ MOVE_ENDEAVOR),
+
+ egg_moves(SEEL,
+ MOVE_LICK,
+ MOVE_PERISH_SONG,
+ MOVE_DISABLE,
+ MOVE_HORN_DRILL,
+ MOVE_SLAM,
+ MOVE_ENCORE,
+ MOVE_FAKE_OUT,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(GRIMER,
+ MOVE_HAZE,
+ MOVE_MEAN_LOOK,
+ MOVE_LICK,
+ MOVE_IMPRISON,
+ MOVE_CURSE,
+ MOVE_SHADOW_PUNCH,
+ MOVE_EXPLOSION),
+
+ egg_moves(SHELLDER,
+ MOVE_BUBBLE_BEAM,
+ MOVE_TAKE_DOWN,
+ MOVE_BARRIER,
+ MOVE_RAPID_SPIN,
+ MOVE_SCREECH,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(GASTLY,
+ MOVE_PSYWAVE,
+ MOVE_PERISH_SONG,
+ MOVE_HAZE,
+ MOVE_ASTONISH,
+ MOVE_WILL_O_WISP,
+ MOVE_GRUDGE,
+ MOVE_EXPLOSION),
+
+ egg_moves(ONIX,
+ MOVE_ROCK_SLIDE,
+ MOVE_FLAIL,
+ MOVE_EXPLOSION,
+ MOVE_BLOCK),
+
+ egg_moves(DROWZEE,
+ MOVE_BARRIER,
+ MOVE_ASSIST,
+ MOVE_ROLE_PLAY,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(KRABBY,
+ MOVE_DIG,
+ MOVE_HAZE,
+ MOVE_AMNESIA,
+ MOVE_FLAIL,
+ MOVE_SLAM,
+ MOVE_KNOCK_OFF,
+ MOVE_SWORDS_DANCE),
+
+ egg_moves(EXEGGCUTE,
+ MOVE_SYNTHESIS,
+ MOVE_MOONLIGHT,
+ MOVE_REFLECT,
+ MOVE_ANCIENT_POWER,
+ MOVE_PSYCH_UP,
+ MOVE_INGRAIN,
+ MOVE_CURSE),
+
+ egg_moves(CUBONE,
+ MOVE_ROCK_SLIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_BELLY_DRUM,
+ MOVE_SCREECH,
+ MOVE_SKULL_BASH,
+ MOVE_PERISH_SONG,
+ MOVE_SWORDS_DANCE),
+
+ egg_moves(LICKITUNG,
+ MOVE_BELLY_DRUM,
+ MOVE_MAGNITUDE,
+ MOVE_BODY_SLAM,
+ MOVE_CURSE,
+ MOVE_SMELLING_SALT,
+ MOVE_SLEEP_TALK,
+ MOVE_SNORE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(KOFFING,
+ MOVE_SCREECH,
+ MOVE_PSYWAVE,
+ MOVE_PSYBEAM,
+ MOVE_DESTINY_BOND,
+ MOVE_PAIN_SPLIT,
+ MOVE_WILL_O_WISP),
+
+ egg_moves(RHYHORN,
+ MOVE_CRUNCH,
+ MOVE_REVERSAL,
+ MOVE_ROCK_SLIDE,
+ MOVE_COUNTER,
+ MOVE_MAGNITUDE,
+ MOVE_SWORDS_DANCE,
+ MOVE_CURSE,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(CHANSEY,
+ MOVE_PRESENT,
+ MOVE_METRONOME,
+ MOVE_HEAL_BELL,
+ MOVE_AROMATHERAPY,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(TANGELA,
+ MOVE_FLAIL,
+ MOVE_CONFUSION,
+ MOVE_MEGA_DRAIN,
+ MOVE_REFLECT,
+ MOVE_AMNESIA,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER),
+
+ egg_moves(KANGASKHAN,
+ MOVE_STOMP,
+ MOVE_FORESIGHT,
+ MOVE_FOCUS_ENERGY,
+ MOVE_SAFEGUARD,
+ MOVE_DISABLE,
+ MOVE_COUNTER,
+ MOVE_CRUSH_CLAW,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(HORSEA,
+ MOVE_FLAIL,
+ MOVE_AURORA_BEAM,
+ MOVE_OCTAZOOKA,
+ MOVE_DISABLE,
+ MOVE_SPLASH,
+ MOVE_DRAGON_RAGE,
+ MOVE_DRAGON_BREATH),
+
+ egg_moves(GOLDEEN,
+ MOVE_PSYBEAM,
+ MOVE_HAZE,
+ MOVE_HYDRO_PUMP,
+ MOVE_SLEEP_TALK,
+ MOVE_MUD_SPORT),
+
+ egg_moves(MR_MIME,
+ MOVE_FUTURE_SIGHT,
+ MOVE_HYPNOSIS,
+ MOVE_MIMIC,
+ MOVE_PSYCH_UP,
+ MOVE_FAKE_OUT,
+ MOVE_TRICK),
+
+ egg_moves(SCYTHER,
+ MOVE_COUNTER,
+ MOVE_SAFEGUARD,
+ MOVE_BATON_PASS,
+ MOVE_RAZOR_WIND,
+ MOVE_REVERSAL,
+ MOVE_LIGHT_SCREEN,
+ MOVE_ENDURE,
+ MOVE_SILVER_WIND),
+
+ egg_moves(PINSIR,
+ MOVE_FURY_ATTACK,
+ MOVE_FLAIL,
+ MOVE_FALSE_SWIPE,
+ MOVE_FAINT_ATTACK),
+
+ egg_moves(LAPRAS,
+ MOVE_FORESIGHT,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE,
+ MOVE_REFRESH,
+ MOVE_DRAGON_DANCE,
+ MOVE_CURSE,
+ MOVE_SLEEP_TALK,
+ MOVE_HORN_DRILL),
+
+ egg_moves(EEVEE,
+ MOVE_CHARM,
+ MOVE_FLAIL,
+ MOVE_ENDURE,
+ MOVE_CURSE,
+ MOVE_TICKLE,
+ MOVE_WISH),
+
+ egg_moves(OMANYTE,
+ MOVE_BUBBLE_BEAM,
+ MOVE_AURORA_BEAM,
+ MOVE_SLAM,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_ROCK_SLIDE,
+ MOVE_SPIKES),
+
+ egg_moves(KABUTO,
+ MOVE_BUBBLE_BEAM,
+ MOVE_AURORA_BEAM,
+ MOVE_RAPID_SPIN,
+ MOVE_DIG,
+ MOVE_FLAIL,
+ MOVE_KNOCK_OFF,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(AERODACTYL,
+ MOVE_WHIRLWIND,
+ MOVE_PURSUIT,
+ MOVE_FORESIGHT,
+ MOVE_STEEL_WING,
+ MOVE_DRAGON_BREATH,
+ MOVE_CURSE),
+
+ egg_moves(SNORLAX,
+ MOVE_LICK,
+ MOVE_CHARM,
+ MOVE_DOUBLE_EDGE,
+ MOVE_CURSE,
+ MOVE_FISSURE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(DRATINI,
+ MOVE_LIGHT_SCREEN,
+ MOVE_MIST,
+ MOVE_HAZE,
+ MOVE_SUPERSONIC,
+ MOVE_DRAGON_BREATH,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(CHIKORITA,
+ MOVE_VINE_WHIP,
+ MOVE_LEECH_SEED,
+ MOVE_COUNTER,
+ MOVE_ANCIENT_POWER,
+ MOVE_FLAIL,
+ MOVE_NATURE_POWER,
+ MOVE_INGRAIN,
+ MOVE_GRASS_WHISTLE),
+
+ egg_moves(CYNDAQUIL,
+ MOVE_FURY_SWIPES,
+ MOVE_QUICK_ATTACK,
+ MOVE_REVERSAL,
+ MOVE_THRASH,
+ MOVE_FORESIGHT,
+ MOVE_COVET,
+ MOVE_HOWL,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(TOTODILE,
+ MOVE_CRUNCH,
+ MOVE_THRASH,
+ MOVE_HYDRO_PUMP,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_MUD_SPORT,
+ MOVE_WATER_SPORT,
+ MOVE_DRAGON_CLAW),
+
+ egg_moves(SENTRET,
+ MOVE_DOUBLE_EDGE,
+ MOVE_PURSUIT,
+ MOVE_SLASH,
+ MOVE_FOCUS_ENERGY,
+ MOVE_REVERSAL,
+ MOVE_SUBSTITUTE,
+ MOVE_TRICK,
+ MOVE_ASSIST),
+
+ egg_moves(HOOTHOOT,
+ MOVE_MIRROR_MOVE,
+ MOVE_SUPERSONIC,
+ MOVE_FAINT_ATTACK,
+ MOVE_WING_ATTACK,
+ MOVE_WHIRLWIND,
+ MOVE_SKY_ATTACK,
+ MOVE_FEATHER_DANCE),
+
+ egg_moves(LEDYBA,
+ MOVE_PSYBEAM,
+ MOVE_BIDE,
+ MOVE_SILVER_WIND),
+
+ egg_moves(SPINARAK,
+ MOVE_PSYBEAM,
+ MOVE_DISABLE,
+ MOVE_SONIC_BOOM,
+ MOVE_BATON_PASS,
+ MOVE_PURSUIT,
+ MOVE_SIGNAL_BEAM),
+
+ egg_moves(CHINCHOU,
+ MOVE_FLAIL,
+ MOVE_SCREECH,
+ MOVE_AMNESIA),
+
+ egg_moves(PICHU,
+ MOVE_REVERSAL,
+ MOVE_BIDE,
+ MOVE_PRESENT,
+ MOVE_ENCORE,
+ MOVE_DOUBLE_SLAP,
+ MOVE_WISH,
+ MOVE_CHARGE),
+
+ egg_moves(CLEFFA,
+ MOVE_PRESENT,
+ MOVE_METRONOME,
+ MOVE_AMNESIA,
+ MOVE_BELLY_DRUM,
+ MOVE_SPLASH,
+ MOVE_MIMIC,
+ MOVE_WISH,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(IGGLYBUFF,
+ MOVE_PERISH_SONG,
+ MOVE_PRESENT,
+ MOVE_FAINT_ATTACK,
+ MOVE_WISH,
+ MOVE_FAKE_TEARS),
+
+ egg_moves(TOGEPI,
+ MOVE_PRESENT,
+ MOVE_MIRROR_MOVE,
+ MOVE_PECK,
+ MOVE_FORESIGHT,
+ MOVE_FUTURE_SIGHT,
+ MOVE_SUBSTITUTE,
+ MOVE_PSYCH_UP),
+
+ egg_moves(NATU,
+ MOVE_HAZE,
+ MOVE_DRILL_PECK,
+ MOVE_QUICK_ATTACK,
+ MOVE_FAINT_ATTACK,
+ MOVE_STEEL_WING,
+ MOVE_PSYCH_UP,
+ MOVE_FEATHER_DANCE,
+ MOVE_REFRESH),
+
+ egg_moves(MAREEP,
+ MOVE_TAKE_DOWN,
+ MOVE_BODY_SLAM,
+ MOVE_SAFEGUARD,
+ MOVE_SCREECH,
+ MOVE_REFLECT,
+ MOVE_ODOR_SLEUTH,
+ MOVE_CHARGE),
+
+ egg_moves(MARILL,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PRESENT,
+ MOVE_AMNESIA,
+ MOVE_FUTURE_SIGHT,
+ MOVE_BELLY_DRUM,
+ MOVE_PERISH_SONG,
+ MOVE_SUPERSONIC,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(SUDOWOODO,
+ MOVE_SELF_DESTRUCT),
+
+ egg_moves(HOPPIP,
+ MOVE_CONFUSION,
+ MOVE_ENCORE,
+ MOVE_DOUBLE_EDGE,
+ MOVE_REFLECT,
+ MOVE_AMNESIA,
+ MOVE_HELPING_HAND,
+ MOVE_PSYCH_UP),
+
+ egg_moves(AIPOM,
+ MOVE_COUNTER,
+ MOVE_SCREECH,
+ MOVE_PURSUIT,
+ MOVE_AGILITY,
+ MOVE_SPITE,
+ MOVE_SLAM,
+ MOVE_DOUBLE_SLAP,
+ MOVE_BEAT_UP),
+
+ egg_moves(SUNKERN,
+ MOVE_GRASS_WHISTLE,
+ MOVE_ENCORE,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER,
+ MOVE_CURSE,
+ MOVE_HELPING_HAND),
+
+ egg_moves(YANMA,
+ MOVE_WHIRLWIND,
+ MOVE_REVERSAL,
+ MOVE_LEECH_LIFE,
+ MOVE_SIGNAL_BEAM,
+ MOVE_SILVER_WIND),
+
+ egg_moves(WOOPER,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER,
+ MOVE_SAFEGUARD,
+ MOVE_CURSE,
+ MOVE_MUD_SPORT,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP),
+
+ egg_moves(MURKROW,
+ MOVE_WHIRLWIND,
+ MOVE_DRILL_PECK,
+ MOVE_MIRROR_MOVE,
+ MOVE_WING_ATTACK,
+ MOVE_SKY_ATTACK,
+ MOVE_CONFUSE_RAY,
+ MOVE_FEATHER_DANCE,
+ MOVE_PERISH_SONG),
+
+ egg_moves(MISDREAVUS,
+ MOVE_SCREECH,
+ MOVE_DESTINY_BOND,
+ MOVE_PSYCH_UP,
+ MOVE_IMPRISON),
+
+ egg_moves(GIRAFARIG,
+ MOVE_TAKE_DOWN,
+ MOVE_AMNESIA,
+ MOVE_FORESIGHT,
+ MOVE_FUTURE_SIGHT,
+ MOVE_BEAT_UP,
+ MOVE_PSYCH_UP,
+ MOVE_WISH,
+ MOVE_MAGIC_COAT),
+
+ egg_moves(PINECO,
+ MOVE_REFLECT,
+ MOVE_PIN_MISSILE,
+ MOVE_FLAIL,
+ MOVE_SWIFT,
+ MOVE_COUNTER,
+ MOVE_SAND_TOMB),
+
+ egg_moves(DUNSPARCE,
+ MOVE_BIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_ROCK_SLIDE,
+ MOVE_BITE,
+ MOVE_HEADBUTT,
+ MOVE_ASTONISH,
+ MOVE_CURSE),
+
+ egg_moves(GLIGAR,
+ MOVE_METAL_CLAW,
+ MOVE_WING_ATTACK,
+ MOVE_RAZOR_WIND,
+ MOVE_COUNTER,
+ MOVE_SAND_TOMB),
+
+ egg_moves(SNUBBULL,
+ MOVE_METRONOME,
+ MOVE_FAINT_ATTACK,
+ MOVE_REFLECT,
+ MOVE_PRESENT,
+ MOVE_CRUNCH,
+ MOVE_HEAL_BELL,
+ MOVE_SNORE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(QWILFISH,
+ MOVE_FLAIL,
+ MOVE_HAZE,
+ MOVE_BUBBLE_BEAM,
+ MOVE_SUPERSONIC,
+ MOVE_ASTONISH),
+
+ egg_moves(SHUCKLE,
+ MOVE_SWEET_SCENT),
+
+ egg_moves(HERACROSS,
+ MOVE_HARDEN,
+ MOVE_BIDE,
+ MOVE_FLAIL,
+ MOVE_FALSE_SWIPE),
+
+ egg_moves(SNEASEL,
+ MOVE_COUNTER,
+ MOVE_SPITE,
+ MOVE_FORESIGHT,
+ MOVE_REFLECT,
+ MOVE_BITE,
+ MOVE_CRUSH_CLAW,
+ MOVE_FAKE_OUT),
+
+ egg_moves(TEDDIURSA,
+ MOVE_CRUNCH,
+ MOVE_TAKE_DOWN,
+ MOVE_SEISMIC_TOSS,
+ MOVE_COUNTER,
+ MOVE_METAL_CLAW,
+ MOVE_FAKE_TEARS,
+ MOVE_YAWN,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(SLUGMA,
+ MOVE_ACID_ARMOR,
+ MOVE_HEAT_WAVE),
+
+ egg_moves(SWINUB,
+ MOVE_TAKE_DOWN,
+ MOVE_BITE,
+ MOVE_BODY_SLAM,
+ MOVE_ROCK_SLIDE,
+ MOVE_ANCIENT_POWER,
+ MOVE_MUD_SHOT,
+ MOVE_ICICLE_SPEAR,
+ MOVE_DOUBLE_EDGE),
+
+ egg_moves(CORSOLA,
+ MOVE_ROCK_SLIDE,
+ MOVE_SCREECH,
+ MOVE_MIST,
+ MOVE_AMNESIA,
+ MOVE_BARRIER,
+ MOVE_INGRAIN,
+ MOVE_CONFUSE_RAY,
+ MOVE_ICICLE_SPEAR),
+
+ egg_moves(REMORAID,
+ MOVE_AURORA_BEAM,
+ MOVE_OCTAZOOKA,
+ MOVE_SUPERSONIC,
+ MOVE_HAZE,
+ MOVE_SCREECH,
+ MOVE_THUNDER_WAVE,
+ MOVE_ROCK_BLAST),
+
+ egg_moves(DELIBIRD,
+ MOVE_AURORA_BEAM,
+ MOVE_QUICK_ATTACK,
+ MOVE_FUTURE_SIGHT,
+ MOVE_SPLASH,
+ MOVE_RAPID_SPIN,
+ MOVE_ICE_BALL),
+
+ egg_moves(MANTINE,
+ MOVE_TWISTER,
+ MOVE_HYDRO_PUMP,
+ MOVE_HAZE,
+ MOVE_SLAM,
+ MOVE_MUD_SPORT,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(SKARMORY,
+ MOVE_DRILL_PECK,
+ MOVE_PURSUIT,
+ MOVE_WHIRLWIND,
+ MOVE_SKY_ATTACK,
+ MOVE_CURSE),
+
+ egg_moves(HOUNDOUR,
+ MOVE_FIRE_SPIN,
+ MOVE_RAGE,
+ MOVE_PURSUIT,
+ MOVE_COUNTER,
+ MOVE_SPITE,
+ MOVE_REVERSAL,
+ MOVE_BEAT_UP,
+ MOVE_WILL_O_WISP),
+
+ egg_moves(PHANPY,
+ MOVE_FOCUS_ENERGY,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER,
+ MOVE_SNORE,
+ MOVE_COUNTER,
+ MOVE_FISSURE),
+
+ egg_moves(STANTLER,
+ MOVE_SPITE,
+ MOVE_DISABLE,
+ MOVE_BITE,
+ MOVE_SWAGGER,
+ MOVE_PSYCH_UP,
+ MOVE_EXTRASENSORY),
+
+ egg_moves(TYROGUE,
+ MOVE_RAPID_SPIN,
+ MOVE_HI_JUMP_KICK,
+ MOVE_MACH_PUNCH,
+ MOVE_MIND_READER,
+ MOVE_HELPING_HAND),
+
+ egg_moves(SMOOCHUM,
+ MOVE_MEDITATE,
+ MOVE_PSYCH_UP,
+ MOVE_FAKE_OUT,
+ MOVE_WISH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(ELEKID,
+ MOVE_KARATE_CHOP,
+ MOVE_BARRIER,
+ MOVE_ROLLING_KICK,
+ MOVE_MEDITATE,
+ MOVE_CROSS_CHOP,
+ MOVE_FIRE_PUNCH,
+ MOVE_ICE_PUNCH),
+
+ egg_moves(MAGBY,
+ MOVE_KARATE_CHOP,
+ MOVE_MEGA_PUNCH,
+ MOVE_BARRIER,
+ MOVE_SCREECH,
+ MOVE_CROSS_CHOP,
+ MOVE_THUNDER_PUNCH),
+
+ egg_moves(MILTANK,
+ MOVE_PRESENT,
+ MOVE_REVERSAL,
+ MOVE_SEISMIC_TOSS,
+ MOVE_ENDURE,
+ MOVE_PSYCH_UP,
+ MOVE_CURSE,
+ MOVE_HELPING_HAND,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(LARVITAR,
+ MOVE_PURSUIT,
+ MOVE_STOMP,
+ MOVE_OUTRAGE,
+ MOVE_FOCUS_ENERGY,
+ MOVE_ANCIENT_POWER,
+ MOVE_DRAGON_DANCE,
+ MOVE_CURSE),
+
+ egg_moves(TREECKO,
+ MOVE_CRUNCH,
+ MOVE_MUD_SPORT,
+ MOVE_ENDEAVOR,
+ MOVE_LEECH_SEED,
+ MOVE_DRAGON_BREATH,
+ MOVE_CRUSH_CLAW),
+
+ egg_moves(TORCHIC,
+ MOVE_COUNTER,
+ MOVE_REVERSAL,
+ MOVE_ENDURE,
+ MOVE_SWAGGER,
+ MOVE_ROCK_SLIDE,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(MUDKIP,
+ MOVE_REFRESH,
+ MOVE_UPROAR,
+ MOVE_CURSE,
+ MOVE_STOMP,
+ MOVE_ICE_BALL,
+ MOVE_MIRROR_COAT),
+
+ egg_moves(POOCHYENA,
+ MOVE_ASTONISH,
+ MOVE_POISON_FANG,
+ MOVE_COVET,
+ MOVE_LEER,
+ MOVE_YAWN),
+
+ egg_moves(ZIGZAGOON,
+ MOVE_CHARM,
+ MOVE_PURSUIT,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE,
+ MOVE_TRICK),
+
+ egg_moves(LOTAD,
+ MOVE_SYNTHESIS,
+ MOVE_RAZOR_LEAF,
+ MOVE_SWEET_SCENT,
+ MOVE_LEECH_SEED,
+ MOVE_FLAIL,
+ MOVE_WATER_GUN),
+
+ egg_moves(SEEDOT,
+ MOVE_LEECH_SEED,
+ MOVE_AMNESIA,
+ MOVE_QUICK_ATTACK,
+ MOVE_RAZOR_WIND,
+ MOVE_TAKE_DOWN,
+ MOVE_FALSE_SWIPE),
+
+ egg_moves(NINCADA,
+ MOVE_ENDURE,
+ MOVE_FAINT_ATTACK,
+ MOVE_GUST,
+ MOVE_SILVER_WIND),
+
+ egg_moves(TAILLOW,
+ MOVE_PURSUIT,
+ MOVE_SUPERSONIC,
+ MOVE_REFRESH,
+ MOVE_MIRROR_MOVE,
+ MOVE_RAGE,
+ MOVE_SKY_ATTACK),
+
+ egg_moves(SHROOMISH,
+ MOVE_FAKE_TEARS,
+ MOVE_SWAGGER,
+ MOVE_CHARM,
+ MOVE_FALSE_SWIPE,
+ MOVE_HELPING_HAND),
+
+ egg_moves(SPINDA,
+ MOVE_ENCORE,
+ MOVE_ROCK_SLIDE,
+ MOVE_ASSIST,
+ MOVE_DISABLE,
+ MOVE_BATON_PASS,
+ MOVE_WISH,
+ MOVE_TRICK,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(WINGULL,
+ MOVE_MIST,
+ MOVE_TWISTER,
+ MOVE_AGILITY,
+ MOVE_GUST,
+ MOVE_WATER_SPORT),
+
+ egg_moves(SURSKIT,
+ MOVE_FORESIGHT,
+ MOVE_MUD_SHOT,
+ MOVE_PSYBEAM,
+ MOVE_HYDRO_PUMP,
+ MOVE_MIND_READER),
+
+ egg_moves(WAILMER,
+ MOVE_DOUBLE_EDGE,
+ MOVE_THRASH,
+ MOVE_SWAGGER,
+ MOVE_SNORE,
+ MOVE_SLEEP_TALK,
+ MOVE_CURSE,
+ MOVE_FISSURE,
+ MOVE_TICKLE),
+
+ egg_moves(SKITTY,
+ MOVE_HELPING_HAND,
+ MOVE_PSYCH_UP,
+ MOVE_UPROAR,
+ MOVE_FAKE_TEARS,
+ MOVE_WISH,
+ MOVE_BATON_PASS,
+ MOVE_SUBSTITUTE,
+ MOVE_TICKLE),
+
+ egg_moves(KECLEON,
+ MOVE_DISABLE,
+ MOVE_MAGIC_COAT,
+ MOVE_TRICK),
+
+ egg_moves(NOSEPASS,
+ MOVE_MAGNITUDE,
+ MOVE_ROLLOUT,
+ MOVE_EXPLOSION),
+
+ egg_moves(TORKOAL,
+ MOVE_ERUPTION,
+ MOVE_ENDURE,
+ MOVE_SLEEP_TALK,
+ MOVE_YAWN),
+
+ egg_moves(SABLEYE,
+ MOVE_PSYCH_UP,
+ MOVE_RECOVER,
+ MOVE_MOONLIGHT),
+
+ egg_moves(BARBOACH,
+ MOVE_THRASH,
+ MOVE_WHIRLPOOL,
+ MOVE_SPARK),
+
+ egg_moves(LUVDISC,
+ MOVE_SPLASH,
+ MOVE_SUPERSONIC,
+ MOVE_WATER_SPORT,
+ MOVE_MUD_SPORT),
+
+ egg_moves(CORPHISH,
+ MOVE_MUD_SPORT,
+ MOVE_ENDEAVOR,
+ MOVE_BODY_SLAM,
+ MOVE_ANCIENT_POWER),
+
+ egg_moves(FEEBAS,
+ MOVE_MIRROR_COAT,
+ MOVE_DRAGON_BREATH,
+ MOVE_MUD_SPORT,
+ MOVE_HYPNOSIS,
+ MOVE_LIGHT_SCREEN,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(CARVANHA,
+ MOVE_HYDRO_PUMP,
+ MOVE_DOUBLE_EDGE,
+ MOVE_THRASH),
+
+ egg_moves(TRAPINCH,
+ MOVE_FOCUS_ENERGY,
+ MOVE_QUICK_ATTACK,
+ MOVE_GUST),
+
+ egg_moves(MAKUHITA,
+ MOVE_FAINT_ATTACK,
+ MOVE_DETECT,
+ MOVE_FORESIGHT,
+ MOVE_HELPING_HAND,
+ MOVE_CROSS_CHOP,
+ MOVE_REVENGE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER),
+
+ egg_moves(ELECTRIKE,
+ MOVE_CRUNCH,
+ MOVE_HEADBUTT,
+ MOVE_UPROAR,
+ MOVE_CURSE,
+ MOVE_SWIFT),
+
+ egg_moves(NUMEL,
+ MOVE_HOWL,
+ MOVE_SCARY_FACE,
+ MOVE_BODY_SLAM,
+ MOVE_ROLLOUT,
+ MOVE_DEFENSE_CURL,
+ MOVE_STOMP),
+
+ egg_moves(SPHEAL,
+ MOVE_WATER_SPORT,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_YAWN,
+ MOVE_ROCK_SLIDE,
+ MOVE_CURSE,
+ MOVE_FISSURE),
+
+ egg_moves(CACNEA,
+ MOVE_GRASS_WHISTLE,
+ MOVE_ACID,
+ MOVE_TEETER_DANCE,
+ MOVE_DYNAMIC_PUNCH,
+ MOVE_COUNTER),
+
+ egg_moves(SNORUNT,
+ MOVE_BLOCK,
+ MOVE_SPIKES),
+
+ egg_moves(AZURILL,
+ MOVE_ENCORE,
+ MOVE_SING,
+ MOVE_REFRESH,
+ MOVE_SLAM,
+ MOVE_TICKLE),
+
+ egg_moves(SPOINK,
+ MOVE_FUTURE_SIGHT,
+ MOVE_EXTRASENSORY,
+ MOVE_SUBSTITUTE,
+ MOVE_TRICK),
+
+ egg_moves(PLUSLE,
+ MOVE_SUBSTITUTE,
+ MOVE_WISH),
+
+ egg_moves(MINUN,
+ MOVE_SUBSTITUTE,
+ MOVE_WISH),
+
+ egg_moves(MAWILE,
+ MOVE_SWORDS_DANCE,
+ MOVE_FALSE_SWIPE,
+ MOVE_POISON_FANG,
+ MOVE_PSYCH_UP,
+ MOVE_ANCIENT_POWER,
+ MOVE_TICKLE),
+
+ egg_moves(MEDITITE,
+ MOVE_FIRE_PUNCH,
+ MOVE_THUNDER_PUNCH,
+ MOVE_ICE_PUNCH,
+ MOVE_FORESIGHT,
+ MOVE_FAKE_OUT,
+ MOVE_BATON_PASS,
+ MOVE_DYNAMIC_PUNCH),
+
+ egg_moves(SWABLU,
+ MOVE_AGILITY,
+ MOVE_HAZE,
+ MOVE_PURSUIT,
+ MOVE_RAGE),
+
+ egg_moves(DUSKULL,
+ MOVE_IMPRISON,
+ MOVE_DESTINY_BOND,
+ MOVE_PAIN_SPLIT,
+ MOVE_GRUDGE,
+ MOVE_MEMENTO,
+ MOVE_FAINT_ATTACK),
+
+ egg_moves(ROSELIA,
+ MOVE_SPIKES,
+ MOVE_SYNTHESIS,
+ MOVE_PIN_MISSILE,
+ MOVE_COTTON_SPORE),
+
+ egg_moves(SLAKOTH,
+ MOVE_PURSUIT,
+ MOVE_SLASH,
+ MOVE_BODY_SLAM,
+ MOVE_SNORE,
+ MOVE_CRUSH_CLAW,
+ MOVE_CURSE,
+ MOVE_SLEEP_TALK),
+
+ egg_moves(GULPIN,
+ MOVE_DREAM_EATER,
+ MOVE_ACID_ARMOR,
+ MOVE_SMOG,
+ MOVE_PAIN_SPLIT),
+
+ egg_moves(TROPIUS,
+ MOVE_HEADBUTT,
+ MOVE_SLAM,
+ MOVE_RAZOR_WIND,
+ MOVE_LEECH_SEED,
+ MOVE_NATURE_POWER),
+
+ egg_moves(WHISMUR,
+ MOVE_TAKE_DOWN,
+ MOVE_SNORE,
+ MOVE_SWAGGER,
+ MOVE_EXTRASENSORY,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(CLAMPERL,
+ MOVE_REFRESH,
+ MOVE_MUD_SPORT,
+ MOVE_BODY_SLAM,
+ MOVE_SUPERSONIC,
+ MOVE_BARRIER,
+ MOVE_CONFUSE_RAY),
+
+ egg_moves(ABSOL,
+ MOVE_BATON_PASS,
+ MOVE_FAINT_ATTACK,
+ MOVE_DOUBLE_EDGE,
+ MOVE_MAGIC_COAT,
+ MOVE_CURSE,
+ MOVE_SUBSTITUTE),
+
+ egg_moves(SHUPPET,
+ MOVE_DISABLE,
+ MOVE_DESTINY_BOND,
+ MOVE_FORESIGHT,
+ MOVE_ASTONISH,
+ MOVE_IMPRISON),
+
+ egg_moves(SEVIPER,
+ MOVE_STOCKPILE,
+ MOVE_SWALLOW,
+ MOVE_SPIT_UP,
+ MOVE_BODY_SLAM),
+
+ egg_moves(ZANGOOSE,
+ MOVE_FLAIL,
+ MOVE_DOUBLE_KICK,
+ MOVE_RAZOR_WIND,
+ MOVE_COUNTER,
+ MOVE_ROAR,
+ MOVE_CURSE),
+
+ egg_moves(RELICANTH,
+ MOVE_MAGNITUDE,
+ MOVE_SKULL_BASH,
+ MOVE_WATER_SPORT,
+ MOVE_AMNESIA,
+ MOVE_SLEEP_TALK,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(ARON,
+ MOVE_ENDEAVOR,
+ MOVE_BODY_SLAM,
+ MOVE_STOMP,
+ MOVE_SMELLING_SALT),
+
+ egg_moves(CASTFORM,
+ MOVE_FUTURE_SIGHT,
+ MOVE_PSYCH_UP),
+
+ egg_moves(VOLBEAT,
+ MOVE_BATON_PASS,
+ MOVE_SILVER_WIND,
+ MOVE_TRICK),
+
+ egg_moves(ILLUMISE,
+ MOVE_BATON_PASS,
+ MOVE_SILVER_WIND,
+ MOVE_GROWTH),
+
+ egg_moves(LILEEP,
+ MOVE_BARRIER,
+ MOVE_RECOVER,
+ MOVE_MIRROR_COAT,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(ANORITH,
+ MOVE_RAPID_SPIN,
+ MOVE_KNOCK_OFF,
+ MOVE_SWORDS_DANCE,
+ MOVE_ROCK_SLIDE),
+
+ egg_moves(RALTS,
+ MOVE_DISABLE,
+ MOVE_WILL_O_WISP,
+ MOVE_MEAN_LOOK,
+ MOVE_MEMENTO,
+ MOVE_DESTINY_BOND),
+
+ egg_moves(BAGON,
+ MOVE_HYDRO_PUMP,
+ MOVE_THRASH,
+ MOVE_DRAGON_RAGE,
+ MOVE_TWISTER,
+ MOVE_DRAGON_DANCE),
+
+ egg_moves(CHIMECHO,
+ MOVE_DISABLE,
+ MOVE_CURSE,
+ MOVE_HYPNOSIS,
+ MOVE_DREAM_EATER),
+
+ 0xFFFF
+};
diff --git a/include/data/pokemon/evolution.h b/include/data/pokemon/evolution.h
index 51e993347..919416fee 100644
--- a/include/data/pokemon/evolution.h
+++ b/include/data/pokemon/evolution.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_EVOLUTION_H
diff --git a/include/data/pokemon/experience_tables.h b/include/data/pokemon/experience_tables.h
index 70c5e88ed..2fb416fe9 100644
--- a/include/data/pokemon/experience_tables.h
+++ b/include/data/pokemon/experience_tables.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_EXPERIENCE_TABLES_H
diff --git a/include/data/pokemon/item_effects.h b/include/data/pokemon/item_effects.h
index b07573933..cd06228dd 100644
--- a/include/data/pokemon/item_effects.h
+++ b/include/data/pokemon/item_effects.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_ITEM_EFFECTS_H
diff --git a/include/data/pokemon/level_up_learnset_pointers.h b/include/data/pokemon/level_up_learnset_pointers.h
index 753947d51..19761c996 100644
--- a/include/data/pokemon/level_up_learnset_pointers.h
+++ b/include/data/pokemon/level_up_learnset_pointers.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_LEVEL_UP_LEARNSET_POINTERS_H
diff --git a/include/data/pokemon/level_up_learnsets.h b/include/data/pokemon/level_up_learnsets.h
index 5b79f4bc0..bc1de82de 100644
--- a/include/data/pokemon/level_up_learnsets.h
+++ b/include/data/pokemon/level_up_learnsets.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_LEVEL_UP_LEARNSETS_H
diff --git a/include/data/pokemon/nature_stats.h b/include/data/pokemon/nature_stats.h
index 27bd98f9d..fcef2a0ac 100644
--- a/include/data/pokemon/nature_stats.h
+++ b/include/data/pokemon/nature_stats.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_NATURE_STATS_H
diff --git a/include/data/pokemon/spinda_spots.h b/include/data/pokemon/spinda_spots.h
index 234cdf00e..d045e0734 100644
--- a/include/data/pokemon/spinda_spots.h
+++ b/include/data/pokemon/spinda_spots.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_SPINDA_SPOTS_H
diff --git a/include/data/pokemon/tmhm_learnsets.h b/include/data/pokemon/tmhm_learnsets.h
index fa48f7f5c..02cd22d56 100644
--- a/include/data/pokemon/tmhm_learnsets.h
+++ b/include/data/pokemon/tmhm_learnsets.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_TMHM_LEARNSETS_H
diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h
index 0aea322a0..c86e795c4 100644
--- a/include/data/pokemon/trainer_class_lookups.h
+++ b/include/data/pokemon/trainer_class_lookups.h
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/27/17.
+
//
#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H
diff --git a/include/daycare.h b/include/daycare.h
index b90c50610..e3aec68d3 100644
--- a/include/daycare.h
+++ b/include/daycare.h
@@ -1,9 +1,9 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
-u8 Daycare_CountPokemon(struct BoxPokemon *);
-void sub_8041324(struct BoxPokemon *, struct RecordMixing_UnknownStruct *);
-void sub_8041790(int i);
+u8 Daycare_CountPokemon(struct DayCareData *);
+void sub_8041324(struct BoxPokemon *, struct RecordMixingDayCareMail *);
+void sub_8041790(u16 i);
u16 sub_8041870(u16);
void sub_8041940(void);
void sub_8041950(void);
diff --git a/include/decompress.h b/include/decompress.h
index 84c1f29c0..01f66971c 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -3,7 +3,7 @@
#include "sprite.h"
-void sub_800D238(const void *src, void *dest);
+void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
void LoadCompressedObjectPic(const struct CompressedSpriteSheet *a);
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *a, void *buffer);
diff --git a/include/field_camera.h b/include/field_camera.h
index 4ce207541..17126d190 100644
--- a/include/field_camera.h
+++ b/include/field_camera.h
@@ -11,7 +11,7 @@ struct CameraSomething
s32 unk14;
};
-extern struct Camera gUnknown_0202E844;
+extern struct Camera gCamera;
void move_tilemap_camera_to_upper_left_corner(void);
void sub_8057A58(void);
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index 11e96254d..7bba24fa6 100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
@@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
+
void sub_812869C(struct MapObject *);
bool8 sub_81286C4(struct MapObject *);
void oamc_shadow(struct Sprite *);
@@ -26,9 +28,9 @@ void sub_8126BC4(u8 unk_1B, u8 r6, s16 x, s16 y);
void sub_8127ED0(u8, u8);
void sub_8127F28(u8, u8, s16);
u8 sub_8128124(u8 id);
-void ash(s16, s16, u16, u8);
+void ash(s16, s16, u16, s16);
void SetUpReflection(struct MapObject *mapObj, struct Sprite *sprite, u8 a);
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject);
-u8 sub_8126FF0(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
+u8 sub_8126FF0(u8, u8, u8, s16, s16);
#endif // GUARD_FIELD_EFFECT_HELPERS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index d2a1a9b1f..641a28ed3 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -3,6 +3,8 @@
#include "sprite.h"
+extern const u8 gUnknown_0830FD14[];
+
#define fieldmap_object_cb(setup, callback, table) \
static u8 callback(struct MapObject *, struct Sprite *);\
void setup(struct Sprite *sprite)\
@@ -54,17 +56,15 @@ u8 sub_805CCAC(s16 a0, s16 a1, s16 a2, s16 a3);
u8 sub_805CCE8(s16 a0, s16 a1, s16 a2, s16 a3);
u8 sub_805CD24(s16 a0, s16 a1, s16 a2, s16 a3);
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
-u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8 (*const)(u8));
+u8 sub_805F3EC(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F3F0(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F438(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F4F0(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F5A8(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F660(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 cph_IM_DIFFERENT(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 sub_805F760(struct MapObject *, struct Sprite *, u8, bool8(u8));
+u8 oac_hopping(struct MapObject *, struct Sprite *, u8, bool8(u8));
extern struct CameraSomething gUnknown_03004880;
extern u16 gUnknown_03004898;
@@ -318,7 +318,7 @@ u8 get_go_fast_image_anim_num(u8);
u8 get_go_faster_image_anim_num(u8);
u8 sub_805FD78(u8);
-int state_to_direction(u8, u8, u8);
+u32 state_to_direction(u8, u32, u32);
void sub_805AA98();
void sub_805AAB0(void);
@@ -379,14 +379,14 @@ u8 sub_805FDF8(u8);
u8 sub_805FE08(u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 npc_running_behaviour_by_direction(u8);
-u8 npc_block_way(struct MapObject *, s16, s16, u8);
+u8 npc_block_way(struct MapObject *, s16, s16, u32);
u8 sub_8060024(struct MapObject *, s16, s16, u8);
u8 sub_8060234(u8, u8, u8);
void sub_8060288(u8, u8, u8);
void sub_8060388(s16, s16, s16 *, s16 *);
void sub_80603CC(s16 x, s16 y, s16 *pInt, s16 *pInt1);
void GetFieldObjectMovingCameraOffset(s16 *, s16 *);
-void FieldObjectMoveDestCoords(struct MapObject *pObject, u8 unk_19, s16 *pInt, s16 *pInt1);
+void FieldObjectMoveDestCoords(struct MapObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8);
@@ -396,21 +396,23 @@ void FieldObjectClearAnim(struct MapObject *);
bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 FieldObjectGetSpecialAnim(struct MapObject *);
-u8 GetFaceDirectionAnimId(u8);
-u8 GetSimpleGoAnimId(u8);
-u8 GetGoSpeed0AnimId(u8 a);
-u8 sub_8060744(u8 a);
-u8 d2s_08064034(u8 a);
-u8 sub_806079C(u8 a);
-u8 sub_80607F4(u8 a);
-u8 GetJumpLedgeAnimId(u8 a);
-u8 sub_806084C(u8);
-u8 sub_8060878(u8);
-u8 sub_80608D0(u8);
-u8 GetStepInPlaceDelay32AnimId(u8 a);
-u8 GetStepInPlaceDelay16AnimId(u8);
-u8 GetStepInPlaceDelay8AnimId(u8 a);
-u8 GetStepInPlaceDelay4AnimId(u8 a);
+u8 GetFaceDirectionAnimId(u32);
+u8 GetSimpleGoAnimId(u32);
+u8 GetGoSpeed0AnimId(u32);
+u8 sub_8060744(u32);
+u8 d2s_08064034(u32);
+u8 sub_806079C(u32);
+u8 sub_80607C8(u32);
+u8 sub_80607F4(u32);
+u8 GetJumpLedgeAnimId(u32);
+u8 sub_806084C(u32);
+u8 sub_8060878(u32);
+u8 sub_80608A4(u32);
+u8 sub_80608D0(u32);
+u8 GetStepInPlaceDelay32AnimId(u32);
+u8 GetStepInPlaceDelay16AnimId(u32);
+u8 GetStepInPlaceDelay8AnimId(u32);
+u8 GetStepInPlaceDelay4AnimId(u32);
u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 sub_80609D8(u8);
u8 sub_8060A04(u8);
@@ -427,5 +429,9 @@ void sub_80634D0(struct MapObject *, struct Sprite *);
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
void CameraObjectSetFollowedObjectId(u8);
u8 sub_805ADDC(u8);
+void sub_8060320(u32, s16 *, s16 *, s16, s16);
+u8 obj_unfreeze(struct Sprite *, s16, s16, u8);
+u16 npc_paltag_by_palslot(u8);
+void sub_8060470(s16 *, s16 *, s16, s16);
#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/global.h b/include/global.h
index 79269937f..5ca331bf1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -37,6 +37,7 @@ fndec\
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
+#define POKEMON_SLOTS_NUMBER 412
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
@@ -560,18 +561,34 @@ struct GabbyAndTyData
/*2b1b*/ u8 valB_5:3;
};
-struct RecordMixing_UnknownStructSub
+struct DayCareMail
{
- u32 unk0;
- u8 data[0x34];
- //u8 data[0x38];
+ /*0x00*/ struct MailStruct message;
+ /*0x24*/ u8 names[19];
};
-struct RecordMixing_UnknownStruct
+struct DayCareStepCountersEtc {
+ u32 steps[2];
+ u16 personalityLo;
+ u8 unk_11a;
+};
+
+struct RecordMixingDayCareMail
{
- struct RecordMixing_UnknownStructSub data[2];
+ struct DayCareMail mail[2];
u32 unk70;
- u16 unk74[0x2];
+ u16 unk74[2];
+};
+
+struct DayCareMisc
+{
+ struct DayCareMail mail[2];
+ struct DayCareStepCountersEtc countersEtc;
+};
+
+struct DayCareData {
+ struct BoxPokemon mons[2];
+ struct DayCareMisc misc;
};
struct LinkBattleRecord
@@ -597,6 +614,11 @@ struct RecordMixingGift
struct RecordMixingGiftData data;
};
+// there should be enough flags for all 412 slots
+// each slot takes up 8 flags
+// if the value is not divisible by 8, we need to account for the reminder as well
+#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
+
struct SaveBlock1 /* 0x02025734 */
{
/*0x00*/ struct Coords16 pos;
@@ -623,7 +645,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x640*/ struct ItemSlot bagPocket_TMHM[64];
/*0x740*/ struct ItemSlot bagPocket_Berries[46];
/*0x7F8*/ struct Pokeblock pokeblocks[40];
- /*0x938*/ u8 unk938[52]; // pokedex related
+ /*0x938*/ u8 dexSeen2[DEX_FLAGS_NO];
/*0x96C*/ u16 berryBlenderRecords[3];
/*0x972*/ u8 filler_972[0x6];
/*0x978*/ u16 trainerRematchStepCounter;
@@ -670,11 +692,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2DFC*/ u8 filler_2DFC[0x8];
/*0x2E04*/ SB_Struct sbStruct;
- /*0x2F9C*/ struct BoxPokemon daycareData[2];
- /*0x303C*/ struct RecordMixing_UnknownStruct filler_303C;
- /*0x30AC*/ u8 filler_30B4[0x2];
- /*0x30B6*/ u8 filler_30B6;
- /*0x30B7*/ u8 filler_30B7[1];
+ /*0x2F9C*/ struct DayCareData daycareData;
/*0x30B8*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x3108*/ u8 filler_3108[8];
/*0x3110*/ u8 giftRibbons[7];
@@ -683,7 +701,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x3160*/ struct EnigmaBerry enigmaBerry;
/*0x3690*/ struct RamScript ramScript;
/*0x3A7C*/ struct RecordMixingGift recordMixingGift;
- /*0x3A8C*/ u8 unk3A8C[52]; //pokedex related
+ /*0x3A8C*/ u8 dexSeen3[DEX_FLAGS_NO];
};
extern struct SaveBlock1 gSaveBlock1;
@@ -705,8 +723,8 @@ struct Pokedex
/*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3;
- /*0x10*/ u8 owned[52];
- /*0x44*/ u8 seen[52];
+ /*0x10*/ u8 owned[DEX_FLAGS_NO];
+ /*0x44*/ u8 seen[DEX_FLAGS_NO];
};
struct SaveBlock2_Sub
diff --git a/include/mail_data.h b/include/mail_data.h
index df4b385a1..2659c0d37 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -11,6 +11,6 @@ u8 GiveMailToMon2(struct Pokemon *, struct MailStruct *);
void TakeMailFromMon(struct Pokemon *);
u8 TakeMailFromMon2(struct Pokemon *);
bool8 ItemIsMail(u16);
-bool8 ItemIsMail(u16);
+bool8 MonHasMail(struct Pokemon *);
#endif // GUARD_MAIL_DATA_H
diff --git a/include/pokedex.h b/include/pokedex.h
index 1bc63a4ff..c47494e1f 100644
--- a/include/pokedex.h
+++ b/include/pokedex.h
@@ -9,7 +9,17 @@ void CB2_InitPokedex(void);
u8 sub_809070C(u16 dexNum, u32 b, u32 c);
const u8 *GetPokemonCategory(u16);
u16 GetPokedexHeightWeight(u16 dexNum, u8 data);
-s8 GetNationalPokedexFlag(u16, u8);
+
+enum
+{
+ FLAG_GET_SEEN,
+ FLAG_GET_CAUGHT,
+ FLAG_SET_SEEN,
+ FLAG_SET_CAUGHT
+};
+
+s8 GetSetPokedexFlag(u16, u8);
+
u16 GetNationalPokedexCount(u8);
u16 GetHoennPokedexCount(u8);
bool8 sub_8090FC0(void);
diff --git a/include/pokemon.h b/include/pokemon.h
index 9c6f16442..67f56eb53 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -93,6 +93,8 @@
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
+#define MAX_LEVEL 100
+
#define MON_MALE 0x00
#define MON_FEMALE 0xFE
#define MON_GENDERLESS 0xFF
@@ -391,7 +393,7 @@ struct BaseStats
/*0x17*/ u8 ability2;
/*0x18*/ u8 safariZoneFleeRate;
/*0x19*/ u8 bodyColor:7;
- u8 unk19_7:1;
+ u8 noFlip:1;
};
struct BattleMove
@@ -510,7 +512,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CalculateMonStats(struct Pokemon *mon);
-void sub_803B4B4(struct Pokemon *src, struct Pokemon *dest);
+void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
@@ -589,9 +591,9 @@ u8 sub_8040574(struct Pokemon *party);
void ClearBattleMonForms(void);
void sub_80408BC();
void current_map_music_set__default_for_battle(u16);
-const u8 *pokemon_get_pal(struct Pokemon *mon);
-const u8 *species_and_otid_get_pal(u16, u32, u32);
-const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
+const u8 *GetMonSpritePal(struct Pokemon *mon);
+const u8 *GetMonSpritePalFromOtIdPersonality(u16, u32, u32);
+const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void sub_8040B8C(void);
void SetWildMonHeldItem(void);
@@ -599,5 +601,7 @@ u8 *sub_8040D08();
bool32 sub_8040D3C(u16 species, u8 *name, u8 language);
s8 sub_8040A54(struct Pokemon *, u8);
u16 GetMonEVCount(struct Pokemon *);
+u8 GetLevelUpMovesBySpecies(u16, u16 *);
+u8 TryIncrementMonLevel(struct Pokemon *);
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index bd4e7915b..9fe3436ef 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -2,5 +2,7 @@
#define GUARD_POKEMON_STORAGE_SYSTEM_H
void ResetPokemonStorageSystem(void);
+void BoxMonRestorePP(struct BoxPokemon *);
+void party_compaction(void);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 11e94e1f5..7e2cf4cee 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -4,10 +4,18 @@
#include "sprite.h"
#include "task.h"
+enum
+{
+ ANIM_BANK_ATK,
+ ANIM_BANK_DEF,
+ ANIM_BANK_ATK_PARTNER,
+ ANIM_BANK_DEF_PARTNER
+};
+
u8 sub_8077ABC(u8, u8);
u8 sub_8077E44(u8 slot, u16 species, u8 a3);
-u8 obj_id_for_side_relative_to_move(u8 side);
-void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite *));
+u8 GetAnimBankSpriteId(u8 side);
+void StoreSpriteCallbackInData6(struct Sprite *sprite, void(*callback)(struct Sprite *));
void sub_8078314(struct Sprite *sprite);
void sub_8078364(struct Sprite *sprite);
void sub_8078458(struct Sprite *sprite);
@@ -22,8 +30,8 @@ u8 GetBankIdentity(u8 slot);
u8 GetBankByPlayerAI(u8);
u8 GetBankByPlayerAI(u8);
u8 GetBankByPlayerAI(u8 state);
-u8 sub_8078874(u8);
-bool8 sub_8078874(u8);
+u8 AnimBankSpriteExists(u8);
+bool8 AnimBankSpriteExists(u8);
bool8 IsDoubleBattle();
u8 IsDoubleBattle(void);
bool8 IsDoubleBattle(void);
diff --git a/include/sprite.h b/include/sprite.h
index 5682a7c1d..0d84c8127 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -299,4 +299,6 @@ u8 SpriteTileAllocBitmapOp(u16 bit, u8 op);
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+extern const struct SpriteTemplate gDummySpriteTemplate;
+
#endif // GUARD_SPRITE_H
diff --git a/include/trade.h b/include/trade.h
index a4f05e8ed..f950aca53 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -1,3 +1,4 @@
+
#ifndef GUARD_TRADE_H
#define GUARD_TRADE_H
@@ -13,6 +14,10 @@ struct SomeTradeStruct
extern struct SomeTradeStruct* gUnknown_03004828;
+extern const u8 gOtherText_MaleSymbol3[1];
+extern const u8 gOtherText_FemaleSymbol3[1];
+extern const u8 gOtherText_GenderlessSymbol[1];
+
void sub_804E22C(void);
#endif // GUARD_TRADE_H
diff --git a/ld_script.txt b/ld_script.txt
index 7648f98c7..25d5f0307 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -25,7 +25,7 @@ SECTIONS {
<BSS>
/* .bss.code starts at 0x3000F60 */
- src/m4a_2.o(.bss.code);
+ src/libs/m4a_2.o(.bss.code);
/* COMMON starts at 0x3001760 */
<COMMON>
@@ -39,232 +39,229 @@ SECTIONS {
ALIGN(4)
{
asm/crt0.o(.text);
- src/main.o(.text);
- src/sprite.o(.text);
- src/text.o(.text);
- src/string_util.o(.text);
- src/link.o(.text);
- src/rtc.o(.text);
- src/main_menu.o(.text);
+ src/engine/main.o(.text);
+ src/engine/sprite.o(.text);
+ src/engine/text.o(.text);
+ src/engine/string_util.o(.text);
+ src/engine/link.o(.text);
+ src/engine/rtc.o(.text);
+ src/engine/main_menu.o(.text);
src/rom3.o(.text);
- src/decompress.o(.text);
+ src/engine/decompress.o(.text);
asm/battle_1.o(.text);
src/rom_800D42C.o(.text);
asm/battle_1.o(.text_800DC24);
- src/battle_2.o(.text);
+ src/battle/battle_2.o(.text);
asm/battle_2.o(.text);
- src/battle_3.o(.text);
- src/battle_4.o(.text);
- src/battle_controller_player.o(.text);
- src/battle_7.o(.text);
- src/battle_controller_opponent.o(.text);
+ src/battle/battle_3.o(.text);
+ src/battle/battle_4.o(.text);
+ src/battle/battle_controller_player.o(.text);
+ src/battle/battle_7.o(.text);
+ src/battle/battle_controller_opponent.o(.text);
asm/battle_9.o(.text);
- src/battle_controller_linkopponent.o(.text);
- src/pokemon_1.o(.text);
- src/calculate_base_damage.o(.text);
- src/pokemon_2.o(.text);
+ src/battle/battle_controller_linkopponent.o(.text);
+ src/pokemon/pokemon_1.o(.text);
+ src/battle/calculate_base_damage.o(.text);
+ src/pokemon/pokemon_2.o(.text);
asm/pokemon_item_effect.o(.text);
- src/pokemon_3.o(.text);
+ src/pokemon/pokemon_3.o(.text);
src/de_rom_8040FE0.o(.text);
- src/trig.o(.text);
- src/rng.o(.text);
- src/util.o(.text);
- src/blend_palette.o(.text);
- src/daycare.o(.text);
- asm/daycare.o(.text);
- src/egg_hatch.o(.text);
- src/battle_interface.o(.text);
- src/smokescreen.o(.text);
- src/pokeball.o(.text);
- src/load_save.o(.text);
+ src/engine/trig.o(.text);
+ src/engine/rng.o(.text);
+ src/engine/util.o(.text);
+ src/engine/blend_palette.o(.text);
+ src/field/daycare.o(.text);
+ src/scene/egg_hatch.o(.text);
+ src/battle/battle_interface.o(.text);
+ src/battle/smokescreen.o(.text);
+ src/battle/pokeball.o(.text);
+ src/engine/load_save.o(.text);
asm/trade.o(.text);
- src/trade.o(.text);
+ src/engine/trade.o(.text);
asm/trade.o(.text.sub_804A9F4);
- src/trade.o(.text.sub_804DAD4);
+ src/engine/trade.o(.text.sub_804DAD4);
asm/trade.o(.text.sub_804DB2C);
- src/berry_blender.o(.text);
- src/play_time.o(.text);
- src/new_game.o(.text);
- src/overworld.o(.text);
- src/fieldmap.o(.text);
- src/metatile_behavior.o(.text);
- src/field_camera.o(.text);
- src/field_door.o(.text);
- src/field_player_avatar.o(.text);
- src/field_map_obj.o(.text);
- asm/field_map_obj.o(.text);
- src/field_map_obj.o(.text_fmocb2_c);
- src/field_ground_effect.o(.text);
- src/field_map_obj_helpers.o(.text);
- src/field_message_box.o(.text);
- src/map_obj_lock.o(.text);
- src/text_window.o(.text);
- src/script.o(.text);
- src/scrcmd.o(.text);
- src/field_control_avatar.o(.text);
- src/event_data.o(.text);
- src/coord_event_weather.o(.text);
- src/field_tasks.o(.text);
- src/clock.o(.text);
- src/reset_rtc_screen.o(.text);
+ src/scene/berry_blender.o(.text);
+ src/engine/play_time.o(.text);
+ src/scene/new_game.o(.text);
+ src/field/overworld.o(.text);
+ src/field/fieldmap.o(.text);
+ src/field/metatile_behavior.o(.text);
+ src/field/field_camera.o(.text);
+ src/field/field_door.o(.text);
+ src/field/field_player_avatar.o(.text);
+ src/field/field_map_obj.o(.text);
+ src/field/field_ground_effect.o(.text);
+ src/field/field_map_obj_helpers.o(.text);
+ src/field/field_message_box.o(.text);
+ src/field/map_obj_lock.o(.text);
+ src/engine/text_window.o(.text);
+ src/engine/script.o(.text);
+ src/field/scrcmd.o(.text);
+ src/field/field_control_avatar.o(.text);
+ src/field/event_data.o(.text);
+ src/field/coord_event_weather.o(.text);
+ src/field/field_tasks.o(.text);
+ src/engine/clock.o(.text);
+ src/engine/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
- src/party_menu.o(.text);
+ src/field/party_menu.o(.text);
asm/party_menu.o(.text_8070968);
- src/start_menu.o(.text);
- src/menu.o(.text);
- src/tileset_anim.o(.text);
- src/palette.o(.text);
- src/sound.o(.text);
- src/battle_anim.o(.text);
+ src/field/start_menu.o(.text);
+ src/engine/menu.o(.text);
+ src/engine/tileset_anim.o(.text);
+ src/engine/palette.o(.text);
+ src/engine/sound.o(.text);
+ src/battle/battle_anim.o(.text);
src/rom_8077ABC.o(.text);
- src/task.o(.text);
- src/reshow_battle_screen.o(.text);
- src/battle_anim_807B69C.o(.text);
- src/title_screen.o(.text);
- src/field_weather.o(.text);
+ src/engine/task.o(.text);
+ src/battle/reshow_battle_screen.o(.text);
+ src/battle/battle_anim_807B69C.o(.text);
+ src/scene/title_screen.o(.text);
+ src/field/field_weather.o(.text);
asm/field_weather.o(.text);
- src/field_fadetransition.o(.text);
- src/field_screen_effect.o(.text);
- src/battle_setup.o(.text);
- src/cable_club.o(.text);
- src/mori_debug_menu.o(.text);
- src/trainer_see.o(.text);
- src/wild_encounter.o(.text);
- src/field_effect.o(.text);
+ src/field/field_fadetransition.o(.text);
+ src/field/field_screen_effect.o(.text);
+ src/battle/battle_setup.o(.text);
+ src/engine/cable_club.o(.text);
+ src/debug/mori_debug_menu.o(.text);
+ src/field/trainer_see.o(.text);
+ src/field/wild_encounter.o(.text);
+ src/field/field_effect.o(.text);
src/unknown_task.o(.text);
- src/pokemon_menu.o(.text);
- src/option_menu.o(.text);
- src/pokedex.o(.text);
- src/trainer_card.o(.text);
- src/save_menu_util.o(.text);
- src/battle_party_menu.o(.text);
+ src/pokemon/pokemon_menu.o(.text);
+ src/engine/option_menu.o(.text);
+ src/pokemon/pokedex.o(.text);
+ src/engine/trainer_card.o(.text);
+ src/engine/save_menu_util.o(.text);
+ src/battle/battle_party_menu.o(.text);
asm/pokemon_storage_system.o(.text);
- src/pokemon_storage_system.o(.text);
+ src/pokemon/pokemon_storage_system.o(.text);
asm/pokemon_storage_system.o(.text_8098A38);
- src/pokemon_icon.o(.text);
+ src/pokemon/pokemon_icon.o(.text);
asm/pokemon_summary_screen.o(.text);
- src/pokemon_summary_screen.o(.text);
+ src/pokemon/pokemon_summary_screen.o(.text);
asm/pokemon_summary_screen.o(.text_80A0958);
- src/script_movement.o(.text);
- src/fldeff_cut.o(.text);
- src/mail_data.o(.text);
- src/map_name_popup.o(.text);
- src/item_menu.o(.text);
- src/battle_anim_80A7E7C.o(.text);
- src/item.o(.text);
- src/matsuda_debug_menu.o(.text);
+ src/field/script_movement.o(.text);
+ src/field/fldeff_cut.o(.text);
+ src/pokemon/mail_data.o(.text);
+ src/field/map_name_popup.o(.text);
+ src/field/item_menu.o(.text);
+ src/battle/battle_anim_80A7E7C.o(.text);
+ src/field/item.o(.text);
+ src/debug/matsuda_debug_menu.o(.text);
asm/contest.o(.text);
- src/shop.o(.text);
- src/berry.o(.text);
- src/script_menu.o(.text);
- src/naming_screen.o(.text);
- src/money.o(.text);
+ src/field/shop.o(.text);
+ src/field/berry.o(.text);
+ src/field/script_menu.o(.text);
+ src/engine/naming_screen.o(.text);
+ src/field/money.o(.text);
asm/contest_effect.o(.text);
- src/record_mixing.o(.text);
- src/sound_check_menu.o(.text);
- src/secret_base.o(.text);
+ src/engine/record_mixing.o(.text);
+ src/debug/sound_check_menu.o(.text);
+ src/field/secret_base.o(.text);
asm/secret_base.o(.text_80BC1D0);
- src/tv.o(.text);
+ src/field/tv.o(.text);
asm/contest_link_80C2020.o(.text);
src/script_pokemon_util_80C4BF0.o(.text);
- src/field_poison.o(.text);
- src/pokemon_size_record.o(.text);
+ src/field/field_poison.o(.text);
+ src/pokemon/pokemon_size_record.o(.text);
asm/fldeff_80C5CD4.o(.text);
- src/field_special_scene.o(.text);
- src/rotating_gate.o(.text);
- src/safari_zone.o(.text);
+ src/field/field_special_scene.o(.text);
+ src/field/rotating_gate.o(.text);
+ src/field/safari_zone.o(.text);
asm/contest_link_80C857C.o(.text);
- src/contest_link_80C857C.o(.text);
- src/item_use.o(.text);
+ src/battle/contest_link_80C857C.o(.text);
+ src/field/item_use.o(.text);
asm/battle_anim_80CA710.o(.text);
- src/bike.o(.text);
+ src/field/bike.o(.text);
asm/easy_chat.o(.text);
- src/easy_chat.o(.text);
+ src/field/easy_chat.o(.text);
asm/pokenav.o(.text);
- src/pokenav.o(.text);
+ src/field/pokenav.o(.text);
asm/pokenav.o(.text_80F708C);
- src/mon_markings.o(.text);
- src/mauville_man.o(.text);
- src/mail.o(.text);
- src/menu_helpers.o(.text);
+ src/pokemon/mon_markings.o(.text);
+ src/field/mauville_man.o(.text);
+ src/pokemon/mail.o(.text);
+ src/field/menu_helpers.o(.text);
src/script_pokemon_util_80F99CC.o(.text);
- src/dewford_trend.o(.text);
- src/heal_location.o(.text);
- src/region_map.o(.text);
- src/cute_sketch.o(.text);
+ src/field/dewford_trend.o(.text);
+ src/field/heal_location.o(.text);
+ src/field/region_map.o(.text);
+ src/scene/cute_sketch.o(.text);
asm/cute_sketch.o(.text);
- src/decoration.o(.text);
+ src/field/decoration.o(.text);
asm/slot_machine.o(.text);
- src/slot_machine.o(.text);
+ src/field/slot_machine.o(.text);
asm/slot_machine.o(.text_8104D30)
- src/slot_machine.o(.text_b);
- src/contest_painting.o(.text);
- src/battle_ai.o(.text);
- src/trader.o(.text);
- src/starter_choose.o(.text);
- src/wallclock.o(.text);
+ src/field/slot_machine.o(.text_b);
+ src/scene/contest_painting.o(.text);
+ src/battle/battle_ai.o(.text);
+ src/field/trader.o(.text);
+ src/field/starter_choose.o(.text);
+ src/field/wallclock.o(.text);
src/rom6.o(.text);
- src/pokeblock.o(.text);
- src/fldeff_flash.o(.text);
- src/post_battle_event_funcs.o(.text);
- src/time_events.o(.text);
- src/birch_pc.o(.text);
- src/hof_pc.o(.text);
- src/field_specials.o(.text);
- src/battle_records.o(.text);
+ src/field/pokeblock.o(.text);
+ src/field/fldeff_flash.o(.text);
+ src/battle/post_battle_event_funcs.o(.text);
+ src/engine/time_events.o(.text);
+ src/field/birch_pc.o(.text);
+ src/field/hof_pc.o(.text);
+ src/field/field_specials.o(.text);
+ src/battle/battle_records.o(.text);
asm/pokedex_area_screen.o(.text);
- src/evolution_scene.o(.text);
+ src/scene/evolution_scene.o(.text);
asm/roulette.o(.text);
asm/pokedex_cry_screen.o(.text);
- src/pokedex_cry_screen.o(.text);
+ src/pokemon/pokedex_cry_screen.o(.text);
asm/pokedex_cry_screen.o(.text_811A4F8);
- src/coins.o(.text);
- src/landmark.o(.text);
- src/fldeff_strength.o(.text);
- src/battle_transition.o(.text);
- src/battle_controller_linkpartner.o(.text);
- src/battle_message.o(.text);
- src/choose_party.o(.text);
+ src/field/coins.o(.text);
+ src/field/landmark.o(.text);
+ src/field/fldeff_strength.o(.text);
+ src/battle/battle_transition.o(.text);
+ src/battle/battle_controller_linkpartner.o(.text);
+ src/battle/battle_message.o(.text);
+ src/field/choose_party.o(.text);
asm/cable_car.o(.text);
asm/roulette_util.o(.text);
asm/cable_car_util.o(.text);
src/unused_8124F94.o(.text);
- src/save.o(.text);
- src/mystery_event_script.o(.text);
- asm/field_effect_helpers.o(.text);
+ src/engine/save.o(.text);
+ src/engine/mystery_event_script.o(.text);
+ src/field/field_effect_helpers.o(.text);
asm/contest_ai.o(.text);
asm/battle_anim_81258BC.o(.text);
- src/battle_controller_safari.o(.text);
- src/fldeff_sweetscent.o(.text);
+ src/battle/battle_controller_safari.o(.text);
+ src/field/fldeff_sweetscent.o(.text);
asm/battle_anim_812C144.o(.text);
- src/learn_move.o(.text);
- src/fldeff_softboiled.o(.text);
- src/decoration_inventory.o(.text);
- src/roamer.o(.text);
+ src/pokemon/learn_move.o(.text);
+ src/field/fldeff_softboiled.o(.text);
+ src/field/decoration_inventory.o(.text);
+ src/field/roamer.o(.text);
asm/battle_tower.o(.text);
- src/use_pokeblock.o(.text);
- src/battle_controller_wally.o(.text);
- src/player_pc.o(.text);
- src/intro.o(.text);
- src/field_region_map.o(.text);
+ src/field/use_pokeblock.o(.text);
+ src/battle/battle_controller_wally.o(.text);
+ src/field/player_pc.o(.text);
+ src/scene/intro.o(.text);
+ src/field/field_region_map.o(.text);
asm/battle_anim_813F0F4.o(.text);
- src/hall_of_fame.o(.text);
- src/credits.o(.text);
- src/lottery_corner.o(.text);
- src/diploma.o(.text);
- src/berry_tag_screen.o(.text);
- src/mystery_event_menu.o(.text);
- src/save_failed_screen.o(.text);
- src/braille_puzzles.o(.text);
- src/pokeblock_feed.o(.text);
- src/clear_save_data_menu.o(.text);
- src/intro_credits_graphics.o(.text);
- src/evolution_graphics.o(.text);
- src/bard_music.o(.text);
- src/fldeff_teleport.o(.text);
- src/unknown_debug_menu.o(.text);
- src/name_string_util.o(.text);
- src/menu_cursor.o(.text);
+ src/scene/hall_of_fame.o(.text);
+ src/scene/credits.o(.text);
+ src/field/lottery_corner.o(.text);
+ src/field/diploma.o(.text);
+ src/field/berry_tag_screen.o(.text);
+ src/engine/mystery_event_menu.o(.text);
+ src/engine/save_failed_screen.o(.text);
+ src/field/braille_puzzles.o(.text);
+ src/pokemon/pokeblock_feed.o(.text);
+ src/engine/clear_save_data_menu.o(.text);
+ src/scene/intro_credits_graphics.o(.text);
+ src/scene/evolution_graphics.o(.text);
+ src/field/bard_music.o(.text);
+ src/field/fldeff_teleport.o(.text);
+ src/debug/unknown_debug_menu.o(.text);
+ src/engine/name_string_util.o(.text);
+ src/engine/menu_cursor.o(.text);
} =0
script_data :
@@ -286,13 +283,13 @@ SECTIONS {
{
asm/libgcnmultiboot.o(.text);
asm/m4a_1.o(.text);
- src/m4a_2.o(.text);
+ src/libs/m4a_2.o(.text);
asm/m4a_3.o(.text);
- src/m4a_4.o(.text);
- src/agb_flash.o(.text);
- src/agb_flash_1m.o(.text);
- src/agb_flash_mx.o(.text);
- src/siirtc.o(.text);
+ src/libs/m4a_4.o(.text);
+ src/libs/agb_flash.o(.text);
+ src/libs/agb_flash_1m.o(.text);
+ src/libs/agb_flash_mx.o(.text);
+ src/libs/siirtc.o(.text);
asm/libagbsyscall.o(.text);
tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
tools/agbcc/lib/libgcc.a:_divsi3.o(.text);
@@ -308,175 +305,175 @@ SECTIONS {
tools/agbcc/lib/libgcc.a:fp-bit.o(.text);
tools/agbcc/lib/libgcc.a:_lshrdi3.o(.text);
tools/agbcc/lib/libgcc.a:_negdi2.o(.text);
- src/libc.o(.text);
+ src/libs/libc.o(.text);
} =0
.rodata :
ALIGN(4)
{
- src/main.o(.rodata);
- src/sprite.o(.rodata);
+ src/engine/main.o(.rodata);
+ src/engine/sprite.o(.rodata);
. += 0x8; /* Why the gap? */
- src/text.o(.rodata);
- src/string_util.o(.rodata);
- src/link.o(.rodata);
- src/rtc.o(.rodata);
+ src/engine/text.o(.rodata);
+ src/engine/string_util.o(.rodata);
+ src/engine/link.o(.rodata);
+ src/engine/rtc.o(.rodata);
data/main_menu.o(.rodata);
data/data2a.o(.rodata);
- src/battle_4.o(.rodata);
- src/battle_controller_player.o(.rodata);
+ src/battle/battle_4.o(.rodata);
+ src/battle/battle_controller_player.o(.rodata);
data/data2b.o(.rodata);
- src/battle_controller_opponent.o(.rodata);
- src/battle_controller_linkopponent.o(.rodata);
+ src/battle/battle_controller_opponent.o(.rodata);
+ src/battle/battle_controller_linkopponent.o(.rodata);
data/battle_moves.o(.rodata);
- src/battle_3.o(.rodata);
- src/pokemon_data.o(.rodata);
+ src/battle/battle_3.o(.rodata);
+ src/pokemon/pokemon_data.o(.rodata);
. = ALIGN(4);
- src/trig.o(.rodata);
- src/util.o(.rodata);
- data/daycare.o(.rodata);
- src/egg_hatch.o(.rodata);
+ src/engine/trig.o(.rodata);
+ src/engine/util.o(.rodata);
+ src/field/daycare.o(.rodata);
+ src/scene/egg_hatch.o(.rodata);
data/battle_interface.o(.rodata);
- src/pokeball.o(.rodata);
+ src/battle/pokeball.o(.rodata);
data/trade.o(.rodata);
- src/berry_blender.o(.rodata);
- src/new_game.o(.rodata);
- src/overworld.o(.rodata);
+ src/scene/berry_blender.o(.rodata);
+ src/scene/new_game.o(.rodata);
+ src/field/overworld.o(.rodata);
data/tilesets.o(.rodata);
data/maps.o(.rodata);
- src/fieldmap.o(.rodata);
- src/metatile_behavior.o(.rodata);
+ src/field/fieldmap.o(.rodata);
+ src/field/metatile_behavior.o(.rodata);
data/field_door.o(.rodata);
- src/field_player_avatar.o(.rodata);
- src/field_map_obj.o(.rodata);
- src/field_ground_effect.o(.rodata);
+ src/field/field_player_avatar.o(.rodata);
+ src/field/field_map_obj.o(.rodata);
+ src/field/field_ground_effect.o(.rodata);
data/field_map_obj_helpers.o(.rodata);
data/text_window.o(.rodata);
- src/script.o(.rodata);
- src/scrcmd.o(.rodata);
- src/coord_event_weather.o(.rodata);
- src/field_tasks.o(.rodata);
+ src/engine/script.o(.rodata);
+ src/field/scrcmd.o(.rodata);
+ src/field/coord_event_weather.o(.rodata);
+ src/field/field_tasks.o(.rodata);
data/reset_rtc_screen.o(.rodata);
data/party_menu.o(.rodata);
- src/start_menu.o(.rodata);
- src/menu.o(.rodata);
+ src/field/start_menu.o(.rodata);
+ src/engine/menu.o(.rodata);
data/tileset_anim.o(.rodata);
- src/palette.o(.rodata);
- src/sound.o(.rodata);
+ src/engine/palette.o(.rodata);
+ src/engine/sound.o(.rodata);
data/battle_anim.o(.rodata);
- src/battle_anim.o(.rodata);
+ src/battle/battle_anim.o(.rodata);
src/rom_8077ABC.o(.rodata);
data/map_events.o(.rodata);
data/data_8393054.o(.rodata);
- src/task.o(.rodata);
- src/battle_anim_807B69C.o(.rodata);
- src/title_screen.o(.rodata);
+ src/engine/task.o(.rodata);
+ src/battle/battle_anim_807B69C.o(.rodata);
+ src/scene/title_screen.o(.rodata);
data/field_weather.o(.rodata);
- src/field_screen_effect.o(.rodata);
- src/battle_setup.o(.rodata);
+ src/field/field_screen_effect.o(.rodata);
+ src/battle/battle_setup.o(.rodata);
data/cable_club.o(.rodata);
data/mori_debug_menu.o(.rodata);
- src/trainer_see.o(.rodata);
+ src/field/trainer_see.o(.rodata);
data/trainer_see.o(.rodata);
- src/wild_encounter.o(.rodata);
+ src/field/wild_encounter.o(.rodata);
data/wild_encounter.o(.rodata);
- src/field_effect.o(.rodata);
- src/pokemon_menu.o(.rodata);
- src/option_menu.o(.rodata);
- src/pokedex.o(.rodata);
- src/trainer_card.o(.rodata);
- src/battle_party_menu.o(.rodata);
+ src/field/field_effect.o(.rodata);
+ src/pokemon/pokemon_menu.o(.rodata);
+ src/engine/option_menu.o(.rodata);
+ src/pokemon/pokedex.o(.rodata);
+ src/engine/trainer_card.o(.rodata);
+ src/battle/battle_party_menu.o(.rodata);
data/pokemon_storage_system.o(.rodata);
- src/pokemon_icon.o(.rodata);
+ src/pokemon/pokemon_icon.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
data/fldeff_cut.o(.rodata);
- src/item_menu.o(.rodata);
+ src/field/item_menu.o(.rodata);
data/battle_anim_80A7E7C.o(.rodata);
- src/item.o(.rodata);
+ src/field/item.o(.rodata);
data/matsuda_debug_menu.o(.rodata);
data/contest.o(.rodata);
- src/shop.o(.rodata);
- src/berry.o(.rodata);
- src/script_menu.o(.rodata);
- src/naming_screen.o(.rodata);
+ src/field/shop.o(.rodata);
+ src/field/berry.o(.rodata);
+ src/field/script_menu.o(.rodata);
+ src/engine/naming_screen.o(.rodata);
data/naming_screen.o(.rodata);
data/money.o(.rodata);
data/contest_effect.o(.rodata);
- src/record_mixing.o(.data);
- src/record_mixing.o(.rodata);
- src/sound_check_menu.o(.rodata);
+ src/engine/record_mixing.o(.data);
+ src/engine/record_mixing.o(.rodata);
+ src/debug/sound_check_menu.o(.rodata);
data/secret_base.o(.rodata);
data/tv.o(.rodata);
data/contest_link_80C2020.o(.rodata);
- src/pokemon_size_record.o(.rodata);
+ src/pokemon/pokemon_size_record.o(.rodata);
data/fldeff_80C5CD4.o(.rodata);
- src/field_special_scene.o(.rodata);
+ src/field/field_special_scene.o(.rodata);
data/field_special_scene.o(.rodata);
- src/rotating_gate.o(.rodata);
- src/item_use.o(.rodata);
+ src/field/rotating_gate.o(.rodata);
+ src/field/item_use.o(.rodata);
data/battle_anim_80CA710.o(.rodata);
- src/bike.o(.rodata);
+ src/field/bike.o(.rodata);
data/easy_chat.o(.rodata);
data/pokenav.o(.rodata);
data/mon_markings.o(.rodata);
- src/mauville_man.o(.rodata);
+ src/field/mauville_man.o(.rodata);
data/mail.o(.rodata);
- src/menu_helpers.o(.rodata);
- src/heal_location.o(.rodata);
- src/region_map.o(.rodata);
+ src/field/menu_helpers.o(.rodata);
+ src/field/heal_location.o(.rodata);
+ src/field/region_map.o(.rodata);
data/cute_sketch.o(.rodata);
- src/decoration.o(.rodata);
+ src/field/decoration.o(.rodata);
data/slot_machine.o(.rodata);
- src/contest_painting.o(.rodata);
- src/battle_ai.o(.rodata);
- src/trader.o(.rodata);
- src/starter_choose.o(.rodata);
- src/wallclock.o(.rodata);
- src/pokeblock.o(.rodata);
+ src/scene/contest_painting.o(.rodata);
+ src/battle/battle_ai.o(.rodata);
+ src/field/trader.o(.rodata);
+ src/field/starter_choose.o(.rodata);
+ src/field/wallclock.o(.rodata);
+ src/field/pokeblock.o(.rodata);
data/fldeff_flash.o(.rodata);
- src/time_events.o(.rodata);
- src/field_specials.o(.rodata);
+ src/engine/time_events.o(.rodata);
+ src/field/field_specials.o(.rodata);
data/pokedex_area_screen.o(.rodata);
- src/evolution_scene.o(.rodata);
+ src/scene/evolution_scene.o(.rodata);
data/roulette.o(.rodata);
data/pokedex_cry_screen.o(.rodata);
data/landmark.o(.rodata);
- src/battle_transition.o(.rodata);
- src/battle_controller_linkpartner.o(.rodata);
+ src/battle/battle_transition.o(.rodata);
+ src/battle/battle_controller_linkpartner.o(.rodata);
data/battle_message.o(.rodata);
- src/choose_party.o(.rodata);
+ src/field/choose_party.o(.rodata);
data/cable_car.o(.rodata);
- src/save.o(.rodata);
- data/field_effect_helpers.o(.rodata);
+ src/engine/save.o(.rodata);
+ src/field/field_effect_helpers.o(.rodata);
data/contest_ai.o(.rodata);
- src/battle_controller_safari.o(.rodata);
+ src/battle/battle_controller_safari.o(.rodata);
data/battle_anim_812C144.o(.rodata);
- src/learn_move.o(.rodata);
- src/decoration_inventory.o(.rodata);
- src/roamer.o(.rodata);
+ src/pokemon/learn_move.o(.rodata);
+ src/field/decoration_inventory.o(.rodata);
+ src/field/roamer.o(.rodata);
data/battle_tower.o(.rodata);
- src/use_pokeblock.o(.rodata);
- src/battle_controller_wally.o(.rodata);
- src/player_pc.o(.rodata);
- src/intro.o(.rodata);
+ src/field/use_pokeblock.o(.rodata);
+ src/battle/battle_controller_wally.o(.rodata);
+ src/field/player_pc.o(.rodata);
+ src/scene/intro.o(.rodata);
data/battle_anim_813F0F4.o(.rodata);
- src/hall_of_fame.o(.rodata);
- src/credits.o(.rodata);
+ src/scene/hall_of_fame.o(.rodata);
+ src/scene/credits.o(.rodata);
data/credits.o(.rodata);
- src/lottery_corner.o(.rodata);
- src/diploma.o(.rodata);
+ src/field/lottery_corner.o(.rodata);
+ src/field/diploma.o(.rodata);
src/strings.o(.rodata);
- src/berry_tag_screen.o(.rodata);
- src/save_failed_screen.o(.rodata);
- src/pokeblock_feed.o(.rodata);
+ src/field/berry_tag_screen.o(.rodata);
+ src/engine/save_failed_screen.o(.rodata);
+ src/pokemon/pokeblock_feed.o(.rodata);
data/intro_credits_graphics.o(.rodata);
- src/evolution_graphics.o(.rodata);
+ src/scene/evolution_graphics.o(.rodata);
data/bard_music.o(.rodata);
data/unknown_debug_menu.o(.rodata);
data/strings2.o(.rodata);
data/menu_cursor.o(.rodata);
data/mystery_event_msg.o(.rodata);
- src/m4a_tables.o(.rodata);
+ src/libs/m4a_tables.o(.rodata);
data/sound_data.o(.rodata);
} =0
@@ -905,11 +902,11 @@ SECTIONS {
lib_rodata :
ALIGN(4)
{
- src/agb_flash.o(.rodata);
- src/agb_flash_1m.o(.rodata);
- src/agb_flash_mx.o(.rodata);
- src/agb_flash_le.o(.rodata);
- src/siirtc.o(.rodata);
+ src/libs/agb_flash.o(.rodata);
+ src/libs/agb_flash_1m.o(.rodata);
+ src/libs/agb_flash_mx.o(.rodata);
+ src/libs/agb_flash_le.o(.rodata);
+ src/libs/siirtc.o(.rodata);
tools/agbcc/lib/libgcc.a:_udivdi3.o(.rodata);
} =0
diff --git a/src/battle_2.c b/src/battle/battle_2.c
index 3cdea07be..770aa1209 100644
--- a/src/battle_2.c
+++ b/src/battle/battle_2.c
@@ -1924,14 +1924,14 @@ void sub_8011384(void)
}
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
else
{
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
EmitLoadPokeSprite(0);
MarkBufferBankForExecution(gActiveBank);
}
@@ -2086,7 +2086,7 @@ void bc_801362C(void)
{
if (GetBankSide(gActiveBank) == 1
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)))
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gBattleMainFunc = sub_8011970;
}
@@ -2168,7 +2168,7 @@ void BattleBeginFirstTurn(void)
{
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (b_first_side(gTurnOrder[i], gTurnOrder[j], 1) != 0)
+ if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0)
sub_8012FBC(i, j);
}
}
diff --git a/src/battle_3.c b/src/battle/battle_3.c
index f04e722c4..b59757f00 100644
--- a/src/battle_3.c
+++ b/src/battle/battle_3.c
@@ -378,7 +378,7 @@ u8 UpdateTurnCounters(void)
s32 j;
for (j = i + 1; j < gNoOfAllBanks; j++)
{
- if (b_first_side(gTurnOrder[i], gTurnOrder[j], 0))
+ if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0))
sub_8012FBC(i, j);
}
}
diff --git a/src/battle_4.c b/src/battle/battle_4.c
index 65ea765cf..e4a4895b5 100644
--- a/src/battle_4.c
+++ b/src/battle/battle_4.c
@@ -93,6 +93,7 @@ extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
extern u16 gUnknown_030041B0;
extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
extern u8 gCurrentMoveTurn;
+extern u16 gTrappingMoves[];
//extern functions
u8 AtkCanceller_UnableToUseMove(void);
@@ -122,7 +123,7 @@ bool8 IsTradedMon(struct Pokemon*);
void b_movescr_stack_pop_cursor(void);
void SwitchInClearStructs(void);
u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8);
-u8 GetNationalPokedexFlag(u16 nationalNum, u8 caseID);
+u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u16 SpeciesToNationalPokedexNum(u16 species);
u8 sub_803FC34(u8 bank);
u16 sub_803FBFC(u8 a);
@@ -199,6 +200,9 @@ extern u8 BattleScript_TrainerBallBlock[];
extern u8 BattleScript_WallyBallThrow[];
extern u8 BattleScript_SuccessBallThrow[];
extern u8 BattleScript_ShakeBallThrow[];
+extern u8 BattleScript_AllStatsUp[];
+extern u8 BattleScript_AtkDefDown[];
+extern u8 BattleScript_SAtkDown2[];
extern u8 gUnknown_081D919F[]; //spikes1
extern u8 gUnknown_081D9171[]; //spikes2
@@ -211,6 +215,11 @@ extern u8 BattleScript_CastformChange[];
extern u8 gUnknown_081D9834[];
extern u8 gUnknown_081D90FC[]; //bs random switchout
extern u8 gUnknown_081D95DB[]; //bs payday money give
+extern u8 gUnknown_081D8C58[];
+extern u8 gUnknown_081D8C65[];
+extern u8 gUnknown_081D9156[];
+extern u8 gUnknown_081D9468[];
+
//useful macros
//read via orr
@@ -408,6 +417,7 @@ static void atk85_stockpile(void);
static void atk86_stockpiletobasedamage(void);
static void atk87_stockpiletohpheal(void);
static void atk88_negativedamage(void);
+static u8 ChangeStatBuffs(s8, u8, u8, u8*);
static void atk89_statbuffchange(void);
static void atk8A_normalisebuffs(void);
static void atk8B_setbide(void);
@@ -862,19 +872,19 @@ static const u32 gStatusFlagsForMoveEffects[] =
0x00000000
};
-extern const u8 BattleScript_1D963E[];
-extern const u8 BattleScript_1D965A[];
-extern const u8 BattleScript_1D9669[];
-extern const u8 BattleScript_1D9678[];
-extern const u8 BattleScript_1D9687[];
-extern const u8 BattleScript_1D969D[];
-extern const u8 BattleScript_1D96BA[];
-extern const u8 BattleScript_1D9696[];
-extern const u8 BattleScript_1D96B1[];
-extern const u8 BattleScript_1D96AA[];
-extern const u8 BattleScript_1D96C8[];
+extern u8 BattleScript_1D963E[];
+extern u8 BattleScript_1D965A[];
+extern u8 BattleScript_1D9669[];
+extern u8 BattleScript_1D9678[];
+extern u8 BattleScript_1D9687[];
+extern u8 BattleScript_1D969D[];
+extern u8 BattleScript_1D96BA[];
+extern u8 BattleScript_1D9696[];
+extern u8 BattleScript_1D96B1[];
+extern u8 BattleScript_1D96AA[];
+extern u8 BattleScript_1D96C8[];
-const u8* const gMoveEffectBS_Ptrs[] =
+u8* const gMoveEffectBS_Ptrs[] =
{
BattleScript_1D963E,
BattleScript_1D963E,
@@ -947,7 +957,7 @@ static const u16 sUnknown_081FACFE[] = //banned moves to copy
0xFFFF
};
-static const u8 sUnknown_081FAD26[] =
+static const u8 sUnknown_081FAD26[] = //reversal+flail HP thresholds to power
{
1, 200,
4, 150,
@@ -1445,73 +1455,71 @@ static void atk06_typecalc(void)
{
int i = 0;
u8 move_type;
- if (gCurrentMove == MOVE_STRUGGLE) {goto END;}
-
- if (BATTLE_STRUCT->dynamicMoveType)
- move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
- else
- move_type = gBattleMoves[gCurrentMove].type;
-
- //check stab
- if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type)
+ if (gCurrentMove != MOVE_STRUGGLE)
{
- gBattleMoveDamage = gBattleMoveDamage * 15;
- gBattleMoveDamage = gBattleMoveDamage / 10;
- }
+ if (BATTLE_STRUCT->dynamicMoveType)
+ move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
+ else
+ move_type = gBattleMoves[gCurrentMove].type;
- if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
- {
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
- gBattleCommunication[6] = move_type;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
- }
- else
- {
- while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
+ //check stab
+ if (gBattleMons[gBankAttacker].type1 == move_type || gBattleMons[gBankAttacker].type2 == move_type)
{
- if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
- {
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
- break;
- i += 3;
- continue;
- }
+ gBattleMoveDamage = gBattleMoveDamage * 15;
+ gBattleMoveDamage = gBattleMoveDamage / 10;
+ }
- else if (gTypeEffectiveness[i] == move_type)
+ if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && move_type == TYPE_GROUND)
+ {
+ gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
+ gMoveHitWith[gBankTarget] = 0;
+ gUnknown_02024C44[gBankTarget] = 0;
+ gBattleCommunication[6] = move_type;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ }
+ else
+ {
+ while (gTypeEffectiveness[i]!= TYPE_ENDTABLE)
{
- //check type1
- if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1)
- ModulateDmgByType(gTypeEffectiveness[i + 2]);
- //check type2
- if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 &&
- gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2)
- ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ if (gTypeEffectiveness[i] == TYPE_FORESIGHT)
+ {
+ if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ break;
+ i += 3;
+ continue;
+ }
+
+ else if (gTypeEffectiveness[i] == move_type)
+ {
+ //check type1
+ if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type1)
+ ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ //check type2
+ if (gTypeEffectiveness[i + 1] == gBattleMons[gBankTarget].type2 &&
+ gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2)
+ ModulateDmgByType(gTypeEffectiveness[i + 2]);
+ }
+ i += 3;
}
- i += 3;
}
- }
- if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2
- && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
- && gBattleMoves[gCurrentMove].power)
- {
- gLastUsedAbility = ABILITY_WONDER_GUARD;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- gMoveHitWith[gBankTarget] = 0;
- gUnknown_02024C44[gBankTarget] = 0;
- gBattleCommunication[6] = 3;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2
+ && (!(gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) || ((gBattleMoveFlags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
+ && gBattleMoves[gCurrentMove].power)
+ {
+ gLastUsedAbility = ABILITY_WONDER_GUARD;
+ gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveHitWith[gBankTarget] = 0;
+ gUnknown_02024C44[gBankTarget] = 0;
+ gBattleCommunication[6] = 3;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ }
+ if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
+ gProtectStructs[gBankAttacker].notEffective = 1;
}
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
- gProtectStructs[gBankAttacker].notEffective = 1;
-
- END:
- gBattlescriptCurrInstr++;
+ gBattlescriptCurrInstr++;
}
-
static void b_wonderguard_and_levitate(void)
{
u8 flags = 0;
@@ -1620,7 +1628,6 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) //a literal c
}
}
-#ifdef NONMATCHING
u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
{
int i = 0;
@@ -1662,7 +1669,7 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
//check type2
if (gTypeEffectiveness[i + 1] == gBattleMons[bank_def].type2 &&
- gBattleMons[bank_def].type1 != gBattleMons[bank_def].type2)
+ gBattleMons[gBankTarget /* what the christ */].type1 != gBattleMons[bank_def].type2)
ModulateDmgByType2(gTypeEffectiveness[i + 2], move, &flags);
}
i += 3;
@@ -1678,254 +1685,6 @@ u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
}
return flags;
}
-#else
-__attribute__((naked))
-u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x14\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r10, r0\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- str r1, [sp, 0x4]\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- mov r9, r2\n\
- movs r7, 0\n\
- mov r0, sp\n\
- strb r7, [r0]\n\
- mov r0, r10\n\
- cmp r0, 0xA5\n\
- bne _0801D2AE\n\
- movs r0, 0\n\
- b _0801D43A\n\
- _0801D2AE:\n\
- ldr r1, _0801D31C @ =gBattleMoves\n\
- mov r3, r10\n\
- lsls r2, r3, 1\n\
- adds r0, r2, r3\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldrb r0, [r0, 0x2]\n\
- str r0, [sp, 0x8]\n\
- ldr r1, _0801D320 @ =gBattleMons\n\
- movs r0, 0x58\n\
- ldr r3, [sp, 0x4]\n\
- muls r0, r3\n\
- adds r3, r0, r1\n\
- adds r0, r3, 0\n\
- adds r0, 0x21\n\
- ldrb r0, [r0]\n\
- str r2, [sp, 0xC]\n\
- adds r5, r1, 0\n\
- ldr r1, [sp, 0x8]\n\
- cmp r0, r1\n\
- beq _0801D2E2\n\
- adds r0, r3, 0\n\
- adds r0, 0x22\n\
- ldrb r0, [r0]\n\
- cmp r0, r1\n\
- bne _0801D2F4\n\
- _0801D2E2:\n\
- ldr r4, _0801D324 @ =gBattleMoveDamage\n\
- ldr r1, [r4]\n\
- lsls r0, r1, 4\n\
- subs r0, r1\n\
- str r0, [r4]\n\
- movs r1, 0xA\n\
- bl __divsi3\n\
- str r0, [r4]\n\
- _0801D2F4:\n\
- movs r0, 0x58\n\
- mov r2, r9\n\
- muls r2, r0\n\
- adds r0, r2, 0\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x1A\n\
- bne _0801D328\n\
- ldr r3, [sp, 0x8]\n\
- cmp r3, 0x4\n\
- bne _0801D328\n\
- movs r1, 0x9\n\
- mov r0, sp\n\
- ldrb r0, [r0]\n\
- orrs r0, r1\n\
- mov r1, sp\n\
- strb r0, [r1]\n\
- b _0801D3DC\n\
- .align 2, 0\n\
- _0801D31C: .4byte gBattleMoves\n\
- _0801D320: .4byte gBattleMons\n\
- _0801D324: .4byte gBattleMoveDamage\n\
- _0801D328:\n\
- ldr r1, _0801D344 @ =gTypeEffectiveness\n\
- adds r0, r7, r1\n\
- ldrb r0, [r0]\n\
- adds r2, r1, 0\n\
- cmp r0, 0xFF\n\
- beq _0801D3DC\n\
- cmp r0, 0xFE\n\
- bne _0801D34C\n\
- movs r0, 0x58\n\
- mov r1, r9\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- b _0801D3CA\n\
- .align 2, 0\n\
- _0801D344: .4byte gTypeEffectiveness\n\
- _0801D348:\n\
- adds r7, 0x3\n\
- b _0801D3B6\n\
- _0801D34C:\n\
- ldr r6, _0801D44C @ =gTypeEffectiveness\n\
- adds r0, r7, r6\n\
- ldrb r0, [r0]\n\
- ldr r2, [sp, 0x8]\n\
- cmp r0, r2\n\
- bne _0801D3B0\n\
- adds r1, r7, 0x1\n\
- adds r1, r6\n\
- ldr r3, _0801D450 @ =gBattleMons\n\
- mov r8, r3\n\
- movs r3, 0x58\n\
- mov r0, r9\n\
- muls r0, r3\n\
- mov r2, r8\n\
- adds r5, r0, r2\n\
- adds r0, r5, 0\n\
- adds r0, 0x21\n\
- ldrb r4, [r1]\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bne _0801D388\n\
- adds r0, r7, 0x2\n\
- adds r0, r6\n\
- ldrb r0, [r0]\n\
- mov r1, r10\n\
- mov r2, sp\n\
- str r3, [sp, 0x10]\n\
- bl ModulateDmgByType2\n\
- ldr r3, [sp, 0x10]\n\
- _0801D388:\n\
- adds r0, r5, 0\n\
- adds r0, 0x22\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- bne _0801D3B0\n\
- ldr r0, _0801D454 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- muls r0, r3\n\
- add r0, r8\n\
- adds r0, 0x21\n\
- ldrb r0, [r0]\n\
- cmp r0, r4\n\
- beq _0801D3B0\n\
- adds r0, r7, 0x2\n\
- adds r0, r6\n\
- ldrb r0, [r0]\n\
- mov r1, r10\n\
- mov r2, sp\n\
- bl ModulateDmgByType2\n\
- _0801D3B0:\n\
- adds r7, 0x3\n\
- ldr r5, _0801D450 @ =gBattleMons\n\
- ldr r2, _0801D44C @ =gTypeEffectiveness\n\
- _0801D3B6:\n\
- adds r0, r7, r2\n\
- ldrb r0, [r0]\n\
- cmp r0, 0xFF\n\
- beq _0801D3DC\n\
- cmp r0, 0xFE\n\
- bne _0801D34C\n\
- movs r0, 0x58\n\
- mov r3, r9\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- _0801D3CA:\n\
- adds r1, r5, 0\n\
- adds r1, 0x50\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 22\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801D348\n\
- _0801D3DC:\n\
- movs r0, 0x58\n\
- mov r1, r9\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- adds r0, r5\n\
- adds r0, 0x20\n\
- ldrb r0, [r0]\n\
- cmp r0, 0x19\n\
- bne _0801D436\n\
- mov r0, sp\n\
- ldrb r1, [r0]\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801D436\n\
- ldr r0, [sp, 0x4]\n\
- mov r1, r10\n\
- bl AttacksThisTurn\n\
- lsls r0, 24\n\
- lsrs r1, r0, 24\n\
- cmp r1, 0x2\n\
- bne _0801D436\n\
- mov r0, sp\n\
- ldrb r3, [r0]\n\
- adds r0, r1, 0\n\
- ands r0, r3\n\
- cmp r0, 0\n\
- beq _0801D41E\n\
- movs r0, 0x6\n\
- ands r0, r3\n\
- cmp r0, 0x6\n\
- bne _0801D436\n\
- _0801D41E:\n\
- ldr r0, _0801D458 @ =gBattleMoves\n\
- ldr r1, [sp, 0xC]\n\
- add r1, r10\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0\n\
- beq _0801D436\n\
- mov r0, sp\n\
- movs r1, 0x1\n\
- orrs r1, r3\n\
- strb r1, [r0]\n\
- _0801D436:\n\
- mov r0, sp\n\
- ldrb r0, [r0]\n\
- _0801D43A:\n\
- add sp, 0x14\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
- _0801D44C: .4byte gTypeEffectiveness\n\
- _0801D450: .4byte gBattleMons\n\
- _0801D454: .4byte gBankTarget\n\
- _0801D458: .4byte gBattleMoves\n\
- .syntax divided\n");
-}
-#endif // NONMATCHING
u8 AI_TypeCalc(u16 move, u16 species, u8 ability)
{
@@ -2510,7 +2269,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
#define EffectAffectsUser 0x40
register u8 certain asm("r5") = certainArg;
register bool32 StatusChanged asm("r10") = 0;
- register int AffectsUser asm("r6") = 0; //0x40 otherwise
+ register int AffectsUser asm("r6") = 0; //0x40 otherwise
bool32 NoSunCanFreeze = 1;
if (gBattleCommunication[MOVE_EFFECT_BYTE] & EffectAffectsUser)
@@ -2526,16 +2285,16 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
BATTLE_STRUCT->scriptingActive = gBankAttacker;
}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9)
{gBattlescriptCurrInstr++; return;}
- if (gSideAffecting[get_bank_identity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
+ if (gSideAffecting[GetBankIdentity(gEffectBank) & 1] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) &&
!primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7)
{gBattlescriptCurrInstr++; return;}
//make sure at least ONE HP except payday and thief
- if (gBattleMons[gEffectBank].current_hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F)
+ if (gBattleMons[gEffectBank].hp == 0 && gBattleCommunication[MOVE_EFFECT_BYTE] != 0xB && gBattleCommunication[MOVE_EFFECT_BYTE] != 0x1F)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gEffectBank].status2 & STATUS2_SUBSTITUTE && AffectsUser != EffectAffectsUser)
@@ -2547,81 +2306,82 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{
case STATUS_SLEEP:
//check active uproar
- if (gBattleMons[gEffectBank].ability_id != ABILITY_SOUNDPROOF)
+ if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF)
{
for (gActiveBank = 0; gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR); gActiveBank++) {}
}
else
gActiveBank = gNoOfAllBanks;
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (gActiveBank != gNoOfAllBanks) {break;} //nice way of checking uproar...
- if (gBattleMons[gEffectBank].ability_id == ABILITY_VITAL_SPIRIT) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_INSOMNIA) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_INSOMNIA) {break;}
- b_cancel_multi_turn_move_maybe(gEffectBank);
+ CancelMultiTurnMoves(gEffectBank);
StatusChanged = 1;
break;
case STATUS_POISON:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
- RecordAbility(gEffectBank, ABILITY_IMMUNITY);
+ RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
if (gBattleMons[gEffectBank].type1 == TYPE_POISON) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_POISON) {break;}
if (gBattleMons[gEffectBank].type1 == TYPE_STEEL) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_STEEL) {break;}
- if (gBattleMons[gEffectBank].status) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;}
+
StatusChanged = 1;
break;
case STATUS_BURN:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_WATER_VEIL;
- RecordAbility(gEffectBank, ABILITY_WATER_VEIL);
+ RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_BRN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_BRNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_BRN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_BRNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
if (gBattleMons[gEffectBank].type1 == TYPE_FIRE) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_FIRE) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_WATER_VEIL) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL) {break;}
if (gBattleMons[gEffectBank].status1 == 0) {break;}
StatusChanged = 1;
break;
@@ -2629,70 +2389,70 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY) {NoSunCanFreeze = 0;}
if (gBattleMons[gEffectBank].type1 == TYPE_ICE) {break;}
if (gBattleMons[gEffectBank].type2 == TYPE_ICE) {break;}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (NoSunCanFreeze == 0) {break;}
- if (gBattleMons[gEffectBank].ability_id == ABILITY_MAGMA_ARMOR) {break;}
+ if (gBattleMons[gEffectBank].ability == ABILITY_MAGMA_ARMOR) {break;}
- b_cancel_multi_turn_move_maybe(gEffectBank);
+ CancelMultiTurnMoves(gEffectBank);
StatusChanged = 1;
break;
case STATUS_PARALYSIS:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_LIMBER)
+ if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER)
{
if ((primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_LIMBER;
- RecordAbility(gEffectBank, ABILITY_LIMBER);
+ RecordAbilityBattle(gEffectBank, ABILITY_LIMBER);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PRLZ_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PRLZPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
else {break;}
}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
StatusChanged = 1;
break;
case STATUS_TOXIC_POISON:
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == 1 || certain == 0x80))
{
gLastUsedAbility = ABILITY_IMMUNITY;
- RecordAbility(gEffectBank, ABILITY_IMMUNITY);
+ RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
//_0801E664:
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
return;
}
else
- {gBattleCommunication.multistring_chooser = 0; return;}
+ {gBattleCommunication[MULTISTRING_CHOOSER] = 0; return;}
}
if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL)
&& !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80))
{
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PSN_PREVENTION;
- gBattleCommunication.multistring_chooser = 2;
+ gBattlescriptCurrInstr = BattleScript_PSNPrevention;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return;
}
- if (gBattleMons[gEffectBank].status) {break;}
+ if (gBattleMons[gEffectBank].status1) {break;}
if (gBattleMons[gEffectBank].type1 != TYPE_POISON &&
gBattleMons[gEffectBank].type2 != TYPE_POISON &&
gBattleMons[gEffectBank].type1 != TYPE_STEEL &&
gBattleMons[gEffectBank].type2 != TYPE_STEEL)
{
- if (gBattleMons[gEffectBank].ability_id == ABILITY_IMMUNITY) {break;}
- gBattleMons[gEffectBank].status1 |= ~(STATUS_POISON); //TODO: fix OR to AND
+ if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY) {break;}
+ gBattleMons[gEffectBank].status1 &= ~(0x9); //This gets (correctly) optimized out...
StatusChanged = 1;
break;
}
@@ -2707,20 +2467,20 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2);
else
gBattleMons[gEffectBank].status1 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
gActiveBank = gEffectBank;
- bb2_setattributes_in_battle(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status);
- mark_buffer_bank_for_execution(gActiveBank);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
+ MarkBufferBankForExecution(gActiveBank);
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
- gBattleCommunication.multistring_chooser = 1;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gHitMarker &= ~(HITMARKER_IGNORE_SAFEGUARD);
}
else
- gBattleCommunication.multistring_chooser = 0;
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gBattleCommunication[MOVE_EFFECT_BYTE] == 2 || gBattleCommunication[MOVE_EFFECT_BYTE] == 6 || gBattleCommunication[MOVE_EFFECT_BYTE] == 5 || gBattleCommunication[MOVE_EFFECT_BYTE] == 3)
{
- BATTLE_STRUCT->SynchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
+ BATTLE_STRUCT->synchroniseEffect = gBattleCommunication[MOVE_EFFECT_BYTE];
gHitMarker |= HITMARKER_SYNCHRONISE_EFFECT;
}
return;
@@ -2738,22 +2498,22 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
switch (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
case 7: //confusion
- if (gBattleMons[gEffectBank].ability_id == ABILITY_OWN_TEMPO)
+ if (gBattleMons[gEffectBank].ability == ABILITY_OWN_TEMPO)
{gBattlescriptCurrInstr++; return;}
if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 8: //flinch
- if (gBattleMons[gEffectBank].ability_id == ABILITY_INNER_FOCUS)
+ if (gBattleMons[gEffectBank].ability == ABILITY_INNER_FOCUS)
{
if (primary == 1 || certain == 0x80)
{
gLastUsedAbility = ABILITY_INNER_FOCUS;
- RecordAbility(gEffectBank, ABILITY_INNER_FOCUS);
- gBattlescriptCurrInstr = BS_FLINCH_PREVENTION;
+ RecordAbilityBattle(gEffectBank, ABILITY_INNER_FOCUS);
+ gBattlescriptCurrInstr = BattleScript_FlinchPrevention;
return;
}
else
@@ -2773,21 +2533,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
gLockedMove[gEffectBank] = gCurrentMove;
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 11: //pay day
- if (!(get_bank_identity(gEffectBank) & 1))
+ if (!(GetBankIdentity(gBankAttacker) & 1))
{
u16 PayDay = gPaydayMoney;
- gPaydayMoney += (gBattleMons[gEffectBank].level * 5);
+ gPaydayMoney += (gBattleMons[gBankAttacker].level * 5);
if (PayDay > gPaydayMoney)
gPaydayMoney = 0xFFFF;
}
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 9: //tri attack
- if (gBattleMons[gEffectBank].status)
+ if (gBattleMons[gEffectBank].status1)
{gBattlescriptCurrInstr++; return;}
gBattleCommunication[MOVE_EFFECT_BYTE] = Random() % 3 + 3;
SetMoveEffect(0, 0);
@@ -2795,73 +2555,73 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
case 12: //charging move
gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS;
gLockedMove[gEffectBank] = gCurrentMove;
- gProtectStructs[gEffectBank].flag1_chargingturn = 1;
+ gProtectStructs[gEffectBank].chargingTurn = 1;
gBattlescriptCurrInstr++;
break;
case 13: //wrap
if (gBattleMons[gEffectBank].status2 & STATUS2_WRAPPED)
{gBattlescriptCurrInstr++; return;}
gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 0xD;
- BATTLE_STRUCT->WrappedMove1[gEffectBank] = gCurrentMove;
- BATTLE_STRUCT->WrappedMove2[gEffectBank] = gCurrentMove >> 8;
- BATTLE_STRUCT->WrappedBy[gEffectBank] = gBankAttacker;
+ BATTLE_STRUCT->wrappedMove[gEffectBank*2] = (u8)gCurrentMove;
+ (1 + BATTLE_STRUCT->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask.
+ BATTLE_STRUCT->wrappedBy[gEffectBank] = gBankAttacker;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
- gBattleCommunication.multistring_chooser = 0;
- while (gBattleCommunication.multistring_chooser <= 4
- && gCurrentMove != gTrappingMoves[gBattleCommunication.multistring_chooser])
- gBattleCommunication.multistring_chooser++;
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattleCommunication[MULTISTRING_CHOOSER] = 0;
+ while (gBattleCommunication[MULTISTRING_CHOOSER] <= 4
+ && gCurrentMove != gTrappingMoves[gBattleCommunication[MULTISTRING_CHOOSER]])
+ gBattleCommunication[MULTISTRING_CHOOSER]++;
break;
- case 14: //recoil
+ case 14: //25% recoil
gBattleMoveDamage = (gHP_dealt) / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 15 ... 21: //stat + 1
- if (ChangeStats(0x10, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xF2, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(0x10, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xF2, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_UP;
+ gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
case 22 ... 28: //stat - 1
- if (ChangeStats(~(0x6f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xEB, certain, 0)) {gBattlescriptCurrInstr++;} //TODO: negation doesnt work correctly
+ if (ChangeStatBuffs(~(0x6f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xEB, certain, 0)) {gBattlescriptCurrInstr++;} //TODO: negation doesnt work correctly
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_DOWN;
+ gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 39 ... 45: //stat + 2
- if (ChangeStats(0x20, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xDA, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(0x20, gBattleCommunication[MOVE_EFFECT_BYTE] + 0xDA, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_UP;
+ gBattlescriptCurrInstr = BattleScript_StatUp;
}
break;
case 46 ... 52: //stat - 2
- if (ChangeStats(~(0x5f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xD3, certain, 0)) {gBattlescriptCurrInstr++;}
+ if (ChangeStatBuffs(~(0x5f), gBattleCommunication[MOVE_EFFECT_BYTE] + 0xD3, certain, 0)) {gBattlescriptCurrInstr++;}
else
{
BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F;
BATTLE_STRUCT->animArg2 = 0;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_STAT_DOWN;
+ gBattlescriptCurrInstr = BattleScript_StatDown;
}
break;
case 29: //recharge
gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE;
- gDisableStructs[gEffectBank].recharge_counter = 2;
+ gDisableStructs[gEffectBank].rechargeCounter = 2;
gLockedMove[gEffectBank] = gCurrentMove;
gBattlescriptCurrInstr++;
break;
@@ -2871,83 +2631,85 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
break;
case 31: //item steal
{
- u8 side = battle_side_get_owner(gBankAttacker);
- if (battle_side_get_owner(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400)
+ u8 side = GetBankSide(gBankAttacker);
+ if (GetBankSide(gBankAttacker) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400)
{gBattlescriptCurrInstr++; return;}
- if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.KnockedOff[side] & gBitTable[gBattlePartyID[gBankAttacker]]))
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_LINK)) && gTrainerBattleOpponent != 0x400 && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]]))
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item && gBattleMons[gBankTarget].ability_id == ABILITY_STICKY_HOLD)
+ if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
{
b_movescr_stack_push_cursor();
- gBattlescriptCurrInstr = BS_NO_ITEMSTEAL;
- gLastUsedAbility = gBattleMons[gBankTarget].ability_id;
- RecordAbility(gBankTarget, gLastUsedAbility);
+ gBattlescriptCurrInstr = BattleScript_NoItemSteal;
+ gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ RecordAbilityBattle(gBankTarget, gLastUsedAbility);
return;
}
- if (gBattleMons[gBankAttacker].held_item)
+ if (gBattleMons[gBankAttacker].item)
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
{gBattlescriptCurrInstr++; return;}
- if (gBattleMons[gBankTarget].held_item == 0)
+ if (gBattleMons[gBankTarget].item == 0)
{gBattlescriptCurrInstr++; return;}
- CHANGED_HELDITEMS[gBankAttacker] = gLastUsedItem = gBattleMons[gBankTarget].held_item;
- gBattleMons[gBankTarget].held_item = 0;
+ gLastUsedItem = gBattleMons[gBankTarget].item;
+ unk_2000000[gBankAttacker * 2 + 0x160cc] = gLastUsedItem;
+ gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
- bb2_setattributes_in_battle(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
- mark_buffer_bank_for_execution(gBankAttacker);
+ EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
+ MarkBufferBankForExecution(gBankAttacker);
gActiveBank = gBankTarget;
- bb2_setattributes_in_battle(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].held_item);
- mark_buffer_bank_for_execution(gBankTarget);
+ EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
+ MarkBufferBankForExecution(gBankTarget);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_ITEMSTEAL;
+ gBattlescriptCurrInstr = BattleScript_ItemSteal;
- STORE_CHOICEMOVE(gBankTarget, 0);
+ ewram[gBankTarget * 2 + 0x160e8] = 0;
+ //STORE_CHOICEMOVE(gBankTarget, 0);
}
break;
case 32: //escape prevention
gBattleMons[gBankTarget].status2 |= STATUS2_RECHARGE;
- gDisableStructs[gBankTarget].BankPreventingEscape = gBankAttacker;
+ gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker;
gBattlescriptCurrInstr++;
break;
case 33: //nightmare
gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE;
gBattlescriptCurrInstr++;
break;
- case 34:
+ case 34: //ancientpower
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D9224;
+ gBattlescriptCurrInstr = BattleScript_AllStatsUp;
return;
case 35: //break free rapidspin
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_RAPIDSPINAWAY;
+ gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
return;
case 36: //paralysis removal
if (gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS)
{
gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS);
gActiveBank = gBankTarget;
- bb2_setattributes_in_battle(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status);
- mark_buffer_bank_for_execution(gActiveBank);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
+ MarkBufferBankForExecution(gActiveBank);
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_PARALYSISHEALED;
+ gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal;
}
else
{gBattlescriptCurrInstr++; return;}
break;
- case 37: //
+ case 37: //superpower
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D93FA;
+ gBattlescriptCurrInstr = BattleScript_AtkDefDown;
return;
- case 38: //recoil plus paralysis
+ case 38: //33% recoil
gBattleMoveDamage = gHP_dealt / 3;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = MoveEffectBS_ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
+ gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
break;
case 53: //thrash
if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE))
@@ -2960,32 +2722,33 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
break;
case 54: //knock off
- if (gBattleMons[gEffectBank].ability_id == ABILITY_STICKY_HOLD)
+ if (gBattleMons[gEffectBank].ability == ABILITY_STICKY_HOLD)
{
- if (gBattleMons[gEffectBank].held_item == 0)
+ if (gBattleMons[gEffectBank].item == 0)
{gBattlescriptCurrInstr++; return;}
gLastUsedAbility = ABILITY_STICKY_HOLD;
- gBattlescriptCurrInstr = BS_STICKYHOLD_ACTIVATES;
- RecordAbility(gEffectBank, ABILITY_STICKY_HOLD);
+ gBattlescriptCurrInstr = BattleScript_NoItemSteal;
+ RecordAbilityBattle(gEffectBank, ABILITY_STICKY_HOLD);
return;
}
- if (gBattleMons[gEffectBank].held_item == 0)
+ if (gBattleMons[gEffectBank].item == 0)
{gBattlescriptCurrInstr++; return;}
else
{
- u8 side = battle_side_get_owner(gEffectBank);
- gLastUsedItem = gBattleMons[gEffectBank].held_item;
- gBattleMons[gEffectBank].held_item = 0;
- gWishFutureKnock.KnockedOff[side] |= gBitTable[gBattlePartyID[gEffectBank]];
+ u8 side = GetBankSide(gEffectBank);
+ gLastUsedItem = gBattleMons[gEffectBank].item;
+ gBattleMons[gEffectBank].item = 0;
+ gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]];
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = BS_KNOCKEDOFF;
+ gBattlescriptCurrInstr = BattleScript_KnockedOff;
- STORE_CHOICEMOVE(gEffectBank, 0);
+ ewram[gEffectBank * 2 + 0x160e8] = 0;
+ //STORE_CHOICEMOVE(gEffectBank, 0);
}
break;
- case 59: //overheat I guess, dont remember
+ case 59: //overheat
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
- gBattlescriptCurrInstr = gUnknown_081D94B0;
+ gBattlescriptCurrInstr = BattleScript_SAtkDown2;
return;
}
}
@@ -4888,11 +4651,11 @@ _0801F3BC:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F3D0 @ =gUnknown_081D9224\n\
+ ldr r0, _0801F3D0 @ =BattleScript_AllStatsUp\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801F3CC: .4byte gBattlescriptCurrInstr\n\
-_0801F3D0: .4byte gUnknown_081D9224\n\
+_0801F3D0: .4byte BattleScript_AllStatsUp\n\
_0801F3D4:\n\
ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr\n\
ldr r0, [r4]\n\
@@ -4952,11 +4715,11 @@ _0801F44C:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F460 @ =gUnknown_081D93FA\n\
+ ldr r0, _0801F460 @ =BattleScript_AtkDefDown\n\
b _0801F5F8\n\
.align 2, 0\n\
_0801F45C: .4byte gBattlescriptCurrInstr\n\
-_0801F460: .4byte gUnknown_081D93FA\n\
+_0801F460: .4byte BattleScript_AtkDefDown\n\
_0801F464:\n\
ldr r4, _0801F494 @ =gBattleMoveDamage\n\
ldr r0, _0801F498 @ =gHP_dealt\n\
@@ -5141,7 +4904,7 @@ _0801F5EC:\n\
ldr r0, [r4]\n\
adds r0, 0x1\n\
bl b_movescr_stack_push\n\
- ldr r0, _0801F610 @ =gUnknown_081D94B0\n\
+ ldr r0, _0801F610 @ =BattleScript_SAtkDown2\n\
_0801F5F8:\n\
str r0, [r4]\n\
_0801F5FA:\n\
@@ -5155,11 +4918,12 @@ _0801F5FA:\n\
bx r0\n\
.align 2, 0\n\
_0801F60C: .4byte gBattlescriptCurrInstr\n\
-_0801F610: .4byte gUnknown_081D94B0\n\
+_0801F610: .4byte BattleScript_SAtkDown2\n\
.syntax divided\n");
}
#endif // NONMATCHING
+
static void atk15_seteffectwithchancetarget(void)
{
u32 PercentChance;
@@ -5208,425 +4972,107 @@ static void atk18_status_effect_clear(void)
BATTLE_STRUCT->unk16112 = 0;
}
-//Fuck this, Maybe later
-__attribute__((naked))
static void atk19_faint_pokemon(void)
{
- asm(".syntax unified\n\
-push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x4\n\
- ldr r0, _0801F81C @ =gBattlescriptCurrInstr\n\
- ldr r2, [r0]\n\
- ldrb r1, [r2, 0x2]\n\
- adds r6, r0, 0\n\
- cmp r1, 0\n\
- beq _0801F834\n\
- ldrb r0, [r2, 0x1]\n\
- bl GetBattleBank\n\
- ldr r5, _0801F820 @ =gActiveBank\n\
- strb r0, [r5]\n\
- ldr r2, _0801F824 @ =gHitMarker\n\
- ldr r1, _0801F828 @ =gBitTable\n\
- ldrb r0, [r5]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r1, [r0]\n\
- lsls r1, 28\n\
- ldr r0, [r2]\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801F7E6\n\
- b _0801FB1C\n\
-_0801F7E6:\n\
- ldr r1, [r6]\n\
- ldrb r4, [r1, 0x3]\n\
- ldrb r0, [r1, 0x4]\n\
- lsls r0, 8\n\
- orrs r4, r0\n\
- ldrb r0, [r1, 0x5]\n\
- lsls r0, 16\n\
- orrs r4, r0\n\
- ldrb r0, [r1, 0x6]\n\
- lsls r0, 24\n\
- orrs r4, r0\n\
- bl b_movescr_stack_pop_cursor\n\
- str r4, [r6]\n\
- ldrb r0, [r5]\n\
- bl GetBankSide\n\
- ldr r1, _0801F82C @ =gSideAffecting\n\
- lsls r0, 24\n\
- lsrs r0, 23\n\
- adds r0, r1\n\
- ldrh r2, [r0]\n\
- ldr r1, _0801F830 @ =0x0000fdff\n\
- ands r1, r2\n\
- strh r1, [r0]\n\
- b _0801FB22\n\
- .align 2, 0\n\
-_0801F81C: .4byte gBattlescriptCurrInstr\n\
-_0801F820: .4byte gActiveBank\n\
-_0801F824: .4byte gHitMarker\n\
-_0801F828: .4byte gBitTable\n\
-_0801F82C: .4byte gSideAffecting\n\
-_0801F830: .4byte 0x0000fdff\n\
-_0801F834:\n\
- ldrb r0, [r2, 0x1]\n\
- cmp r0, 0x1\n\
- bne _0801F85C\n\
- ldr r1, _0801F84C @ =gActiveBank\n\
- ldr r0, _0801F850 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldr r0, _0801F854 @ =gBankTarget\n\
- ldrb r7, [r0]\n\
- ldr r4, _0801F858 @ =gUnknown_081D8C58\n\
- b _0801F86A\n\
- .align 2, 0\n\
-_0801F84C: .4byte gActiveBank\n\
-_0801F850: .4byte gBankAttacker\n\
-_0801F854: .4byte gBankTarget\n\
-_0801F858: .4byte gUnknown_081D8C58\n\
-_0801F85C:\n\
- ldr r1, _0801F954 @ =gActiveBank\n\
- ldr r0, _0801F958 @ =gBankTarget\n\
- ldrb r0, [r0]\n\
- strb r0, [r1]\n\
- ldr r0, _0801F95C @ =gBankAttacker\n\
- ldrb r7, [r0]\n\
- ldr r4, _0801F960 @ =gUnknown_081D8C65\n\
-_0801F86A:\n\
- ldr r0, _0801F964 @ =gAbsentBankFlags\n\
- ldrb r1, [r0]\n\
- ldr r0, _0801F968 @ =gBitTable\n\
- mov r12, r0\n\
- ldr r2, _0801F954 @ =gActiveBank\n\
- mov r8, r2\n\
- ldrb r2, [r2]\n\
- lsls r0, r2, 2\n\
- add r0, r12\n\
- ldr r0, [r0]\n\
- ands r1, r0\n\
- cmp r1, 0\n\
- beq _0801F886\n\
- b _0801FB1C\n\
-_0801F886:\n\
- ldr r3, _0801F96C @ =gBattleMons\n\
- mov r10, r3\n\
- movs r5, 0x58\n\
- mov r9, r5\n\
- mov r0, r9\n\
- muls r0, r2\n\
- add r0, r10\n\
- ldrh r3, [r0, 0x28]\n\
- cmp r3, 0\n\
- beq _0801F89C\n\
- b _0801FB1C\n\
-_0801F89C:\n\
- ldr r2, _0801F970 @ =0x02000000\n\
- lsls r1, r7, 1\n\
- ldr r5, _0801F974 @ =0x000160ac\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- ldr r0, _0801F978 @ =0x000160ad\n\
- adds r1, r0\n\
- adds r1, r2\n\
- strb r3, [r1]\n\
- lsls r1, r7, 2\n\
- adds r5, 0x54\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- adds r5, 0x1\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- adds r5, 0x1\n\
- adds r0, r1, r5\n\
- adds r0, r2\n\
- strb r3, [r0]\n\
- ldr r0, _0801F97C @ =0x00016103\n\
- adds r1, r0\n\
- adds r1, r2\n\
- strb r3, [r1]\n\
- ldr r5, _0801F980 @ =gHitMarker\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- lsls r0, 2\n\
- add r0, r12\n\
- ldr r1, [r0]\n\
- lsls r1, 28\n\
- ldr r0, [r5]\n\
- orrs r0, r1\n\
- str r0, [r5]\n\
- ldr r0, [r6]\n\
- adds r0, 0x7\n\
- bl b_movescr_stack_push\n\
- str r4, [r6]\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- bl GetBankSide\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _0801F9B0\n\
- ldr r0, [r5]\n\
- movs r1, 0x80\n\
- lsls r1, 15\n\
- orrs r0, r1\n\
- str r0, [r5]\n\
- ldr r1, _0801F984 @ =gBattleResults\n\
- ldrb r0, [r1]\n\
- cmp r0, 0xFE\n\
- bhi _0801F914\n\
- adds r0, 0x1\n\
- strb r0, [r1]\n\
-_0801F914:\n\
- mov r0, r9\n\
- muls r0, r7\n\
- add r0, r10\n\
- adds r3, r0, 0\n\
- adds r3, 0x2A\n\
- mov r4, r8\n\
- ldrb r2, [r4]\n\
- mov r0, r9\n\
- muls r0, r2\n\
- add r0, r10\n\
- adds r1, r0, 0\n\
- adds r1, 0x2A\n\
- ldrb r0, [r3]\n\
- ldrb r5, [r1]\n\
- cmp r0, r5\n\
- bls _0801F9CC\n\
- ldrb r1, [r1]\n\
- subs r0, r1\n\
- cmp r0, 0x1D\n\
- ble _0801F990\n\
- ldr r1, _0801F988 @ =gBattlePartyID\n\
- lsls r0, r2, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _0801F98C @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x8\n\
- bl AdjustFriendship\n\
- b _0801F9CC\n\
- .align 2, 0\n\
-_0801F954: .4byte gActiveBank\n\
-_0801F958: .4byte gBankTarget\n\
-_0801F95C: .4byte gBankAttacker\n\
-_0801F960: .4byte gUnknown_081D8C65\n\
-_0801F964: .4byte gAbsentBankFlags\n\
-_0801F968: .4byte gBitTable\n\
-_0801F96C: .4byte gBattleMons\n\
-_0801F970: .4byte 0x02000000\n\
-_0801F974: .4byte 0x000160ac\n\
-_0801F978: .4byte 0x000160ad\n\
-_0801F97C: .4byte 0x00016103\n\
-_0801F980: .4byte gHitMarker\n\
-_0801F984: .4byte gBattleResults\n\
-_0801F988: .4byte gBattlePartyID\n\
-_0801F98C: .4byte gPlayerParty\n\
-_0801F990:\n\
- ldr r1, _0801F9A8 @ =gBattlePartyID\n\
- lsls r0, r2, 1\n\
- adds r0, r1\n\
- ldrh r1, [r0]\n\
- movs r0, 0x64\n\
- muls r0, r1\n\
- ldr r1, _0801F9AC @ =gPlayerParty\n\
- adds r0, r1\n\
- movs r1, 0x6\n\
- bl AdjustFriendship\n\
- b _0801F9CC\n\
- .align 2, 0\n\
-_0801F9A8: .4byte gBattlePartyID\n\
-_0801F9AC: .4byte gPlayerParty\n\
-_0801F9B0:\n\
- ldr r1, _0801FAE0 @ =gBattleResults\n\
- ldrb r0, [r1, 0x1]\n\
- cmp r0, 0xFE\n\
- bhi _0801F9BC\n\
- adds r0, 0x1\n\
- strb r0, [r1, 0x1]\n\
-_0801F9BC:\n\
- ldr r2, _0801FAE4 @ =gActiveBank\n\
- ldrb r0, [r2]\n\
- mov r3, r9\n\
- muls r3, r0\n\
- adds r0, r3, 0\n\
- add r0, r10\n\
- ldrh r0, [r0]\n\
- strh r0, [r1, 0x20]\n\
-_0801F9CC:\n\
- ldr r0, _0801FAE8 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0801FA02\n\
- ldr r6, _0801FAEC @ =gBattleMons\n\
- ldr r0, _0801FAF0 @ =gBankAttacker\n\
- ldrb r0, [r0]\n\
- movs r5, 0x58\n\
- muls r0, r5\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _0801FA02\n\
- ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r4]\n\
- bl b_movescr_stack_push\n\
- ldr r1, _0801FAF8 @ =gBattleMoveDamage\n\
- adds r0, r7, 0\n\
- muls r0, r5\n\
- adds r0, r6\n\
- ldrh r0, [r0, 0x28]\n\
- str r0, [r1]\n\
- ldr r0, _0801FAFC @ =gUnknown_081D9156\n\
- str r0, [r4]\n\
-_0801FA02:\n\
- ldr r1, _0801FB00 @ =gStatuses3\n\
- ldr r6, _0801FB04 @ =gBankTarget\n\
- ldrb r0, [r6]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- lsls r1, 7\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- bne _0801FA1A\n\
- b _0801FB22\n\
-_0801FA1A:\n\
- ldr r0, _0801FAE8 @ =gHitMarker\n\
- ldr r5, [r0]\n\
- movs r0, 0x80\n\
- lsls r0, 17\n\
- ands r5, r0\n\
- cmp r5, 0\n\
- bne _0801FB22\n\
- ldr r4, _0801FAF0 @ =gBankAttacker\n\
- mov r8, r4\n\
- ldrb r0, [r4]\n\
- bl GetBankSide\n\
- adds r4, r0, 0\n\
- ldrb r0, [r6]\n\
- bl GetBankSide\n\
- lsls r4, 24\n\
- lsls r0, 24\n\
- cmp r4, r0\n\
- beq _0801FB22\n\
- ldr r0, _0801FAEC @ =gBattleMons\n\
- mov r9, r0\n\
- mov r1, r8\n\
- ldrb r2, [r1]\n\
- movs r7, 0x58\n\
- adds r3, r2, 0\n\
- muls r3, r7\n\
- adds r0, r3, r0\n\
- ldrh r0, [r0, 0x28]\n\
- cmp r0, 0\n\
- beq _0801FB22\n\
- ldr r0, _0801FB08 @ =gCurrentMove\n\
- ldrh r0, [r0]\n\
- cmp r0, 0xA5\n\
- beq _0801FB22\n\
- ldr r1, _0801FB0C @ =0x02000000\n\
- ldr r4, _0801FB10 @ =0x0001608c\n\
- adds r0, r2, r4\n\
- adds r0, r1\n\
- ldrb r4, [r0]\n\
- adds r0, r4, r3\n\
- mov r6, r9\n\
- adds r6, 0x24\n\
- adds r0, r6\n\
- strb r5, [r0]\n\
- ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r5]\n\
- bl b_movescr_stack_push\n\
- ldr r0, _0801FB14 @ =gUnknown_081D9468\n\
- str r0, [r5]\n\
- ldr r5, _0801FAE4 @ =gActiveBank\n\
- mov r1, r8\n\
- ldrb r0, [r1]\n\
- strb r0, [r5]\n\
- adds r1, r4, 0\n\
- adds r1, 0x9\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- ldrb r0, [r5]\n\
- muls r0, r7\n\
- adds r0, r6\n\
- adds r0, r4\n\
- str r0, [sp]\n\
- movs r0, 0\n\
- movs r2, 0\n\
- movs r3, 0x1\n\
- bl EmitSetAttributes\n\
- ldrb r0, [r5]\n\
- bl MarkBufferBankForExecution\n\
- ldr r1, _0801FB18 @ =gBattleTextBuff1\n\
- movs r0, 0xFD\n\
- strb r0, [r1]\n\
- movs r0, 0x2\n\
- strb r0, [r1, 0x1]\n\
- lsls r4, 1\n\
- mov r2, r8\n\
- ldrb r0, [r2]\n\
- muls r0, r7\n\
- adds r0, r4, r0\n\
- mov r2, r9\n\
- adds r2, 0xC\n\
- adds r0, r2\n\
- ldrh r0, [r0]\n\
- strb r0, [r1, 0x2]\n\
- mov r3, r8\n\
- ldrb r0, [r3]\n\
- muls r0, r7\n\
- adds r4, r0\n\
- adds r4, r2\n\
- ldrh r0, [r4]\n\
- lsrs r0, 8\n\
- strb r0, [r1, 0x3]\n\
- movs r0, 0xFF\n\
- strb r0, [r1, 0x4]\n\
- b _0801FB22\n\
- .align 2, 0\n\
-_0801FAE0: .4byte gBattleResults\n\
-_0801FAE4: .4byte gActiveBank\n\
-_0801FAE8: .4byte gHitMarker\n\
-_0801FAEC: .4byte gBattleMons\n\
-_0801FAF0: .4byte gBankAttacker\n\
-_0801FAF4: .4byte gBattlescriptCurrInstr\n\
-_0801FAF8: .4byte gBattleMoveDamage\n\
-_0801FAFC: .4byte gUnknown_081D9156\n\
-_0801FB00: .4byte gStatuses3\n\
-_0801FB04: .4byte gBankTarget\n\
-_0801FB08: .4byte gCurrentMove\n\
-_0801FB0C: .4byte 0x02000000\n\
-_0801FB10: .4byte 0x0001608c\n\
-_0801FB14: .4byte gUnknown_081D9468\n\
-_0801FB18: .4byte gBattleTextBuff1\n\
-_0801FB1C:\n\
- ldr r0, [r6]\n\
- adds r0, 0x7\n\
- str r0, [r6]\n\
-_0801FB22:\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\
- .syntax divided\n");
+ u8 *r4;
+
+ if (gBattlescriptCurrInstr[2] != 0)
+ {
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
+ {
+ r4 = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+
+ b_movescr_stack_pop_cursor();
+ gBattlescriptCurrInstr = r4;
+ gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED;
+ }
+ else
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ }
+ else
+ {
+ u8 bank;
+
+ if (gBattlescriptCurrInstr[1] == 1)
+ {
+ gActiveBank = gBankAttacker;
+ bank = gBankTarget;
+ r4 = gUnknown_081D8C58;
+ }
+ else
+ {
+ gActiveBank = gBankTarget;
+ bank = gBankAttacker;
+ r4 = gUnknown_081D8C65;
+ }
+ if (!(gAbsentBankFlags & gBitTable[gActiveBank])
+ && gBattleMons[gActiveBank].hp == 0)
+ {
+ ewram[0x160AC + bank * 2 + 0] = 0;
+ ewram[0x160AC + bank * 2 + 1] = 0;
+ ewram[0x16100 + bank * 4 + 0] = 0;
+ ewram[0x16100 + bank * 4 + 1] = 0;
+ ewram[0x16100 + bank * 4 + 2] = 0;
+ ewram[0x16100 + bank * 4 + 3] = 0;
+
+ gHitMarker |= HITMARKER_FAINTED(gActiveBank);
+ b_movescr_stack_push(gBattlescriptCurrInstr + 7);
+ gBattlescriptCurrInstr = r4;
+ if (GetBankSide(gActiveBank) == 0)
+ {
+ gHitMarker |= HITMARKER_x400000;
+ if (gBattleResults.playerFaintCounter < 0xFF)
+ gBattleResults.playerFaintCounter++;
+ if (gBattleMons[bank].level > gBattleMons[gActiveBank].level)
+ {
+ if (gBattleMons[bank].level - gBattleMons[gActiveBank].level > 0x1D)
+ AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 8);
+ else
+ AdjustFriendship(&gPlayerParty[gBattlePartyID[gActiveBank]], 6);
+ }
+ }
+ else
+ {
+ if (gBattleResults.opponentFaintCounter < 0xFF)
+ gBattleResults.opponentFaintCounter++;
+ gBattleResults.lastOpponentSpecies = gBattleMons[gActiveBank].species;
+ }
+ if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0)
+ {
+ b_movescr_stack_push(gBattlescriptCurrInstr);
+ gBattleMoveDamage = gBattleMons[bank].hp;
+ gBattlescriptCurrInstr = gUnknown_081D9156;
+ }
+ if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE)
+ && !(gHitMarker & HITMARKER_GRUDGE)
+ && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)
+ && gBattleMons[gBankAttacker].hp != 0
+ && gCurrentMove != MOVE_STRUGGLE)
+ {
+ u8 moveIndex = ewram[0x1608C + gBankAttacker];
+
+ gBattleMons[gBankAttacker].pp[moveIndex] = 0;
+ b_movescr_stack_push(gBattlescriptCurrInstr);
+ gBattlescriptCurrInstr = gUnknown_081D9468;
+ gActiveBank = gBankAttacker;
+ EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
+ MarkBufferBankForExecution(gActiveBank);
+
+ gBattleTextBuff1[0] = 0xFD;
+ gBattleTextBuff1[1] = 2;
+ gBattleTextBuff1[2] = gBattleMons[gBankAttacker].moves[moveIndex];
+ gBattleTextBuff1[3] = gBattleMons[gBankAttacker].moves[moveIndex] >> 8;
+ gBattleTextBuff1[4] = EOS;
+ }
+ }
+ else
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ }
}
static void atk1A_faint_animation(void)
@@ -5832,13 +5278,14 @@ static void atk23_getexp(void)
else
{
BATTLE_STRUCT->atk23StateTracker++;
- unk_2000000[0x16113] |= gBitTable[gBattlePartyID[gBank1]];
+ ((u8*)ewram)[0x16113] |= gBitTable[gBattlePartyID[gBank1]];
}
break;
case 1: //calculate experience points to redistribute
{
- int via_sent_in = 0, i;
+ int via_sent_in = 0;
u16 calculatedExp;
+ int i;
for (i = 0; i < 6; i++)
{
u16 item;
@@ -5894,15 +5341,14 @@ static void atk23_getexp(void)
BATTLE_STRUCT->sentInPokes >>= 1;
tracker = &BATTLE_STRUCT->atk23StateTracker;
zero = 0;
- goto LABEL;
+ *tracker = 5; //increment looper
+ gBattleMoveDamage = zero; //used for exp
}
else if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) == 100)
{
-
BATTLE_STRUCT->sentInPokes >>= 1;
tracker = &BATTLE_STRUCT->atk23StateTracker;
zero = 0;
- LABEL:
*tracker = 5; //increment looper
gBattleMoveDamage = zero; //used for exp
}
@@ -5937,7 +5383,9 @@ static void atk23_getexp(void)
stringID = 0x14A;
}
else
- stringID = 0x149;
+ {
+ stringID = 0x149;
+ }
//get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -5962,12 +5410,13 @@ static void atk23_getexp(void)
gBattleTextBuff1[3] = BATTLE_STRUCT->expGetterID;
gBattleTextBuff1[4] = 0xFF;
- //buffer 'gained' or 'gained a boosted'
- gBattleTextBuff2[0] = 0xFD;
- gBattleTextBuff2[1] = 0;
- gBattleTextBuff2[2] = sBYTE0_32(stringID);
- gBattleTextBuff2[3] = sBYTE1_32(stringID);
- gBattleTextBuff2[4] = 0xFF;
+ //buffer 'gained' or 'gained a boosted'
+ gBattleTextBuff2[0] = 0xFD;
+ gBattleTextBuff2[1] = 0;
+ gBattleTextBuff2[2] = stringID;
+ stringID = (stringID >> 8) & (0xFF); //this does not want to cooperate
+ gBattleTextBuff2[3] = stringID;
+ gBattleTextBuff2[4] = 0xFF;
//buffer exp number
gBattleTextBuff3[0] = 0xFD;
@@ -5994,7 +5443,8 @@ static void atk23_getexp(void)
gBattleBufferB[BATTLE_STRUCT->expGetterBank][0] = 0;
if (GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_HP) && GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL) != 100)
{
- BATTLE_STRUCT->beforeLvlUp[0] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP); //doesnt match
+ // Doesn't match.
+ BATTLE_STRUCT->beforeLvlUp[0] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_MAX_HP);
BATTLE_STRUCT->beforeLvlUp[1] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_ATK);
BATTLE_STRUCT->beforeLvlUp[2] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_DEF);
BATTLE_STRUCT->beforeLvlUp[3] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_SPD);
@@ -8022,9 +7472,39 @@ _080214AE:\n\
#ifdef NONMATCHING
static void atk46_playanimation2(void)
{
-
+ u8 arg1;
+ u8* arg2;
+ u16* arg3;
+ u32 something;
+
+ arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ gActiveBank = GetBattleBank(arg1);
+ arg2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
+ arg3 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+
+ if (*arg2 == 1 || *arg2 == 0x11 || *arg2 == 2)
+ {
+ EmitBattleAnimation(0, *arg2, *arg3);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ return;
+ }
+ if ((gHitMarker & 0x80))
+ {
+ something = (u32)(gBattlescriptCurrInstr + 10);
+ }
+ else
+ {
+ u8 yeah = *arg2 - 10;
+ if (yeah < 4 || (gStatuses3[gActiveBank] & 0x000400C0) == 0)
+ {
+ EmitBattleAnimation(0, *arg2, *arg3);
+ MarkBufferBankForExecution(gActiveBank);
+ }
+ something = (u32)(gBattlescriptCurrInstr + 10);
+ }
+ gBattlescriptCurrInstr = (u8*)something;
}
-
#else
__attribute__((naked))
static void atk46_playanimation2(void)
@@ -10122,7 +9602,7 @@ static void atk4E_switchin_anim(void)
gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gAbsentBankFlags &= ~(gBitTable[gActiveBank]);
EmitSendOutPoke(0, gBattlePartyID[gActiveBank], BSScriptRead8(gBattlescriptCurrInstr + 2));
@@ -17834,7 +17314,7 @@ void atkEF_pokeball_catch_calculation(void)
ball_multiplier = 10;
break;
case ITEM_REPEAT_BALL:
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
ball_multiplier = 30;
else
ball_multiplier = 10;
@@ -17920,11 +17400,11 @@ static void atkF0_copy_caught_poke(void)
static void atkF1_setpoke_as_caught(void)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
else
{
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
if (gBattleMons[gBankTarget].species == SPECIES_UNOWN)
gSaveBlock2.pokedex.unownPersonality = gBattleMons[gBankTarget].personality;
if (gBattleMons[gBankTarget].species == SPECIES_SPINDA) //else if
diff --git a/src/battle_7.c b/src/battle/battle_7.c
index cf3a3522e..ad96510cf 100644
--- a/src/battle_7.c
+++ b/src/battle/battle_7.c
@@ -48,8 +48,8 @@ extern struct MusicPlayerInfo gMPlay_BGM;
extern u32 gBitTable[];
extern u16 gBattleTypeFlags;
extern u8 gBattleMonForms[];
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern void (*gAnimScriptCallback)(void);
extern u8 gAnimScriptActive;
extern const u8 *const gBattleAnims_Unknown1[];
@@ -78,7 +78,7 @@ extern void sub_80440EC();
extern void sub_804777C();
extern void sub_8141828();
extern u8 sub_8077ABC();
-extern u8 sub_8078874(u8);
+extern u8 AnimBankSpriteExists(u8);
extern u8 sub_8077F68(u8);
extern u8 sub_8077F7C(u8);
extern void sub_8094958(void);
@@ -185,8 +185,8 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
sub_80324E0(a);
return TRUE;
}
- gBattleAnimPlayerMonIndex = b;
- gBattleAnimEnemyMonIndex = c;
+ gBattleAnimBankAttacker = b;
+ gBattleAnimBankTarget = c;
ewram17840.unk0 = e;
DoMoveAnim(gBattleAnims_Unknown1, d, 0);
taskId = CreateTask(sub_80315E8, 10);
@@ -225,8 +225,8 @@ void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d)
{
u8 taskId;
- gBattleAnimPlayerMonIndex = b;
- gBattleAnimEnemyMonIndex = c;
+ gBattleAnimBankAttacker = b;
+ gBattleAnimBankTarget = c;
DoMoveAnim(gBattleAnims_Unknown2, d, 0);
taskId = CreateTask(sub_80316CC, 10);
gTasks[taskId].data[0] = a;
@@ -301,16 +301,16 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
r7);
paletteOffset = 0x100 + b * 16;
if (ewram17800[b].transformedSpecies == 0)
- lzPaletteData = pokemon_get_pal(pkmn);
+ lzPaletteData = GetMonSpritePal(pkmn);
else
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 0x20);
LoadPalette(ewram, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- sub_800D238(lzPaletteData, ewram + 0x16400);
+ LZDecompressWram(lzPaletteData, ewram + 0x16400);
LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
@@ -353,16 +353,16 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
r7);
paletteOffset = 0x100 + b * 16;
if (ewram17800[b].transformedSpecies == 0)
- lzPaletteData = pokemon_get_pal(pkmn);
+ lzPaletteData = GetMonSpritePal(pkmn);
else
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 0x20);
LoadPalette(ewram, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- sub_800D238(lzPaletteData, ewram + 0x16400);
+ LZDecompressWram(lzPaletteData, ewram + 0x16400);
LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
@@ -506,7 +506,7 @@ bool8 sub_8031C30(u8 a)
void load_gfxc_health_bar(void)
{
- sub_800D238(gUnknown_08D09C48, (void *)0x02000000);
+ LZDecompressWram(gUnknown_08D09C48, (void *)0x02000000);
}
u8 battle_load_something(u8 *pState, u8 *b)
@@ -690,14 +690,14 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
dst = (void *)(VRAM + 0x10000 + gSprites[gObjectBankIDs[a]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + a * 16;
- lzPaletteData = species_and_otid_get_pal(species, otId, personalityValue);
- sub_800D238(lzPaletteData, ewram);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
+ LZDecompressWram(lzPaletteData, ewram);
LoadPalette(ewram, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
u16 *paletteSrc = (u16 *)(ewram + 0x16400);
- sub_800D238(lzPaletteData, paletteSrc);
+ LZDecompressWram(lzPaletteData, paletteSrc);
LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32);
}
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
@@ -846,7 +846,7 @@ void sub_80326EC(u8 a)
for (i = 0; i < gNoOfAllBanks; i++)
{
- if (sub_8078874(i) != 0)
+ if (AnimBankSpriteExists(i) != 0)
{
gSprites[gObjectBankIDs[i]].oam.affineMode = a;
if (a == 0)
@@ -884,7 +884,7 @@ void sub_80328A4(struct Sprite *sprite)
u8 r4 = sprite->data0;
struct Sprite *r7 = &gSprites[gObjectBankIDs[r4]];
- if (!r7->inUse || sub_8078874(r4) == 0)
+ if (!r7->inUse || AnimBankSpriteExists(r4) == 0)
{
sprite->callback = sub_8032978;
return;
diff --git a/src/battle_ai.c b/src/battle/battle_ai.c
index 0e20c6b05..1869bbe36 100644
--- a/src/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -1273,7 +1273,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
- if (b_first_side(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1281,7 +1281,7 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
- if (b_first_side(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
diff --git a/src/battle_anim.c b/src/battle/battle_anim.c
index 6bd98099a..111d72813 100644
--- a/src/battle_anim.c
+++ b/src/battle/battle_anim.c
@@ -37,8 +37,8 @@ EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
EWRAM_DATA u8 gUnknown_0202F7C4 = 0;
EWRAM_DATA u8 gUnknown_0202F7C5 = 0;
EWRAM_DATA u16 gAnimMoveIndex = 0; // set but unused.
-EWRAM_DATA u8 gBattleAnimPlayerMonIndex = 0;
-EWRAM_DATA u8 gBattleAnimEnemyMonIndex = 0;
+EWRAM_DATA u8 gBattleAnimBankAttacker = 0;
+EWRAM_DATA u8 gBattleAnimBankTarget = 0;
EWRAM_DATA u16 gUnknown_0202F7CA[4] = {0};
EWRAM_DATA u8 gUnknown_0202F7D2 = 0;
extern u16 gUnknown_030041B4;
@@ -201,15 +201,15 @@ void battle_anim_clear_some_data(void)
gUnknown_0202F7C4 = 0;
gUnknown_0202F7C5 = 0;
gAnimMoveIndex = 0;
- gBattleAnimPlayerMonIndex = 0;
- gBattleAnimEnemyMonIndex = 0;
+ gBattleAnimBankAttacker = 0;
+ gBattleAnimBankTarget = 0;
gUnknown_0202F7D2 = 0;
}
void ExecuteMoveAnim(u16 move)
{
- gBattleAnimPlayerMonIndex = gBankAttacker;
- gBattleAnimEnemyMonIndex = gBankTarget;
+ gBattleAnimBankAttacker = gBankAttacker;
+ gBattleAnimBankTarget = gBankTarget;
DoMoveAnim(gBattleAnims_Moves, move, 1);
}
@@ -396,7 +396,7 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimEnemyMonIndex);
+ _r0 = sub_8079E90(gBattleAnimBankTarget);
r1 = r4;
}
@@ -407,15 +407,15 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gBattleAnimPlayerMonIndex);
+ _r0 = sub_8079E90(gBattleAnimBankAttacker);
r1 = r4;
}
r6 = _r0 + r1;
if ((s16)r6 < 3)
r6 = 3;
- r4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
- r2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
+ r4 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ r2 = sub_8077ABC(gBattleAnimBankTarget, 3);
CreateSpriteAndAnimate(r7, r4, r2, r6);
gAnimVisualTaskCount++;
}
@@ -485,10 +485,10 @@ _08075B34:\n\
_08075B36:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075B40 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08075B40 @ =gBattleAnimBankTarget\n\
b _08075B56\n\
.align 2, 0\n\
-_08075B40: .4byte gBattleAnimEnemyMonIndex\n\
+_08075B40: .4byte gBattleAnimBankTarget\n\
_08075B44:\n\
cmp r4, 0x3F\n\
bls _08075B4E\n\
@@ -500,7 +500,7 @@ _08075B4E:\n\
_08075B50:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075BAC @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08075BAC @ =gBattleAnimBankAttacker\n\
_08075B56:\n\
ldrb r0, [r0]\n\
bl sub_8079E90\n\
@@ -517,7 +517,7 @@ _08075B56:\n\
bgt _08075B74\n\
movs r6, 0x3\n\
_08075B74:\n\
- ldr r5, _08075BB0 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r5, _08075BB0 @ =gBattleAnimBankTarget\n\
ldrb r0, [r5]\n\
movs r1, 0x2\n\
bl sub_8077ABC\n\
@@ -543,8 +543,8 @@ _08075B74:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_08075BAC: .4byte gBattleAnimPlayerMonIndex\n\
-_08075BB0: .4byte gBattleAnimEnemyMonIndex\n\
+_08075BAC: .4byte gBattleAnimBankAttacker\n\
+_08075BB0: .4byte gBattleAnimBankTarget\n\
_08075BB4: .4byte gAnimVisualTaskCount\n\
.syntax divided\n");
}
@@ -686,10 +686,10 @@ static void ScriptCmd_monbg(void)
else if (r6 == 1)
r6 = 3;
if (r6 == 0 || r6 == 2)
- r5 = gBattleAnimPlayerMonIndex;
+ r5 = gBattleAnimBankAttacker;
else
- r5 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r5))
+ r5 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r5))
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
@@ -719,7 +719,7 @@ static void ScriptCmd_monbg(void)
}
r5 ^= 2;
- if (r6 > 1 && b_side_obj__get_some_boolean(r5))
+ if (r6 > 1 && IsAnimBankSpriteVisible(r5))
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
@@ -751,20 +751,20 @@ static void ScriptCmd_monbg(void)
}
#ifdef NONMATCHING
-bool8 b_side_obj__get_some_boolean(u8 a)
+bool8 IsAnimBankSpriteVisible(u8 a)
{
- if (IsContest() != 0)
+ if (IsContest())
{
- if (a == gBattleAnimPlayerMonIndex)
+ if (a == gBattleAnimBankAttacker)
return TRUE;
else
return FALSE;
}
- if (sub_8078874(a) == 0)
+ if (!AnimBankSpriteExists(a))
return FALSE;
- if (IsContest() != 0)
+ if (IsContest())
return TRUE; // this line wont ever be reached.
- if ((EWRAM_17800[a].unk0 & 1) == 0)
+ if (!(EWRAM_17800[a].unk0 & 1))
return TRUE;
if (gSprites[gObjectBankIDs[a]].invisible)
return FALSE;
@@ -772,7 +772,7 @@ bool8 b_side_obj__get_some_boolean(u8 a)
}
#else
__attribute__((naked))
-bool8 b_side_obj__get_some_boolean(u8 a)
+bool8 IsAnimBankSpriteVisible(u8 a)
{
asm(".syntax unified\n\
push {r4,r5,lr}\n\
@@ -783,16 +783,16 @@ bool8 b_side_obj__get_some_boolean(u8 a)
lsls r0, 24\n\
cmp r0, 0\n\
beq _08075FDC\n\
- ldr r0, _08075FD8 @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08075FD8 @ =gBattleAnimBankAttacker\n\
ldrb r0, [r0]\n\
cmp r4, r0\n\
beq _0807601C\n\
b _0807602C\n\
.align 2, 0\n\
-_08075FD8: .4byte gBattleAnimPlayerMonIndex\n\
+_08075FD8: .4byte gBattleAnimBankAttacker\n\
_08075FDC:\n\
adds r0, r4, 0\n\
- bl sub_8078874\n\
+ bl AnimBankSpriteExists\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _0807602C\n\
@@ -1096,9 +1096,9 @@ static void ScriptCmd_clearmonbg(void)
else if (r4 == 1)
r4 = 3;
if (r4 == 0 || r4 == 2)
- r5 = gBattleAnimPlayerMonIndex;
+ r5 = gBattleAnimBankAttacker;
else
- r5 = gBattleAnimEnemyMonIndex;
+ r5 = gBattleAnimBankTarget;
if (gMonAnimTaskIdArray[0] != 0xFF)
gSprites[gObjectBankIDs[r5]].invisible = FALSE;
if (r4 > 1 && gMonAnimTaskIdArray[1] != 0xFF)
@@ -1155,10 +1155,10 @@ static void ScriptCmd_monbg_22(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r4 = gBattleAnimPlayerMonIndex;
+ r4 = gBattleAnimBankAttacker;
else
- r4 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r4))
+ r4 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r4))
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
@@ -1170,7 +1170,7 @@ static void ScriptCmd_monbg_22(void)
gSprites[gObjectBankIDs[r4]].invisible = FALSE;
}
r4 ^= 2;
- if (r5 > 1 && b_side_obj__get_some_boolean(r4))
+ if (r5 > 1 && IsAnimBankSpriteVisible(r4))
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
@@ -1197,12 +1197,12 @@ static void ScriptCmd_clearmonbg_23(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r6 = gBattleAnimPlayerMonIndex;
+ r6 = gBattleAnimBankAttacker;
else
- r6 = gBattleAnimEnemyMonIndex;
- if (b_side_obj__get_some_boolean(r6))
+ r6 = gBattleAnimBankTarget;
+ if (IsAnimBankSpriteVisible(r6))
gSprites[gObjectBankIDs[r6]].invisible = FALSE;
- if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2))
+ if (r5 > 1 && IsAnimBankSpriteVisible(r6 ^ 2))
gSprites[gObjectBankIDs[r6 ^ 2]].invisible = FALSE;
else
r5 = 0;
@@ -1228,9 +1228,9 @@ static void sub_80769A4(u8 taskId)
r5 = 0;
else
r5 = 1;
- if (b_side_obj__get_some_boolean(r4))
+ if (IsAnimBankSpriteVisible(r4))
sub_8076464(r5);
- if (gTasks[taskId].data[0] > 1 && b_side_obj__get_some_boolean(r4 ^ 2))
+ if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(r4 ^ 2))
sub_8076464(r5 ^ 1);
DestroyTask(taskId);
}
@@ -1371,7 +1371,7 @@ static void ScriptCmd_fadetobg_25(void)
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
if (IsContest() != 0)
gTasks[taskId].data[0] = r6;
- else if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
+ else if (GetBankSide(gBattleAnimBankTarget) == 0)
gTasks[taskId].data[0] = r7;
else
gTasks[taskId].data[0] = r8;
@@ -1422,7 +1422,7 @@ static void sub_8076DB8(u16 a)
void *dmaSrc;
void *dmaDest;
- sub_800D238(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
+ LZDecompressWram(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
dmaDest = (void *)(VRAM + 0xD000);
@@ -1493,16 +1493,16 @@ static void ScriptCmd_changebg(void)
/*
s8 sub_8076F98(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
- a = GetBankSide(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F;
+ a = GetBankSide(gBattleAnimBankAttacker) ? 0xC0 : 0x3F;
}
//_08076FDC
else
{
if (IsContest())
{
- if (gBattleAnimPlayerMonIndex == gBattleAnimEnemyMonIndex && gBattleAnimPlayerMonIndex == 2
+ if (gBattleAnimBankAttacker == gBattleAnimBankTarget && gBattleAnimBankAttacker == 2
&& a == 0x3F)
{
//jump to _0807707A
@@ -1514,9 +1514,9 @@ s8 sub_8076F98(s8 a)
//_08077004
else
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) == 0)
+ if (GetBankSide(gBattleAnimBankAttacker) == 0)
{
- if (GetBankSide(gBattleAnimEnemyMonIndex) == 0)
+ if (GetBankSide(gBattleAnimBankTarget) == 0)
}
//_08077042
else
@@ -1540,7 +1540,7 @@ s8 sub_8076F98(s8 a)
lsls r0, 24\n\
cmp r0, 0\n\
bne _08076FDC\n\
- ldr r0, _08076FD4 @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _08076FD4 @ =gBattleAnimBankAttacker\n\
ldrb r2, [r0]\n\
lsls r0, r2, 1\n\
adds r0, r2\n\
@@ -1561,15 +1561,15 @@ s8 sub_8076F98(s8 a)
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08076FD4: .4byte gBattleAnimPlayerMonIndex\n\
+_08076FD4: .4byte gBattleAnimBankAttacker\n\
_08076FD8: .4byte 0x02017810\n\
_08076FDC:\n\
bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08077004\n\
- ldr r0, _08076FFC @ =gBattleAnimPlayerMonIndex\n\
- ldr r1, _08077000 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08076FFC @ =gBattleAnimBankAttacker\n\
+ ldr r1, _08077000 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
@@ -1580,16 +1580,16 @@ _08076FDC:\n\
beq _0807707A\n\
b _08077068\n\
.align 2, 0\n\
-_08076FFC: .4byte gBattleAnimPlayerMonIndex\n\
-_08077000: .4byte gBattleAnimEnemyMonIndex\n\
+_08076FFC: .4byte gBattleAnimBankAttacker\n\
+_08077000: .4byte gBattleAnimBankTarget\n\
_08077004:\n\
- ldr r0, _0807702C @ =gBattleAnimPlayerMonIndex\n\
+ ldr r0, _0807702C @ =gBattleAnimBankAttacker\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08077042\n\
- ldr r0, _08077030 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08077030 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
@@ -1602,8 +1602,8 @@ _08077004:\n\
movs r4, 0xC0\n\
b _0807706E\n\
.align 2, 0\n\
-_0807702C: .4byte gBattleAnimPlayerMonIndex\n\
-_08077030: .4byte gBattleAnimEnemyMonIndex\n\
+_0807702C: .4byte gBattleAnimBankAttacker\n\
+_08077030: .4byte gBattleAnimBankTarget\n\
_08077034:\n\
movs r0, 0x40\n\
negs r0, r0\n\
@@ -1613,7 +1613,7 @@ _08077034:\n\
lsls r0, 24\n\
b _0807706C\n\
_08077042:\n\
- ldr r0, _08077064 @ =gBattleAnimEnemyMonIndex\n\
+ ldr r0, _08077064 @ =gBattleAnimBankTarget\n\
ldrb r0, [r0]\n\
bl GetBankSide\n\
lsls r0, 24\n\
@@ -1629,7 +1629,7 @@ _08077042:\n\
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08077064: .4byte gBattleAnimEnemyMonIndex\n\
+_08077064: .4byte gBattleAnimBankTarget\n\
_08077068:\n\
lsls r0, r4, 24\n\
negs r0, r0\n\
@@ -1661,16 +1661,16 @@ _08077088:\n\
s8 sub_8077094(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0)
a = 0x3F;
else
a = 0xC0;
}
else
{
- if (GetBankSide(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0 || IsContest() != 0)
a = -a;
}
return a;
@@ -2128,9 +2128,9 @@ static void ScriptCmd_monbgprio_28(void)
r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (r2 != 0)
- r0 = gBattleAnimEnemyMonIndex;
+ r0 = gBattleAnimBankTarget;
else
- r0 = gBattleAnimPlayerMonIndex;
+ r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
if (!IsContest() && (r4 == 0 || r4 == 3))
{
@@ -2157,12 +2157,12 @@ static void ScriptCmd_monbgprio_2A(void)
r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (GetBankSide(gBattleAnimPlayerMonIndex) != GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker) != GetBankSide(gBattleAnimBankTarget))
{
if (r6 != 0)
- r0 = gBattleAnimEnemyMonIndex;
+ r0 = gBattleAnimBankTarget;
else
- r0 = gBattleAnimPlayerMonIndex;
+ r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
if (!IsContest() && (r4 == 0 || r4 == 3))
{
@@ -2178,7 +2178,7 @@ static void ScriptCmd_invisible(void)
u8 spriteId;
r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
+ spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
gSprites[spriteId].invisible = TRUE;
@@ -2192,7 +2192,7 @@ static void ScriptCmd_visible(void)
u8 spriteId;
r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
- spriteId = obj_id_for_side_relative_to_move(r0);
+ spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
gSprites[spriteId].invisible = FALSE;
@@ -2209,17 +2209,17 @@ static void ScriptCmd_doublebattle_2D(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
+ && GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
{
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
}
else
{
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
}
if (spriteId != 0xFF)
{
@@ -2243,17 +2243,17 @@ static void ScriptCmd_doublebattle_2E(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gBattleAnimPlayerMonIndex) == GetBankSide(gBattleAnimEnemyMonIndex))
+ && GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
{
- r4 = GetBankIdentity_permutated(gBattleAnimPlayerMonIndex);
- spriteId = obj_id_for_side_relative_to_move(0);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
}
else
{
- r4 = GetBankIdentity_permutated(gBattleAnimEnemyMonIndex);
- spriteId = obj_id_for_side_relative_to_move(1);
+ r4 = GetBankIdentity_permutated(gBattleAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
}
if (spriteId != 0xFF && r4 == 2)
{
diff --git a/src/battle_anim_807B69C.c b/src/battle/battle_anim_807B69C.c
index 42932877b..bf3eb7ef1 100644
--- a/src/battle_anim_807B69C.c
+++ b/src/battle/battle_anim_807B69C.c
@@ -8,12 +8,12 @@
#include "task.h"
#include "trig.h"
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern bool8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern s16 gBattleAnimArgs[];
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankTarget;
extern u8 gObjectBankIDs[];
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
@@ -179,8 +179,8 @@ static void sub_807B8A4(struct Sprite *sprite)
void sub_807B920(u8 taskId)
{
- s16 x = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) - 32;
- s16 y = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) - 36;
+ s16 x = sub_8077ABC(gBattleAnimBankTarget, 2) - 32;
+ s16 y = sub_8077ABC(gBattleAnimBankTarget, 3) - 36;
u8 spriteId;
if (IsContest())
@@ -335,8 +335,8 @@ void move_anim_start_t2(u8 a, u8 b)
{
u8 taskId;
- gBattleAnimPlayerMonIndex = a;
- gBattleAnimEnemyMonIndex = a;
+ gBattleAnimBankAttacker = a;
+ gBattleAnimBankTarget = a;
DoMoveAnim(gBattleAnims_StatusConditions, b, 0);
taskId = CreateTask(sub_807BDAC, 10);
gTasks[taskId].data[0] = a;
diff --git a/src/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index 31984977f..e0c79dc8e 100644
--- a/src/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -12,8 +12,8 @@ extern s16 gBattleAnimArgs[8];
extern u8 gObjectBankIDs[];
extern s32 gMoveDmgMoveAnim;
extern u16 gMovePowerMoveAnim;
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
static void sub_80A7EF0(u8 taskId);
static void sub_80A808C(u8 taskId);
@@ -34,7 +34,7 @@ static void sub_80A913C(u8 taskId);
void sub_80A7E7C(u8 taskId)
{
u8 sprite;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -96,7 +96,7 @@ void sub_80A7FA0(u8 taskId)
r6 = 0;
if (gBattleAnimArgs[0] < 4)
{
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -121,7 +121,7 @@ void sub_80A7FA0(u8 taskId)
side = GetBankByPlayerAI(3);
break;
}
- if (b_side_obj__get_some_boolean(side) == FALSE)
+ if (IsAnimBankSpriteVisible(side) == FALSE)
{
r6 = 1;
}
@@ -129,7 +129,7 @@ void sub_80A7FA0(u8 taskId)
}
else
{
- sprite = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ sprite = gObjectBankIDs[gBattleAnimBankAttacker];
}
if (r6)
{
@@ -186,7 +186,7 @@ static void sub_80A808C(u8 taskId)
void sub_80A8154(u8 taskId)
{
u8 sprite;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
DestroyAnimVisualTask(taskId);
@@ -244,7 +244,7 @@ static void sub_80A81D8(u8 taskId)
void sub_80A8314(u8 taskId)
{
- u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
TASK.data[0] = sprite;
TASK.data[1] = gBattleAnimArgs[1];
@@ -286,7 +286,7 @@ void sub_80A8408(u8 taskId)
u8 sprite;
u8 v1;
v1 = 1;
- sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5)
{
gBattleAnimArgs[4] = 5;
@@ -328,7 +328,7 @@ static void sub_80A8488(u8 taskId)
void sub_80A8500(u8 taskId)
{
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -338,7 +338,7 @@ void sub_80A8500(u8 taskId)
void sub_80A8530(struct Sprite *sprite)
{
sprite->invisible = TRUE;
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
sprite->data1 = -gBattleAnimArgs[1];
}
@@ -348,9 +348,9 @@ void sub_80A8530(struct Sprite *sprite)
}
sprite->data0 = gBattleAnimArgs[0];
sprite->data2 = 0;
- sprite->data3 = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ sprite->data3 = gObjectBankIDs[gBattleAnimBankAttacker];
sprite->data4 = gBattleAnimArgs[0];
- oamt_set_x3A_32(sprite, sub_80A85A4);
+ StoreSpriteCallbackInData6(sprite, sub_80A85A4);
sprite->callback = sub_8078458;
}
@@ -359,20 +359,20 @@ static void sub_80A85A4(struct Sprite *sprite)
sprite->data0 = sprite->data4;
sprite->data1 = -sprite->data1;
sprite->callback = sub_8078458;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80A85C8(struct Sprite *sprite)
{
u8 spriteId;
sprite->invisible = TRUE;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sprite->data0 = gBattleAnimArgs[0];
sprite->data1 = 0;
sprite->data2 = gBattleAnimArgs[1];
sprite->data3 = spriteId;
sprite->data4 = gBattleAnimArgs[0];
- oamt_set_x3A_32(sprite, sub_80A8614);
+ StoreSpriteCallbackInData6(sprite, sub_80A8614);
sprite->callback = sub_8078458;
}
@@ -381,7 +381,7 @@ void sub_80A8614(struct Sprite *sprite)
sprite->data0 = sprite->data4;
sprite->data2 = -sprite->data2;
sprite->callback = sub_8078458;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80A8638(struct Sprite *sprite)
@@ -390,11 +390,11 @@ void sub_80A8638(struct Sprite *sprite)
int spriteId;
if (!gBattleAnimArgs[0])
{
- spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex];
+ spriteId = gObjectBankIDs[gBattleAnimBankAttacker];
}
else
{
- spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex];
+ spriteId = gObjectBankIDs[gBattleAnimBankTarget];
}
sprite->data0 = gBattleAnimArgs[2];
sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
@@ -457,11 +457,11 @@ void sub_80A8764(struct Sprite *sprite)
u8 spriteId;
if (!gBattleAnimArgs[0])
{
- v1 = gBattleAnimPlayerMonIndex;
+ v1 = gBattleAnimBankAttacker;
}
else
{
- v1 = gBattleAnimEnemyMonIndex;
+ v1 = gBattleAnimBankTarget;
}
spriteId = gObjectBankIDs[v1];
if (GetBankSide(v1))
@@ -482,7 +482,7 @@ void sub_80A8764(struct Sprite *sprite)
sprite->data4 = 0;
sprite->data5 = spriteId;
sprite->invisible = TRUE;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
sprite->callback = sub_80784A8;
}
@@ -493,11 +493,11 @@ void sub_80A8818(struct Sprite *sprite)
sprite->invisible = TRUE;
if (!gBattleAnimArgs[0])
{
- v1 = gBattleAnimPlayerMonIndex;
+ v1 = gBattleAnimBankAttacker;
}
else
{
- v1 = gBattleAnimEnemyMonIndex;
+ v1 = gBattleAnimBankTarget;
}
spriteId = gObjectBankIDs[v1];
if (GetBankSide(v1))
@@ -520,11 +520,11 @@ void sub_80A8818(struct Sprite *sprite)
sprite->data6 = gBattleAnimArgs[5];
if (!gBattleAnimArgs[5])
{
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
else
{
- oamt_set_x3A_32(sprite, sub_80A88F0);
+ StoreSpriteCallbackInData6(sprite, sub_80A88F0);
}
sprite->callback = sub_80784A8;
}
@@ -541,12 +541,12 @@ void sub_80A8920(u8 taskId)
{
s16 r7;
r7 = 0x8000 / gBattleAnimArgs[3];
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[5] = -gBattleAnimArgs[5];
}
- TASK.data[0] = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ TASK.data[0] = GetAnimBankSpriteId(gBattleAnimArgs[0]);
TASK.data[1] = (gBattleAnimArgs[1] << 8) / gBattleAnimArgs[3];
TASK.data[2] = gBattleAnimArgs[2];
TASK.data[3] = gBattleAnimArgs[3];
@@ -600,30 +600,30 @@ void sub_80A8A80(u8 taskId)
{
case 0:
case 1:
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[0]);
break;
case 2:
- if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2))
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2))
{
DestroyAnimVisualTask(taskId);
return;
}
- spriteId = gObjectBankIDs[gBattleAnimPlayerMonIndex ^ 2];
+ spriteId = gObjectBankIDs[gBattleAnimBankAttacker ^ 2];
break;
case 3:
- if (!b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2))
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2))
{
DestroyAnimVisualTask(taskId);
return;
}
- spriteId = gObjectBankIDs[gBattleAnimEnemyMonIndex ^ 2];
+ spriteId = gObjectBankIDs[gBattleAnimBankTarget ^ 2];
break;
default:
DestroyAnimVisualTask(taskId);
return;
}
TASK.data[0] = spriteId;
- if (GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankTarget))
{
TASK.data[1] = gBattleAnimArgs[1];
}
@@ -648,11 +648,11 @@ static void sub_80A8B3C(u8 taskId)
void sub_80A8B88(u8 taskId)
{
u8 spriteId;
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[4]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[4]);
TASK.data[0] = gBattleAnimArgs[0];
TASK.data[1] = gBattleAnimArgs[1];
TASK.data[2] = gBattleAnimArgs[2];
@@ -660,11 +660,11 @@ void sub_80A8B88(u8 taskId)
TASK.data[4] = spriteId;
if (gBattleAnimArgs[4] == 0)
{
- TASK.data[5] = gBattleAnimPlayerMonIndex;
+ TASK.data[5] = gBattleAnimBankAttacker;
}
else
{
- TASK.data[5] = gBattleAnimEnemyMonIndex;
+ TASK.data[5] = gBattleAnimBankTarget;
}
TASK.data[12] = 1;
TASK.func = sub_80A8C0C;
@@ -714,7 +714,7 @@ static void sub_80A8C0C(u8 taskId)
void sub_80A8D34(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[3]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[3]);
sub_8078E70(spriteId, gBattleAnimArgs[4]);
TASK.data[0] = gBattleAnimArgs[0];
TASK.data[1] = gBattleAnimArgs[1];
@@ -754,7 +754,7 @@ static void sub_80A8D8C(u8 taskId)
void sub_80A8E04(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sub_8078E70(spriteId, 0);
TASK.data[1] = 0;
TASK.data[2] = gBattleAnimArgs[0];
@@ -777,11 +777,11 @@ void sub_80A8E04(u8 taskId)
{
if (gBattleAnimArgs[2] == 0)
{
- TASK.data[7] = !GetBankSide(gBattleAnimPlayerMonIndex);
+ TASK.data[7] = !GetBankSide(gBattleAnimBankAttacker);
}
else
{
- TASK.data[7] = !GetBankSide(gBattleAnimEnemyMonIndex);
+ TASK.data[7] = !GetBankSide(gBattleAnimBankTarget);
}
}
if (TASK.data[7])
@@ -798,20 +798,20 @@ void sub_80A8E04(u8 taskId)
void sub_80A8EFC(u8 taskId)
{
u8 spriteId;
- spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[2]);
+ spriteId = GetAnimBankSpriteId(gBattleAnimArgs[2]);
sub_8078E70(spriteId, 0);
TASK.data[1] = 0;
TASK.data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[2] == 0)
{
- if (GetBankSide(gBattleAnimPlayerMonIndex))
+ if (GetBankSide(gBattleAnimBankAttacker))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
}
else
{
- if (GetBankSide(gBattleAnimEnemyMonIndex))
+ if (GetBankSide(gBattleAnimBankTarget))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -891,7 +891,7 @@ void sub_80A9058(u8 taskId)
TASK.data[12] = 0;
TASK.data[10] = gBattleAnimArgs[3];
TASK.data[11] = gBattleAnimArgs[4];
- TASK.data[7] = obj_id_for_side_relative_to_move(1);
+ TASK.data[7] = GetAnimBankSpriteId(1);
TASK.data[8] = gSprites[TASK.data[7]].pos2.x;
TASK.data[9] = gSprites[TASK.data[7]].pos2.y;
TASK.data[0] = 0;
diff --git a/src/battle/battle_anim_80CA710.c b/src/battle/battle_anim_80CA710.c
new file mode 100644
index 000000000..65ccd7c21
--- /dev/null
+++ b/src/battle/battle_anim_80CA710.c
@@ -0,0 +1,18 @@
+
+// Includes
+#include "global.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+IWRAM_DATA u32 filler_03000724;
+IWRAM_DATA u16 gUnknown_03000728[4];
+IWRAM_DATA u16 gUnknown_03000730[6];
+IWRAM_DATA u32 filler_0300073c;
+
+// Static ROM declarations
+
+// .rodata
+
+// .text
diff --git a/src/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index 93c6671e5..0b6c3b6a1 100644
--- a/src/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -71,7 +71,7 @@ extern void sub_8031A6C(u16, u8);
extern void sub_80313A0(struct Sprite *);
extern void sub_803757C(void);
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_8078B34(struct Sprite *);
extern void sub_80375B4(void);
extern void sub_8010384(struct Sprite *);
@@ -99,7 +99,7 @@ extern void nullsub_47(void);
extern bool8 IsDoubleBattle(void);
extern void sub_8037840(void);
extern void sub_8031B74();
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern u8 move_anim_start_t3();
extern void sub_8037FD8(void);
extern void sub_8037F34(void);
@@ -1285,7 +1285,7 @@ void LinkOpponentHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_80375B4;
}
@@ -1636,7 +1636,7 @@ void LinkOpponentHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_803A3A8);
taskId = CreateTask(sub_803A2C4, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -1733,7 +1733,7 @@ void LinkOpponentHandlecmd50(void)
void LinkOpponentHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index 95022eaaf..3e34b2e25 100644
--- a/src/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -66,7 +66,7 @@ extern u8 gAnimScriptActive;
extern void (*gAnimScriptCallback)(void);
extern u8 move_anim_start_t3();
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern void sub_8044CA0(u8);
extern void sub_8030E38(struct Sprite *);
extern void sub_80E43C0();
@@ -82,7 +82,7 @@ extern void sub_80324BC();
extern u8 sub_8031720();
extern u8 mplay_80342A4();
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_8078B34(struct Sprite *);
extern void sub_80105EC(struct Sprite *);
extern s32 sub_803FC34(u16);
@@ -1239,7 +1239,7 @@ void LinkPartnerHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_811DB1C;
}
@@ -1592,7 +1592,7 @@ void LinkPartnerHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
r4 = AllocSpritePalette(0xD6F9);
LoadCompressedPalette(
@@ -1682,7 +1682,7 @@ void LinkPartnerHandlecmd50(void)
void LinkPartnerHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index dd8c62cce..72b56b962 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -85,7 +85,7 @@ extern void sub_8032B84(void);
extern void sub_8078B34(struct Sprite *);
extern void sub_8032BBC(void);
extern void oamt_add_pos2_onto_pos1();
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void sub_803311C(void);
extern void sub_8010384(struct Sprite *);
extern bool8 mplay_80342A4(u8);
@@ -113,7 +113,7 @@ extern void nullsub_45(void);
extern void sub_8031B74();
extern bool8 IsDoubleBattle(void);
extern void sub_8032E2C(void);
-extern u8 sub_8078874();
+extern u8 AnimBankSpriteExists();
extern u8 move_anim_start_t3();
extern void sub_80334C0(void);
@@ -1281,7 +1281,7 @@ void OpponentHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
gBattleBankFunc[gActiveBank] = sub_8032BBC;
}
@@ -1910,7 +1910,7 @@ void OpponentHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = 280;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8035C10);
taskId = CreateTask(sub_8035C44, 5);
gTasks[taskId].data[0] = gActiveBank;
if (ewram17810[gActiveBank].unk0_0)
@@ -2007,7 +2007,7 @@ void OpponentHandlecmd50(void)
void OpponentHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank) != 0)
+ if (AnimBankSpriteExists(gActiveBank) != 0)
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_player.c b/src/battle/battle_controller_player.c
index 5cfdeefbe..53b596c5e 100644
--- a/src/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -101,11 +101,11 @@ extern u8 GetBankSide(u8);
extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern void BattleLoadPlayerMonSprite();
extern bool8 IsDoubleBattle(void);
extern void sub_802D500(void);
-extern bool8 sub_8078874(u8);
+extern bool8 AnimBankSpriteExists(u8);
extern bool8 move_anim_start_t3();
extern void sub_802E460(void);
extern void b_link_standby_message(void);
@@ -2425,7 +2425,7 @@ void PlayerHandleTrainerSlideBack(void)
gSprites[gObjectBankIDs[gActiveBank]].data2 = -40;
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], SpriteCallbackDummy);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
gBattleBankFunc[gActiveBank] = sub_802D274;
}
@@ -2896,7 +2896,7 @@ void PlayerHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2.playerGender].data, 0x100 + paletteNum * 16, 32);
@@ -2994,7 +2994,7 @@ void PlayerHandlecmd50(void)
void PlayerHandleSpriteInvisibility(void)
{
- if (sub_8078874(gActiveBank))
+ if (AnimBankSpriteExists(gActiveBank))
{
gSprites[gObjectBankIDs[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
sub_8031F88(gActiveBank);
diff --git a/src/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index e05578c31..e05578c31 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
diff --git a/src/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index f2cf5bbb4..bf6ef0892 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -89,7 +89,7 @@ extern void sub_80E43C0();
extern void oamt_add_pos2_onto_pos1();
extern void sub_8078B34(struct Sprite *);
extern void sub_8030E38(struct Sprite *);
-extern void oamt_set_x3A_32();
+extern void StoreSpriteCallbackInData6();
extern u8 sub_8046400();
extern u8 sub_8077ABC();
extern u8 sub_8077F68();
@@ -1490,7 +1490,7 @@ void WallyHandleTrainerBallThrow(void)
gSprites[gObjectBankIDs[gActiveBank]].data4 = gSprites[gObjectBankIDs[gActiveBank]].pos1.y;
gSprites[gObjectBankIDs[gActiveBank]].callback = sub_8078B34;
gSprites[gObjectBankIDs[gActiveBank]].data5 = gActiveBank;
- oamt_set_x3A_32(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
+ StoreSpriteCallbackInData6(&gSprites[gObjectBankIDs[gActiveBank]], sub_8030E38);
StartSpriteAnim(&gSprites[gObjectBankIDs[gActiveBank]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[2].data, 0x100 + paletteNum * 16, 32);
diff --git a/src/battle_interface.c b/src/battle/battle_interface.c
index 246bda62b..0741ad33a 100644
--- a/src/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -2501,7 +2501,7 @@ static void sub_8045458(u8 a, u8 b)
if (GetBankSide(r4) != 0)
{
u16 species = GetMonData(&gEnemyParty[gBattlePartyID[r4]], MON_DATA_SPECIES);
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 1) != 0)
{
r4 = gSprites[a].data5;
if (b != 0)
diff --git a/src/battle_message.c b/src/battle/battle_message.c
index a3cc320ad..a3cc320ad 100644
--- a/src/battle_message.c
+++ b/src/battle/battle_message.c
diff --git a/src/battle_party_menu.c b/src/battle/battle_party_menu.c
index 49e0b8432..49e0b8432 100644
--- a/src/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
diff --git a/src/battle_records.c b/src/battle/battle_records.c
index d848a10b8..d848a10b8 100644
--- a/src/battle_records.c
+++ b/src/battle/battle_records.c
diff --git a/src/battle_setup.c b/src/battle/battle_setup.c
index 59e17e9eb..59e17e9eb 100644
--- a/src/battle_setup.c
+++ b/src/battle/battle_setup.c
diff --git a/src/battle_transition.c b/src/battle/battle_transition.c
index 53d32d03a..53d32d03a 100644
--- a/src/battle_transition.c
+++ b/src/battle/battle_transition.c
diff --git a/src/calculate_base_damage.c b/src/battle/calculate_base_damage.c
index f5c679876..f5c679876 100644
--- a/src/calculate_base_damage.c
+++ b/src/battle/calculate_base_damage.c
diff --git a/src/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c
index 0ae98af09..0ae98af09 100644
--- a/src/contest_link_80C857C.c
+++ b/src/battle/contest_link_80C857C.c
diff --git a/src/pokeball.c b/src/battle/pokeball.c
index ee3b95678..ee3b95678 100644
--- a/src/pokeball.c
+++ b/src/battle/pokeball.c
diff --git a/src/post_battle_event_funcs.c b/src/battle/post_battle_event_funcs.c
index 27d7022fe..27d7022fe 100644
--- a/src/post_battle_event_funcs.c
+++ b/src/battle/post_battle_event_funcs.c
diff --git a/src/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 343c8f183..343c8f183 100644
--- a/src/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
diff --git a/src/smokescreen.c b/src/battle/smokescreen.c
index 8345cb6ad..8345cb6ad 100644
--- a/src/smokescreen.c
+++ b/src/battle/smokescreen.c
diff --git a/src/daycare.c b/src/daycare.c
deleted file mode 100644
index 7f688016a..000000000
--- a/src/daycare.c
+++ /dev/null
@@ -1,350 +0,0 @@
-#include "global.h"
-#include "daycare.h"
-#include "pokemon.h"
-#include "species.h"
-#include "items.h"
-#include "string_util.h"
-
-extern u8 gLastFieldPokeMenuOpened;
-
-u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
-{
- s8 nickname[POKEMON_NAME_LENGTH * 2];
-
- GetMonData(mon, MON_DATA_NICKNAME, nickname);
- return StringCopy10(dest, nickname);
-}
-
-u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest)
-{
- s8 nickname[POKEMON_NAME_LENGTH * 2];
-
- GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
- return StringCopy10(dest, nickname);
-}
-
-u8 Daycare_CountPokemon(struct BoxPokemon *daycare_data)
-{
- u8 i, count;
- count = 0;
-
- for(i = 0;i <= 1;i++)
- if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0)
- count++;
-
- return count;
-}
-
-void sub_8041324(struct BoxPokemon * box_pokemon, struct RecordMixing_UnknownStruct * void_pointer)
-{
- u8 i;
- u8 specCount;
- specCount = 0;
- for (i=0; i<2; i++)
- {
- if (GetBoxMonData(&box_pokemon[i], MON_DATA_SPECIES) != SPECIES_NONE)
- {
- specCount ++;
- if (GetBoxMonData(&box_pokemon[i], MON_DATA_HELD_ITEM) == ITEM_NONE)
- {
- void_pointer->unk74[i] = 0;
- } else
- {
- void_pointer->unk74[i] = 1;
- }
- } else
- {
- void_pointer->unk74[i] = 1;
- }
- }
- void_pointer->unk70 = specCount;
-}
-
-s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data)
-{
- u8 i;
-
- for(i = 0;i <= 1;i++)
- if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0)
- return i;
-
- return -1;
-}
-
-/*void Daycare_SendPokemon(struct Pokemon * mon, struct BoxPokemon * daycare_data){ // unfinished
- s8 empty_slot;
-
- empty_slot = Daycare_FindEmptySpot(daycare_data);
- if(MonHasMail(mon) != 0){ // if the mon holds a mail?
- u8 empty_slot_times_56 = empty_slot * 56;
- u8 * something2 = ((u8 *) (daycare_data + 2)) + empty_slot_times_56 + 36;
- StringCopy(something2, gSaveBlock2.playerName);
- PadNameString(something2, 0xFC);
- something2 += 8;
- GetMonNick(mon, something2);
- u8 pokerus = GetMonData(mon, MON_DATA_64);
- something1 += (u8 * daycare_data)
-}*/
-
-__attribute__((naked))
-void Daycare_SendPokemon()
-{
- // strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped:
- // all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC
- // the ldm/stm section probably copies some struct, but I'm not sure how the code would look
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- adds r7, r0, 0\n\
- mov r8, r1\n\
- mov r0, r8\n\
- bl Daycare_FindEmptySpot\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- mov r9, r4\n\
- adds r0, r7, 0\n\
- bl MonHasMail\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- beq _0804144A\n\
- lsls r0, r4, 24\n\
- asrs r0, 24\n\
- lsls r4, r0, 3\n\
- subs r4, r0\n\
- lsls r4, 3\n\
- adds r5, r4, 0\n\
- adds r5, 0xA0\n\
- add r5, r8\n\
- adds r6, r5, 0\n\
- adds r6, 0x24\n\
- ldr r1, _08041490 @ =gSaveBlock2\n\
- adds r0, r6, 0\n\
- bl StringCopy\n\
- adds r0, r6, 0\n\
- movs r1, 0xFC\n\
- bl PadNameString\n\
- adds r6, 0x8\n\
- adds r0, r7, 0\n\
- adds r1, r6, 0\n\
- bl GetMonNick\n\
- adds r0, r7, 0\n\
- movs r1, 0x40\n\
- bl GetMonData\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- add r4, r8\n\
- ldr r2, _08041494 @ =gSaveBlock1\n\
- lsls r1, r0, 3\n\
- adds r1, r0\n\
- lsls r1, 2\n\
- adds r1, r2\n\
- adds r4, 0xA0\n\
- ldr r0, _08041498 @ =0x00002b4c\n\
- adds r1, r0\n\
- ldm r1!, {r0,r2,r3}\n\
- stm r4!, {r0,r2,r3}\n\
- ldm r1!, {r0,r2,r3}\n\
- stm r4!, {r0,r2,r3}\n\
- ldm r1!, {r0,r2,r3}\n\
- stm r4!, {r0,r2,r3}\n\
- adds r0, r7, 0\n\
- bl TakeMailFromMon\n\
-_0804144A:\n\
- mov r2, r9\n\
- lsls r4, r2, 24\n\
- asrs r4, 24\n\
- lsls r5, r4, 2\n\
- adds r4, r5, r4\n\
- lsls r4, 4\n\
- add r4, r8\n\
- adds r0, r4, 0\n\
- adds r1, r7, 0\n\
- movs r2, 0x50\n\
- bl memcpy\n\
- adds r0, r4, 0\n\
- bl BoxMonRestorePP\n\
- movs r0, 0x88\n\
- lsls r0, 1\n\
- add r0, r8\n\
- adds r0, r5\n\
- movs r1, 0\n\
- str r1, [r0]\n\
- adds r0, r7, 0\n\
- bl ZeroMonData\n\
- bl party_compaction\n\
- bl CalculatePlayerPartyCount\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_08041490: .4byte gSaveBlock2\n\
-_08041494: .4byte gSaveBlock1\n\
-_08041498: .4byte 0x00002b4c\n\
- .syntax divided\n");
-}
-
-void Daycare_SendPokemon_Special()
-{
- Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, gSaveBlock1.daycareData);
-}
-
-void sub_80417F4(u8 *);
-
-void sub_80414C0(struct BoxPokemon * daycare_data)
-{
- u32 second_species;
- if((GetBoxMonData(&daycare_data[1], MON_DATA_SPECIES) != 0) && ((second_species = GetBoxMonData(&daycare_data[0], MON_DATA_SPECIES)) == 0)){
- daycare_data[0] = daycare_data[1];
- ZeroBoxMonData(&daycare_data[1]);
- memcpy(daycare_data + 2, (u8 *) (daycare_data + 1) + 0x88, 0x38);
- *((u32 *)(daycare_data) + 68) = *((u32 *)(daycare_data) + 69);
- *((u32 *)(daycare_data) + 69) = second_species;
- sub_80417F4((u8 *) (daycare_data + 1) + 0x88);
- }
-}
-
-u8 TryIncrementMonLevel(struct Pokemon *);
-extern u16 gMoveToLearn;
-
-void sub_804151C(struct Pokemon * mon)
-{
- s32 i;
- u8 r6;
- u16 temp;
-
- for(i = 0; i < 100; i++){
- if(TryIncrementMonLevel(mon) == FALSE) goto end;
-
- r6 = 1;
- while((temp = MonTryLearningNewMove(mon, r6)) != 0){
- r6 = 0;
- if(temp == 0xffff){
- DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
- }
- }
- }
-
- end:
-
- CalculateMonStats(mon);
-}
-
-__attribute__((naked))
-u16 sub_8041570(struct BoxPokemon * daycare_data, u8 a2){
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- sub sp, 0x68\n\
- adds r5, r0, 0\n\
- lsls r1, 24\n\
- lsrs r4, r1, 24\n\
- lsls r7, r4, 2\n\
- adds r0, r7, r4\n\
- lsls r0, 4\n\
- adds r6, r5, r0\n\
- ldr r1, _08041640 @ =gStringVar1\n\
- adds r0, r6, 0\n\
- bl GetBoxMonNick\n\
- adds r0, r6, 0\n\
- movs r1, 0xB\n\
- bl GetBoxMonData\n\
- lsls r0, 16\n\
- lsrs r0, 16\n\
- mov r9, r0\n\
- adds r0, r6, 0\n\
- mov r1, sp\n\
- bl sub_803B4B4\n\
- mov r0, sp\n\
- movs r1, 0x38\n\
- bl GetMonData\n\
- cmp r0, 0x64\n\
- beq _080415D8\n\
- mov r0, sp\n\
- movs r1, 0x19\n\
- bl GetMonData\n\
- movs r2, 0x88\n\
- lsls r2, 1\n\
- adds r1, r5, r2\n\
- adds r1, r7\n\
- ldr r1, [r1]\n\
- adds r0, r1\n\
- str r0, [sp, 0x64]\n\
- add r2, sp, 0x64\n\
- mov r0, sp\n\
- movs r1, 0x19\n\
- bl SetMonData\n\
- mov r0, sp\n\
- bl sub_804151C\n\
-_080415D8:\n\
- ldr r0, _08041644 @ =gPlayerParty\n\
- movs r1, 0xFA\n\
- lsls r1, 1\n\
- adds r1, r0\n\
- mov r8, r1\n\
- mov r0, r8\n\
- mov r1, sp\n\
- movs r2, 0x64\n\
- bl memcpy\n\
- lsls r0, r4, 3\n\
- subs r0, r4\n\
- lsls r1, r0, 3\n\
- adds r0, r5, r1\n\
- adds r0, 0xC0\n\
- ldrh r0, [r0]\n\
- cmp r0, 0\n\
- beq _08041610\n\
- adds r4, r1, 0\n\
- adds r4, 0xA0\n\
- adds r4, r5, r4\n\
- mov r0, r8\n\
- adds r1, r4, 0\n\
- bl GiveMailToMon2\n\
- adds r0, r4, 0\n\
- bl sub_80417F4\n\
-_08041610:\n\
- bl party_compaction\n\
- adds r0, r6, 0\n\
- bl ZeroBoxMonData\n\
- movs r2, 0x88\n\
- lsls r2, 1\n\
- adds r0, r5, r2\n\
- adds r0, r7\n\
- movs r1, 0\n\
- str r1, [r0]\n\
- adds r0, r5, 0\n\
- bl sub_80414C0\n\
- bl CalculatePlayerPartyCount\n\
- mov r0, r9\n\
- add sp, 0x68\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_08041640: .4byte gStringVar1\n\
-_08041644: .4byte gPlayerParty\n\
- .syntax divided");
-}
-
-extern u8 gSpecialVar_0x8004;
-
-u16 sub_8041648()
-{
- return sub_8041570(gSaveBlock1.daycareData, gSpecialVar_0x8004);
-}
-
-u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){
- struct BoxPokemon temp = *mon;
- u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps;
- SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp);
- return GetLevelFromBoxMonExp(&temp);
-}
diff --git a/src/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index c7d81f502..c7d81f502 100644
--- a/src/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
diff --git a/src/mori_debug_menu.c b/src/debug/mori_debug_menu.c
index 4eadaa78b..1595ecd2e 100644
--- a/src/mori_debug_menu.c
+++ b/src/debug/mori_debug_menu.c
@@ -52,7 +52,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
u16 monData;
u16 var;
- monData = GetMonData(gPlayerParty, 11, ptr);
+ monData = GetMonData(gPlayerParty, MON_DATA_SPECIES, ptr);
var = sub_8041870(monData);
StringCopy(localPtr, gSpeciesNames[monData]);
StringAppend(localPtr, gUnknown_0839B24D);
@@ -67,7 +67,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
s8 MoriDebugMenu_Egg(void)
{
- if ( Daycare_CountPokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
+ if ( Daycare_CountPokemon(&gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
sub_8041940();
CloseMenu();
@@ -76,7 +76,7 @@ s8 MoriDebugMenu_Egg(void)
s8 MoriDebugMenu_MaleEgg(void)
{
- if ( Daycare_CountPokemon(gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
+ if ( Daycare_CountPokemon(&gSaveBlock1.daycareData) == 2 && daycare_relationship_score_from_savegame() )
sub_8041950();
CloseMenu();
@@ -117,7 +117,7 @@ s8 MoriDebugMenu_BreedEgg(void)
SetMonData(&gPlayerParty[loopCounter], MON_DATA_FRIENDSHIP, &friendship);
}
}
- gSaveBlock1.filler_30B6 = -3;
+ gSaveBlock1.daycareData.misc.countersEtc.unk_11a = -3;
CloseMenu();
return 1;
}
diff --git a/src/sound_check_menu.c b/src/debug/sound_check_menu.c
index 14261b75e..14261b75e 100644
--- a/src/sound_check_menu.c
+++ b/src/debug/sound_check_menu.c
diff --git a/src/unknown_debug_menu.c b/src/debug/unknown_debug_menu.c
index a81625f2a..a81625f2a 100644
--- a/src/unknown_debug_menu.c
+++ b/src/debug/unknown_debug_menu.c
diff --git a/src/blend_palette.c b/src/engine/blend_palette.c
index 843c50ac1..843c50ac1 100644
--- a/src/blend_palette.c
+++ b/src/engine/blend_palette.c
diff --git a/src/cable_club.c b/src/engine/cable_club.c
index 7a85f2b6c..7a85f2b6c 100644
--- a/src/cable_club.c
+++ b/src/engine/cable_club.c
diff --git a/src/clear_save_data_menu.c b/src/engine/clear_save_data_menu.c
index 498562fe0..498562fe0 100644
--- a/src/clear_save_data_menu.c
+++ b/src/engine/clear_save_data_menu.c
diff --git a/src/clock.c b/src/engine/clock.c
index 9635514d2..9635514d2 100644
--- a/src/clock.c
+++ b/src/engine/clock.c
diff --git a/src/decompress.c b/src/engine/decompress.c
index d7f7087a7..3e5993118 100644
--- a/src/decompress.c
+++ b/src/engine/decompress.c
@@ -6,7 +6,7 @@
#define WRAM 0x02000000
-void sub_800D238(const void *src, void *dest)
+void LZDecompressWram(const void *src, void *dest)
{
LZ77UnCompWram(src, dest);
}
diff --git a/src/link.c b/src/engine/link.c
index 850201ccb..850201ccb 100644
--- a/src/link.c
+++ b/src/engine/link.c
diff --git a/src/load_save.c b/src/engine/load_save.c
index 8424b1121..8424b1121 100644
--- a/src/load_save.c
+++ b/src/engine/load_save.c
diff --git a/src/main.c b/src/engine/main.c
index d7c11b6c8..d7c11b6c8 100644
--- a/src/main.c
+++ b/src/engine/main.c
diff --git a/src/main_menu.c b/src/engine/main_menu.c
index e0af86f3d..e0af86f3d 100644
--- a/src/main_menu.c
+++ b/src/engine/main_menu.c
diff --git a/src/menu.c b/src/engine/menu.c
index a9c4aaa43..a9c4aaa43 100644
--- a/src/menu.c
+++ b/src/engine/menu.c
diff --git a/src/menu_cursor.c b/src/engine/menu_cursor.c
index d43be2a2f..d43be2a2f 100644
--- a/src/menu_cursor.c
+++ b/src/engine/menu_cursor.c
diff --git a/src/mystery_event_menu.c b/src/engine/mystery_event_menu.c
index 0e48dc177..0e48dc177 100644
--- a/src/mystery_event_menu.c
+++ b/src/engine/mystery_event_menu.c
diff --git a/src/mystery_event_script.c b/src/engine/mystery_event_script.c
index f507942a7..a6568f5de 100644
--- a/src/mystery_event_script.c
+++ b/src/engine/mystery_event_script.c
@@ -401,8 +401,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
if (species != SPECIES_EGG)
{
u16 pokedexNum = SpeciesToNationalPokedexNum(species);
- GetNationalPokedexFlag(pokedexNum, 2);
- GetNationalPokedexFlag(pokedexNum, 3);
+ GetSetPokedexFlag(pokedexNum, 2);
+ GetSetPokedexFlag(pokedexNum, 3);
}
heldItem = GetMonData(&gPlayerParty[5], MON_DATA_HELD_ITEM);
diff --git a/src/name_string_util.c b/src/engine/name_string_util.c
index f1a935453..f1a935453 100644
--- a/src/name_string_util.c
+++ b/src/engine/name_string_util.c
diff --git a/src/naming_screen.c b/src/engine/naming_screen.c
index 3f8417e6d..3f8417e6d 100644
--- a/src/naming_screen.c
+++ b/src/engine/naming_screen.c
diff --git a/src/option_menu.c b/src/engine/option_menu.c
index dfc49b035..dfc49b035 100644
--- a/src/option_menu.c
+++ b/src/engine/option_menu.c
diff --git a/src/palette.c b/src/engine/palette.c
index 94a4f8092..17e9ca178 100644
--- a/src/palette.c
+++ b/src/engine/palette.c
@@ -74,7 +74,7 @@ static bool8 IsSoftwarePaletteFadeFinishing(void);
void LoadCompressedPalette(const void *src, u16 offset, u16 size)
{
- sub_800D238(src, sPaletteDecompressionBuffer);
+ LZDecompressWram(src, sPaletteDecompressionBuffer);
CpuCopy16(sPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size);
CpuCopy16(sPaletteDecompressionBuffer, gPlttBufferFaded + offset, size);
}
diff --git a/src/play_time.c b/src/engine/play_time.c
index 9882c9c4b..9882c9c4b 100644
--- a/src/play_time.c
+++ b/src/engine/play_time.c
diff --git a/src/record_mixing.c b/src/engine/record_mixing.c
index d02d89467..8dff432c1 100644
--- a/src/record_mixing.c
+++ b/src/engine/record_mixing.c
@@ -29,7 +29,7 @@ extern u8 ewram[];
#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000))
#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000))
-extern struct RecordMixing_UnknownStruct gUnknown_02038738;
+extern struct RecordMixingDayCareMail gUnknown_02038738;
extern u16 gSpecialVar_0x8005;
u32 gUnknown_03005D2C;
@@ -42,7 +42,7 @@ void *recordMixingTvShows = &gSaveBlock1.tvShows;
void *gUnknown_083D0274 = &gSaveBlock1.unknown_2ABC;
void *gUnknown_083D0278 = &gSaveBlock1.mauvilleMan;
void *recordMixingEasyChatPairs = &gSaveBlock1.easyChatPairs;
-struct RecordMixing_UnknownStruct *gUnknown_083D0280 = &gUnknown_02038738;
+struct RecordMixingDayCareMail *gUnknown_083D0280 = &gUnknown_02038738;
void *gUnknown_083D0284 = &gSaveBlock2.filler_A8;
#define BUFFER_CHUNK_SIZE 200
@@ -59,7 +59,7 @@ struct PlayerRecords
u8 filler1004[0x40];
u8 filler1044[0x40];
struct EasyChatPair easyChatPairs[5];
- struct RecordMixing_UnknownStruct filler10AC;
+ struct RecordMixingDayCareMail filler10AC;
u8 filler1124[0xA4];
u16 filler11C8[0x34];
};
@@ -74,10 +74,10 @@ void RecordMixing_PrepareExchangePacket(void)
memcpy(unk_2018000.filler1004, gUnknown_083D0274, sizeof(unk_2008000.filler1004));
memcpy(unk_2018000.filler1044, gUnknown_083D0278, sizeof(unk_2008000.filler1044));
memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(unk_2018000.easyChatPairs));
- gUnknown_02038738.data[0] = gSaveBlock1.filler_303C.data[0];
- gUnknown_02038738.data[1] = gSaveBlock1.filler_303C.data[1];
- sub_8041324(gSaveBlock1.daycareData, &gUnknown_02038738);
- memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixing_UnknownStruct));
+ gUnknown_02038738.mail[0] = gSaveBlock1.daycareData.misc.mail[0];
+ gUnknown_02038738.mail[1] = gSaveBlock1.daycareData.misc.mail[1];
+ sub_8041324(gSaveBlock1.daycareData.mons, &gUnknown_02038738);
+ memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixingDayCareMail));
memcpy(unk_2018000.filler1124, gUnknown_083D0284, sizeof(unk_2018000.filler1124));
if (GetMultiplayerId() == 0)
@@ -461,10 +461,10 @@ u8 sub_80B9BBC(u16 *a)
void sub_80B9BC4(u8 *a, size_t b, u8 c[][2], u8 d, u8 e)
{
- struct RecordMixing_UnknownStructSub *r6 = (struct RecordMixing_UnknownStructSub *)(a + b * c[d][0]);
- struct RecordMixing_UnknownStructSub *src = r6 + c[d][1];
- struct RecordMixing_UnknownStructSub sp0 = *src;
- struct RecordMixing_UnknownStructSub *r8 = (struct RecordMixing_UnknownStructSub *)(a + b * c[e][0]);
+ struct DayCareMail *r6 = (struct DayCareMail *)(a + b * c[d][0]);
+ struct DayCareMail *src = r6 + c[d][1];
+ struct DayCareMail sp0 = *src;
+ struct DayCareMail *r8 = (struct DayCareMail *)(a + b * c[e][0]);
r6 += c[d][1];
*r6 = *(r8 + c[e][1]);
@@ -511,7 +511,7 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
u16 i; // r3
u16 r7;
u8 r1;
- struct RecordMixing_UnknownStruct *r6;
+ struct DayCareMisc *r6;
//asm("":::"r8");
SeedRng(gLinkPlayers[0].trainerId);
@@ -526,7 +526,7 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
sp3C = 0;
for (i = 0; i < r8; i++)
{
- r6 = (struct RecordMixing_UnknownStruct *)(a + b * i);
+ r6 = (struct DayCareMisc *)(a + b * i);
if (r6->unk70 != 0)
{
for (r7 = 0; r7 < r6->unk70; r7++)
@@ -540,7 +540,7 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
//_080B9D46
for (r7 = 0, i = 0; i < r8; i++)
{
- r6 = (struct RecordMixing_UnknownStruct *)(a + b * i);
+ r6 = (struct DayCareMisc *)(a + b * i);
if (sp1C[i][0] == 1 || sp1C[i][1] == 1)
sp3C++;
if (sp1C[i][0] == 1 && sp1C[i][1] == 0)
@@ -596,7 +596,7 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
//_080B9E3E
for (i = 0; i < 4; i++)
{
- r6 = (struct RecordMixing_UnknownStruct *)a + b * c;
+ r6 = (struct DayCareMisc *)a + b * c;
spC[i] = r6;
}
r1 = sub_80B9C4C(d) % 3;
@@ -630,7 +630,7 @@ void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d)
//_080B9EF0
//memcpy(&gSaveBlock1.filler_303C.data[0], a + b * c, 0x38);
//memcpy(&gSaveBlock1.filler_303C.data[1], a + b * c + 0x38, 0x38);
- r6 = (struct RecordMixing_UnknownStruct *)(a + b * c);
+ r6 = (struct DayCareMisc *)(a + b * c);
gSaveBlock1.filler_303C.data[0] = r6->data[0];
gSaveBlock1.filler_303C.data[1] = r6->data[1];
//memcpy(&gSaveBlock1.filler_303C.data[0], &r6->data[0], 0x38);
diff --git a/src/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index d052992ad..d052992ad 100644
--- a/src/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
diff --git a/src/rng.c b/src/engine/rng.c
index 7d4b5600e..7d4b5600e 100644
--- a/src/rng.c
+++ b/src/engine/rng.c
diff --git a/src/rtc.c b/src/engine/rtc.c
index d73f943d2..d73f943d2 100644
--- a/src/rtc.c
+++ b/src/engine/rtc.c
diff --git a/src/save.c b/src/engine/save.c
index eae3f4470..eae3f4470 100644
--- a/src/save.c
+++ b/src/engine/save.c
diff --git a/src/save_failed_screen.c b/src/engine/save_failed_screen.c
index b91e8b5bf..b91e8b5bf 100644
--- a/src/save_failed_screen.c
+++ b/src/engine/save_failed_screen.c
diff --git a/src/save_menu_util.c b/src/engine/save_menu_util.c
index a2d17bd36..a2d17bd36 100644
--- a/src/save_menu_util.c
+++ b/src/engine/save_menu_util.c
diff --git a/src/script.c b/src/engine/script.c
index f049b96fc..f049b96fc 100644
--- a/src/script.c
+++ b/src/engine/script.c
diff --git a/src/sound.c b/src/engine/sound.c
index 91f5e06a3..91f5e06a3 100644
--- a/src/sound.c
+++ b/src/engine/sound.c
diff --git a/src/sprite.c b/src/engine/sprite.c
index fb8c2b648..fb8c2b648 100644
--- a/src/sprite.c
+++ b/src/engine/sprite.c
diff --git a/src/string_util.c b/src/engine/string_util.c
index 9686256a1..9686256a1 100644
--- a/src/string_util.c
+++ b/src/engine/string_util.c
diff --git a/src/task.c b/src/engine/task.c
index 7bd2b5937..7bd2b5937 100644
--- a/src/task.c
+++ b/src/engine/task.c
diff --git a/src/text.c b/src/engine/text.c
index b27084b86..abde4484a 100644
--- a/src/text.c
+++ b/src/engine/text.c
@@ -219,12 +219,12 @@ static const u8 sBrailleGlyphs[] = INCBIN_U8("graphics/fonts/font6_braille.1bpp"
static const u32 sDownArrowTiles[] = INCBIN_U32("graphics/fonts/down_arrow.4bpp");
// clang-format off
-#include "data/text/type1_map.h"
-#include "data/text/type3_map.h"
-#include "data/text/font1_widths.h"
-#include "data/text/font4_widths.h"
-#include "data/text/font0_widths.h"
-#include "data/text/font3_widths.h"
+#include "../data/text/type1_map.h"
+#include "../data/text/type3_map.h"
+#include "../data/text/font1_widths.h"
+#include "../data/text/font4_widths.h"
+#include "../data/text/font0_widths.h"
+#include "../data/text/font3_widths.h"
// clang-format on
const u16 gUnknownPalette_81E6692[] = INCBIN_U16("graphics/fonts/unknown_81E6692.gbapal");
diff --git a/src/text_window.c b/src/engine/text_window.c
index 9a88789d1..9a88789d1 100644
--- a/src/text_window.c
+++ b/src/engine/text_window.c
diff --git a/src/tileset_anim.c b/src/engine/tileset_anim.c
index 34685381d..34685381d 100644
--- a/src/tileset_anim.c
+++ b/src/engine/tileset_anim.c
diff --git a/src/time_events.c b/src/engine/time_events.c
index accb03db8..accb03db8 100644
--- a/src/time_events.c
+++ b/src/engine/time_events.c
diff --git a/src/trade.c b/src/engine/trade.c
index cb190d194..0816fe555 100644
--- a/src/trade.c
+++ b/src/engine/trade.c
@@ -37,6 +37,7 @@ struct UnkStructD {
extern const struct InGameTrade gIngameTrades[];
extern const u16 gIngameTradeMail[][10];
+IWRAM_DATA u8 gUnknown_03000508[8];
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {
int y, x;
diff --git a/src/trainer_card.c b/src/engine/trainer_card.c
index bcb62ede6..bcb62ede6 100644
--- a/src/trainer_card.c
+++ b/src/engine/trainer_card.c
diff --git a/src/trig.c b/src/engine/trig.c
index e16a69e63..e16a69e63 100644
--- a/src/trig.c
+++ b/src/engine/trig.c
diff --git a/src/util.c b/src/engine/util.c
index 582b9f806..582b9f806 100644
--- a/src/util.c
+++ b/src/engine/util.c
diff --git a/src/bard_music.c b/src/field/bard_music.c
index daf003233..daf003233 100644
--- a/src/bard_music.c
+++ b/src/field/bard_music.c
diff --git a/src/berry.c b/src/field/berry.c
index d82eab2a6..d82eab2a6 100644
--- a/src/berry.c
+++ b/src/field/berry.c
diff --git a/src/berry_tag_screen.c b/src/field/berry_tag_screen.c
index 1413a02ca..1413a02ca 100644
--- a/src/berry_tag_screen.c
+++ b/src/field/berry_tag_screen.c
diff --git a/src/bike.c b/src/field/bike.c
index 80cab0850..dae86bd88 100644
--- a/src/bike.c
+++ b/src/field/bike.c
@@ -10,8 +10,6 @@
#include "songs.h"
#include "sound.h"
-extern u8 sub_80608A4(u8);
-
extern u8 gUnknown_02039250;
extern u8 gUnknown_02039251;
extern u8 gUnknown_0202E854;
diff --git a/src/birch_pc.c b/src/field/birch_pc.c
index 5fb6427c3..9872dd54d 100644
--- a/src/birch_pc.c
+++ b/src/field/birch_pc.c
@@ -91,15 +91,15 @@ const u8 *GetPokedexRatingText(u16 count)
return gBirchDexRatingText_LessThan200;
if (count == 200)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
- || GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ || GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // Jirachi or Deoxys is not counted towards the dex completion. If either of these flags are enabled, it means the actual count is less than 200.
return gBirchDexRatingText_LessThan200;
return gBirchDexRatingText_DexCompleted;
}
if (count == 201)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
- && GetNationalPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200.
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), 1)
+ && GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), 1)) // If both of these flags are enabled, it means the actual count is less than 200.
return gBirchDexRatingText_LessThan200;
return gBirchDexRatingText_DexCompleted;
}
diff --git a/src/braille_puzzles.c b/src/field/braille_puzzles.c
index b11b1ff3a..b11b1ff3a 100644
--- a/src/braille_puzzles.c
+++ b/src/field/braille_puzzles.c
diff --git a/src/choose_party.c b/src/field/choose_party.c
index 9cdf63fc8..9cdf63fc8 100644
--- a/src/choose_party.c
+++ b/src/field/choose_party.c
diff --git a/src/coins.c b/src/field/coins.c
index 3c6356612..3c6356612 100644
--- a/src/coins.c
+++ b/src/field/coins.c
diff --git a/src/coord_event_weather.c b/src/field/coord_event_weather.c
index 9c5a1ca4d..9c5a1ca4d 100644
--- a/src/coord_event_weather.c
+++ b/src/field/coord_event_weather.c
diff --git a/src/field/daycare.c b/src/field/daycare.c
new file mode 100644
index 000000000..591b5b188
--- /dev/null
+++ b/src/field/daycare.c
@@ -0,0 +1,1690 @@
+#include "global.h"
+#include "daycare.h"
+#include "pokemon.h"
+#include "event_data.h"
+#include "species.h"
+#include "items.h"
+#include "text.h"
+#include "string_util.h"
+#include "mail_data.h"
+#include "name_string_util.h"
+#include "pokemon_storage_system.h"
+#include "rng.h"
+#include "moves.h"
+#include "trade.h"
+#include "strings2.h"
+#include "data/pokemon/egg_moves.h"
+#include "party_menu.h"
+#include "field_effect.h"
+#include "main.h"
+#include "menu.h"
+#include "sound.h"
+#include "songs.h"
+#include "script.h"
+#include "overworld.h"
+
+IWRAM_DATA u16 gUnknown_03000470[52];
+IWRAM_DATA u16 gUnknown_030004D8[4];
+IWRAM_DATA u16 gUnknown_030004E0[4];
+IWRAM_DATA u16 gUnknown_030004E8[12];
+IWRAM_DATA u16 gUnknown_03000500[4];
+
+static void sub_80417F4(struct DayCareMail *);
+static void sub_80420FC(struct Pokemon *, u16, struct DayCareData *);
+static u8 daycare_relationship_score(struct DayCareData *);
+
+const u8 *const gUnknown_08209AC4[] = {
+ DaycareText_GetAlongVeryWell,
+ DaycareText_GetAlong,
+ DaycareText_DontLikeOther,
+ DaycareText_PlayOther
+};
+
+const u8 gUnknown_08209AD4[] = _("タマゴ");
+
+u8 *GetMonNick(struct Pokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest)
+{
+ s8 nickname[POKEMON_NAME_LENGTH * 2];
+
+ GetBoxMonData(mon, MON_DATA_NICKNAME, nickname);
+ return StringCopy10(dest, nickname);
+}
+
+u8 Daycare_CountPokemon(struct DayCareData *daycare_data)
+{
+ u8 i, count;
+ count = 0;
+
+ for(i = 0;i <= 1;i++)
+ if(GetBoxMonData(&daycare_data->mons[i], MON_DATA_SPECIES) != 0)
+ count++;
+
+ return count;
+}
+
+void sub_8041324(struct BoxPokemon * box_pokemon, struct RecordMixingDayCareMail * daycareMailEtc)
+{
+ u8 i;
+ u8 specCount;
+ specCount = 0;
+ for (i=0; i<2; i++)
+ {
+ if (GetBoxMonData(&box_pokemon[i], MON_DATA_SPECIES) != SPECIES_NONE)
+ {
+ specCount ++;
+ if (GetBoxMonData(&box_pokemon[i], MON_DATA_HELD_ITEM) == ITEM_NONE)
+ {
+ daycareMailEtc->unk74[i] = 0;
+ } else
+ {
+ daycareMailEtc->unk74[i] = 1;
+ }
+ } else
+ {
+ daycareMailEtc->unk74[i] = 1;
+ }
+ }
+ daycareMailEtc->unk70 = specCount;
+}
+
+static s8 Daycare_FindEmptySpot(struct BoxPokemon * daycare_data)
+{
+ u8 i;
+
+ for(i = 0;i <= 1;i++)
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0)
+ return i;
+
+ return -1;
+}
+
+static void Daycare_SendPokemon(struct Pokemon * mon, struct DayCareData * daycare_data)
+{
+ s8 empty_slot;
+ u8 mail;
+ u8 *names;
+
+ empty_slot = Daycare_FindEmptySpot(daycare_data->mons);
+ if(MonHasMail(mon)) {
+ StringCopy((names = daycare_data->misc.mail[empty_slot].names), gSaveBlock2.playerName);
+ PadNameString(names, 0xFC);
+ names += 8;
+ GetMonNick(mon, names);
+ mail = GetMonData(mon, MON_DATA_MAIL);
+ daycare_data->misc.mail[empty_slot].message = gSaveBlock1.mail[mail];
+ TakeMailFromMon(mon);
+ }
+ daycare_data->mons[empty_slot] = mon->box;
+ BoxMonRestorePP(&daycare_data->mons[empty_slot]);
+ daycare_data->misc.countersEtc.steps[empty_slot] = 0;
+ ZeroMonData(mon);
+ party_compaction();
+ CalculatePlayerPartyCount();
+}
+
+void Daycare_SendPokemon_Special()
+{
+ Daycare_SendPokemon(gPlayerParty + gLastFieldPokeMenuOpened, &gSaveBlock1.daycareData);
+}
+
+static void sub_80414C0(struct DayCareData * daycare_data)
+{
+ if((GetBoxMonData(&daycare_data->mons[1], MON_DATA_SPECIES) != 0) && GetBoxMonData(&daycare_data->mons[0], MON_DATA_SPECIES) == 0)
+ {
+ daycare_data->mons[0] = daycare_data->mons[1];
+ ZeroBoxMonData(&daycare_data->mons[1]);
+ daycare_data->misc.mail[0] = daycare_data->misc.mail[1];
+ daycare_data->misc.countersEtc.steps[0] = daycare_data->misc.countersEtc.steps[1];
+ daycare_data->misc.countersEtc.steps[1] = 0;
+ sub_80417F4(&daycare_data->misc.mail[1]);
+ }
+}
+
+u8 TryIncrementMonLevel(struct Pokemon *);
+extern u16 gMoveToLearn;
+
+static void DayCare_LevelUpMoves(struct Pokemon * mon)
+{
+ s32 i;
+ u8 r6;
+ u16 temp;
+
+ for (i = 0; i < MAX_LEVEL; i++)
+ {
+ if (TryIncrementMonLevel(mon))
+ {
+ r6 = 1;
+ while ((temp = MonTryLearningNewMove(mon, r6)) != 0)
+ {
+ r6 = 0;
+ if (temp == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn);
+ }
+ }
+ else
+ break;
+ }
+
+ CalculateMonStats(mon);
+}
+
+static u16 sub_8041570(struct DayCareData * daycare_data, u8 slot)
+{
+ u16 species;
+ u32 experience;
+ struct Pokemon pokemon;
+
+ GetBoxMonNick(&daycare_data->mons[slot], gStringVar1);
+ species = GetBoxMonData(&daycare_data->mons[slot], MON_DATA_SPECIES);
+ sub_803B4B4(&daycare_data->mons[slot], &pokemon);
+ if (GetMonData(&pokemon, MON_DATA_LEVEL) != MAX_LEVEL)
+ {
+ experience = GetMonData(&pokemon, MON_DATA_EXP) + daycare_data->misc.countersEtc.steps[slot];
+ SetMonData(&pokemon, MON_DATA_EXP, (u8 *)&experience);
+ DayCare_LevelUpMoves(&pokemon);
+ }
+ gPlayerParty[PARTY_SIZE - 1] = pokemon;
+ if (daycare_data->misc.mail[slot].message.itemId)
+ {
+ GiveMailToMon2(&gPlayerParty[PARTY_SIZE - 1], &daycare_data->misc.mail[slot].message);
+ sub_80417F4(&daycare_data->misc.mail[slot]);
+ }
+ party_compaction();
+ ZeroBoxMonData(&daycare_data->mons[slot]);
+ daycare_data->misc.countersEtc.steps[slot] = 0;
+ sub_80414C0(daycare_data);
+ CalculatePlayerPartyCount();
+ return species;
+}
+
+u16 sub_8041648()
+{
+ return sub_8041570(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+}
+
+u8 Daycare_GetLevelAfterSteps(struct BoxPokemon * mon, u32 steps){
+ struct BoxPokemon temp = *mon;
+ u32 new_exp = GetBoxMonData(mon, MON_DATA_EXP) + steps;
+ SetBoxMonData(&temp, MON_DATA_EXP, (u8 *) &new_exp);
+ return GetLevelFromBoxMonExp(&temp);
+}
+
+static u8 sub_80416A0(struct DayCareData *daycareData, u8 slot)
+{
+ u8 levelBefore;
+ u8 levelAfter;
+
+ levelBefore = GetLevelFromBoxMonExp(&daycareData->mons[slot]);
+ levelAfter = Daycare_GetLevelAfterSteps(&daycareData->mons[slot], daycareData->misc.countersEtc.steps[slot]);
+ return levelAfter - levelBefore;
+}
+
+static u8 sub_80416E8(struct DayCareData *dayCareData, u8 slot)
+{
+ u8 levelDelta = sub_80416A0(dayCareData, slot);
+ GetBoxMonNick(&dayCareData->mons[slot], gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, levelDelta, STR_CONV_MODE_LEFT_ALIGN, 2);
+ return levelDelta;
+}
+
+static u16 sub_8041728(struct DayCareData *dayCareData, u8 slot)
+{
+ u16 cost;
+
+ u8 levelDelta = sub_80416A0(dayCareData, slot);
+ GetBoxMonNick(&dayCareData->mons[slot], gStringVar1);
+ cost = 100 + 100 * levelDelta;
+ ConvertIntToDecimalStringN(gStringVar2, cost, STR_CONV_MODE_LEFT_ALIGN, 5);
+ return cost;
+}
+
+void sub_8041770(void)
+{
+ gSpecialVar_0x8005 = sub_8041728(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+}
+
+void sub_8041790(u16 i)
+{
+ gSaveBlock1.daycareData.misc.countersEtc.steps[0] += i;
+ gSaveBlock1.daycareData.misc.countersEtc.steps[1] += i;
+}
+
+u8 sub_80417B8(void)
+{
+ if (GetBoxMonData(&gSaveBlock1.daycareData.mons[gSpecialVar_0x8004], MON_DATA_SPECIES) != 0)
+ return sub_80416E8(&gSaveBlock1.daycareData, gSpecialVar_0x8004);
+ return 0;
+}
+
+static void sub_80417F4(struct DayCareMail *mail)
+{
+ u8 zero;
+ u8 *names;
+ u8 *names2;
+ int i;
+ zero = 0;
+ for (i = 7, names = mail->names + 7; i >= 0; i --)
+ *names-- = zero;
+ names2 = mail->names + 8;
+ zero = 0;
+ names = mail->names + 18;
+ do *names-- = zero; while ((int)names >= (int)names2);
+ ClearMailStruct(&mail->message);
+}
+
+void unref_sub_8041824(struct DayCareData *dayCareData)
+{
+ u8 slot;
+ for (slot = 0; slot < ARRAY_COUNT(dayCareData->mons); slot ++)
+ {
+ ZeroBoxMonData(&dayCareData->mons[slot]);
+ dayCareData->misc.countersEtc.steps[slot] = 0;
+ sub_80417F4(&dayCareData->misc.mail[slot]);
+ }
+ dayCareData->misc.countersEtc.personalityLo = 0;
+ dayCareData->misc.countersEtc.unk_11a = 0;
+}
+
+u16 sub_8041870(u16 species)
+{
+ int i, j, k;
+ bool8 found;
+ for (i = 0; i < 5; i ++)
+ {
+ found = FALSE;
+ for (j = 1; j < NUM_SPECIES; j ++)
+ {
+ for (k = 0; k < 5; k ++)
+ {
+ if (gEvolutionTable[j].evolutions[k].targetSpecies == species)
+ {
+ species = j;
+ found = TRUE;
+ break;
+ }
+ }
+ if (found)
+ break;
+ }
+ if (j == 412)
+ break;
+ }
+ return species;
+}
+
+static void sub_80418F0(struct DayCareData *dayCareData)
+{
+ dayCareData->misc.countersEtc.personalityLo = (Random() % 0xfffe) + 1;
+ FlagSet(0x86);
+}
+
+static void sub_804191C(struct DayCareData *dayCareData)
+{
+ dayCareData->misc.countersEtc.personalityLo = Random() | 0x8000;
+ FlagSet(0x86);
+}
+
+void sub_8041940(void)
+{
+ sub_80418F0(&gSaveBlock1.daycareData);
+}
+
+void sub_8041950(void)
+{
+ sub_804191C(&gSaveBlock1.daycareData);
+}
+
+static void sub_8041960(u8 *data, u8 idx)
+{
+ int i, j;
+ u8 temp[6];
+ data[idx] = 0xff;
+ for (i = 0; i < 6; i ++)
+ temp[i] = data[i];
+ j = 0;
+ for (i = 0; i < 6; i ++)
+ if (temp[i] != 0xff)
+ data[j++] = temp[i];
+}
+
+static void InheritIVs(struct Pokemon *egg, struct DayCareData *dayCareData)
+{
+ u8 i;
+ u8 selectedIvs[3];
+ u8 allIvs[6];
+ u8 whichParent[3];
+ u8 iv;
+ for (i = 0; i < 6; i ++)
+ allIvs[i] = i;
+ for (i = 0; i < 3; i ++)
+ {
+ selectedIvs[i] = allIvs[Random() % (6 - i)];
+ sub_8041960(allIvs, selectedIvs[i]);
+ }
+ for (i = 0; i < 3; i ++)
+ whichParent[i] = Random() % 2;
+ for (i = 0; i < 3; i ++)
+ {
+ switch (selectedIvs[i])
+ {
+ case 0:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_HP_IV);
+ SetMonData(egg, MON_DATA_HP_IV, &iv);
+ break;
+ case 1:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_ATK_IV);
+ SetMonData(egg, MON_DATA_ATK_IV, &iv);
+ break;
+ case 2:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_DEF_IV);
+ SetMonData(egg, MON_DATA_DEF_IV, &iv);
+ break;
+ case 3:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPD_IV);
+ SetMonData(egg, MON_DATA_SPD_IV, &iv);
+ break;
+ case 4:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPATK_IV);
+ SetMonData(egg, MON_DATA_SPATK_IV, &iv);
+ break;
+ case 5:
+ iv = GetBoxMonData(&dayCareData->mons[whichParent[i]], MON_DATA_SPDEF_IV);
+ SetMonData(egg, MON_DATA_SPDEF_IV, &iv);
+ break;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+static
+#endif
+u8 pokemon_get_eggmoves(struct Pokemon *pokemon, u16 *eggMoves)
+{
+ u16 eggMoveIdx;
+ u16 numMovesFound;
+ u16 species;
+ u16 i;
+
+ numMovesFound = 0;
+ eggMoveIdx = 0;
+ species = GetMonData(pokemon, MON_DATA_SPECIES);
+ for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i ++)
+ {
+ if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET)
+ {
+ eggMoveIdx = i + 1;
+ break;
+ }
+ }
+ for (i = 0; i < 10; i ++)
+ {
+ if (gEggMoves[eggMoveIdx + i] > EGG_MOVES_SPECIES_OFFSET)
+ {
+ break;
+ }
+ eggMoves[i] = gEggMoves[eggMoveIdx + i];
+ numMovesFound++;
+ }
+ return numMovesFound;
+}
+
+#ifdef NONMATCHING
+
+void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, struct BoxPokemon *mom)
+{
+ u16 numSharedParentMoves;
+ u8 numLevelUpMoves;
+ u8 numEggMoves;
+ u16 i, j;
+
+ numSharedParentMoves = 0;
+ for (i = 0; i < 4; i ++)
+ {
+ gUnknown_03000500[i] = 0;
+ gUnknown_030004D8[i] = 0;
+ gUnknown_030004E0[i] = 0;
+ }
+ for (i = 0; i < 10; i ++)
+ gUnknown_030004E8[i] = 0;
+ for (i = 0; i < 50; i ++)
+ gUnknown_03000470[i] = 0;
+
+ numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), gUnknown_03000470);
+ for (i = 0; i < 4; i ++)
+ {
+ gUnknown_030004D8[i] = GetBoxMonData(dad, MON_DATA_MOVE1 + i);
+ gUnknown_03000500[i] = GetBoxMonData(mom, MON_DATA_MOVE1 + i);
+ }
+ numEggMoves = pokemon_get_eggmoves(egg, gUnknown_030004E8);
+
+ for (i = 0; i < 4; i ++)
+ {
+ if (gUnknown_030004D8[i] != MOVE_NONE)
+ {
+ for (j = 0; j < numEggMoves; j ++)
+ {
+ if (gUnknown_030004D8[i] == gUnknown_030004E8[j])
+ {
+ if (GiveMoveToMon(egg, gUnknown_030004D8[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004D8[i]);
+ break;
+ }
+ }
+ }
+ else
+ break;
+ }
+ for (i = 0; i < 4; i ++)
+ {
+ if (gUnknown_030004D8[i] != MOVE_NONE)
+ {
+ for (j = 0; j < 50 + 8; j ++)
+ {
+ if (gUnknown_030004D8[i] == ItemIdToBattleMoveId(ITEM_TM01 + j) && CanMonLearnTMHM(egg, j))
+ {
+ if (GiveMoveToMon(egg, gUnknown_030004D8[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004D8[i]);
+ }
+ }
+ }
+ }
+ for (i = 0; i < 4; i ++)
+ {
+ if (gUnknown_030004D8[i] == MOVE_NONE)
+ break;
+ for (j = 0; j < 4; j ++)
+ {
+ if (gUnknown_030004D8[i] == gUnknown_03000500[j] && gUnknown_030004D8[i] != MOVE_NONE)
+ gUnknown_030004E0[numSharedParentMoves++] = gUnknown_030004D8[i];
+ }
+ }
+ for (i = 0; i < 4; i ++)
+ {
+ if (gUnknown_030004E0[i] == MOVE_NONE)
+ break;
+ for (j = 0; j < numLevelUpMoves; j ++)
+ {
+ if (gUnknown_03000470[j] != MOVE_NONE && gUnknown_030004E0[i] == gUnknown_03000470[j])
+ {
+ if (GiveMoveToMon(egg, gUnknown_030004E0[i]) == 0xffff)
+ DeleteFirstMoveAndGiveMoveToMon(egg, gUnknown_030004E0[i]);
+ break;
+ }
+ }
+ }
+}
+#else
+__attribute__((naked))
+void daycare_build_child_moveset(struct Pokemon *egg, struct BoxPokemon *dad, struct BoxPokemon *mom)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0xC\n"
+ "\tadds r7, r0, 0\n"
+ "\tmov r10, r1\n"
+ "\tmov r9, r2\n"
+ "\tmovs r0, 0\n"
+ "\tstr r0, [sp]\n"
+ "\tmovs r6, 0\n"
+ "\tldr r5, _08041CC8 @ =gUnknown_03000500\n"
+ "\tmovs r2, 0\n"
+ "\tldr r4, _08041CCC @ =gUnknown_030004D8\n"
+ "\tldr r3, _08041CD0 @ =gUnknown_030004E0\n"
+ "_08041BE4:\n"
+ "\tlsls r1, r6, 1\n"
+ "\tadds r0, r1, r5\n"
+ "\tstrh r2, [r0]\n"
+ "\tadds r0, r1, r4\n"
+ "\tstrh r2, [r0]\n"
+ "\tadds r1, r3\n"
+ "\tstrh r2, [r1]\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x3\n"
+ "\tbls _08041BE4\n"
+ "\tmovs r6, 0\n"
+ "\tldr r2, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tmovs r1, 0\n"
+ "_08041C02:\n"
+ "\tlsls r0, r6, 1\n"
+ "\tadds r0, r2\n"
+ "\tstrh r1, [r0]\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x9\n"
+ "\tbls _08041C02\n"
+ "\tmovs r6, 0\n"
+ "\tldr r2, _08041CD8 @ =gUnknown_03000470\n"
+ "\tmovs r1, 0\n"
+ "_08041C18:\n"
+ "\tlsls r0, r6, 1\n"
+ "\tadds r0, r2\n"
+ "\tstrh r1, [r0]\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x31\n"
+ "\tbls _08041C18\n"
+ "\tadds r0, r7, 0\n"
+ "\tmovs r1, 0xB\n"
+ "\tbl GetMonData\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tldr r1, _08041CD8 @ =gUnknown_03000470\n"
+ "\tbl GetLevelUpMovesBySpecies\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tstr r0, [sp, 0x4]\n"
+ "\tmovs r6, 0\n"
+ "\tldr r1, _08041CCC @ =gUnknown_030004D8\n"
+ "\tmov r8, r1\n"
+ "_08041C46:\n"
+ "\tadds r5, r6, 0\n"
+ "\tadds r5, 0xD\n"
+ "\tmov r0, r10\n"
+ "\tadds r1, r5, 0\n"
+ "\tbl GetBoxMonData\n"
+ "\tlsls r4, r6, 1\n"
+ "\tmov r2, r8\n"
+ "\tadds r1, r4, r2\n"
+ "\tstrh r0, [r1]\n"
+ "\tmov r0, r9\n"
+ "\tadds r1, r5, 0\n"
+ "\tbl GetBoxMonData\n"
+ "\tldr r1, _08041CC8 @ =gUnknown_03000500\n"
+ "\tadds r4, r1\n"
+ "\tstrh r0, [r4]\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x3\n"
+ "\tbls _08041C46\n"
+ "\tldr r1, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl pokemon_get_eggmoves\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tmov r8, r0\n"
+ "\tmovs r6, 0\n"
+ "_08041C82:\n"
+ "\tldr r0, _08041CCC @ =gUnknown_030004D8\n"
+ "\tlsls r1, r6, 1\n"
+ "\tadds r2, r1, r0\n"
+ "\tldrh r1, [r2]\n"
+ "\tmov r9, r0\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08041CF8\n"
+ "\tmovs r5, 0\n"
+ "\tcmp r5, r8\n"
+ "\tbcs _08041CEA\n"
+ "\tadds r4, r2, 0\n"
+ "\tldr r2, _08041CDC @ =0x0000ffff\n"
+ "_08041C9A:\n"
+ "\tldr r0, _08041CD4 @ =gUnknown_030004E8\n"
+ "\tlsls r1, r5, 1\n"
+ "\tadds r1, r0\n"
+ "\tldrh r0, [r4]\n"
+ "\tldrh r1, [r1]\n"
+ "\tcmp r0, r1\n"
+ "\tbne _08041CE0\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r0, r7, 0\n"
+ "\tstr r2, [sp, 0x8]\n"
+ "\tbl GiveMoveToMon\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tldr r2, [sp, 0x8]\n"
+ "\tcmp r0, r2\n"
+ "\tbne _08041CEA\n"
+ "\tldrh r1, [r4]\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl DeleteFirstMoveAndGiveMoveToMon\n"
+ "\tb _08041CEA\n"
+ "\t.align 2, 0\n"
+ "_08041CC8: .4byte gUnknown_03000500\n"
+ "_08041CCC: .4byte gUnknown_030004D8\n"
+ "_08041CD0: .4byte gUnknown_030004E0\n"
+ "_08041CD4: .4byte gUnknown_030004E8\n"
+ "_08041CD8: .4byte gUnknown_03000470\n"
+ "_08041CDC: .4byte 0x0000ffff\n"
+ "_08041CE0:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tcmp r5, r8\n"
+ "\tbcc _08041C9A\n"
+ "_08041CEA:\n"
+ "\tadds r0, r6, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tldr r3, _08041E14 @ =gUnknown_030004D8\n"
+ "\tmov r9, r3\n"
+ "\tcmp r6, 0x3\n"
+ "\tbls _08041C82\n"
+ "_08041CF8:\n"
+ "\tmovs r6, 0\n"
+ "_08041CFA:\n"
+ "\tlsls r0, r6, 1\n"
+ "\tmov r2, r9\n"
+ "\tadds r1, r0, r2\n"
+ "\tldrh r1, [r1]\n"
+ "\tadds r2, r0, 0\n"
+ "\tadds r6, 0x1\n"
+ "\tmov r8, r6\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08041D5C\n"
+ "\tmovs r5, 0\n"
+ "\tldr r0, _08041E14 @ =gUnknown_030004D8\n"
+ "\tadds r4, r2, r0\n"
+ "\tldr r6, _08041E18 @ =0x0000ffff\n"
+ "\tmov r9, r0\n"
+ "_08041D16:\n"
+ "\tldr r3, _08041E1C @ =0x00000121\n"
+ "\tadds r0, r5, r3\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tbl ItemIdToBattleMoveId\n"
+ "\tldrh r1, [r4]\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r1, r0\n"
+ "\tbne _08041D52\n"
+ "\tlsls r1, r5, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl CanMonLearnTMHM\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08041D52\n"
+ "\tldrh r1, [r4]\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl GiveMoveToMon\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, r6\n"
+ "\tbne _08041D52\n"
+ "\tldrh r1, [r4]\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl DeleteFirstMoveAndGiveMoveToMon\n"
+ "_08041D52:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tcmp r5, 0x39\n"
+ "\tbls _08041D16\n"
+ "_08041D5C:\n"
+ "\tmov r1, r8\n"
+ "\tlsls r0, r1, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x3\n"
+ "\tbls _08041CFA\n"
+ "\tmovs r6, 0\n"
+ "\tmov r2, r9\n"
+ "\tldrh r0, [r2]\n"
+ "\tldr r3, _08041E20 @ =gUnknown_030004E0\n"
+ "\tmov r10, r3\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08041DC6\n"
+ "\tmov r4, r9\n"
+ "\tldr r0, _08041E24 @ =gUnknown_03000500\n"
+ "\tmov r9, r0\n"
+ "\tmov r12, r10\n"
+ "_08041D7C:\n"
+ "\tmovs r5, 0\n"
+ "\tlsls r2, r6, 1\n"
+ "\tadds r6, 0x1\n"
+ "\tmov r8, r6\n"
+ "\tadds r3, r2, r4\n"
+ "_08041D86:\n"
+ "\tlsls r0, r5, 1\n"
+ "\tadd r0, r9\n"
+ "\tldrh r2, [r3]\n"
+ "\tadds r1, r2, 0\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r1, r0\n"
+ "\tbne _08041DA8\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08041DA8\n"
+ "\tldr r1, [sp]\n"
+ "\tadds r0, r1, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tstr r0, [sp]\n"
+ "\tlsls r1, 1\n"
+ "\tadd r1, r12\n"
+ "\tstrh r2, [r1]\n"
+ "_08041DA8:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tcmp r5, 0x3\n"
+ "\tbls _08041D86\n"
+ "\tmov r1, r8\n"
+ "\tlsls r0, r1, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x3\n"
+ "\tbhi _08041DC6\n"
+ "\tlsls r0, r6, 1\n"
+ "\tadds r0, r4\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08041D7C\n"
+ "_08041DC6:\n"
+ "\tmovs r6, 0\n"
+ "\tmov r2, r10\n"
+ "\tldrh r0, [r2]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08041E50\n"
+ "_08041DD0:\n"
+ "\tmovs r5, 0\n"
+ "\tadds r3, r6, 0x1\n"
+ "\tmov r8, r3\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tcmp r5, r0\n"
+ "\tbcs _08041E38\n"
+ "\tldr r2, _08041E18 @ =0x0000ffff\n"
+ "_08041DDE:\n"
+ "\tldr r1, _08041E28 @ =gUnknown_03000470\n"
+ "\tlsls r0, r5, 1\n"
+ "\tadds r0, r1\n"
+ "\tldrh r1, [r0]\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _08041E2C\n"
+ "\tlsls r0, r6, 1\n"
+ "\tmov r3, r10\n"
+ "\tadds r4, r0, r3\n"
+ "\tldrh r0, [r4]\n"
+ "\tcmp r0, r1\n"
+ "\tbne _08041E2C\n"
+ "\tadds r1, r0, 0\n"
+ "\tadds r0, r7, 0\n"
+ "\tstr r2, [sp, 0x8]\n"
+ "\tbl GiveMoveToMon\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tldr r2, [sp, 0x8]\n"
+ "\tcmp r0, r2\n"
+ "\tbne _08041E38\n"
+ "\tldrh r1, [r4]\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl DeleteFirstMoveAndGiveMoveToMon\n"
+ "\tb _08041E38\n"
+ "\t.align 2, 0\n"
+ "_08041E14: .4byte gUnknown_030004D8\n"
+ "_08041E18: .4byte 0x0000ffff\n"
+ "_08041E1C: .4byte 0x00000121\n"
+ "_08041E20: .4byte gUnknown_030004E0\n"
+ "_08041E24: .4byte gUnknown_03000500\n"
+ "_08041E28: .4byte gUnknown_03000470\n"
+ "_08041E2C:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r5, r0, 16\n"
+ "\tldr r0, [sp, 0x4]\n"
+ "\tcmp r5, r0\n"
+ "\tbcc _08041DDE\n"
+ "_08041E38:\n"
+ "\tmov r1, r8\n"
+ "\tlsls r0, r1, 16\n"
+ "\tlsrs r6, r0, 16\n"
+ "\tcmp r6, 0x3\n"
+ "\tbhi _08041E50\n"
+ "\tldr r0, _08041E60 @ =gUnknown_030004E0\n"
+ "\tlsls r1, r6, 1\n"
+ "\tadds r1, r0\n"
+ "\tldrh r1, [r1]\n"
+ "\tmov r10, r0\n"
+ "\tcmp r1, 0\n"
+ "\tbne _08041DD0\n"
+ "_08041E50:\n"
+ "\tadd sp, 0xC\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08041E60: .4byte gUnknown_030004E0");
+}
+#endif
+
+static void RemoveEggFromDayCare(struct DayCareData *dayCareData)
+{
+ dayCareData->misc.countersEtc.personalityLo = 0;
+ dayCareData->misc.countersEtc.unk_11a = 0;
+}
+
+void sub_8041E7C(void)
+{
+ RemoveEggFromDayCare(&gSaveBlock1.daycareData);
+}
+
+static void incense_effects(u16 *species, struct DayCareData *dayCareData)
+{
+ u16 momItem, dadItem;
+ if (*species == SPECIES_WYNAUT || *species == SPECIES_AZURILL)
+ {
+ momItem = GetBoxMonData(&dayCareData->mons[0], MON_DATA_HELD_ITEM);
+ dadItem = GetBoxMonData(&dayCareData->mons[1], MON_DATA_HELD_ITEM);
+ if (*species == SPECIES_WYNAUT && momItem != ITEM_LAX_INCENSE && dadItem != ITEM_LAX_INCENSE)
+ {
+ *species = SPECIES_WOBBUFFET;
+ }
+ if (*species == SPECIES_AZURILL && momItem != ITEM_SEA_INCENSE && dadItem != ITEM_SEA_INCENSE)
+ {
+ *species = SPECIES_MARILL;
+ }
+ }
+}
+
+static u16 sub_8041EEC(struct DayCareData *dayCareData, u8 *a1) // inherit_species_from_mom
+{
+ u16 i;
+ u16 species[2];
+ u16 eggSpecies;
+ u8 buffer;
+ for (i=0; i<2; i++)
+ {
+ species[i] = GetBoxMonData(&dayCareData->mons[i], MON_DATA_SPECIES);
+ if (species[i] == SPECIES_DITTO)
+ {
+ a1[0] = i ^ 1;
+ a1[1] = i;
+ }
+ else if (GetBoxMonGender(&dayCareData->mons[i]) == MON_FEMALE)
+ {
+ a1[0] = i;
+ a1[1] = i ^ 1;
+ }
+ }
+ eggSpecies = sub_8041870(species[a1[0]]);
+ if (eggSpecies == SPECIES_NIDORAN_F && dayCareData->misc.countersEtc.personalityLo & 0x8000)
+ {
+ eggSpecies = SPECIES_NIDORAN_M;
+ }
+ if (eggSpecies == SPECIES_ILLUMISE && dayCareData->misc.countersEtc.personalityLo & 0x8000)
+ {
+ eggSpecies = SPECIES_VOLBEAT;
+ }
+ if (species[a1[1]] == SPECIES_DITTO && GetBoxMonGender(&dayCareData->mons[a1[0]]) != MON_FEMALE)
+ {
+ buffer = a1[1];
+ a1[1] = a1[0];
+ a1[0] = buffer;
+ }
+ return eggSpecies;
+}
+
+static void sub_8041FC4(struct DayCareData *dayCareData) // give_egg
+{
+ struct Pokemon egg;
+ u16 species;
+ u8 parents[2];
+ u8 isEgg;
+ species = sub_8041EEC(dayCareData, parents);
+ incense_effects(&species, dayCareData);
+ sub_80420FC(&egg, species, dayCareData);
+ InheritIVs(&egg, dayCareData);
+ daycare_build_child_moveset(&egg, &dayCareData->mons[parents[1]], &dayCareData->mons[parents[0]]);
+ isEgg = TRUE;
+ SetMonData(&egg, MON_DATA_IS_EGG, &isEgg);
+ gPlayerParty[5] = egg;
+ party_compaction();
+ CalculatePlayerPartyCount();
+ RemoveEggFromDayCare(dayCareData);
+}
+
+
+void sub_8042044(struct Pokemon *mon, u16 species, u8 overwriteMetLocation) // scr_create_egg
+{
+ u8 metLevel;
+ u16 ball;
+ u8 language;
+ u8 metLocation;
+ u8 isEgg;
+ CreateMon(mon, species, 5, 0x20, FALSE, 0, FALSE, 0);
+ metLevel = 0;
+ ball = ITEM_POKE_BALL;
+ language = LANGUAGE_JAPANESE;
+ SetMonData(mon, MON_DATA_POKEBALL, (u8 *)&ball);
+ SetMonData(mon, MON_DATA_NICKNAME, gUnknown_08209AD4);
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles);
+ SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);
+ SetMonData(mon, MON_DATA_LANGUAGE, &language);
+ if (overwriteMetLocation)
+ {
+ metLocation = 0xfd;
+ SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation);
+ }
+ isEgg = TRUE;
+ SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
+}
+
+static void sub_80420FC(struct Pokemon *mon, u16 species, struct DayCareData *dayCareData)
+{
+ u32 personality;
+ u16 ball;
+ u8 metLevel;
+ u8 language;
+ personality = dayCareData->misc.countersEtc.personalityLo | (Random() << 16);
+ CreateMon(mon, species, 5, 0x20, TRUE, personality, FALSE, 0);
+ metLevel = 0;
+ ball = ITEM_POKE_BALL;
+ language = LANGUAGE_JAPANESE;
+ SetMonData(mon, MON_DATA_POKEBALL, (u8 *)&ball);
+ SetMonData(mon, MON_DATA_NICKNAME, gUnknown_08209AD4);
+ SetMonData(mon, MON_DATA_FRIENDSHIP, &gBaseStats[species].eggCycles);
+ SetMonData(mon, MON_DATA_MET_LEVEL, &metLevel);
+ SetMonData(mon, MON_DATA_LANGUAGE, &language);
+}
+
+void sp0B8_daycare(void)
+{
+ sub_8041FC4(&gSaveBlock1.daycareData);
+}
+
+#ifdef NONMATCHING
+static bool8 sub_80421B0(struct DayCareData *dayCareData)
+{
+ struct BoxPokemon *parent;
+ u32 i;
+ int v0;
+ int steps;
+ v0 = 0;
+ for (i=0, parent=&dayCareData->mons[0]; i<2; parent++, i++)
+ {
+ if (GetBoxMonData(parent, MON_DATA_SANITY_BIT2, v0))
+ {
+ dayCareData->misc.countersEtc.steps[i]++;
+ v0++;
+ }
+ }
+ if (dayCareData->misc.countersEtc.personalityLo == 0 && v0 == 2 && dayCareData->misc.extra.misc[4] == 0xff && daycare_relationship_score(dayCareData) > (u32)((u32)(Random() * 100) / 0xffff))
+ {
+ sub_8041940();
+ }
+ if ((++dayCareData->misc.countersEtc.unk_11a) == 0xff)
+ {
+ for (i=0; i<gPlayerPartyCount; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
+ {
+ steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP);
+ if (steps == 0)
+ {
+ gSpecialVar_0x8004 = i;
+ return TRUE;
+ }
+ steps--;
+ SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, (u8 *)&steps);
+ }
+ }
+ }
+ return FALSE;
+}
+#else
+__attribute__((naked))
+static bool8 sub_80421B0(struct DayCareData *dayCareData)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tsub sp, 0x8\n"
+ "\tadds r7, r0, 0\n"
+ "\tmovs r2, 0\n"
+ "\tmovs r6, 0\n"
+ "\tadds r5, r7, 0\n"
+ "_080421BC:\n"
+ "\tlsls r4, r6, 2\n"
+ "\tadds r0, r5, 0\n"
+ "\tmovs r1, 0x5\n"
+ "\tstr r2, [sp, 0x4]\n"
+ "\tbl GetBoxMonData\n"
+ "\tldr r2, [sp, 0x4]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080421DE\n"
+ "\tmovs r0, 0x88\n"
+ "\tlsls r0, 1\n"
+ "\tadds r1, r7, r0\n"
+ "\tadds r1, r4\n"
+ "\tldr r0, [r1]\n"
+ "\tadds r0, 0x1\n"
+ "\tstr r0, [r1]\n"
+ "\tadds r2, 0x1\n"
+ "_080421DE:\n"
+ "\tadds r5, 0x50\n"
+ "\tadds r6, 0x1\n"
+ "\tcmp r6, 0x1\n"
+ "\tbls _080421BC\n"
+ "\tmovs r1, 0x8C\n"
+ "\tlsls r1, 1\n"
+ "\tadds r0, r7, r1\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08042226\n"
+ "\tcmp r2, 0x2\n"
+ "\tbne _08042226\n"
+ "\tsubs r1, 0x4\n"
+ "\tadds r0, r7, r1\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbne _08042226\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl daycare_relationship_score\n"
+ "\tadds r4, r0, 0\n"
+ "\tlsls r4, 24\n"
+ "\tlsrs r4, 24\n"
+ "\tbl Random\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tmovs r1, 0x64\n"
+ "\tmuls r0, r1\n"
+ "\tldr r1, _08042240 @ =0x0000ffff\n"
+ "\tbl __udivsi3\n"
+ "\tcmp r4, r0\n"
+ "\tbls _08042226\n"
+ "\tbl sub_8041940\n"
+ "_08042226:\n"
+ "\tmovs r0, 0x8D\n"
+ "\tlsls r0, 1\n"
+ "\tadds r1, r7, r0\n"
+ "\tldrb r0, [r1]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrb r0, [r1]\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbne _08042290\n"
+ "\tmovs r6, 0\n"
+ "\tb _08042288\n"
+ "\t.align 2, 0\n"
+ "_08042240: .4byte 0x0000ffff\n"
+ "_08042244:\n"
+ "\tmovs r0, 0x64\n"
+ "\tadds r1, r6, 0\n"
+ "\tmuls r1, r0\n"
+ "\tldr r0, _08042270 @ =gPlayerParty\n"
+ "\tadds r4, r1, r0\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x2D\n"
+ "\tbl GetMonData\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08042286\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x20\n"
+ "\tbl GetMonData\n"
+ "\tstr r0, [sp]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _08042278\n"
+ "\tldr r0, _08042274 @ =gSpecialVar_0x8004\n"
+ "\tstrh r6, [r0]\n"
+ "\tmovs r0, 0x1\n"
+ "\tb _08042292\n"
+ "\t.align 2, 0\n"
+ "_08042270: .4byte gPlayerParty\n"
+ "_08042274: .4byte gSpecialVar_0x8004\n"
+ "_08042278:\n"
+ "\tsubs r0, 0x1\n"
+ "\tstr r0, [sp]\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x20\n"
+ "\tmov r2, sp\n"
+ "\tbl SetMonData\n"
+ "_08042286:\n"
+ "\tadds r6, 0x1\n"
+ "_08042288:\n"
+ "\tldr r0, _0804229C @ =gPlayerPartyCount\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r6, r0\n"
+ "\tbcc _08042244\n"
+ "_08042290:\n"
+ "\tmovs r0, 0\n"
+ "_08042292:\n"
+ "\tadd sp, 0x8\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1\n"
+ "\t.align 2, 0\n"
+ "_0804229C: .4byte gPlayerPartyCount");
+}
+#endif
+
+bool8 sub_80422A0(void)
+{
+ return sub_80421B0(&gSaveBlock1.daycareData);
+}
+
+static bool8 sub_80422B4(struct DayCareData *dayCareData)
+{
+ return (u32)((-dayCareData->misc.countersEtc.personalityLo) | dayCareData->misc.countersEtc.personalityLo) >> 31;
+}
+
+static void sub_80422C4(struct DayCareData *dayCareData)
+{
+ u8 language;
+ if (GetBoxMonData(&dayCareData->mons[0], MON_DATA_SPECIES) != 0)
+ {
+ GetBoxMonNick(&dayCareData->mons[0], gStringVar1);
+ language = GetBoxMonData(&dayCareData->mons[0], MON_DATA_LANGUAGE);
+ GetBoxMonData(&dayCareData->mons[0], MON_DATA_OT_NAME, gStringVar3);
+ ConvertInternationalString(gStringVar3, language);
+ }
+ if (GetBoxMonData(&dayCareData->mons[1], MON_DATA_SPECIES) != 0)
+ {
+ GetBoxMonNick(&dayCareData->mons[1], gStringVar2);
+ }
+}
+
+u16 sub_8042328(void)
+{
+ GetBoxMonNick(&gPlayerParty[gLastFieldPokeMenuOpened].box, gStringVar1);
+ return GetBoxMonData(&gPlayerParty[gLastFieldPokeMenuOpened].box, MON_DATA_SPECIES);
+}
+
+void sp0B5_daycare(void)
+{
+ sub_80422C4(&gSaveBlock1.daycareData);
+}
+
+u8 sp0B6_daycare(void)
+{
+ u8 monCount;
+ if (sub_80422B4(&gSaveBlock1.daycareData))
+ {
+ return 1;
+ }
+ monCount = Daycare_CountPokemon(&gSaveBlock1.daycareData);
+ if (monCount != 0)
+ {
+ return monCount + 1;
+ }
+ return 0;
+}
+
+#ifdef NONMATCHING
+static
+#endif
+bool8 sub_80423A8(u16 *a, u16 *b)
+{
+ int i, j;
+ u16 *v0, *v1, v2;
+ for (i=0, v0=a; i<2; v0++, i++)
+ {
+ for (j=0, v2=*v0, v1=b; j<2; v1++, j++)
+ {
+ if (v2 == *v1)
+ {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+}
+
+#ifdef NONMATCHING
+static u8 daycare_relationship_score(struct DayCareData *dayCareData)
+{
+ u16 species[2];
+ u32 otIds[2];
+ u32 genders[2];
+ u16 eggGroups[2][2];
+ int i;
+ u16 *spc;
+ u32 *ids;
+ u32 *gnd;
+ u16 *egg1;
+ u16 *egg2;
+ struct BoxPokemon *parent;
+ for (i=0, parent=&dayCareData->mons[0], spc=species, ids=otIds, gnd=genders, egg1=&eggGroups[0][0], egg2=&eggGroups[0][1]; i<2; spc++, egg1+=2, egg2+=2, parent++, i++)
+ {
+ *spc = GetBoxMonData(parent, MON_DATA_SPECIES);
+ *ids++ = GetBoxMonData(parent, MON_DATA_OT_ID);
+ *gnd++ = GetGenderFromSpeciesAndPersonality(*spc, GetBoxMonData(parent, MON_DATA_PERSONALITY));
+ *egg1 = gBaseStats[*spc].eggGroup1;
+ *egg2 = gBaseStats[*spc].eggGroup2;
+ }
+ if (eggGroups[0][0] == 0xf)
+ {
+ return 0;
+ }
+ if (eggGroups[1][0] == 0xf)
+ {
+ return 0;
+ }
+ if (eggGroups[0][0] == 0xd && eggGroups[1][0] == 0xd)
+ {
+ return 0;
+ }
+ else if (eggGroups[0][0] == 0xd || eggGroups[1][0] == 0xd)
+ {
+ if (otIds[0] == otIds[1])
+ {
+ return 20;
+ }
+ return 50;
+ }
+ if (genders[0] == genders[1] || genders[0] == MON_GENDERLESS || genders[1] == MON_GENDERLESS)
+ {
+ return 0;
+ }
+ if (!sub_80423A8(eggGroups[0], eggGroups[1]))
+ {
+ return 0;
+ }
+ if (species[0] == species[1])
+ {
+ if (otIds[0] == otIds[1])
+ {
+ return 50;
+ }
+ return 70;
+ }
+ else
+ {
+ if (otIds[0] != otIds[1])
+ {
+ return 50;
+ }
+ return 20;
+ }
+}
+#else
+__attribute__((naked))
+static u8 daycare_relationship_score(struct DayCareData *dayCareData)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tsub sp, 0x2C\n"
+ "\tmovs r1, 0\n"
+ "\tmov r8, r1\n"
+ "\tmov r2, sp\n"
+ "\tadds r2, 0x8\n"
+ "\tstr r2, [sp, 0x1C]\n"
+ "\tadd r1, sp, 0xC\n"
+ "\tmov r10, r1\n"
+ "\tadds r2, 0xC\n"
+ "\tstr r2, [sp, 0x20]\n"
+ "\tmov r1, sp\n"
+ "\tadds r1, 0x2\n"
+ "\tldr r2, _08042488 @ =gBaseStats\n"
+ "\tmov r9, r2\n"
+ "\tldr r5, [sp, 0x1C]\n"
+ "\tadds r7, r1, 0\n"
+ "\tmov r6, sp\n"
+ "\tldr r1, [sp, 0x20]\n"
+ "\tstr r1, [sp, 0x24]\n"
+ "\tmov r2, r10\n"
+ "\tstr r2, [sp, 0x28]\n"
+ "\tadds r4, r0, 0\n"
+ "_0804240E:\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0xB\n"
+ "\tbl GetBoxMonData\n"
+ "\tstrh r0, [r5]\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0x1\n"
+ "\tbl GetBoxMonData\n"
+ "\tldr r1, [sp, 0x28]\n"
+ "\tstm r1!, {r0}\n"
+ "\tstr r1, [sp, 0x28]\n"
+ "\tadds r0, r4, 0\n"
+ "\tmovs r1, 0\n"
+ "\tbl GetBoxMonData\n"
+ "\tadds r1, r0, 0\n"
+ "\tldrh r0, [r5]\n"
+ "\tbl GetGenderFromSpeciesAndPersonality\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tldr r2, [sp, 0x24]\n"
+ "\tstm r2!, {r0}\n"
+ "\tstr r2, [sp, 0x24]\n"
+ "\tldrh r1, [r5]\n"
+ "\tlsls r0, r1, 3\n"
+ "\tsubs r0, r1\n"
+ "\tlsls r0, 2\n"
+ "\tadd r0, r9\n"
+ "\tldrb r0, [r0, 0x14]\n"
+ "\tstrh r0, [r6]\n"
+ "\tldrh r1, [r5]\n"
+ "\tlsls r0, r1, 3\n"
+ "\tsubs r0, r1\n"
+ "\tlsls r0, 2\n"
+ "\tadd r0, r9\n"
+ "\tldrb r0, [r0, 0x15]\n"
+ "\tstrh r0, [r7]\n"
+ "\tadds r5, 0x2\n"
+ "\tadds r7, 0x4\n"
+ "\tadds r6, 0x4\n"
+ "\tadds r4, 0x50\n"
+ "\tmovs r0, 0x1\n"
+ "\tadd r8, r0\n"
+ "\tmov r1, r8\n"
+ "\tcmp r1, 0x1\n"
+ "\tbls _0804240E\n"
+ "\tmov r0, sp\n"
+ "\tldrh r1, [r0]\n"
+ "\tcmp r1, 0xF\n"
+ "\tbeq _08042484\n"
+ "\tldrh r0, [r0, 0x4]\n"
+ "\tcmp r0, 0xF\n"
+ "\tbeq _08042484\n"
+ "\tcmp r1, 0xD\n"
+ "\tbne _0804248C\n"
+ "\tcmp r0, 0xD\n"
+ "\tbne _08042490\n"
+ "_08042484:\n"
+ "\tmovs r0, 0\n"
+ "\tb _080424E4\n"
+ "\t.align 2, 0\n"
+ "_08042488: .4byte gBaseStats\n"
+ "_0804248C:\n"
+ "\tcmp r0, 0xD\n"
+ "\tbne _0804249C\n"
+ "_08042490:\n"
+ "\tldr r1, [sp, 0xC]\n"
+ "\tmov r2, r10\n"
+ "\tldr r0, [r2, 0x4]\n"
+ "\tcmp r1, r0\n"
+ "\tbeq _080424DE\n"
+ "\tb _080424E2\n"
+ "_0804249C:\n"
+ "\tldr r0, [sp, 0x14]\n"
+ "\tldr r2, [sp, 0x20]\n"
+ "\tldr r1, [r2, 0x4]\n"
+ "\tcmp r0, r1\n"
+ "\tbeq _08042484\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbeq _08042484\n"
+ "\tcmp r1, 0xFF\n"
+ "\tbeq _08042484\n"
+ "\tadd r1, sp, 0x4\n"
+ "\tmov r0, sp\n"
+ "\tbl sub_80423A8\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08042484\n"
+ "\tldr r0, [sp, 0x1C]\n"
+ "\tldrh r1, [r0, 0x2]\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, r1\n"
+ "\tbne _080424D4\n"
+ "\tldr r1, [sp, 0xC]\n"
+ "\tmov r2, r10\n"
+ "\tldr r0, [r2, 0x4]\n"
+ "\tcmp r1, r0\n"
+ "\tbeq _080424E2\n"
+ "\tmovs r0, 0x46\n"
+ "\tb _080424E4\n"
+ "_080424D4:\n"
+ "\tldr r1, [sp, 0xC]\n"
+ "\tmov r2, r10\n"
+ "\tldr r0, [r2, 0x4]\n"
+ "\tcmp r1, r0\n"
+ "\tbne _080424E2\n"
+ "_080424DE:\n"
+ "\tmovs r0, 0x14\n"
+ "\tb _080424E4\n"
+ "_080424E2:\n"
+ "\tmovs r0, 0x32\n"
+ "_080424E4:\n"
+ "\tadd sp, 0x2C\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+u8 daycare_relationship_score_from_savegame(void)
+{
+ return daycare_relationship_score(&gSaveBlock1.daycareData);
+}
+
+void sp0B9_daycare_relationship_comment(void)
+{
+ u8 whichString;
+ u8 relationshipScore;
+
+ relationshipScore = daycare_relationship_score_from_savegame();
+ whichString = 0;
+ if (relationshipScore == 0)
+ whichString = 3;
+ if (relationshipScore == 20)
+ whichString = 2;
+ if (relationshipScore == 50)
+ whichString = 1;
+ if (relationshipScore == 70)
+ whichString = 0;
+ StringCopy(gStringVar4, gUnknown_08209AC4[whichString]);
+}
+
+#ifdef NONMATCHING
+bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
+{
+ u8 i;
+ u8 flags[2];
+
+ // This portion is nonmatching
+ flags[1] = 0;
+ flags[0] = 0;
+ for (i = 0; name[i] != EOS; i ++)
+ // End nonmatching portion
+
+ {
+ if (name[i] == CHAR_MALE) flags[0] ++;
+ if (name[i] == CHAR_FEMALE) flags[1] ++;
+ }
+ if (genderRatio == MON_MALE && flags[0] && !flags[1]) return TRUE;
+ if (genderRatio == MON_FEMALE && flags[1] && !flags[0]) return TRUE;
+ return FALSE;
+}
+#else
+__attribute__((naked))
+bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio)
+{
+ asm_unified("\n"
+ "\tpush {r4,r5,lr}\n"
+ "\tsub sp, 0x4\n"
+ "\tadds r4, r0, 0\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r5, r1, 24\n"
+ "\tmov r2, sp\n"
+ "\tmov r1, sp\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r1, 0x1]\n"
+ "\tstrb r0, [r2]\n"
+ "\tmovs r3, 0\n"
+ "\tldrb r0, [r4]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbeq _0804258C\n"
+ "_08042564:\n"
+ "\tadds r1, r4, r3\n"
+ "\tldrb r0, [r1]\n"
+ "\tcmp r0, 0xB5\n"
+ "\tbne _08042572\n"
+ "\tldrb r0, [r2]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrb r0, [r2]\n"
+ "_08042572:\n"
+ "\tldrb r0, [r1]\n"
+ "\tcmp r0, 0xB6\n"
+ "\tbne _0804257E\n"
+ "\tldrb r0, [r2, 0x1]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrb r0, [r2, 0x1]\n"
+ "_0804257E:\n"
+ "\tadds r0, r3, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r3, r0, 24\n"
+ "\tadds r0, r4, r3\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0xFF\n"
+ "\tbne _08042564\n"
+ "_0804258C:\n"
+ "\tcmp r5, 0\n"
+ "\tbne _080425A0\n"
+ "\tmov r0, sp\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080425A0\n"
+ "\tmov r0, sp\n"
+ "\tldrb r0, [r0, 0x1]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080425B4\n"
+ "_080425A0:\n"
+ "\tcmp r5, 0xFE\n"
+ "\tbne _080425B8\n"
+ "\tmov r0, sp\n"
+ "\tldrb r0, [r0, 0x1]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _080425B8\n"
+ "\tmov r0, sp\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _080425B8\n"
+ "_080425B4:\n"
+ "\tmovs r0, 0x1\n"
+ "\tb _080425BA\n"
+ "_080425B8:\n"
+ "\tmovs r0, 0\n"
+ "_080425BA:\n"
+ "\tadd sp, 0x4\n"
+ "\tpop {r4,r5}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+static u8 *AppendGenderSymbol(u8 *name, u8 gender)
+{
+ if (gender == MON_MALE)
+ {
+ if (!NameHasGenderSymbol(name, MON_MALE))
+ return StringAppend(name, gOtherText_MaleSymbol3);
+ }
+
+ else if (gender == MON_FEMALE)
+ {
+ if (!NameHasGenderSymbol(name, MON_FEMALE))
+ return StringAppend(name, gOtherText_FemaleSymbol3);
+ }
+ return StringAppend(name, gOtherText_GenderlessSymbol);
+}
+
+static u8 *MonAppendGenderSymbol(u8 *name, struct BoxPokemon *boxMon)
+{
+ return AppendGenderSymbol(name, GetBoxMonGender(boxMon));
+}
+
+static void DaycareLevelMenuGetText(struct DayCareData *dayCareData, u8 *dest)
+{
+ u8 buffers[2][20];
+ u8 i;
+ *dest = EOS;
+ for (i = 0; i < 2; i ++)
+ {
+ GetBoxMonNick(&dayCareData->mons[i], buffers[i]);
+ MonAppendGenderSymbol(buffers[i], &dayCareData->mons[i]);
+ }
+ StringCopy(dest, buffers[0]);
+ StringAppend(dest, gOtherText_NewLine2);
+ StringAppend(dest, buffers[1]);
+ StringAppend(dest, gOtherText_NewLine2);
+ StringAppend(dest, gOtherText_CancelAndLv);
+}
+
+static void DaycareLevelMenuGetLevelText(struct DayCareData *dayCareData, u8 *dest)
+{
+ u8 i;
+ u8 level;
+ *dest = EOS;
+ for (i = 0; i < 2; i ++)
+ {
+ level = Daycare_GetLevelAfterSteps(&dayCareData->mons[i], dayCareData->misc.countersEtc.steps[i]);
+ dest[0] = 0x34;
+ dest[1] = 0xFC;
+ dest[2] = 0x14;
+ dest[3] = 0x06;
+ dest = ConvertIntToDecimalStringN(dest + 4, level, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ dest[0] = 0xFC;
+ dest[1] = 0x14;
+ dest[2] = 0x00;
+ dest = StringCopy(dest + 3, gOtherText_NewLine2);
+ }
+ *dest = EOS;
+}
+
+static void DaycareLevelMenuProcessKeyInput(u8 taskId)
+{
+ if (gMain.newKeys & DPAD_UP)
+ {
+ if (gTasks[taskId].data[0] != 0)
+ {
+ gTasks[taskId].data[0] --;
+ MoveMenuCursor(-1);
+ PlaySE(SE_SELECT);
+ }
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ if (gTasks[taskId].data[0] != 2)
+ {
+ gTasks[taskId].data[0] ++;
+ MoveMenuCursor(+1);
+ PlaySE(SE_SELECT);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ HandleDestroyMenuCursors();
+ PlaySE(SE_SELECT);
+ gLastFieldPokeMenuOpened = gScriptResult = gTasks[taskId].data[0];
+ DestroyTask(taskId);
+ MenuZeroFillWindowRect(15, 6, 29, 13);
+ EnableBothScriptContexts();
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ HandleDestroyMenuCursors();
+ gLastFieldPokeMenuOpened = gScriptResult = 2;
+ DestroyTask(taskId);
+ MenuZeroFillWindowRect(15, 6, 29, 13);
+ EnableBothScriptContexts();
+ }
+}
+
+void ShowDaycareLevelMenu(void)
+{
+ u8 buffer[100];
+ MenuDrawTextWindow(15, 6, 29, 13);
+ DaycareLevelMenuGetText(&gSaveBlock1.daycareData, buffer);
+ MenuPrint(buffer, 16, 7);
+ DaycareLevelMenuGetLevelText(&gSaveBlock1.daycareData, buffer);
+ MenuPrint_PixelCoords(buffer, 0xce, 0x38, TRUE);
+ InitMenu(0, 16, 7, 3, 0, 13);
+ CreateTask(DaycareLevelMenuProcessKeyInput, 3);
+}
+
+void ChooseSendDaycareMon(void)
+{
+ OpenPartyMenu(6, 0);
+ gMain.savedCallback = c2_exit_to_overworld_2_switch;
+}
diff --git a/src/decoration.c b/src/field/decoration.c
index 1d48692c1..065afbfb6 100644
--- a/src/decoration.c
+++ b/src/field/decoration.c
@@ -619,7 +619,7 @@ const u8 DecorDesc_REGISTEEL_DOLL[] = _(
"Place it on a mat\n"
"or a desk.");
#elif GERMAN
-#include "data/decoration/descriptions_de.h"
+#include "../data/decoration/descriptions_de.h"
#endif
const u16 DecorGfx_SMALL_DESK[] = {
@@ -1389,7 +1389,7 @@ const struct Decoration gDecorations[] = {
{DECOR_REGISTEEL_DOLL, _("REGISTEEL DOLL"), DECORPERM_SOLID_MAT, DECORSHAPE_1x2, DECORCAT_DOLL, 10000, DecorDesc_REGISTEEL_DOLL, DecorGfx_REGISTEEL_DOLL}
};
#elif GERMAN
-#include "data/decoration/decorations.h"
+#include "../data/decoration/decorations.h"
#endif
const u8 *const gUnknown_083EC5E4[] = {
diff --git a/src/decoration_inventory.c b/src/field/decoration_inventory.c
index 35ba7e228..083cb260c 100644
--- a/src/decoration_inventory.c
+++ b/src/field/decoration_inventory.c
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 6/5/17.
+
//
#include "global.h"
diff --git a/src/dewford_trend.c b/src/field/dewford_trend.c
index aaf4dd66a..aaf4dd66a 100644
--- a/src/dewford_trend.c
+++ b/src/field/dewford_trend.c
diff --git a/src/diploma.c b/src/field/diploma.c
index 27601404c..27601404c 100644
--- a/src/diploma.c
+++ b/src/field/diploma.c
diff --git a/src/easy_chat.c b/src/field/easy_chat.c
index dd33e69c3..6014b3d14 100644
--- a/src/easy_chat.c
+++ b/src/field/easy_chat.c
@@ -19,6 +19,8 @@ extern const u8 gEasyChatGroupSizes[];
extern u16 gSpecialVar_0x8004;
+IWRAM_DATA u8 gUnknown_03000740;
+
// returns the end of the destination buffer text
u8 *EasyChat_GetWordText(u8 *dst, u16 word)
{
@@ -428,7 +430,7 @@ static u16 sub_80EB9D8(void)
for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON]; i++)
{
const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList);
- const u8 local2 = GetNationalPokedexFlag(dexNum, 0);
+ const u8 local2 = GetSetPokedexFlag(dexNum, 0);
if (local2)
{
diff --git a/src/event_data.c b/src/field/event_data.c
index ee475343f..ee475343f 100644
--- a/src/event_data.c
+++ b/src/field/event_data.c
diff --git a/src/field_camera.c b/src/field/field_camera.c
index db51cf054..db51cf054 100644
--- a/src/field_camera.c
+++ b/src/field/field_camera.c
diff --git a/src/field_control_avatar.c b/src/field/field_control_avatar.c
index ff8e8504c..ff8e8504c 100644
--- a/src/field_control_avatar.c
+++ b/src/field/field_control_avatar.c
diff --git a/src/field_door.c b/src/field/field_door.c
index ab46f0696..ab46f0696 100644
--- a/src/field_door.c
+++ b/src/field/field_door.c
diff --git a/src/field_effect.c b/src/field/field_effect.c
index 0625e9d18..1bdf82991 100644
--- a/src/field_effect.c
+++ b/src/field/field_effect.c
@@ -660,7 +660,7 @@ u8 CreateMonSprite_FieldMove(u16 species, u32 d, u32 g, s16 x, s16 y, u8 subprio
const struct CompressedSpritePalette *spritePalette;
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, (u32)gUnknown_081FAF4C[3] /* this is actually u8* or something, pointing to ewram */, gUnknown_081FAF4C[3], species, g);
- spritePalette = sub_80409C8(species, d, g);
+ spritePalette = GetMonSpritePalStructFromOtIdPersonality(species, d, g);
LoadCompressedObjectPalette(spritePalette);
GetMonSpriteTemplate_803C56C(species, 3);
gUnknown_02024E8C.paletteTag = spritePalette->tag;
@@ -1894,7 +1894,6 @@ bool8 sub_80873F4(struct Task *task, struct MapObject *mapObject, struct Sprite
}
void sub_8087470(u8);
-extern u8 sub_80608A4(u8);
void mapldr_080851BC(void)
{
diff --git a/src/field/field_effect_helpers.c b/src/field/field_effect_helpers.c
new file mode 100644
index 000000000..2ad8bdce3
--- /dev/null
+++ b/src/field/field_effect_helpers.c
@@ -0,0 +1,1632 @@
+#include "global.h"
+#include "sprite.h"
+#include "fieldmap.h"
+#include "metatile_behavior.h"
+#include "songs.h"
+#include "sound.h"
+#include "field_map_obj.h"
+#include "field_camera.h"
+#include "field_map_obj_helpers.h"
+#include "field_weather.h"
+#include "field_effect.h"
+#include "field_ground_effect.h"
+#include "field_effect_helpers.h"
+
+static void sub_81269E0(struct Sprite *);
+static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite);
+static void npc_pal_op_A(struct MapObject *, u8);
+static void npc_pal_op_B(struct MapObject *, u8);
+static void sub_81275A0(struct Sprite *);
+static void sub_81275C4(struct Sprite *);
+static void sub_8127DA0(struct Sprite *);
+static void sub_8127DD0(struct Sprite *);
+static void sub_8127E30(struct Sprite *);
+static void sub_812882C(struct Sprite *, u8, u8);
+static void sub_81278D8(struct Sprite *);
+static void sub_8127FD4(struct MapObject *, struct Sprite *);
+static void sub_812800C(struct MapObject *, struct Sprite *);
+static void sub_81280A0(struct MapObject *, struct Sprite *, struct Sprite *);
+static void sub_8128174(struct Sprite *);
+static u32 ShowDisguiseFieldEffect(u8, u8, u8);
+
+const u8 UnusedEggString_8401E28[] = _("タマゴ");
+
+const u16 gUnknown_08401E2C[] = {
+ 0x0c,
+ 0x1c,
+ 0x2c
+};
+
+const u8 gUnknown_08401E32[] = {
+ 0,
+ 1,
+ 2,
+ 3
+};
+
+const u16 gUnknown_08401E36[] = {
+ 4,
+ 4,
+ 4,
+ 16
+};
+
+void (*const gUnknown_08401E40[])(struct Sprite *) = {
+ sub_81275A0,
+ sub_81275C4
+};
+
+void (*const gUnknown_08401E48[])(struct Sprite *) = {
+ sub_8127DA0,
+ sub_8127DD0,
+ sub_8127E30
+};
+
+const u8 gUnknown_08401E54[] = {
+ 0,
+ 0,
+ 1,
+ 2,
+ 3
+};
+
+const u16 gUnknown_08401E5A[] = {
+ 3,
+ 7
+};
+
+void SetUpReflection(struct MapObject *mapObject, struct Sprite *sprite, bool8 flag)
+{
+ struct Sprite *newSprite;
+
+ newSprite = &gSprites[obj_unfreeze(sprite, sprite->pos1.x, sprite->pos1.y, 0x98)];
+ newSprite->callback = sub_81269E0;
+ newSprite->oam.priority = 3;
+ newSprite->oam.paletteNum = gUnknown_0830FD14[newSprite->oam.paletteNum];
+ newSprite->usingSheet = TRUE;
+ newSprite->anims = gDummySpriteAnimTable;
+ StartSpriteAnim(newSprite, 0);
+ newSprite->affineAnims = gDummySpriteAffineAnimTable;
+ newSprite->affineAnimBeginning = TRUE;
+ newSprite->subspriteMode = 0;
+ newSprite->data0 = sprite->data0;
+ newSprite->data1 = mapObject->localId;
+ newSprite->data7 = flag;
+ npc_pal_op(mapObject, newSprite);
+ if (!flag)
+ {
+ newSprite->oam.affineMode = 1;
+ }
+}
+
+static s16 sub_81268D0(struct MapObject *mapObject)
+{
+ return GetFieldObjectGraphicsInfo(mapObject->graphicsId)->height - 2;
+}
+
+static void npc_pal_op(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 whichElement;
+ u16 unk_8041e2c[ARRAY_COUNT(gUnknown_08401E2C)];
+
+ memcpy(unk_8041e2c, gUnknown_08401E2C, sizeof gUnknown_08401E2C);
+ sprite->data2 = 0;
+ if (!GetFieldObjectGraphicsInfo(mapObject->graphicsId)->disableReflectionPaletteLoad && ((whichElement = sub_8057450(mapObject->mapobj_unk_1F)) || (whichElement = sub_8057450(mapObject->mapobj_unk_1E))))
+ {
+ sprite->data2 = unk_8041e2c[whichElement - 1];
+ npc_pal_op_A(mapObject, sprite->oam.paletteNum);
+ }
+ else
+ {
+ npc_pal_op_B(mapObject, sprite->oam.paletteNum);
+ }
+}
+
+static void npc_pal_op_B(struct MapObject *mapObject, u8 paletteNum)
+{
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ if (graphicsInfo->paletteTag2 != 0x11ff)
+ {
+ if (graphicsInfo->paletteSlot == 0)
+ {
+ npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, paletteNum);
+ }
+ else if (graphicsInfo->paletteSlot == 10)
+ {
+ npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, paletteNum);
+ }
+ else
+ {
+ pal_patch_for_npc(npc_paltag_by_palslot(paletteNum), paletteNum);
+ }
+ sub_807D78C(paletteNum);
+ }
+}
+
+static void npc_pal_op_A(struct MapObject *mapObject, u8 paletteNum)
+{
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ if (graphicsInfo->paletteTag2 != 0x11ff)
+ {
+ pal_patch_for_npc(graphicsInfo->paletteTag2, paletteNum);
+ sub_807D78C(paletteNum);
+ }
+}
+
+static void sub_81269E0(struct Sprite *sprite)
+{
+ struct MapObject *mapObject;
+ struct Sprite *oldSprite;
+
+ mapObject = &gMapObjects[sprite->data0];
+ oldSprite = &gSprites[mapObject->spriteId];
+ if (!mapObject->active || !mapObject->mapobj_bit_17 || mapObject->localId != sprite->data1)
+ {
+ sprite->inUse = FALSE;
+ }
+ else
+ {
+ sprite->oam.paletteNum = gUnknown_0830FD14[oldSprite->oam.paletteNum];
+ sprite->oam.shape = oldSprite->oam.shape;
+ sprite->oam.size = oldSprite->oam.size;
+ sprite->oam.matrixNum = oldSprite->oam.matrixNum | 0x10;
+ sprite->oam.tileNum = oldSprite->oam.tileNum;
+ sprite->subspriteTables = oldSprite->subspriteTables;
+ sprite->subspriteTableNum = oldSprite->subspriteTableNum;
+ sprite->invisible = oldSprite->invisible;
+ sprite->pos1.x = oldSprite->pos1.x;
+ sprite->pos1.y = oldSprite->pos1.y + sub_81268D0(mapObject) + sprite->data2;
+ sprite->centerToCornerVecX = oldSprite->centerToCornerVecX;
+ sprite->centerToCornerVecY = oldSprite->centerToCornerVecY;
+ sprite->pos2.x = oldSprite->pos2.x;
+ sprite->pos2.y = -oldSprite->pos2.y;
+ sprite->coordOffsetEnabled = oldSprite->coordOffsetEnabled;
+ if (sprite->data7 == FALSE)
+ {
+ sprite->oam.matrixNum = 0;
+ if (oldSprite->oam.matrixNum & 0x8)
+ {
+ sprite->oam.matrixNum = 1;
+ }
+ }
+ }
+}
+
+u8 sub_8126B54(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8] /*gFieldEffectSpriteTemplate_Arrow*/, 0, 0, 0x52);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->oam.priority = 1;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->invisible = TRUE;
+ }
+ return spriteId;
+}
+
+void objid_set_invisible(u8 spriteId)
+{
+ gSprites[spriteId].invisible = TRUE;
+}
+
+void sub_8126BC4(u8 spriteId, u8 animNum, s16 x, s16 y)
+{
+ s16 x2;
+ s16 y2;
+ struct Sprite *sprite;
+
+ sprite = &gSprites[spriteId];
+ if (sprite->invisible || sprite->data0 != x || sprite->data1 != y)
+ {
+ sub_80603CC(x, y, &x2, &y2);
+ sprite = &gSprites[spriteId];
+ sprite->pos1.x = x2 + 8;
+ sprite->pos1.y = y2 + 8;
+ sprite->invisible = FALSE;
+ sprite->data0 = x;
+ sprite->data1 = y;
+ StartSpriteAnim(sprite, animNum - 1);
+ }
+}
+
+u32 FldEff_Shadow(void)
+{
+ u8 mapObjectId;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ u8 spriteId;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gUnknown_08401E32[graphicsInfo->shadowSize]], 0, 0, 0x94);
+ if (spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gSprites[spriteId].data0 = gFieldEffectArguments[0];
+ gSprites[spriteId].data1 = gFieldEffectArguments[1];
+ gSprites[spriteId].data2 = gFieldEffectArguments[2];
+ gSprites[spriteId].data3 = (graphicsInfo->height >> 1) - gUnknown_08401E36[graphicsInfo->shadowSize];
+ }
+ return 0;
+}
+
+void oamc_shadow(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ struct Sprite *linkedSprite;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId))
+ {
+ FieldEffectStop(sprite, FLDEFF_SHADOW);
+ }
+ else
+ {
+ mapObject = &gMapObjects[mapObjectId];
+ linkedSprite = &gSprites[mapObject->spriteId];
+ sprite->oam.priority = linkedSprite->oam.priority;
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y + sprite->data3;
+ if (!mapObject->active || !mapObject->mapobj_bit_22 || MetatileBehavior_IsPokeGrass(mapObject->mapobj_unk_1E) || MetatileBehavior_IsSurfableWaterOrUnderwater(mapObject->mapobj_unk_1E) || MetatileBehavior_IsSurfableWaterOrUnderwater(mapObject->mapobj_unk_1F) || MetatileBehavior_IsReflective(mapObject->mapobj_unk_1E) || MetatileBehavior_IsReflective(mapObject->mapobj_unk_1F))
+ {
+ FieldEffectStop(sprite, FLDEFF_SHADOW);
+ }
+ }
+}
+
+u32 FldEff_TallGrass(void)
+{
+ s16 x;
+ s16 y;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ x = gFieldEffectArguments[0];
+ y = gFieldEffectArguments[1];
+ sub_8060470(&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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = gFieldEffectArguments[0];
+ sprite->data2 = gFieldEffectArguments[1];
+ sprite->data3 = gFieldEffectArguments[4];
+ sprite->data4 = gFieldEffectArguments[5];
+ sprite->data5 = gFieldEffectArguments[6];
+ if (gFieldEffectArguments[7])
+ {
+ SeekSpriteAnim(sprite, 4);
+ }
+ }
+ return 0;
+}
+
+void unc_grass_normal(struct Sprite *sprite)
+{
+ u8 mapNum;
+ u8 mapGroup;
+ u8 metatileBehavior;
+ u8 localId;
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+
+ mapNum = sprite->data5 >> 8;
+ mapGroup = sprite->data5;
+ if (gCamera.field_0 && (gSaveBlock1.location.mapNum != mapNum || gSaveBlock1.location.mapGroup != mapGroup))
+ {
+ sprite->data1 -= gCamera.x;
+ sprite->data2 -= gCamera.y;
+ sprite->data5 = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
+ }
+ localId = sprite->data3 >> 8;
+ mapNum = sprite->data3;
+ mapGroup = sprite->data4;
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data1, sprite->data2);
+ if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsTallGrass(metatileBehavior) || (sprite->data7 && sprite->animEnded))
+ {
+ FieldEffectStop(sprite, FLDEFF_TALL_GRASS);
+ }
+ else
+ {
+ mapObject = &gMapObjects[mapObjectId];
+ if ((mapObject->coords2.x != sprite->data1 || mapObject->coords2.y != sprite->data2) && (mapObject->coords3.x != sprite->data1 || mapObject->coords3.y != sprite->data2))
+ {
+ sprite->data7 = TRUE;
+ }
+ metatileBehavior = 0;
+ if (sprite->animCmdIndex == 0)
+ {
+ metatileBehavior = 4;
+ }
+ sub_806487C(sprite, 0);
+ sub_812882C(sprite, sprite->data0, metatileBehavior);
+ }
+}
+
+u32 FldEff_JumpTallGrass(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = 12;
+ }
+ return 0;
+}
+
+u8 sub_8126FF0(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 == unc_grass_normal && (x == sprite->data1 && y == sprite->data2) && (localId == (u8)(sprite->data3 >> 8) && mapNum == (sprite->data3 & 0xFF) && mapGroup == sprite->data4))
+ {
+ 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_8060470(&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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = gFieldEffectArguments[0];
+ sprite->data2 = gFieldEffectArguments[1];
+ sprite->data3 = gFieldEffectArguments[4];
+ sprite->data4 = gFieldEffectArguments[5];
+ sprite->data5 = gFieldEffectArguments[6];
+ if (gFieldEffectArguments[7])
+ {
+ SeekSpriteAnim(sprite, 6);
+ }
+ }
+ return 0;
+}
+
+void unc_grass_tall(struct Sprite *sprite)
+{
+ u8 mapNum;
+ u8 mapGroup;
+ u8 metatileBehavior;
+ u8 localId;
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+
+ mapNum = sprite->data5 >> 8;
+ mapGroup = sprite->data5;
+ if (gCamera.field_0 && (gSaveBlock1.location.mapNum != mapNum || gSaveBlock1.location.mapGroup != mapGroup))
+ {
+ sprite->data1 -= gCamera.x;
+ sprite->data2 -= gCamera.y;
+ sprite->data5 = ((u8)gSaveBlock1.location.mapNum << 8) | (u8)gSaveBlock1.location.mapGroup;
+ }
+ localId = sprite->data3 >> 8;
+ mapNum = sprite->data3;
+ mapGroup = sprite->data4;
+ metatileBehavior = MapGridGetMetatileBehaviorAt(sprite->data1, sprite->data2);
+ if (TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) || !MetatileBehavior_IsLongGrass(metatileBehavior) || (sprite->data7 && sprite->animEnded))
+ {
+ FieldEffectStop(sprite, FLDEFF_LONG_GRASS);
+ }
+ else
+ {
+ mapObject = &gMapObjects[mapObjectId];
+ if ((mapObject->coords2.x != sprite->data1 || mapObject->coords2.y != sprite->data2) && (mapObject->coords3.x != sprite->data1 || mapObject->coords3.y != sprite->data2))
+ {
+ sprite->data7 = TRUE;
+ }
+ sub_806487C(sprite, 0);
+ sub_812882C(sprite, sprite->data0, 0);
+ }
+}
+
+u32 FldEff_JumpLongGrass(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = 18;
+ }
+ return 0;
+}
+
+u32 FldEff_ShortGrass(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &(gSprites[spriteId]);
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
+ sprite->data0 = gFieldEffectArguments[0];
+ sprite->data1 = gFieldEffectArguments[1];
+ sprite->data2 = gFieldEffectArguments[2];
+ sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ }
+ return 0;
+}
+
+void sub_8127334(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ s16 x;
+ s16 y;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_18)
+ {
+ FieldEffectStop(sprite, FLDEFF_SHORT_GRASS);
+ }
+ else
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId);
+ linkedSprite = &gSprites[gMapObjects[mapObjectId].spriteId];
+ y = linkedSprite->pos1.y;
+ x = linkedSprite->pos1.x;
+ if (x != sprite->data3 || y != sprite->data4)
+ {
+ sprite->data3 = x;
+ sprite->data4 = 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;
+ sub_806487C(sprite, linkedSprite->invisible);
+ }
+}
+
+u32 FldEff_SandFootprints(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data7 = FLDEFF_SAND_FOOTPRINTS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return 0;
+}
+
+u32 FldEff_DeepSandFootprints(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data7 = FLDEFF_DEEP_SAND_FOOTPRINTS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return spriteId;
+}
+
+u32 FldEff_BikeTireTracks(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data7 = FLDEFF_BIKE_TIRE_TRACKS;
+ StartSpriteAnim(sprite, gFieldEffectArguments[4]);
+ }
+ return spriteId;
+}
+
+void sub_8127584(struct Sprite *sprite)
+{
+ gUnknown_08401E40[sprite->data0](sprite);
+}
+
+static void sub_81275A0(struct Sprite *sprite)
+{
+ if (++sprite->data1 > 40)
+ {
+ sprite->data0 = 1;
+ }
+ sub_806487C(sprite, FALSE);
+}
+
+static void sub_81275C4(struct Sprite *sprite)
+{
+ sprite->invisible ^= 1;
+ sprite->data1 ++;
+ sub_806487C(sprite, sprite->invisible);
+ if (sprite->data1 > 56)
+ {
+ FieldEffectStop(sprite, sprite->data7);
+ }
+}
+
+u32 FldEff_Splash(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ linkedSprite = &gSprites[mapObject->spriteId];
+ sprite->oam.priority = linkedSprite->oam.priority;
+ sprite->data0 = gFieldEffectArguments[0];
+ sprite->data1 = gFieldEffectArguments[1];
+ sprite->data2 = gFieldEffectArguments[2];
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 4;
+ PlaySE(SE_MIZU);
+ }
+ return 0;
+}
+
+void sub_81276B4(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+
+ if (sprite->animEnded || TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId))
+ {
+ FieldEffectStop(sprite, FLDEFF_SPLASH);
+ }
+ else
+ {
+ sprite->pos1.x = gSprites[gMapObjects[mapObjectId].spriteId].pos1.x;
+ sprite->pos1.y = gSprites[gMapObjects[mapObjectId].spriteId].pos1.y;
+ sub_806487C(sprite, FALSE);
+ }
+}
+
+u32 FldEff_JumpSmallSplash(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = FLDEFF_JUMP_SMALL_SPLASH;
+ }
+ return 0;
+}
+
+u32 FldEff_JumpBigSplash(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = FLDEFF_JUMP_BIG_SPLASH;
+ }
+ return 0;
+}
+
+u32 FldEff_FeetInFlowingWater(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->callback = sub_81278D8;
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
+ sprite->data0 = gFieldEffectArguments[0];
+ sprite->data1 = gFieldEffectArguments[1];
+ sprite->data2 = gFieldEffectArguments[2];
+ sprite->data3 = -1;
+ sprite->data4 = -1;
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 4;
+ StartSpriteAnim(sprite, 1);
+ }
+ return 0;
+}
+
+static void sub_81278D8(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ struct Sprite *linkedSprite;
+ struct MapObject *mapObject;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_19)
+ {
+ FieldEffectStop(sprite, FLDEFF_FEET_IN_FLOWING_WATER);
+ }
+ else
+ {
+ mapObject = &gMapObjects[mapObjectId];
+ linkedSprite = &gSprites[mapObject->spriteId];
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y;
+ sprite->subpriority = linkedSprite->subpriority;
+ sub_806487C(sprite, FALSE);
+ if (mapObject->coords2.x != sprite->data3 || mapObject->coords2.y != sprite->data4)
+ {
+ sprite->data3 = mapObject->coords2.x;
+ sprite->data4 = mapObject->coords2.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->data0 = FLDEFF_RIPPLE;
+ }
+ return 0;
+}
+
+u32 FldEff_HotSpringsWater(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
+ sprite->data0 = gFieldEffectArguments[0];
+ sprite->data1 = gFieldEffectArguments[1];
+ sprite->data2 = gFieldEffectArguments[2];
+ sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ }
+ return 0;
+}
+
+void sub_8127A7C(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_21)
+ {
+ FieldEffectStop(sprite, FLDEFF_HOT_SPRINGS_WATER);
+ }
+ else
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId);
+ linkedSprite = &gSprites[gMapObjects[mapObjectId].spriteId];
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8;
+ sprite->subpriority = linkedSprite->subpriority - 1;
+ sub_806487C(sprite, FALSE);
+ }
+}
+
+u32 FldEff_Unknown19(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = FLDEFF_UNKNOWN_19;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown20(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = FLDEFF_UNKNOWN_20;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown21(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = FLDEFF_UNKNOWN_21;
+ }
+ return 0;
+}
+
+u32 FldEff_Unknown22(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = FLDEFF_UNKNOWN_22;
+ }
+ return 0;
+}
+
+void ash(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_8060470(&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->data1 = gFieldEffectArguments[0];
+ sprite->data2 = gFieldEffectArguments[1];
+ sprite->data3 = gFieldEffectArguments[4];
+ sprite->data4 = gFieldEffectArguments[5];
+ }
+ return 0;
+}
+
+void sub_8127D84(struct Sprite *sprite)
+{
+ gUnknown_08401E48[sprite->data0](sprite);
+}
+
+static void sub_8127DA0(struct Sprite *sprite)
+{
+ sprite->invisible = TRUE;
+ sprite->animPaused = TRUE;
+ if (--sprite->data4 == 0)
+ {
+ sprite->data0 = 1;
+ }
+}
+
+static void sub_8127DD0(struct Sprite *sprite)
+{
+ sprite->invisible = FALSE;
+ sprite->animPaused = FALSE;
+ MapGridSetMetatileIdAt(sprite->data1, sprite->data2, sprite->data3);
+ CurrentMapDrawMetatileAt(sprite->data1, sprite->data2);
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_2 = TRUE;
+ sprite->data0 = 2;
+}
+
+static void sub_8127E30(struct Sprite *sprite)
+{
+ sub_806487C(sprite, FALSE);
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, FLDEFF_ASH);
+ }
+}
+
+u32 FldEff_SurfBlob(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data2 = gFieldEffectArguments[2];
+ sprite->data3 = -1;
+ sprite->data6 = -1;
+ sprite->data7 = -1;
+ }
+ FieldEffectActiveListRemove(FLDEFF_SURF_BLOB);
+ return spriteId;
+}
+
+void sub_8127ED0(u8 spriteId, u8 value)
+{
+ gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF) | (value & 0xF);
+}
+
+void sub_8127EFC(u8 spriteId, u8 value)
+{
+ gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF0) | ((value & 0xF) << 4);
+}
+
+void sub_8127F28(u8 spriteId, u8 value, s16 data1)
+{
+ gSprites[spriteId].data0 = (gSprites[spriteId].data0 & ~0xF00) | ((value & 0xF) << 8);
+ gSprites[spriteId].data1 = data1;
+}
+
+static u8 sub_8127F5C(struct Sprite *sprite)
+{
+ return sprite->data0 & 0xF;
+}
+
+static u8 sub_8127F64(struct Sprite *sprite)
+{
+ return (sprite->data0 & 0xF0) >> 4;
+}
+
+static u8 sub_8127F70(struct Sprite *sprite)
+{
+ return (sprite->data0 & 0xF00) >> 8;
+}
+
+void sub_8127F7C(struct Sprite *sprite)
+{
+ struct MapObject *mapObject;
+ struct Sprite *linkedSprite;
+
+ mapObject = &gMapObjects[sprite->data2];
+ linkedSprite = &gSprites[mapObject->spriteId];
+ sub_8127FD4(mapObject, sprite);
+ sub_812800C(mapObject, sprite);
+ sub_81280A0(mapObject, linkedSprite, sprite);
+ sprite->oam.priority = linkedSprite->oam.priority;
+}
+
+static void sub_8127FD4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 unk_8041E54[ARRAY_COUNT(gUnknown_08401E54)];
+
+ memcpy(unk_8041E54, gUnknown_08401E54, sizeof gUnknown_08401E54);
+ if (sub_8127F64(sprite) == 0)
+ {
+ StartSpriteAnimIfDifferent(sprite, unk_8041E54[mapObject->placeholder18]);
+ }
+}
+
+#ifdef NONMATCHING
+static void sub_812800C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ s16 x;
+ s16 y;
+ u8 i;
+
+ x = mapObject->coords2.x;
+ y = mapObject->coords2.y;
+ if (sprite->pos2.y == 0 && (x != sprite->data6 || y != sprite->data7))
+ {
+ sprite->data5 = sprite->pos2.y;
+ for (sprite->data6 = x, sprite->data7 = y, i = DIR_SOUTH; i <= DIR_EAST; i ++, x = sprite->data6, y = sprite->data7)
+ {
+ MoveCoords(i, &x, &y);
+ if (MapGridGetZCoordAt(x, y) == 3)
+ {
+ sprite->data5 ++;
+ break;
+ }
+ }
+ }
+}
+#else
+__attribute__((naked)) static void sub_812800C(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r8\n"
+ "\tpush {r7}\n"
+ "\tsub sp, 0x4\n"
+ "\tadds r4, r1, 0\n"
+ "\tldrh r2, [r0, 0x10]\n"
+ "\tmov r1, sp\n"
+ "\tstrh r2, [r1]\n"
+ "\tldrh r1, [r0, 0x12]\n"
+ "\tmov r0, sp\n"
+ "\tadds r0, 0x2\n"
+ "\tstrh r1, [r0]\n"
+ "\tmovs r2, 0x26\n"
+ "\tldrsh r3, [r4, r2]\n"
+ "\tmov r8, r0\n"
+ "\tcmp r3, 0\n"
+ "\tbne _08128094\n"
+ "\tmov r0, sp\n"
+ "\tmovs r5, 0\n"
+ "\tldrsh r2, [r0, r5]\n"
+ "\tmovs r5, 0x3A\n"
+ "\tldrsh r0, [r4, r5]\n"
+ "\tcmp r2, r0\n"
+ "\tbne _08128048\n"
+ "\tlsls r0, r1, 16\n"
+ "\tasrs r0, 16\n"
+ "\tmovs r5, 0x3C\n"
+ "\tldrsh r1, [r4, r5]\n"
+ "\tcmp r0, r1\n"
+ "\tbeq _08128094\n"
+ "_08128048:\n"
+ "\tstrh r3, [r4, 0x38]\n"
+ "\tstrh r2, [r4, 0x3A]\n"
+ "\tmov r1, r8\n"
+ "\tmovs r2, 0\n"
+ "\tldrsh r0, [r1, r2]\n"
+ "\tstrh r0, [r4, 0x3C]\n"
+ "\tmovs r5, 0x1\n"
+ "\tmov r7, r8\n"
+ "\tmov r6, sp\n"
+ "_0812805A:\n"
+ "\tadds r0, r5, 0\n"
+ "\tmov r1, sp\n"
+ "\tadds r2, r7, 0\n"
+ "\tbl MoveCoords\n"
+ "\tmovs r1, 0\n"
+ "\tldrsh r0, [r6, r1]\n"
+ "\tmovs r2, 0\n"
+ "\tldrsh r1, [r7, r2]\n"
+ "\tbl MapGridGetZCoordAt\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x3\n"
+ "\tbne _08128080\n"
+ "\tldrh r0, [r4, 0x38]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrh r0, [r4, 0x38]\n"
+ "\tb _08128094\n"
+ "_08128080:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tldrh r0, [r4, 0x3A]\n"
+ "\tstrh r0, [r6]\n"
+ "\tldrh r0, [r4, 0x3C]\n"
+ "\tmov r1, r8\n"
+ "\tstrh r0, [r1]\n"
+ "\tcmp r5, 0x4\n"
+ "\tbls _0812805A\n"
+ "_08128094:\n"
+ "\tadd sp, 0x4\n"
+ "\tpop {r3}\n"
+ "\tmov r8, r3\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+#endif
+
+static void sub_81280A0(struct MapObject *mapObject, struct Sprite *linkedSprite, struct Sprite *sprite)
+{
+ u16 unk_8401E5A[ARRAY_COUNT(gUnknown_08401E5A)];
+ u8 v0;
+
+ memcpy(unk_8401E5A, gUnknown_08401E5A, sizeof gUnknown_08401E5A);
+ v0 = sub_8127F5C(sprite);
+ if (v0 != 0)
+ {
+ if (((u16)(++ sprite->data4) & unk_8401E5A[sprite->data5]) == 0)
+ {
+ sprite->pos2.y += sprite->data3;
+ }
+ if ((sprite->data4 & 0x0F) == 0)
+ {
+ sprite->data3 = -sprite->data3;
+ }
+ if (v0 != 2)
+ {
+ if (sub_8127F70(sprite) == 0)
+ {
+ linkedSprite->pos2.y = sprite->pos2.y;
+ }
+ else
+ {
+ linkedSprite->pos2.y = sprite->data1 + sprite->pos2.y;
+ }
+ sprite->pos1.x = linkedSprite->pos1.x;
+ sprite->pos1.y = linkedSprite->pos1.y + 8;
+ }
+ }
+}
+
+u8 sub_8128124(u8 oldSpriteId)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ spriteId = CreateSpriteAtEnd(&gDummySpriteTemplate, 0, 0, -1);
+ sprite = &gSprites[spriteId];
+ sprite->callback = sub_8128174;
+ sprite->invisible = TRUE;
+ sprite->data0 = oldSpriteId;
+ sprite->data1 = 1;
+ return spriteId;
+}
+
+static void sub_8128174(struct Sprite *sprite)
+{
+ struct Sprite *oldSprite;
+
+ oldSprite = &gSprites[sprite->data0];
+ if (((sprite->data2++) & 0x03) == 0)
+ {
+ oldSprite->pos2.y += sprite->data1;
+ }
+ if ((sprite->data2 & 0x0F) == 0)
+ {
+ sprite->data1 = -sprite->data1;
+ }
+}
+
+u32 FldEff_Dust(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = gFieldEffectArguments[2];
+ sprite->data1 = 10;
+ }
+ return 0;
+}
+
+u32 FldEff_SandPile(void)
+{
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+ u8 spriteId;
+ struct Sprite *sprite;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+
+ mapObjectId = GetFieldObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ mapObject = &gMapObjects[mapObjectId];
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
+ if (spriteId != MAX_SPRITES)
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ sprite = &gSprites[spriteId];
+ sprite->coordOffsetEnabled = TRUE;
+ sprite->oam.priority = gSprites[mapObject->spriteId].oam.priority;
+ sprite->data0 = gFieldEffectArguments[0];
+ sprite->data1 = gFieldEffectArguments[1];
+ sprite->data2 = gFieldEffectArguments[2];
+ sprite->data3 = gSprites[mapObject->spriteId].pos1.x;
+ sprite->data4 = gSprites[mapObject->spriteId].pos1.y;
+ sprite->pos2.y = (graphicsInfo->height >> 1) - 2;
+ SeekSpriteAnim(sprite, 2);
+ }
+ return 0;
+}
+
+void sub_81282E0(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ s16 x;
+ s16 y;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_20)
+ {
+ FieldEffectStop(sprite, FLDEFF_SAND_PILE);
+ }
+ else
+ {
+ y = gSprites[gMapObjects[mapObjectId].spriteId].pos1.y;
+ x = gSprites[gMapObjects[mapObjectId].spriteId].pos1.x;
+ if (x != sprite->data3 || y != sprite->data4)
+ {
+ sprite->data3 = x;
+ sprite->data4 = y;
+ if (sprite->animEnded)
+ {
+ StartSpriteAnim(sprite, 0);
+ }
+ }
+ sprite->pos1.x = x;
+ sprite->pos1.y = y;
+ sprite->subpriority = gSprites[gMapObjects[mapObjectId].spriteId].subpriority;
+ sub_806487C(sprite, FALSE);
+ }
+}
+
+u32 FldEff_Bubbles(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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 sub_8128410(struct Sprite *sprite)
+{
+ sprite->data0 += 0x80;
+ sprite->data0 &= 0x100;
+ sprite->pos1.y -= sprite->data0 >> 8;
+ sub_806487C(sprite, FALSE);
+ if (sprite->invisible || sprite->animEnded)
+ {
+ FieldEffectStop(sprite, FLDEFF_BUBBLES);
+ }
+}
+
+u32 FldEff_BerryTreeGrowthSparkle(void)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ sub_8060470((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->data0 = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
+ }
+ return 0;
+}
+
+u32 FldEff_TreeDisguise(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 0x18, 0x04);
+}
+
+
+u32 FldEff_MountainDisguise(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 0x19, 0x03);
+}
+
+
+u32 FldEff_SandDisguise(void)
+{
+ return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 0x1C, 0x02);
+}
+
+static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
+{
+ u8 spriteId;
+ struct Sprite *sprite;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(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->data1 = fldEff;
+ sprite->data2 = gFieldEffectArguments[0];
+ sprite->data3 = gFieldEffectArguments[1];
+ sprite->data4 = gFieldEffectArguments[2];
+ }
+ return spriteId;
+}
+
+void sub_81285AC(struct Sprite *sprite)
+{
+ u8 mapObjectId;
+ const struct MapObjectGraphicsInfo *graphicsInfo;
+ struct Sprite *linkedSprite;
+
+ if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data2, sprite->data3, sprite->data4, &mapObjectId))
+ {
+ FieldEffectStop(sprite, sprite->data1);
+ }
+ // else {
+ graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId);
+ linkedSprite = &gSprites[gMapObjects[mapObjectId].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->data0 == 1)
+ {
+ sprite->data0 ++;
+ StartSpriteAnim(sprite, 1);
+ }
+ if (sprite->data0 == 2 && sprite->animEnded)
+ {
+ sprite->data7 = 1;
+ }
+ if (sprite->data0 == 3)
+ {
+ FieldEffectStop(sprite, sprite->data1);
+ }
+ // }
+}
+
+void sub_812869C(struct MapObject *mapObject)
+{
+ if (mapObject->mapobj_unk_21 == 1)
+ {
+ gSprites[mapObject->mapobj_unk_1A].data0 ++;
+ }
+}
+
+bool8 sub_81286C4(struct MapObject *mapObject)
+{
+ struct Sprite *sprite;
+
+ if (mapObject->mapobj_unk_21 == 2)
+ {
+ return TRUE;
+ }
+ if (mapObject->mapobj_unk_21 == 0)
+ {
+ return TRUE;
+ }
+ sprite = &gSprites[mapObject->mapobj_unk_1A];
+ if (sprite->data7)
+ {
+ mapObject->mapobj_unk_21 = 2;
+ sprite->data0 ++;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+u32 FldEff_Sparkle(void)
+{
+ u8 spriteId;
+
+ gFieldEffectArguments[0] += 7;
+ gFieldEffectArguments[1] += 7;
+ sub_8060470((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 sub_8128774(struct Sprite *sprite)
+{
+ if (sprite->data0 == 0)
+ {
+ if (sprite->animEnded)
+ {
+ sprite->invisible = TRUE;
+ sprite->data0 ++;
+ }
+ if (sprite->data0 == 0)
+ {
+ return;
+ }
+ }
+ if (++ sprite->data1 >= 35)
+ {
+ FieldEffectStop(sprite, FLDEFF_SPARKLE);
+ }
+}
+
+void sub_81287C4(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, sprite->data1);
+ }
+ else
+ {
+ sub_806487C(sprite, FALSE);
+ SetObjectSubpriorityByZCoord(sprite->data0, sprite, 0);
+ }
+}
+
+void sub_8128800(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ {
+ FieldEffectStop(sprite, sprite->data0);
+ }
+ else
+ {
+ sub_806487C(sprite, FALSE);
+ }
+}
+
+#ifdef NONMATCHING
+static void sub_812882C(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 MapObject *mapObject; // r4
+ const struct MapObjectGraphicsInfo *graphicsInfo; // destroyed
+ struct Sprite *linkedSprite; // r5
+
+ SetObjectSubpriorityByZCoord(z, sprite, offset);
+ for (i = 0; i < 16; i ++)
+ {
+ mapObject = &gMapObjects[i];
+ if (mapObject->active)
+ {
+ graphicsInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ linkedSprite = &gSprites[mapObject->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
+__attribute__((naked)) static void sub_812882C(struct Sprite *sprite /*r6*/, u8 z, u8 offset)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tadds r6, r0, 0\n"
+ "\tadds r0, r1, 0\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tadds r1, r6, 0\n"
+ "\tbl SetObjectSubpriorityByZCoord\n"
+ "\tmovs r7, 0\n"
+ "_08128842:\n"
+ "\tlsls r0, r7, 3\n"
+ "\tadds r0, r7\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _081288DC @ =gMapObjects\n"
+ "\tadds r4, r0, r1\n"
+ "\tldrb r0, [r4]\n"
+ "\tlsls r0, 31\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081288E4\n"
+ "\tldrb r0, [r4, 0x5]\n"
+ "\tbl GetFieldObjectGraphicsInfo\n"
+ "\tldrb r1, [r4, 0x4]\n"
+ "\tlsls r0, r1, 4\n"
+ "\tadds r0, r1\n"
+ "\tlsls r0, 2\n"
+ "\tldr r1, _081288E0 @ =gSprites\n"
+ "\tadds r5, r0, r1\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r0, 0x28\n"
+ "\tmovs r2, 0\n"
+ "\tldrsb r2, [r0, r2]\n"
+ "\tldrh r0, [r6, 0x20]\n"
+ "\tadds r1, r0, r2\n"
+ "\tsubs r0, r2\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r4, r0, 16\n"
+ "\tlsls r1, 16\n"
+ "\tasrs r1, 16\n"
+ "\tmovs r0, 0x20\n"
+ "\tldrsh r2, [r5, r0]\n"
+ "\tcmp r1, r2\n"
+ "\tbge _081288E4\n"
+ "\tlsls r0, r4, 16\n"
+ "\tasrs r0, 16\n"
+ "\tcmp r0, r2\n"
+ "\tble _081288E4\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x29\n"
+ "\tmovs r3, 0\n"
+ "\tldrsb r3, [r0, r3]\n"
+ "\tldrh r2, [r5, 0x22]\n"
+ "\tadds r2, r3\n"
+ "\tldrh r4, [r5, 0x22]\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r0, 0x29\n"
+ "\tmovs r1, 0\n"
+ "\tldrsb r1, [r0, r1]\n"
+ "\tldrh r0, [r6, 0x22]\n"
+ "\tsubs r0, r1\n"
+ "\tlsls r0, 16\n"
+ "\tasrs r0, 16\n"
+ "\tadds r3, r0, r3\n"
+ "\tlsls r2, 16\n"
+ "\tasrs r2, 16\n"
+ "\tlsls r3, 16\n"
+ "\tasrs r3, 16\n"
+ "\tcmp r2, r3\n"
+ "\tblt _081288BC\n"
+ "\tcmp r2, r0\n"
+ "\tbge _081288E4\n"
+ "_081288BC:\n"
+ "\tlsls r0, r4, 16\n"
+ "\tasrs r0, 16\n"
+ "\tcmp r0, r3\n"
+ "\tble _081288E4\n"
+ "\tadds r2, r6, 0\n"
+ "\tadds r2, 0x43\n"
+ "\tadds r0, r5, 0\n"
+ "\tadds r0, 0x43\n"
+ "\tldrb r1, [r0]\n"
+ "\tldrb r0, [r2]\n"
+ "\tcmp r0, r1\n"
+ "\tbhi _081288E4\n"
+ "\tadds r0, r1, 0x2\n"
+ "\tstrb r0, [r2]\n"
+ "\tb _081288EE\n"
+ "\t.align 2, 0\n"
+ "_081288DC: .4byte gMapObjects\n"
+ "_081288E0: .4byte gSprites\n"
+ "_081288E4:\n"
+ "\tadds r0, r7, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r7, r0, 24\n"
+ "\tcmp r7, 0xF\n"
+ "\tbls _08128842\n"
+ "_081288EE:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0");
+}
+#endif
diff --git a/src/field_fadetransition.c b/src/field/field_fadetransition.c
index d95177821..d95177821 100644
--- a/src/field_fadetransition.c
+++ b/src/field/field_fadetransition.c
diff --git a/src/field_ground_effect.c b/src/field/field_ground_effect.c
index 2a398ba22..5af8ea3e3 100644
--- a/src/field_ground_effect.c
+++ b/src/field/field_ground_effect.c
@@ -472,7 +472,7 @@ void GroundEffect_SpawnOnTallGrass(struct MapObject *mapObj, struct Sprite *spri
| (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 1;
- FieldEffectStart(4);
+ FieldEffectStart(FLDEFF_TALL_GRASS);
}
void sub_8063E94(struct MapObject *mapObj, struct Sprite *sprite)
@@ -491,7 +491,7 @@ void sub_8063E94(struct MapObject *mapObj, struct Sprite *sprite)
| (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 0;
- FieldEffectStart(4);
+ FieldEffectStart(FLDEFF_TALL_GRASS);
}
void sub_8063EE0(struct MapObject *mapObj, struct Sprite *sprite)
@@ -510,7 +510,7 @@ void sub_8063EE0(struct MapObject *mapObj, struct Sprite *sprite)
| (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 1;
- FieldEffectStart(17);
+ FieldEffectStart(FLDEFF_LONG_GRASS);
}
void sub_8063F2C(struct MapObject *mapObj, struct Sprite *sprite)
@@ -529,7 +529,7 @@ void sub_8063F2C(struct MapObject *mapObj, struct Sprite *sprite)
| (u8)gSaveBlock1.location.mapGroup;
gFieldEffectArguments[7] = 0;
- FieldEffectStart(17);
+ FieldEffectStart(FLDEFF_LONG_GRASS);
}
void GroundEffect_WaterReflection(struct MapObject *mapObj, struct Sprite *sprite)
@@ -570,7 +570,10 @@ static void nullsub(struct MapObject *mapObj, struct Sprite *sprite, u8 a)
static void DoTracksGroundEffect_Footprints(struct MapObject *mapObj, struct Sprite *sprite, u8 a)
{
// First half-word is a Field Effect script id. (gFieldEffectScriptPointers)
- u16 sandFootprints_FieldEffectData[2] = { 0xD, 0x18 };
+ u16 sandFootprints_FieldEffectData[2] = {
+ FLDEFF_SAND_FOOTPRINTS,
+ FLDEFF_DEEP_SAND_FOOTPRINTS
+ };
gFieldEffectArguments[0] = mapObj->coords3.x;
gFieldEffectArguments[1] = mapObj->coords3.y;
diff --git a/src/field_map_obj.c b/src/field/field_map_obj.c
index 0e7cd7896..59319a16e 100644
--- a/src/field_map_obj.c
+++ b/src/field/field_map_obj.c
@@ -1901,7 +1901,7 @@ extern void CameraObjectReset1(void);
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
extern u8 gReservedSpritePaletteCount;
-extern struct Camera gUnknown_0202E844;
+extern struct Camera gCamera;
static u8 gUnknown_030005A4;
static u16 gUnknown_030005A6;
@@ -2986,24 +2986,21 @@ void UpdateFieldObjectCoordsForCameraUpdate(void)
s16 deltaX;
s16 deltaY;
-#ifndef NONMATCHING
- asm(""::"r"(i)); //makes the compiler store i in r3
-#endif
-
- if (gUnknown_0202E844.field_0)
+ if (gCamera.field_0)
{
- for (i = 0, deltaX = gUnknown_0202E844.x, deltaY = gUnknown_0202E844.y; i < 16; i++)
+ deltaX = gCamera.x;
+ deltaY = gCamera.y;
+ for (i = 0; i < 16; i++)
{
- struct MapObject *mapObject = &gMapObjects[i];
- if (mapObject->active)
+ if (gMapObjects[i].active)
{
- mapObject->coords1.x -= deltaX;
- mapObject->coords1.y -= deltaY;
- mapObject->coords2.x -= deltaX;
- mapObject->coords2.y -= deltaY;
- mapObject->coords3.x -= deltaX;
- mapObject->coords3.y -= deltaY;
+ gMapObjects[i].coords1.x -= deltaX;
+ gMapObjects[i].coords1.y -= deltaY;
+ gMapObjects[i].coords2.x -= deltaX;
+ gMapObjects[i].coords2.y -= deltaY;
+ gMapObjects[i].coords3.x -= deltaX;
+ gMapObjects[i].coords3.y -= deltaY;
}
}
}
@@ -5030,32 +5027,30 @@ u8 sub_805F3C4(struct MapObject *mapObject, struct Sprite *sprite)
return 0;
}
-#ifdef NONMATCHING
-
-u8 sub_805F3EC(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+bool8 sub_805F3EC(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, bool8 a3(u8))
{
return 0;
}
-u8 sub_805F3F0(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+bool8 sub_805F3F0(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, bool8 a3(u8))
{
- int direction;
- direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2);
- FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2)));
mapObject->mapobj_bit_1 = 1;
sprite->data1 = 2;
return 1;
}
-u8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3(u8))
+bool8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, bool8 a3(u8))
{
+ u32 direction;
s16 x;
s16 y;
- int direction;
- direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, a2);
+
+ direction = a2;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(direction));
- if (!npc_block_way(mapObject, x, y, direction) || (a3 != NULL && !a3(MapGridGetMetatileBehaviorAt(x, y))))
+ if (npc_block_way(mapObject, x, y, direction) || (a3 != NULL && !a3(MapGridGetMetatileBehaviorAt(x, y))))
{
FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
}
@@ -5063,9 +5058,115 @@ u8 sub_805F438(struct MapObject *mapObject, struct Sprite *sprite, u8 a2, u8 *a3
sprite->data1 = 2;
return 1;
}
-#endif
-asm(".section .text_fmocb2_c\n");
+bool8 sub_805F4F0(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+ s16 x;
+ s16 y;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
+ FieldObjectSetRegularAnim(mapObject, sprite, sub_8060744(direction));
+ if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
+
+bool8 sub_805F5A8(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+ s16 x;
+ s16 y;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
+ FieldObjectSetRegularAnim(mapObject, sprite, sub_806079C(direction));
+ if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
+
+bool8 sub_805F660(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+ s16 x;
+ s16 y;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
+ FieldObjectSetRegularAnim(mapObject, sprite, sub_80607C8(direction));
+ if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
+
+bool8 cph_IM_DIFFERENT(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ FieldObjectSetRegularAnim(mapObject, sprite, sub_806084C(direction));
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
+
+bool8 sub_805F760(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+ s16 x;
+ s16 y;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ FieldObjectMoveDestCoords(mapObject, direction, &x, &y);
+ FieldObjectSetRegularAnim(mapObject, sprite, sub_80608A4(direction));
+ if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
+
+bool8 oac_hopping(struct MapObject *mapObject, struct Sprite *sprite, u8 playerDirection, bool8 tileCB(u8))
+{
+ u32 direction;
+ s16 x;
+ s16 y;
+
+ direction = playerDirection;
+ direction = state_to_direction(gUnknown_0836DC09[mapObject->animPattern], mapObject->mapobj_unk_21, direction);
+ x = mapObject->coords2.x;
+ y = mapObject->coords2.y;
+ sub_8060320(direction, &x, &y, 2, 2);
+ FieldObjectSetRegularAnim(mapObject, sprite, GetJumpLedgeAnimId(direction));
+ if (npc_block_way(mapObject, x, y, direction) || (tileCB != NULL && !tileCB(MapGridGetMetatileBehaviorAt(x, y))))
+ {
+ FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction));
+ }
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 2;
+ return TRUE;
+}
fieldmap_object_cb(sub_805F8E0, sub_805F904, gUnknown_083755C0);
@@ -5367,8 +5468,10 @@ bool8 IsCoordOutsideFieldObjectMovementRect(struct MapObject2 *mapObject, s16 x,
static bool8 DoesObjectCollideWithObjectAt(struct MapObject *mapObject, s16 x, s16 y);
bool8 IsMetatileDirectionallyImpassable(struct MapObject *mapObject, s16 x, s16 y, u8 direction);
-u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u8 direction)
+u8 npc_block_way(struct MapObject *mapObject, s16 x, s16 y, u32 dirn)
{
+ u8 direction;
+ direction = dirn;
if (IsCoordOutsideFieldObjectMovementRect((struct MapObject2 *)mapObject, x, y))
return 1;
else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == -1 || IsMetatileDirectionallyImpassable(mapObject, x, y, direction))
@@ -5480,23 +5583,26 @@ void unref_sub_80602F8(u8 direction, s16 *x, s16 *y)
*y += gDirectionToVector[direction].y << 4;
}
-void sub_8060320(u8 direction, s16 *x, s16 *y, s16 deltaX, s16 deltaY)
+void sub_8060320(u32 dirn, s16 *x, s16 *y, s16 deltaX, s16 deltaY)
{
+ u8 direction = dirn;
+ s16 dx2 = deltaX;
+ s16 dy2 = deltaY;
if (gDirectionToVector[direction].x > 0)
{
- *x += deltaX;
+ *x += dx2;
}
if (gDirectionToVector[direction].x < 0)
{
- *x -= deltaX;
+ *x -= dx2;
}
if (gDirectionToVector[direction].y > 0)
{
- *y += deltaY;
+ *y += dy2;
}
if (gDirectionToVector[direction].y < 0)
{
- *y -= deltaY;
+ *y -= dy2;
}
}
@@ -5563,11 +5669,12 @@ void GetFieldObjectMovingCameraOffset(s16 *x, s16 *y)
}
}
-void FieldObjectMoveDestCoords(struct MapObject *mapObject, u8 direction, s16 *x, s16 *y)
+void FieldObjectMoveDestCoords(struct MapObject *mapObject, u32 direction, s16 *x, s16 *y)
{
+ u8 newDirn = direction;
*x = mapObject->coords2.x;
*y = mapObject->coords2.y;
- MoveCoords(direction, x, y);
+ MoveCoords(newDirn, x, y);
}
bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject)
@@ -5681,193 +5788,34 @@ void meta_step(struct MapObject *mapObject, struct Sprite *sprite, u8 (*callback
FieldObjectUpdateSubpriority(mapObject, sprite);
}
-
-u8 GetFaceDirectionAnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756C8, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetSimpleGoAnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756CD, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetGoSpeed0AnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756D2, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_8060744(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756D7, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 d2s_08064034(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756DC, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_806079C(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756E1, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_80607C8(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756E6, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_80607F4(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756EB, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetJumpLedgeAnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756F0, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_806084C(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756F5, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_8060878(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756FA, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_80608A4(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_083756FF, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 sub_80608D0(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_08375704, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetStepInPlaceDelay32AnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_08375709, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetStepInPlaceDelay16AnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_0837570E, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetStepInPlaceDelay8AnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_08375713, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
-
-u8 GetStepInPlaceDelay4AnimId(u8 index)
-{
- u8 directions[5];
- memcpy(directions, gUnknown_08375718, 5);
- if (index >= 5)
- {
- index = 0;
- }
- return directions[index];
-}
+#define dirn_to_anim(name, table)\
+u8 name(u32 idx)\
+{\
+ u8 direction;\
+ u8 animIds[sizeof(table)];\
+ direction = idx;\
+ memcpy(animIds, (table), sizeof(table));\
+ if (direction > DIR_EAST) direction = 0;\
+ return animIds[direction];\
+}
+
+dirn_to_anim(GetFaceDirectionAnimId, gUnknown_083756C8)
+dirn_to_anim(GetSimpleGoAnimId, gUnknown_083756CD)
+dirn_to_anim(GetGoSpeed0AnimId, gUnknown_083756D2)
+dirn_to_anim(sub_8060744, gUnknown_083756D7)
+dirn_to_anim(d2s_08064034, gUnknown_083756DC)
+dirn_to_anim(sub_806079C, gUnknown_083756E1)
+dirn_to_anim(sub_80607C8, gUnknown_083756E6)
+dirn_to_anim(sub_80607F4, gUnknown_083756EB)
+dirn_to_anim(GetJumpLedgeAnimId, gUnknown_083756F0)
+dirn_to_anim(sub_806084C, gUnknown_083756F5)
+dirn_to_anim(sub_8060878, gUnknown_083756FA)
+dirn_to_anim(sub_80608A4, gUnknown_083756FF)
+dirn_to_anim(sub_80608D0, gUnknown_08375704)
+dirn_to_anim(GetStepInPlaceDelay32AnimId, gUnknown_08375709)
+dirn_to_anim(GetStepInPlaceDelay16AnimId, gUnknown_0837570E)
+dirn_to_anim(GetStepInPlaceDelay8AnimId, gUnknown_08375713)
+dirn_to_anim(GetStepInPlaceDelay4AnimId, gUnknown_08375718)
u8 FieldObjectFaceOppositeDirection(struct MapObject *mapObject, u8 direction)
{
@@ -5995,65 +5943,23 @@ u8 GetOppositeDirection(u8 direction)
return directions[direction - 1];
}
-int zffu_offset_calc(u8 a0, u8 a1)
+u32 zffu_offset_calc(u8 a0, u8 a1)
{
return gUnknown_08375757[a0 - 1][a1 - 1];
}
-#ifdef NONMATCHING
-int state_to_direction(u8 a0, u8 a1, u8 a2)
+u32 state_to_direction(u8 a0, u32 a1, u32 a2)
{
- int zffuOffset;
- asm_comment("For some reason, r2 is being backed up to r3 and restored ahead of the zffu call.");
- if (a1 == 0 || a2 == 0 || a1 > 4 || a2 > 4)
+ u32 zffuOffset;
+ u8 a1_2 = a1;
+ u8 a2_2 = a2;
+ if (a1_2 == 0 || a2_2 == 0 || a1_2 > DIR_EAST || a2_2 > DIR_EAST)
{
return 0;
}
- zffuOffset = zffu_offset_calc(a1, a2);
+ zffuOffset = zffu_offset_calc(a1_2, a2);
return gUnknown_08375767[a0 - 1][zffuOffset - 1];
}
-#else
-__attribute__((naked))
-int state_to_direction(u8 a0, u8 a1, u8 a2)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- adds r0, r1, 0\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- cmp r1, 0\n\
- beq _08060BFC\n\
- cmp r2, 0\n\
- beq _08060BFC\n\
- cmp r1, 0x4\n\
- bhi _08060BFC\n\
- cmp r2, 0x4\n\
- bls _08060C00\n\
-_08060BFC:\n\
- movs r0, 0\n\
- b _08060C12\n\
-_08060C00:\n\
- adds r1, r2, 0\n\
- bl zffu_offset_calc\n\
- ldr r2, _08060C18 @ =gUnknown_08375767\n\
- lsls r1, r4, 2\n\
- subs r1, 0x5\n\
- adds r0, r1\n\
- adds r0, r2\n\
- ldrb r0, [r0]\n\
-_08060C12:\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
-_08060C18: .4byte gUnknown_08375767\n\
-.syntax divided\n");
-}
-#endif
void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite)
{
diff --git a/src/field_map_obj_helpers.c b/src/field/field_map_obj_helpers.c
index 93cd57557..b453d3794 100644
--- a/src/field_map_obj_helpers.c
+++ b/src/field/field_map_obj_helpers.c
@@ -303,7 +303,7 @@ void DoShadowFieldEffect(struct MapObject *mapObject)
if (!mapObject->mapobj_bit_22)
{
mapObject->mapobj_bit_22 = 1;
- oe_exec_and_other_stuff(3, mapObject);
+ oe_exec_and_other_stuff(FLDEFF_SHADOW, mapObject);
}
}
diff --git a/src/field_message_box.c b/src/field/field_message_box.c
index 35aac7ac9..35aac7ac9 100644
--- a/src/field_message_box.c
+++ b/src/field/field_message_box.c
diff --git a/src/field_player_avatar.c b/src/field/field_player_avatar.c
index c8099a73d..e7947b704 100644
--- a/src/field_player_avatar.c
+++ b/src/field/field_player_avatar.c
@@ -1224,8 +1224,8 @@ u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c)
{
FieldObjectClearAnimIfSpecialAnimFinished(b);
FieldObjectClearAnimIfSpecialAnimFinished(c);
- FieldObjectSetSpecialAnim(b, GetStepInPlaceDelay16AnimId(task->data[2]));
- FieldObjectSetSpecialAnim(c, GetSimpleGoAnimId(task->data[2]));
+ FieldObjectSetSpecialAnim(b, GetStepInPlaceDelay16AnimId((u8)task->data[2]));
+ FieldObjectSetSpecialAnim(c, GetSimpleGoAnimId((u8)task->data[2]));
gFieldEffectArguments[0] = c->coords2.x;
gFieldEffectArguments[1] = c->coords2.y;
gFieldEffectArguments[2] = c->elevation;
@@ -1385,7 +1385,7 @@ static void taskFF_0805D1D4(u8 taskId)
return;
}
sub_8127ED0(playerMapObj->mapobj_unk_1A, 2);
- FieldObjectSetSpecialAnim(playerMapObj, sub_80608D0(gTasks[taskId].data[0]));
+ FieldObjectSetSpecialAnim(playerMapObj, sub_80608D0((u8)gTasks[taskId].data[0]));
gTasks[taskId].func = sub_805A2D0;
}
diff --git a/src/field_poison.c b/src/field/field_poison.c
index 1244b9c62..1244b9c62 100644
--- a/src/field_poison.c
+++ b/src/field/field_poison.c
diff --git a/src/field_region_map.c b/src/field/field_region_map.c
index 7cb22e5df..7cb22e5df 100644
--- a/src/field_region_map.c
+++ b/src/field/field_region_map.c
diff --git a/src/field_screen_effect.c b/src/field/field_screen_effect.c
index 1464a99b1..1464a99b1 100644
--- a/src/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
diff --git a/src/field_special_scene.c b/src/field/field_special_scene.c
index 38c076c51..38c076c51 100644
--- a/src/field_special_scene.c
+++ b/src/field/field_special_scene.c
diff --git a/src/field_specials.c b/src/field/field_specials.c
index c23ea2ddc..c23ea2ddc 100644
--- a/src/field_specials.c
+++ b/src/field/field_specials.c
diff --git a/src/field_tasks.c b/src/field/field_tasks.c
index 2be54f923..da6f162c2 100644
--- a/src/field_tasks.c
+++ b/src/field/field_tasks.c
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/22/2017.
+
//
#include "global.h"
@@ -845,11 +845,11 @@ void Task_MuddySlope(u8 taskId)
}
break;
}
- if (gUnknown_0202E844.field_0 && mapIndices != data[0])
+ if (gCamera.field_0 && mapIndices != data[0])
{
data[0] = mapIndices;
- x2 = gUnknown_0202E844.x;
- y2 = gUnknown_0202E844.y;
+ x2 = gCamera.x;
+ y2 = gCamera.y;
}
else
{
diff --git a/src/field_weather.c b/src/field/field_weather.c
index 5ff2eddf9..443a38357 100644
--- a/src/field_weather.c
+++ b/src/field/field_weather.c
@@ -55,7 +55,7 @@ extern struct Weather gWeather;
extern u8 *gUnknown_083970E8;
extern u8 (*gUnknown_08396FC8[][4])(void);
extern u8 (*gUnknown_083970B8[])(void);
-extern u8 *gUnknown_030006DC;
+IWRAM_DATA u8 *gUnknown_030006DC;
extern u8 gUnknown_083970C8;
extern u8 (*gUnknown_0202FC48)[32];
extern u8 gUnknown_0202F9E8[32];
diff --git a/src/fieldmap.c b/src/field/fieldmap.c
index 3ad190a4b..7a31ae720 100644
--- a/src/fieldmap.c
+++ b/src/field/fieldmap.c
@@ -22,7 +22,7 @@ struct Coords32
EWRAM_DATA static u16 gUnknown_02029828[0x2800] = {0};
EWRAM_DATA struct MapHeader gMapHeader = {0};
-EWRAM_DATA struct Camera gUnknown_0202E844 = {0};
+EWRAM_DATA struct Camera gCamera = {0};
EWRAM_DATA static struct ConnectionFlags gUnknown_0202E850 = {0};
struct BackupMapData gUnknown_03004870;
@@ -713,7 +713,7 @@ bool8 CameraMove(int x, int y)
unsigned int direction;
struct MapConnection *connection;
int old_x, old_y;
- gUnknown_0202E844.field_0 = FALSE;
+ gCamera.field_0 = FALSE;
direction = GetPostCameraMoveMapBorderId(x, y);
if (direction + 1 <= 1)
{
@@ -728,14 +728,14 @@ bool8 CameraMove(int x, int y)
connection = sub_8056A64(direction, gSaveBlock1.pos.x, gSaveBlock1.pos.y);
sub_8056918(connection, direction, x, y);
sub_80538F0(connection->mapGroup, connection->mapNum);
- gUnknown_0202E844.field_0 = TRUE;
- gUnknown_0202E844.x = old_x - gSaveBlock1.pos.x;
- gUnknown_0202E844.y = old_y - gSaveBlock1.pos.y;
+ gCamera.field_0 = TRUE;
+ gCamera.x = old_x - gSaveBlock1.pos.x;
+ gCamera.y = old_y - gSaveBlock1.pos.y;
gSaveBlock1.pos.x += x;
gSaveBlock1.pos.y += y;
sub_80566F0(direction);
}
- return gUnknown_0202E844.field_0;
+ return gCamera.field_0;
}
struct MapConnection *sub_8056A64(u8 direction, int x, int y)
diff --git a/src/fldeff_cut.c b/src/field/fldeff_cut.c
index 00643a979..00643a979 100644
--- a/src/fldeff_cut.c
+++ b/src/field/fldeff_cut.c
diff --git a/src/fldeff_flash.c b/src/field/fldeff_flash.c
index 1ee8a8f05..1ee8a8f05 100644
--- a/src/fldeff_flash.c
+++ b/src/field/fldeff_flash.c
diff --git a/src/fldeff_softboiled.c b/src/field/fldeff_softboiled.c
index cb26d9966..cb26d9966 100644
--- a/src/fldeff_softboiled.c
+++ b/src/field/fldeff_softboiled.c
diff --git a/src/fldeff_strength.c b/src/field/fldeff_strength.c
index d9603d094..d9603d094 100644
--- a/src/fldeff_strength.c
+++ b/src/field/fldeff_strength.c
diff --git a/src/fldeff_sweetscent.c b/src/field/fldeff_sweetscent.c
index b9dbf619d..b9dbf619d 100644
--- a/src/fldeff_sweetscent.c
+++ b/src/field/fldeff_sweetscent.c
diff --git a/src/fldeff_teleport.c b/src/field/fldeff_teleport.c
index af48fb414..af48fb414 100644
--- a/src/fldeff_teleport.c
+++ b/src/field/fldeff_teleport.c
diff --git a/src/heal_location.c b/src/field/heal_location.c
index 42bc18567..42bc18567 100644
--- a/src/heal_location.c
+++ b/src/field/heal_location.c
diff --git a/src/hof_pc.c b/src/field/hof_pc.c
index aeeb7fe17..aeeb7fe17 100644
--- a/src/hof_pc.c
+++ b/src/field/hof_pc.c
diff --git a/src/item.c b/src/field/item.c
index 36871285a..fd49f5c39 100644
--- a/src/item.c
+++ b/src/field/item.c
@@ -30,11 +30,11 @@ enum
};
#if ENGLISH
-#include "data/item_descriptions_en.h"
-#include "data/items_en.h"
+#include "../data/item_descriptions_en.h"
+#include "../data/items_en.h"
#elif GERMAN
-#include "data/item_descriptions_de.h"
-#include "data/items_de.h"
+#include "../data/item_descriptions_de.h"
+#include "../data/items_de.h"
#endif
static void CompactPCItems(void);
diff --git a/src/item_menu.c b/src/field/item_menu.c
index 891eb135f..7ff0e6174 100644
--- a/src/item_menu.c
+++ b/src/field/item_menu.c
@@ -4492,7 +4492,7 @@ static void LoadBerryPic(u8 berryId)
spritePal.data = (u16 *)sBerryGraphicsTable[berryId].lzPalette;
spritePal.tag = 0x7544;
LoadCompressedObjectPalette((struct CompressedSpritePalette *)&spritePal);
- sub_800D238(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp);
+ LZDecompressWram(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp);
DrawBerryPic(ewramBerryPicTemp, ewramBerryPic);
}
}
diff --git a/src/item_use.c b/src/field/item_use.c
index 8bc83bdc6..8bc83bdc6 100644
--- a/src/item_use.c
+++ b/src/field/item_use.c
diff --git a/src/landmark.c b/src/field/landmark.c
index 6a53716bb..6a53716bb 100644
--- a/src/landmark.c
+++ b/src/field/landmark.c
diff --git a/src/lottery_corner.c b/src/field/lottery_corner.c
index c2c25b9ac..c2c25b9ac 100644
--- a/src/lottery_corner.c
+++ b/src/field/lottery_corner.c
diff --git a/src/map_name_popup.c b/src/field/map_name_popup.c
index 01105d0db..01105d0db 100644
--- a/src/map_name_popup.c
+++ b/src/field/map_name_popup.c
diff --git a/src/map_obj_lock.c b/src/field/map_obj_lock.c
index 2856320b8..2856320b8 100644
--- a/src/map_obj_lock.c
+++ b/src/field/map_obj_lock.c
diff --git a/src/mauville_man.c b/src/field/mauville_man.c
index 33bc39648..33bc39648 100644
--- a/src/mauville_man.c
+++ b/src/field/mauville_man.c
diff --git a/src/menu_helpers.c b/src/field/menu_helpers.c
index 14e823355..14e823355 100644
--- a/src/menu_helpers.c
+++ b/src/field/menu_helpers.c
diff --git a/src/metatile_behavior.c b/src/field/metatile_behavior.c
index d05ba0b89..d05ba0b89 100644
--- a/src/metatile_behavior.c
+++ b/src/field/metatile_behavior.c
diff --git a/src/money.c b/src/field/money.c
index 5d0f0ae8d..5d0f0ae8d 100644
--- a/src/money.c
+++ b/src/field/money.c
diff --git a/src/overworld.c b/src/field/overworld.c
index 9b41a262d..9b41a262d 100644
--- a/src/overworld.c
+++ b/src/field/overworld.c
diff --git a/src/party_menu.c b/src/field/party_menu.c
index 39477e293..39477e293 100644
--- a/src/party_menu.c
+++ b/src/field/party_menu.c
diff --git a/src/player_pc.c b/src/field/player_pc.c
index 83e6dd221..83e6dd221 100644
--- a/src/player_pc.c
+++ b/src/field/player_pc.c
diff --git a/src/pokeblock.c b/src/field/pokeblock.c
index d69c41639..34f4ffa35 100644
--- a/src/pokeblock.c
+++ b/src/field/pokeblock.c
@@ -1,5 +1,5 @@
//
-// Created by scott on 6/27/2017.
+
//
#include "global.h"
@@ -378,7 +378,7 @@ static bool8 sub_810B998(void)
ewram[0x1ffff]++;
break;
case 1:
- sub_800D238(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
+ LZDecompressWram(gMenuPokeblock_Tilemap, gBGTilemapBuffers[2]);
ewram[0x1ffff]++;
break;
case 2:
diff --git a/src/pokenav.c b/src/field/pokenav.c
index 84ed7b14b..21d7bb4e3 100644
--- a/src/pokenav.c
+++ b/src/field/pokenav.c
@@ -38,3 +38,5 @@ void sub_80F700C(u8 *arg0, u16 arg1) {
ptr[2] = 0x80;
ptr[3] = 0xFF;
}
+
+IWRAM_DATA MainCallback gUnknown_03000744;
diff --git a/src/region_map.c b/src/field/region_map.c
index 900c9ad71..bfd2729c2 100644
--- a/src/region_map.c
+++ b/src/field/region_map.c
@@ -140,12 +140,12 @@ static const u16 sRegionMapBkgnd_Pal[] = INCBIN_U16("graphics/pokenav/region_map
static const u8 sRegionMapBkgnd_ImageLZ[] = INCBIN_U8("graphics/pokenav/region_map.8bpp.lz");
static const u8 sRegionMapBkgnd_TilemapLZ[] = INCBIN_U8("graphics/pokenav/region_map_map.bin.lz");
-#include "data/region_map_layout.h"
+#include "../data/region_map_layout.h"
#if ENGLISH
-#include "data/region_map_names_en.h"
+#include "../data/region_map_names_en.h"
#elif GERMAN
-#include "data/region_map_names_de.h"
+#include "../data/region_map_names_de.h"
#endif
struct RegionMapLocation
diff --git a/src/roamer.c b/src/field/roamer.c
index 948828d5e..948828d5e 100644
--- a/src/roamer.c
+++ b/src/field/roamer.c
diff --git a/src/rotating_gate.c b/src/field/rotating_gate.c
index e8ab7e1bf..e8ab7e1bf 100644
--- a/src/rotating_gate.c
+++ b/src/field/rotating_gate.c
diff --git a/src/safari_zone.c b/src/field/safari_zone.c
index 14fd1ddc4..14fd1ddc4 100644
--- a/src/safari_zone.c
+++ b/src/field/safari_zone.c
diff --git a/src/scrcmd.c b/src/field/scrcmd.c
index 31a90158a..31a90158a 100644
--- a/src/scrcmd.c
+++ b/src/field/scrcmd.c
diff --git a/src/script_menu.c b/src/field/script_menu.c
index e25e74d8c..e25e74d8c 100644
--- a/src/script_menu.c
+++ b/src/field/script_menu.c
diff --git a/src/script_movement.c b/src/field/script_movement.c
index 30e10b451..30e10b451 100644
--- a/src/script_movement.c
+++ b/src/field/script_movement.c
diff --git a/src/secret_base.c b/src/field/secret_base.c
index b2cd1f094..b2cd1f094 100644
--- a/src/secret_base.c
+++ b/src/field/secret_base.c
diff --git a/src/shop.c b/src/field/shop.c
index 22250b1c4..375205935 100644
--- a/src/shop.c
+++ b/src/field/shop.c
@@ -282,7 +282,7 @@ void BuyMenuDrawGraphics(void)
register const u32 zero asm("r6") = 0;
DmaFill32(3, zero, addr, OAM_SIZE);
LZDecompressVram(gBuyMenuFrame_Gfx, (void*)(VRAM + 0x7C00));
- sub_800D238(gBuyMenuFrame_Tilemap, (void *)0x02018000);
+ LZDecompressWram(gBuyMenuFrame_Tilemap, (void *)0x02018000);
LoadCompressedPalette(gMenuMoneyPal, 0xC0, sizeof(gMenuMoneyPal));
FreeAllSpritePalettes();
ResetPaletteFade();
diff --git a/src/slot_machine.c b/src/field/slot_machine.c
index c9a06a758..e8e4f271b 100644
--- a/src/slot_machine.c
+++ b/src/field/slot_machine.c
@@ -71,7 +71,7 @@ void sub_8106448(void) {
u32 offsetRead, offsetWrite;
u32 size;
- sub_800D238(gSlotMachine_Gfx, (void *) 0x02010000);
+ LZDecompressWram(gSlotMachine_Gfx, (void *) 0x02010000);
offsetRead = 0x02010000;
offsetWrite = BG_VRAM;
diff --git a/src/start_menu.c b/src/field/start_menu.c
index 6e44090df..6e44090df 100644
--- a/src/start_menu.c
+++ b/src/field/start_menu.c
diff --git a/src/starter_choose.c b/src/field/starter_choose.c
index 2b28df4f0..2b28df4f0 100644
--- a/src/starter_choose.c
+++ b/src/field/starter_choose.c
diff --git a/src/trader.c b/src/field/trader.c
index 61f48fad8..61f48fad8 100644
--- a/src/trader.c
+++ b/src/field/trader.c
diff --git a/src/trainer_see.c b/src/field/trainer_see.c
index 5a8ebbafc..5a8ebbafc 100644
--- a/src/trainer_see.c
+++ b/src/field/trainer_see.c
diff --git a/src/tv.c b/src/field/tv.c
index 734cbad6f..e9b5e850d 100644
--- a/src/tv.c
+++ b/src/field/tv.c
@@ -1555,7 +1555,7 @@ u16 sub_80BF674(u16 species)
rspecies = (Random() % (NUM_SPECIES - 1)) + 1;
cspecies = rspecies;
- while (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species)
+ while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species)
{
if (cspecies == SPECIES_BULBASAUR)
cspecies = NUM_SPECIES - 1;
@@ -2319,7 +2319,7 @@ void sub_80C03A8(u8 showidx)
void sub_80C03C8(u16 species, u8 showidx)
{
- if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0)
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0)
gSaveBlock1.tvShows[showidx].common.var01 = 0;
}
diff --git a/src/use_pokeblock.c b/src/field/use_pokeblock.c
index be3003680..e946a9cfc 100644
--- a/src/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -1,5 +1,5 @@
//
-// Created by Scott Norton on 5/31/17.
+
// Modified by Dizzy Egg on 8/15/17.
//
diff --git a/src/wallclock.c b/src/field/wallclock.c
index 8db13dc2d..8db13dc2d 100644
--- a/src/wallclock.c
+++ b/src/field/wallclock.c
diff --git a/src/wild_encounter.c b/src/field/wild_encounter.c
index 390898917..390898917 100644
--- a/src/wild_encounter.c
+++ b/src/field/wild_encounter.c
diff --git a/src/agb_flash.c b/src/libs/agb_flash.c
index 340d469a7..340d469a7 100644
--- a/src/agb_flash.c
+++ b/src/libs/agb_flash.c
diff --git a/src/agb_flash_1m.c b/src/libs/agb_flash_1m.c
index e249fab9a..e249fab9a 100644
--- a/src/agb_flash_1m.c
+++ b/src/libs/agb_flash_1m.c
diff --git a/src/agb_flash_le.c b/src/libs/agb_flash_le.c
index 39d956e27..39d956e27 100644
--- a/src/agb_flash_le.c
+++ b/src/libs/agb_flash_le.c
diff --git a/src/agb_flash_mx.c b/src/libs/agb_flash_mx.c
index 67348901f..67348901f 100644
--- a/src/agb_flash_mx.c
+++ b/src/libs/agb_flash_mx.c
diff --git a/src/libc.c b/src/libs/libc.c
index 920673e3e..920673e3e 100644
--- a/src/libc.c
+++ b/src/libs/libc.c
diff --git a/src/m4a_2.c b/src/libs/m4a_2.c
index 2d3c65848..2d3c65848 100644
--- a/src/m4a_2.c
+++ b/src/libs/m4a_2.c
diff --git a/src/m4a_4.c b/src/libs/m4a_4.c
index 2e1d140b4..2e1d140b4 100644
--- a/src/m4a_4.c
+++ b/src/libs/m4a_4.c
diff --git a/src/m4a_tables.c b/src/libs/m4a_tables.c
index 91f00a31d..91f00a31d 100644
--- a/src/m4a_tables.c
+++ b/src/libs/m4a_tables.c
diff --git a/src/siirtc.c b/src/libs/siirtc.c
index 965a068f1..965a068f1 100644
--- a/src/siirtc.c
+++ b/src/libs/siirtc.c
diff --git a/src/learn_move.c b/src/pokemon/learn_move.c
index 33252c66b..33252c66b 100644
--- a/src/learn_move.c
+++ b/src/pokemon/learn_move.c
diff --git a/src/mail.c b/src/pokemon/mail.c
index c5dd119e3..c5dd119e3 100644
--- a/src/mail.c
+++ b/src/pokemon/mail.c
diff --git a/src/mail_data.c b/src/pokemon/mail_data.c
index ae3f4b3e8..ae3f4b3e8 100644
--- a/src/mail_data.c
+++ b/src/pokemon/mail_data.c
diff --git a/src/mon_markings.c b/src/pokemon/mon_markings.c
index 0cad8db59..0cad8db59 100644
--- a/src/mon_markings.c
+++ b/src/pokemon/mon_markings.c
diff --git a/src/pokeblock_feed.c b/src/pokemon/pokeblock_feed.c
index ccbb391af..5d6b215cd 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokemon/pokeblock_feed.c
@@ -46,7 +46,7 @@ extern const u8 gBattleTerrainPalette_BattleTower[];
extern const struct CompressedSpriteSheet gUnknown_083F7F74;
extern const struct CompressedSpritePalette gUnknown_083F7F7C;
-bool8 sub_8040A3C(u16 species);
+bool8 IsPokeSpriteNotFlipped(u16 species);
// this file's functions
static void sub_8147B04(void);
@@ -626,7 +626,7 @@ static bool8 sub_8147B20(struct Pokemon* mon)
species = GetMonData(mon, MON_DATA_SPECIES2);
PiD = GetMonData(mon, MON_DATA_PERSONALITY);
TiD = GetMonData(mon, MON_DATA_OT_ID);
- palette = sub_80409C8(species, TiD, PiD);
+ palette = GetMonSpritePalStructFromOtIdPersonality(species, TiD, PiD);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(palette->tag, 1);
ewram[0x1FFFF]++;
@@ -766,7 +766,7 @@ static u8 PokeblockFeed_CreatePokeSprite(struct Pokemon* mon)
gSprites[spriteID].data2 = species;
gSprites[spriteID].callback = SpriteCallbackDummy;
gPokeblockMonNotFlipped = 1;
- if (!sub_8040A3C(species))
+ if (!IsPokeSpriteNotFlipped(species))
{
gSprites[spriteID].affineAnims = sSpriteAffineAnimTable_84120EC;
gSprites[spriteID].oam.affineMode = 3;
diff --git a/src/pokedex.c b/src/pokemon/pokedex.c
index 603b5ae48..e27ec1e05 100644
--- a/src/pokedex.c
+++ b/src/pokemon/pokedex.c
@@ -1,4 +1,3 @@
-
#include "global.h"
#include "gba/m4a_internal.h"
#include "pokedex.h"
@@ -186,7 +185,7 @@ static const u8 gUnknown_0839FA7C[] = INCBIN_U8("graphics/pokedex/noball.4bpp.lz
extern const u8 gUnknown_0839FA7C[];
#endif
-#include "data/pokedex_orders.h"
+#include "../data/pokedex_orders.h"
static const struct OamData gOamData_83A0404 =
{
.y = 160,
@@ -515,9 +514,9 @@ static const u8 gUnknown_083A05F1[] = {16, 8, 4, 2, 1};
const u8 gEmptySpacce_83A05F6[] = {0, 0}; // Padding, maybe?
static const u8 gUnknown_083A05F8[] = _("");
#if ENGLISH
-#include "data/pokedex_entries_en.h"
+#include "../data/pokedex_entries_en.h"
#elif GERMAN
-#include "data/pokedex_entries_de.h"
+#include "../data/pokedex_entries_de.h"
#endif
static const u16 gUnknown_083B4EC4[16] = {0};
static const u8 *const sMonFootprintTable[] =
@@ -1320,8 +1319,8 @@ void ResetPokedex(void)
{
gSaveBlock2.pokedex.owned[i] = 0;
gSaveBlock2.pokedex.seen[i] = 0;
- gSaveBlock1.unk938[i] = 0;
- gSaveBlock1.unk3A8C[i] = 0;
+ gSaveBlock1.dexSeen2[i] = 0;
+ gSaveBlock1.dexSeen3[i] = 0;
}
}
@@ -2030,8 +2029,8 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = HoennToNationalOrder(i + 1);
gPokedexView->unk0[i].dexNum = vars[2];
- gPokedexView->unk0[i].seen = GetNationalPokedexFlag(vars[2], 0);
- gPokedexView->unk0[i].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[i].seen = GetSetPokedexFlag(vars[2], 0);
+ gPokedexView->unk0[i].owned = GetSetPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[i].seen)
gPokedexView->pokemonListCount = i + 1;
}
@@ -2045,14 +2044,14 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
for (i = 0; i < vars[0]; i++)
{
vars[2] = i + 1;
- if (GetNationalPokedexFlag(vars[2], 0))
+ if (GetSetPokedexFlag(vars[2], 0))
r10 = 1;
if (r10)
{
asm(""); //Needed to match for some reason
gPokedexView->unk0[r5].dexNum = vars[2];
- gPokedexView->unk0[r5].seen = GetNationalPokedexFlag(vars[2], 0);
- gPokedexView->unk0[r5].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[r5].seen = GetSetPokedexFlag(vars[2], 0);
+ gPokedexView->unk0[r5].owned = GetSetPokedexFlag(vars[2], 1);
if (gPokedexView->unk0[r5].seen)
gPokedexView->pokemonListCount = r5 + 1;
r5++;
@@ -2065,11 +2064,11 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Alphabetical[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 0))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 0))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
- gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetNationalPokedexFlag(vars[2], 1);
+ gPokedexView->unk0[gPokedexView->pokemonListCount].owned = GetSetPokedexFlag(vars[2], 1);
gPokedexView->pokemonListCount++;
}
}
@@ -2079,7 +2078,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2093,7 +2092,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Weight[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2107,7 +2106,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Height[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -2121,7 +2120,7 @@ static void SortPokedex(u8 dexMode, u8 sortMode)
{
vars[2] = gPokedexOrder_Height[i];
- if (NationalToHoennOrder(vars[2]) <= vars[0] && GetNationalPokedexFlag(vars[2], 1))
+ if (NationalToHoennOrder(vars[2]) <= vars[0] && GetSetPokedexFlag(vars[2], 1))
{
gPokedexView->unk0[gPokedexView->pokemonListCount].dexNum = vars[2];
gPokedexView->unk0[gPokedexView->pokemonListCount].seen = 1;
@@ -3946,7 +3945,7 @@ static void sub_8090B8C(u8 taskId)
otId = ((u16)gTasks[taskId].data[13] << 16) | (u16)gTasks[taskId].data[12];
personality = ((u16)gTasks[taskId].data[15] << 16) | (u16)gTasks[taskId].data[14];
paletteNum = gSprites[gTasks[taskId].data[3]].oam.paletteNum;
- lzPaletteData = species_and_otid_get_pal(species, otId, personality);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personality);
LoadCompressedPalette(lzPaletteData, 0x100 | paletteNum * 16, 32);
DestroyTask(taskId);
}
@@ -4008,79 +4007,79 @@ u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
}
}
-s8 GetNationalPokedexFlag(u16 a, u8 b)
+s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID)
{
u8 index;
u8 bit;
u8 mask;
s8 retVal;
- a--;
- index = a / 8;
- bit = a % 8;
+ nationalDexNo--;
+ index = nationalDexNo / 8;
+ bit = nationalDexNo % 8;
mask = 1 << bit;
retVal = 0;
- switch (b)
+ switch (caseID)
{
- case 0:
+ case FLAG_GET_SEEN:
if (gSaveBlock2.pokedex.seen[index] & mask)
{
- if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk938[index] & mask)
- && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ if ((gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.dexSeen2[index] & mask)
+ && (gSaveBlock2.pokedex.seen[index] & mask) == (gSaveBlock1.dexSeen3[index] & mask))
retVal = 1;
else
{
gSaveBlock2.pokedex.seen[index] &= ~mask;
- gSaveBlock1.unk938[index] &= ~mask;
- gSaveBlock1.unk3A8C[index] &= ~mask;
+ gSaveBlock1.dexSeen2[index] &= ~mask;
+ gSaveBlock1.dexSeen3[index] &= ~mask;
retVal = 0;
}
}
break;
- case 1:
+ case FLAG_GET_CAUGHT:
if (gSaveBlock2.pokedex.owned[index] & mask)
{
if ((gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock2.pokedex.seen[index] & mask)
- && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk938[index] & mask)
- && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.unk3A8C[index] & mask))
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.dexSeen2[index] & mask)
+ && (gSaveBlock2.pokedex.owned[index] & mask) == (gSaveBlock1.dexSeen3[index] & mask))
retVal = 1;
else
{
gSaveBlock2.pokedex.owned[index] &= ~mask;
gSaveBlock2.pokedex.seen[index] &= ~mask;
- gSaveBlock1.unk938[index] &= ~mask;
- gSaveBlock1.unk3A8C[index] &= ~mask;
+ gSaveBlock1.dexSeen2[index] &= ~mask;
+ gSaveBlock1.dexSeen3[index] &= ~mask;
retVal = 0;
}
}
break;
- case 2:
+ case FLAG_SET_SEEN:
gSaveBlock2.pokedex.seen[index] |= mask;
- gSaveBlock1.unk938[index] |= mask;
- gSaveBlock1.unk3A8C[index] |= mask;
+ gSaveBlock1.dexSeen2[index] |= mask;
+ gSaveBlock1.dexSeen3[index] |= mask;
break;
- case 3:
+ case FLAG_SET_CAUGHT:
gSaveBlock2.pokedex.owned[index] |= mask;
break;
}
return retVal;
}
-u16 GetNationalPokedexCount(u8 a)
+u16 GetNationalPokedexCount(u8 caseID)
{
u16 count = 0;
u16 i;
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
- switch (a)
+ switch (caseID)
{
- case 0:
- if (GetNationalPokedexFlag(i + 1, 0) != 0)
+ case FLAG_GET_SEEN:
+ if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
count++;
break;
- case 1:
- if (GetNationalPokedexFlag(i + 1, 1) != 0)
+ case FLAG_GET_CAUGHT:
+ if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
count++;
break;
}
@@ -4088,21 +4087,21 @@ u16 GetNationalPokedexCount(u8 a)
return count;
}
-u16 GetHoennPokedexCount(u8 a)
+u16 GetHoennPokedexCount(u8 caseID)
{
u16 count = 0;
u16 i;
for (i = 0; i < 202; i++)
{
- switch (a)
+ switch (caseID)
{
- case 0:
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 0) != 0)
+ case FLAG_GET_SEEN:
+ if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN))
count++;
break;
- case 1:
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) != 0)
+ case FLAG_GET_CAUGHT:
+ if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
count++;
break;
}
@@ -4116,7 +4115,7 @@ bool8 sub_8090FC0(void)
for (i = 0; i < 200; i++)
{
- if (GetNationalPokedexFlag(HoennToNationalOrder(i + 1), 1) == 0)
+ if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
return FALSE;
}
return TRUE;
@@ -4128,17 +4127,17 @@ u16 sub_8090FF4(void)
for (i = 0; i < 150; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
for (i = 152; i < 250; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
for (i = 252; i < 384; i++)
{
- if (GetNationalPokedexFlag(i + 1, 1) == 0)
+ if (GetSetPokedexFlag(i + 1, 1) == 0)
return 0;
}
return 1;
diff --git a/src/pokedex_cry_screen.c b/src/pokemon/pokedex_cry_screen.c
index 92fd832fc..92fd832fc 100644
--- a/src/pokedex_cry_screen.c
+++ b/src/pokemon/pokedex_cry_screen.c
diff --git a/src/pokemon_1.c b/src/pokemon/pokemon_1.c
index fd7916ee6..1d597cb17 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon/pokemon_1.c
@@ -468,10 +468,10 @@ void CalculateMonStats(struct Pokemon *mon)
SetMonData(mon, MON_DATA_HP, (u8 *)&currentHP);
}
-void sub_803B4B4(struct Pokemon *src, struct Pokemon *dest)
+void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest)
{
u32 value = 0;
- memcpy(&dest->box, &src->box, sizeof(struct BoxPokemon));
+ dest->box = *src;
SetMonData(dest, MON_DATA_STATUS, (u8 *)&value);
SetMonData(dest, MON_DATA_HP, (u8 *)&value);
SetMonData(dest, MON_DATA_MAX_HP, (u8 *)&value);
diff --git a/src/pokemon_2.c b/src/pokemon/pokemon_2.c
index f02ce6170..f02ce6170 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon/pokemon_2.c
diff --git a/src/pokemon_3.c b/src/pokemon/pokemon_3.c
index e51d3187b..1eff9b83c 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon/pokemon_3.c
@@ -278,7 +278,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem)
else
holdEffect = ItemId_GetHoldEffect(heldItem);
- if (holdEffect == 38 && type != 3)
+ if (holdEffect == HOLD_EFFECT_PREVENT_EVOLVE && type != 3)
return 0;
switch (type)
@@ -1096,7 +1096,7 @@ void ClearBattleMonForms(void)
gBattleMonForms[i] = 0;
}
-u16 sub_8040728(void)
+u16 GetBGM_ForBattle(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON)
return BGM_BATTLE34;
@@ -1137,7 +1137,7 @@ void sub_80408BC(void)
{
ResetMapMusic();
m4aMPlayAllStop();
- PlayBGM(sub_8040728());
+ PlayBGM(GetBGM_ForBattle());
}
void current_map_music_set__default_for_battle(u16 song)
@@ -1147,15 +1147,15 @@ void current_map_music_set__default_for_battle(u16 song)
if (song)
PlayNewMapMusic(song);
else
- PlayNewMapMusic(sub_8040728());
+ PlayNewMapMusic(GetBGM_ForBattle());
}
-const u8 *pokemon_get_pal(struct Pokemon *mon)
+const u8 *GetMonSpritePal(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
- return species_and_otid_get_pal(species, otId, personality);
+ return GetMonSpritePalFromOtIdPersonality(species, otId, personality);
}
//Extracts the upper 16 bits of a 32-bit number
@@ -1164,7 +1164,7 @@ const u8 *pokemon_get_pal(struct Pokemon *mon)
//Extracts the lower 16 bits of a 32-bit number
#define LOHALF(n) ((n) & 0xFFFF)
-const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality)
+const u8 *GetMonSpritePalFromOtIdPersonality(u16 species, u32 otId, u32 personality)
{
u32 shinyValue;
@@ -1178,15 +1178,15 @@ const u8 *species_and_otid_get_pal(u16 species, u32 otId, u32 personality)
return gMonPaletteTable[species].data;
}
-const struct CompressedSpritePalette *sub_8040990(struct Pokemon *mon)
+const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, 0);
- return sub_80409C8(species, otId, personality);
+ return GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
}
-const struct CompressedSpritePalette *sub_80409C8(u16 species, u32 otId , u32 personality)
+const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality)
{
u32 shinyValue;
@@ -1208,9 +1208,9 @@ bool32 IsHMMove2(u16 move)
return FALSE;
}
-bool8 sub_8040A3C(u16 species)
+bool8 IsPokeSpriteNotFlipped(u16 species)
{
- return gBaseStats[species].unk19_7;
+ return gBaseStats[species].noFlip;
}
s8 sub_8040A54(struct Pokemon *mon, u8 a2)
diff --git a/src/pokemon_data.c b/src/pokemon/pokemon_data.c
index 6414134fb..6414134fb 100644
--- a/src/pokemon_data.c
+++ b/src/pokemon/pokemon_data.c
diff --git a/src/pokemon_icon.c b/src/pokemon/pokemon_icon.c
index 9bb3386e1..9bb3386e1 100644
--- a/src/pokemon_icon.c
+++ b/src/pokemon/pokemon_icon.c
diff --git a/src/pokemon_menu.c b/src/pokemon/pokemon_menu.c
index bc5150a16..bc5150a16 100644
--- a/src/pokemon_menu.c
+++ b/src/pokemon/pokemon_menu.c
diff --git a/src/pokemon_size_record.c b/src/pokemon/pokemon_size_record.c
index f2222bd3b..f2222bd3b 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon/pokemon_size_record.c
diff --git a/src/pokemon_storage_system.c b/src/pokemon/pokemon_storage_system.c
index 5e97523e2..5e97523e2 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon/pokemon_storage_system.c
diff --git a/src/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index 00a0bea29..00a0bea29 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 249146b37..172233e6d 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -102,8 +102,8 @@ extern u32 gTransformPersonalities[NUM_BATTLE_SLOTS];
extern u8 gBattleMonForms[NUM_BATTLE_SLOTS];
extern u16 gUnknown_0202F7CA[];
extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS];
-extern u8 gBattleAnimPlayerMonIndex;
-extern u8 gBattleAnimEnemyMonIndex;
+extern u8 gBattleAnimBankAttacker;
+extern u8 gBattleAnimBankTarget;
extern s16 gBattleAnimArgs[8];
extern u8 gBanksBySide[NUM_BATTLE_SLOTS];
extern u8 gNoOfAllBanks; // gNumBattleMons?
@@ -402,43 +402,43 @@ u8 sub_8077FC0(u8 slot) {
return r6;
}
-u8 obj_id_for_side_relative_to_move(u8 a1) {
+u8 GetAnimBankSpriteId(u8 whichBank) {
u8 *sprites;
- if (a1 == 0) {
- if (sub_8078874(gBattleAnimPlayerMonIndex)) {
+ if (whichBank == ANIM_BANK_ATK) {
+ if (AnimBankSpriteExists(gBattleAnimBankAttacker)) {
sprites = gBattleMonSprites;
- return sprites[gBattleAnimPlayerMonIndex];
+ return sprites[gBattleAnimBankAttacker];
} else {
return 0xff;
}
- } else if (a1 == 1) {
- if (sub_8078874(gBattleAnimEnemyMonIndex)) {
+ } else if (whichBank == ANIM_BANK_DEF) {
+ if (AnimBankSpriteExists(gBattleAnimBankTarget)) {
sprites = gBattleMonSprites;
- return sprites[gBattleAnimEnemyMonIndex];
+ return sprites[gBattleAnimBankTarget];
} else {
return 0xff;
}
- } else if (a1 == 2) {
- if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
+ } else if (whichBank == ANIM_BANK_ATK_PARTNER) {
+ if (!IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
return 0xff;
} else {
- return gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2];
+ return gBattleMonSprites[gBattleAnimBankAttacker ^ 2];
}
} else {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- return gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2];
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ return gBattleMonSprites[gBattleAnimBankTarget ^ 2];
} else {
return 0xff;
}
}
}
-void oamt_set_x3A_32(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
+void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*callback)(struct Sprite*)) {
sprite->data6 = (u32)(callback) & 0xffff;
sprite->data7 = (u32)(callback) >> 16;
}
-void sub_8078104(struct Sprite *sprite) {
+void SetCallbackToStoredInData6(struct Sprite *sprite) {
u32 callback = (u16)sprite->data6 | (sprite->data7 << 16);
sprite->callback = (void (*)(struct Sprite *))callback;
}
@@ -455,7 +455,7 @@ void sub_8078114(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -472,7 +472,7 @@ void sub_8078174(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -494,7 +494,7 @@ void unref_sub_80781F0(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -510,7 +510,7 @@ void sub_8078278(struct Sprite *sprite) {
}
sprite->data3--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -518,7 +518,7 @@ void sub_80782D8(struct Sprite *sprite) {
if (sprite->data0 > 0) {
sprite->data0--;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -547,7 +547,7 @@ void sub_8078364(struct Sprite *sprite) {
sprite->pos2.x += sprite->data1;
sprite->pos2.y += sprite->data2;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -559,7 +559,7 @@ void sub_8078394(struct Sprite *sprite) {
sprite->pos2.x = sprite->data3 >> 8;
sprite->pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -571,7 +571,7 @@ void sub_80783D0(struct Sprite *sprite) {
sprite->pos2.x = sprite->data3 >> 8;
sprite->pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
UpdateMonIconFrame(sprite);
}
@@ -579,8 +579,8 @@ void sub_80783D0(struct Sprite *sprite) {
void unref_sub_8078414(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3);
sprite->callback = sub_80782F8;
}
@@ -590,7 +590,7 @@ void sub_8078458(struct Sprite *sprite) {
gSprites[sprite->data3].pos2.x += sprite->data1;
gSprites[sprite->data3].pos2.y += sprite->data2;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -602,7 +602,7 @@ void sub_80784A8(struct Sprite *sprite) {
gSprites[sprite->data5].pos2.x = sprite->data3 >> 8;
gSprites[sprite->data5].pos2.y = sprite->data4 >> 8;
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -619,7 +619,7 @@ void sub_8078504(struct Sprite *sprite) {
}
}
} else {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -631,8 +631,8 @@ void move_anim_8074EE0(struct Sprite *sprite) {
void unref_sub_8078588(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->data4 = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimBankAttacker, 3);
sprite->callback = sub_80782F8;
}
@@ -643,13 +643,13 @@ void unref_sub_80785CC(struct Sprite *sprite) {
void sub_80785E4(struct Sprite *sprite) {
if (sprite->affineAnimEnded) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
void sub_8078600(struct Sprite *sprite) {
if (sprite->animEnded) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -666,19 +666,19 @@ void sub_8078634(u8 task) {
}
void sub_8078650(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
}
void sub_807867C(struct Sprite *sprite, s16 a2) {
- u16 v1 = sub_8077ABC(gBattleAnimPlayerMonIndex, 0);
- u16 v2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 0);
+ u16 v1 = sub_8077ABC(gBattleAnimBankAttacker, 0);
+ u16 v2 = sub_8077ABC(gBattleAnimBankTarget, 0);
if (v1 > v2) {
sprite->pos1.x -= a2;
} else if (v1 < v2) {
sprite->pos1.x += a2;
} else {
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= a2;
} else {
sprite->pos1.x += a2;
@@ -712,8 +712,8 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite) {
void sub_8078764(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gBattleAnimEnemyMonIndex, 0);
- sprite->pos1.y = sub_8077EE4(gBattleAnimEnemyMonIndex, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankTarget, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankTarget, 1);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -721,11 +721,11 @@ void sub_8078764(struct Sprite *sprite, u8 a2) {
void sub_80787B0(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 0);
- sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankAttacker, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankAttacker, 1);
} else {
- sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 3);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimBankAttacker, 3);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -749,12 +749,12 @@ u8 GetBankByPlayerAI(u8 slot) {
return i;
}
-bool8 sub_8078874(u8 slot) {
+bool8 AnimBankSpriteExists(u8 slot) {
if (IsContest()) {
- if (gBattleAnimPlayerMonIndex == slot) {
+ if (gBattleAnimBankAttacker == slot) {
return TRUE;
}
- if (gBattleAnimEnemyMonIndex == slot) {
+ if (gBattleAnimBankTarget == slot) {
return TRUE;
}
return FALSE;
@@ -796,7 +796,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
- } else if (GetBankIdentity_permutated(gBattleAnimPlayerMonIndex) == 1) {
+ } else if (GetBankIdentity_permutated(gBattleAnimBankAttacker) == 1) {
unk->field_0 = (u8 *)0x6004000;
unk->field_4 = (u8 *)0x600e000;
unk->field_8 = 0x8;
@@ -906,7 +906,7 @@ bool8 sub_8078B5C(struct Sprite *sprite) {
void sub_8078BB8(struct Sprite *sprite) {
if (sub_8078B5C(sprite)) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -986,7 +986,7 @@ bool8 sub_8078CE8(struct Sprite *sprite) {
void sub_8078D44(struct Sprite *sprite) {
if (sub_8078CE8(sprite)) {
- sub_8078104(sprite);
+ SetCallbackToStoredInData6(sprite);
}
}
@@ -1024,7 +1024,7 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
bool8 sub_8078E38() {
if (IsContest()) {
- if (gSprites[obj_id_for_side_relative_to_move(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
+ if (gSprites[GetAnimBankSpriteId(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
return FALSE;
}
return TRUE;
@@ -1035,7 +1035,7 @@ bool8 sub_8078E38() {
void sub_8078E70(u8 sprite, u8 a2) {
struct Struct_2017810 *unk;
u8 r7 = gSprites[sprite].data0;
- if (IsContest() || b_side_obj__get_some_boolean(r7)) {
+ if (IsContest() || IsAnimBankSpriteVisible(r7)) {
gSprites[sprite].invisible = FALSE;
}
gSprites[sprite].oam.objMode = a2;
@@ -1096,12 +1096,12 @@ void sub_8079098(struct Sprite *sprite) {
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
}
-u16 sub_80790D8(s16 a, s16 b) {
+static u16 ArcTan2_(s16 a, s16 b) {
return ArcTan2(a, b);
}
u16 sub_80790F0(s16 a, s16 b) {
- u16 var = sub_80790D8(a, b);
+ u16 var = ArcTan2_(a, b);
return -var;
}
@@ -1140,22 +1140,22 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
}
}
if (a2) {
- shift = gBattleAnimPlayerMonIndex + 16;
+ shift = gBattleAnimBankAttacker + 16;
var |= 1 << shift;
}
if (a3) {
- shift = gBattleAnimEnemyMonIndex + 16;
+ shift = gBattleAnimBankTarget + 16;
var |= 1 << shift;
}
if (a4) {
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
- shift = (gBattleAnimPlayerMonIndex ^ 2) + 16;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
+ shift = (gBattleAnimBankAttacker ^ 2) + 16;
var |= 1 << shift;
}
}
if (a5) {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- shift = (gBattleAnimEnemyMonIndex ^ 2) + 16;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ shift = (gBattleAnimBankTarget ^ 2) + 16;
var |= 1 << shift;
}
}
@@ -1184,24 +1184,24 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
}
} else {
if (a1) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(0))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0))) {
var |= 1 << (GetBankByPlayerAI(0) + 16);
}
}
if (a2) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(2))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2))) {
shift = GetBankByPlayerAI(2) + 16;
var |= 1 << shift;
}
}
if (a3) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(1))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1))) {
shift = GetBankByPlayerAI(1) + 16;
var |= 1 << shift;
}
}
if (a4) {
- if (b_side_obj__get_some_boolean(GetBankByPlayerAI(3))) {
+ if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3))) {
shift = GetBankByPlayerAI(3) + 16;
var |= 1 << shift;
}
@@ -1252,24 +1252,24 @@ void sub_807941C(struct Sprite *sprite) {
v2 = 1;
}
sub_80787B0(sprite, v1);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, v2) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, v2) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_80794A8(struct Sprite *sprite) {
sub_80787B0(sprite, 1);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimBankTarget, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimBankTarget, 3) + gBattleAnimArgs[3];
sprite->data5 = gBattleAnimArgs[5];
sub_80786EC(sprite);
sprite->callback = sub_8079518;
@@ -1292,12 +1292,12 @@ void sub_8079534(struct Sprite *sprite) {
}
if (!gBattleAnimArgs[5]) {
sub_80787B0(sprite, r4);
- slot = gBattleAnimPlayerMonIndex;
+ slot = gBattleAnimBankAttacker;
} else {
sub_8078764(sprite, r4);
- slot = gBattleAnimEnemyMonIndex;
+ slot = gBattleAnimBankTarget;
}
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sub_8078764(sprite, r4);
@@ -1305,12 +1305,12 @@ void sub_8079534(struct Sprite *sprite) {
sprite->data2 = sub_8077ABC(slot, 2) + gBattleAnimArgs[2];
sprite->data4 = sub_8077ABC(slot, r7) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 a1) {
u16 i;
- u8 sprite = obj_id_for_side_relative_to_move(a1);
+ u8 sprite = GetAnimBankSpriteId(a1);
if (sprite != 0xff) {
for (i = 0; i < 0x40; i++) {
if (gSprites[i].inUse) {
@@ -1380,7 +1380,7 @@ void sub_80796F8(u8 taskId) {
}
void sub_8079790(u8 task) {
- u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
+ u8 sprite = GetAnimBankSpriteId(gBattleAnimArgs[0]);
if (sprite == 0xff) {
DestroyAnimVisualTask(task);
return;
@@ -1624,24 +1624,24 @@ void sub_8079CEC(u8 task) {
}
void unref_sub_8079D20(u8 priority) {
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex)) {
- gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankTarget]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex)) {
- gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankAttacker]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
- gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankTarget ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankTarget ^ 2]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
- gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2]].oam.priority = priority;
+ if (IsAnimBankSpriteVisible(gBattleAnimBankAttacker ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimBankAttacker ^ 2]].oam.priority = priority;
}
}
void sub_8079E24() {
int i;
for (i = 0; i < gNoOfAllBanks; i++) {
- if (b_side_obj__get_some_boolean(i)) {
+ if (IsAnimBankSpriteVisible(i)) {
gSprites[gBattleMonSprites[i]].subpriority = sub_8079E90(i);
gSprites[gBattleMonSprites[i]].oam.priority = 2;
}
@@ -1706,7 +1706,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
u16 sheet = LoadSpriteSheet(&gUnknown_0837F5E0[a3]);
u16 palette = AllocSpritePalette(gSpriteTemplate_837F5B0[a3].paletteTag);
if (!isBackpic) {
- LoadCompressedPalette(species_and_otid_get_pal(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ LoadCompressedPalette(GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
@@ -1719,7 +1719,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
);
} else {
LoadCompressedPalette(
- species_and_otid_get_pal(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
+ GetMonSpritePalFromOtIdPersonality(species, a8, a7), (palette * 0x10) + 0x100, 0x20);
LoadSpecialPokePic(
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
@@ -1892,7 +1892,7 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) {
void sub_807A544(struct Sprite *sprite) {
sub_8078650(sprite);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
sprite->hFlip = TRUE;
@@ -1904,12 +1904,12 @@ void sub_807A544(struct Sprite *sprite) {
sprite->data1 = gBattleAnimArgs[3];
sprite->data3 = gBattleAnimArgs[4];
sprite->data5 = gBattleAnimArgs[5];
- oamt_set_x3A_32(sprite, move_anim_8074EE0);
+ StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
void sub_807A5C4(struct Sprite *sprite) {
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] *= -1;
} else {
@@ -1921,28 +1921,28 @@ void sub_807A5C4(struct Sprite *sprite) {
sprite->data3 = gBattleAnimArgs[4];
sprite->data5 = gBattleAnimArgs[5];
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
- oamt_set_x3A_32(sprite, move_anim_8074EE0);
+ StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_8078504;
}
void sub_807A63C(struct Sprite *sprite) {
sub_8078650(sprite);
- if (GetBankSide(gBattleAnimPlayerMonIndex)) {
+ if (GetBankSide(gBattleAnimBankAttacker)) {
sprite->pos1.x -= gBattleAnimArgs[0];
} else {
sprite->pos1.x += gBattleAnimArgs[0];
}
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_8078600;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
void sub_807A69C(u8 taskId) {
u16 src;
u16 dest;
struct Task *task = &gTasks[taskId];
- task->data[0] = obj_id_for_side_relative_to_move(0);
- task->data[1] = (GetBankSide(gBattleAnimPlayerMonIndex)) ? -8 : 8;
+ task->data[0] = GetAnimBankSpriteId(0);
+ task->data[1] = (GetBankSide(gBattleAnimBankAttacker)) ? -8 : 8;
task->data[2] = 0;
task->data[3] = 0;
gSprites[task->data[0]].pos2.x -= task->data[0];
@@ -1951,7 +1951,7 @@ void sub_807A69C(u8 taskId) {
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
- task->data[6] = sub_8079E90(gBattleAnimPlayerMonIndex);
+ task->data[6] = sub_8079E90(gBattleAnimBankAttacker);
if (task->data[6] == 20 || task->data[6] == 40) {
task->data[6] = 2;
} else {
@@ -2012,9 +2012,9 @@ void sub_807A8D4(struct Sprite *sprite) {
}
void sub_807A908(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
- sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
- if (!GetBankSide(gBattleAnimPlayerMonIndex)) {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimBankAttacker, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimBankAttacker, 3);
+ if (!GetBankSide(gBattleAnimBankAttacker)) {
sprite->data0 = 5;
} else {
sprite->data0 = -10;
@@ -2041,7 +2041,7 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->data0 = gBattleAnimArgs[2];
sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4];
sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5];
- if (!GetBankSide(gBattleAnimEnemyMonIndex)) {
+ if (!GetBankSide(gBattleAnimBankTarget)) {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 20;
@@ -2051,5 +2051,5 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->pos1.y = gBattleAnimArgs[5] - 80;
}
sprite->callback = sub_8078B34;
- oamt_set_x3A_32(sprite, move_anim_8072740);
+ StoreSpriteCallbackInData6(sprite, move_anim_8072740);
}
diff --git a/src/berry_blender.c b/src/scene/berry_blender.c
index 455aabc45..7ffcc5185 100644
--- a/src/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -828,7 +828,7 @@ static bool8 sub_804E2EC(void)
switch (gBerryBlenderData->field_1)
{
case 0:
- sub_800D238(gUnknown_08E6C100, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C100, &ewram[0x10000]);
gBerryBlenderData->field_1++;
break;
case 1:
@@ -862,11 +862,11 @@ static bool8 sub_804E2EC(void)
}
break;
case 3:
- sub_800D238(gUnknown_08E6C920, &ewram[0x10000]);
+ LZDecompressWram(gUnknown_08E6C920, &ewram[0x10000]);
gBerryBlenderData->field_1++;
break;
case 4:
- sub_800D238(gUnknown_08E6D354, &ewram[0x13000]);
+ LZDecompressWram(gUnknown_08E6D354, &ewram[0x13000]);
gBerryBlenderData->field_1++;
break;
case 5:
diff --git a/src/contest_painting.c b/src/scene/contest_painting.c
index 391cbdfaa..3662efdec 100644
--- a/src/contest_painting.c
+++ b/src/scene/contest_painting.c
@@ -353,7 +353,7 @@ static void sub_8106AC4(u16 species, u8 arg1)
void *pal;
// Unsure what gUnknown_03005E8C->var0 is supposed to be.
- pal = species_and_otid_get_pal(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0);
+ pal = GetMonSpritePalFromOtIdPersonality(species, gUnknown_03005E8C->var4, gUnknown_03005E8C->var0);
LZDecompressVram(pal, gUnknown_03005E90);
if (arg1 == 1)
@@ -402,7 +402,7 @@ static void sub_8106AC4(u16 arg0, u8 arg2)
ldr r1, [r0, 0x4]\n\
ldr r2, [r0]\n\
adds r0, r6, 0\n\
- bl species_and_otid_get_pal\n\
+ bl GetMonSpritePalFromOtIdPersonality\n\
ldr r1, _08106B2C @ =gUnknown_03005E90\n\
mov r8, r1\n\
ldr r1, [r1]\n\
diff --git a/src/credits.c b/src/scene/credits.c
index df70674b6..cf10137c1 100644
--- a/src/credits.c
+++ b/src/scene/credits.c
@@ -1387,7 +1387,7 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position)
1
);
- lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, 0, 0xFFFF);
LoadCompressedPalette(lzPaletteData, 0x100 + (position * 16), 0x20);
sub_8143648(position, position);
@@ -1433,7 +1433,7 @@ static void sub_81458DC(void)
for (dexNum = 1, seenTypesCount = 0; dexNum < 386; dexNum++)
{
- if (GetNationalPokedexFlag(dexNum, 1))
+ if (GetSetPokedexFlag(dexNum, 1))
{
unk201C000->unk90[seenTypesCount] = dexNum;
seenTypesCount++;
diff --git a/src/cute_sketch.c b/src/scene/cute_sketch.c
index 5317bc334..5317bc334 100644
--- a/src/cute_sketch.c
+++ b/src/scene/cute_sketch.c
diff --git a/src/egg_hatch.c b/src/scene/egg_hatch.c
index 90d1ee039..f77c477ae 100644
--- a/src/egg_hatch.c
+++ b/src/scene/egg_hatch.c
@@ -48,10 +48,10 @@ extern const struct SpriteSheet sUnknown_0820A3B0;
extern const struct SpriteSheet sUnknown_0820A3B8;
extern const struct SpritePalette sUnknown_0820A3C0;
-bool8 GetNationalPokedexFlag(u16 nationalNum, u8 caseID);
+bool8 GetSetPokedexFlag(u16 nationalNum, u8 caseID);
u8* GetMonNick(struct Pokemon* mon, u8* dst);
u8 sav1_map_get_name(void);
-const struct CompressedSpritePalette* sub_8040990(struct Pokemon* mon); //gets pokemon palette address
+const struct CompressedSpritePalette* GetMonSpritePalStruct(struct Pokemon* mon); //gets pokemon palette address
void sub_8080990(void);
static void Task_EggHatch(u8 taskID);
@@ -289,8 +289,8 @@ static void AddHatchedMonToParty(u8 id)
SetMonData(mon, MON_DATA_NICKNAME, name);
pokeNum = SpeciesToNationalPokedexNum(pokeNum);
- GetNationalPokedexFlag(pokeNum, 2);
- GetNationalPokedexFlag(pokeNum, 3);
+ GetSetPokedexFlag(pokeNum, 2);
+ GetSetPokedexFlag(pokeNum, 3);
GetMonNick(mon, gStringVar1);
@@ -419,11 +419,11 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID)
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset,(u32)(&ewram[0]), gUnknown_081FAF4C[2 * a0 + 1], species, pid);
- LoadCompressedObjectPalette(sub_8040990(mon));
+ LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
}
break;
case 1:
- GetMonSpriteTemplate_803C56C(sub_8040990(mon)->tag, r5);
+ GetMonSpriteTemplate_803C56C(GetMonSpritePalStruct(mon)->tag, r5);
spriteID = CreateSprite(&gUnknown_02024E8C, 120, 70, 6);
gSprites[spriteID].invisible = 1;
gSprites[spriteID].callback = SpriteCallbackDummy;
diff --git a/src/evolution_graphics.c b/src/scene/evolution_graphics.c
index 1fd5bf8fa..1fd5bf8fa 100644
--- a/src/evolution_graphics.c
+++ b/src/scene/evolution_graphics.c
diff --git a/src/evolution_scene.c b/src/scene/evolution_scene.c
index e312b081f..88f3e23a8 100644
--- a/src/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -236,7 +236,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[currSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[1], currSpecies);
- pokePal = (void*) sub_80409C8(currSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(currSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x110, 0x20);
GetMonSpriteTemplate_803C56C(currSpecies, 1);
@@ -253,7 +253,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], speciesToEvolve);
- pokePal = (void*) sub_80409C8(speciesToEvolve, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(speciesToEvolve, 3);
@@ -333,7 +333,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], postEvoSpecies);
- pokePal = (void*) sub_80409C8(postEvoSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(postEvoSpecies, 3);
@@ -403,7 +403,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gMonFrontPicCoords[postEvoSpecies].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[3], postEvoSpecies);
- pokePal = (void*) sub_80409C8(postEvoSpecies, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
gMain.state++;
}
@@ -453,7 +453,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri
gMonFrontPicCoords[speciesToEvolve].y_offset,
(void*)(0x2000000),
gUnknown_081FAF4C[1], speciesToEvolve);
- pokePal = (void*) sub_80409C8(speciesToEvolve, TiD, PiD);
+ pokePal = (void*) GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, TiD, PiD);
LoadCompressedPalette(*pokePal, 0x120, 0x20);
GetMonSpriteTemplate_803C56C(speciesToEvolve, 1);
@@ -527,8 +527,8 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon* mon)
// can't match it otherwise, ehh
EvoTable = gEvolutionTable;
Evos = EvoTable + preEvoSpecies;
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(Evos->evolutions[1].targetSpecies), 3);
if (GetMonData(Shedinja, MON_DATA_SPECIES) == SPECIES_SHEDINJA
&& GetMonData(Shedinja, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE
@@ -654,8 +654,8 @@ static void Task_EvolutionScene(u8 taskID)
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
IncrementGameStat(14);
}
break;
@@ -996,8 +996,8 @@ static void Task_TradeEvolutionScene(u8 taskID)
SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies));
CalculateMonStats(mon);
EvolutionRenameMon(mon, gTasks[taskID].tPreEvoSpecies, gTasks[taskID].tPostEvoSpecies);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
- GetNationalPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 2);
+ GetSetPokedexFlag(SpeciesToNationalPokedexNum(gTasks[taskID].tPostEvoSpecies), 3);
IncrementGameStat(14);
}
break;
diff --git a/src/hall_of_fame.c b/src/scene/hall_of_fame.c
index 10c999ef3..6f7df576b 100644
--- a/src/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -1347,7 +1347,7 @@ static u32 HallOfFame_LoadPokemonPic(u16 species, s16 posX, s16 posY, u16 pokeID
LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[pokeID], species, pid, 1);
- pokePal = species_and_otid_get_pal(species, tid, pid);
+ pokePal = GetMonSpritePalFromOtIdPersonality(species, tid, pid);
LoadCompressedPalette(pokePal, 16 * pokeID + 256, 0x20);
sub_8143648(pokeID, pokeID);
diff --git a/src/intro.c b/src/scene/intro.c
index a43e0356c..dd7cc858c 100644
--- a/src/intro.c
+++ b/src/scene/intro.c
@@ -1785,7 +1785,7 @@ static u16 sub_813CE88(u16 species, s16 x, s16 y, u16 d, u8 front)
LoadSpecialPokePic(&gMonFrontPicTable[species], gMonFrontPicCoords[species].coords, gMonFrontPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 1);
else
LoadSpecialPokePic(&gMonBackPicTable[species], gMonBackPicCoords[species].coords, gMonBackPicCoords[species].y_offset, 0x2000000, gUnknown_0840B5A0[d], species, 0, 0);
- lzPaletteData = species_and_otid_get_pal(species, 0, 0xFFFF);
+ lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, 0, 0xFFFF);
LoadCompressedPalette(lzPaletteData, 0x100 + d * 0x10, 0x20);
sub_8143648(d, d);
spriteId = CreateSprite(&gUnknown_02024E8C, x, y, (d + 1) * 4);
diff --git a/src/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c
index cd0589af8..cd0589af8 100755
--- a/src/intro_credits_graphics.c
+++ b/src/scene/intro_credits_graphics.c
diff --git a/src/new_game.c b/src/scene/new_game.c
index 3f9e9f5a1..3f9e9f5a1 100644
--- a/src/new_game.c
+++ b/src/scene/new_game.c
diff --git a/src/title_screen.c b/src/scene/title_screen.c
index 2503b0654..2503b0654 100644
--- a/src/title_screen.c
+++ b/src/scene/title_screen.c
diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c
index 323df991a..f98293a90 100644
--- a/src/script_pokemon_util_80C4BF0.c
+++ b/src/script_pokemon_util_80C4BF0.c
@@ -433,7 +433,7 @@ void ShowContestEntryMonPic(void)
gUnknown_081FAF4C[1],
species,
var1);
- palette = sub_80409C8(species, var2, var1);
+ palette = GetMonSpritePalStructFromOtIdPersonality(species, var2, var1);
LoadCompressedObjectPalette(palette);
GetMonSpriteTemplate_803C56C(species, 1);
gUnknown_02024E8C.paletteTag = palette->tag;
@@ -560,8 +560,8 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u
{
case 0:
case 1:
- GetNationalPokedexFlag(nationalDexNum, 2);
- GetNationalPokedexFlag(nationalDexNum, 3);
+ GetSetPokedexFlag(nationalDexNum, 2);
+ GetSetPokedexFlag(nationalDexNum, 3);
break;
}
return sentToPc;
diff --git a/src/unused_8124F94.c b/src/unused_8124F94.c
index 93b569058..5f76fa92e 100644
--- a/src/unused_8124F94.c
+++ b/src/unused_8124F94.c
@@ -64,7 +64,7 @@ u8 unref_sub_8124FD8(struct UnknownStruct1 *a, const struct UnknownStruct2 *b)
}
else
{
- sub_800D238(b->src, a->dest + a->unk2 * 64);
+ LZDecompressWram(b->src, a->dest + a->unk2 * 64);
}
a->unk88[a->unk1].unk8 = a->unk2;
temp = r6 + a->unk2;
@@ -95,7 +95,7 @@ u8 unref_sub_81250A4(struct UnknownStruct1 *a, struct UnknownStruct3 *b)
{
u16 palette[16];
- sub_800D238(b->paletteSrc, palette);
+ LZDecompressWram(b->paletteSrc, palette);
LoadPalette(palette, a->paletteNum * 16, 32);
}
a->unk8[a->paletteNum].paletteCount = a->paletteNum;
@@ -111,7 +111,7 @@ u8 unref_sub_8125118(struct UnknownStruct1 *a, struct UnknownStruct3 *b)
u8 r7 = b->paletteCount;
u8 i;
- sub_800D238(b->paletteSrc, palettes);
+ LZDecompressWram(b->paletteSrc, palettes);
for (i = a->paletteNum; i < r7; i++)
{
if (a->paletteNum + i >= 16)
diff --git a/sym_bss.txt b/sym_bss.txt
index ab1d8c280..4f6d9c95b 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -1,98 +1,41 @@
- .include "src/main.o"
- .include "src/sprite.o"
- .include "src/text.o"
- .include "src/string_util.o"
- .include "src/link.o"
- .include "src/rtc.o"
-
-@ daycare
-
- .align 2
-gUnknown_03000470: @ 3000470
- .space 0x68
-
-gUnknown_030004D8: @ 30004D8
- .space 0x8
-
-gUnknown_030004E0: @ 30004E0
- .space 0x8
-
-gUnknown_030004E8: @ 30004E8
- .space 0x18
-
-gUnknown_03000500: @ 3000500
- .space 0x8
-
-@ trade
-
-gUnknown_03000508: @ 3000508
- .space 0x8
-
- .include "src/berry_blender.o"
- .include "src/play_time.o"
- .include "src/overworld.o"
-
- @ unused variable?
- .align 2
- .space 0x4
-
- .include "src/field_camera.o"
- .include "src/field_map_obj.o"
- .include "src/field_message_box.o"
- .include "src/text_window.o"
- .include "src/script.o"
- .include "src/start_menu.o"
- .include "src/menu.o"
- .include "src/tileset_anim.o"
- .include "src/sound.o"
-
-@ field_weather
-
-gUnknown_030006DC: @ 30006DC
- .space 0x4
-
- .include "src/field_effect.o"
- .include "src/item_menu.o"
- .include "src/shop.o"
- .include "src/record_mixing.o"
- .include "src/tv.o"
-
- @ unused variable?
- .align 2
- .space 0x4
-
-@ battle_anim_80CA710
-
-gUnknown_03000728: @ 3000728
- .space 0x8
-
-gUnknown_03000730: @ 3000730
- .space 0x10
-
-@ easy_chat
-
-gUnknown_03000740: @ 3000740
- .space 0x4
-
-@ pokenav
-
-gUnknown_03000744: @ 3000744
- .space 0x4
-
- .include "src/mauville_man.o"
- .include "src/menu_helpers.o"
- .include "src/contest_painting.o"
- .include "src/pokeblock.o"
-
- @ unused variable?
- .align 2
- .space 0x4
-
- .include "src/field_specials.o"
- .include "src/learn_move.o"
- .include "src/player_pc.o"
+ .include "src/engine/main.o"
+ .include "src/engine/sprite.o"
+ .include "src/engine/text.o"
+ .include "src/engine/string_util.o"
+ .include "src/engine/link.o"
+ .include "src/engine/rtc.o"
+ .include "src/field/daycare.o"
+ .include "src/engine/trade.o"
+ .include "src/scene/berry_blender.o"
+ .include "src/engine/play_time.o"
+ .include "src/field/overworld.o"
+ .include "src/field/field_camera.o"
+ .include "src/field/field_map_obj.o"
+ .include "src/field/field_message_box.o"
+ .include "src/engine/text_window.o"
+ .include "src/engine/script.o"
+ .include "src/field/start_menu.o"
+ .include "src/engine/menu.o"
+ .include "src/engine/tileset_anim.o"
+ .include "src/engine/sound.o"
+ .include "src/field/field_weather.o"
+ .include "src/field/field_effect.o"
+ .include "src/field/item_menu.o"
+ .include "src/field/shop.o"
+ .include "src/engine/record_mixing.o"
+ .include "src/field/tv.o"
+ .include "src/battle/battle_anim_80CA710.o"
+ .include "src/field/easy_chat.o"
+ .include "src/field/pokenav.o"
+ .include "src/field/mauville_man.o"
+ .include "src/field/menu_helpers.o"
+ .include "src/scene/contest_painting.o"
+ .include "src/field/pokeblock.o"
+ .include "src/field/field_specials.o"
+ .include "src/pokemon/learn_move.o"
+ .include "src/field/player_pc.o"
.include "asm/m4a_1.o"
- .include "src/agb_flash.o"
- .include "src/siirtc.o"
+ .include "src/libs/agb_flash.o"
+ .include "src/libs/siirtc.o"
.include "tools/agbcc/lib/libgcc.a:dp-bit.o"
.include "tools/agbcc/lib/libgcc.a:fp-bit.o"
diff --git a/sym_common.txt b/sym_common.txt
index 1bb009174..5a7030d06 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -1,8 +1,8 @@
- .include "main.o"
- .include "sprite.o"
- .include "string_util.o"
- .include "link.o"
- .include "rtc.o"
+ .include "engine/main.o"
+ .include "engine/sprite.o"
+ .include "engine/string_util.o"
+ .include "engine/link.o"
+ .include "engine/rtc.o"
.include "rom3.o"
@ battle
@@ -104,10 +104,10 @@ gUnknown_03004348: @ 3004348
gUnknown_0300434C: @ 300434C
.space 0x4
- .include "pokemon_1.o"
- .include "rng.o"
- .include "egg_hatch.o"
- .include "load_save.o"
+ .include "pokemon/pokemon_1.o"
+ .include "engine/rng.o"
+ .include "scene/egg_hatch.o"
+ .include "engine/load_save.o"
@ trade
@@ -117,12 +117,12 @@ gUnknown_03004824: @ 3004824
gUnknown_03004828: @ 3004828
.space 0x8
- .include "berry_blender.o"
- .include "overworld.o"
- .include "fieldmap.o"
- .include "field_camera.o"
- .include "field_map_obj.o"
- .include "field_control_avatar.o"
+ .include "scene/berry_blender.o"
+ .include "field/overworld.o"
+ .include "field/fieldmap.o"
+ .include "field/field_camera.o"
+ .include "field/field_map_obj.o"
+ .include "field/field_control_avatar.o"
@ party_menu?
@@ -130,11 +130,11 @@ gUnknown_03004828: @ 3004828
gUnknown_03004AE4: @ 3004AE4
.space 0x4
- .include "start_menu.o"
- .include "sound.o"
- .include "battle_anim.o"
- .include "task.o"
- .include "mori_debug_menu.o"
+ .include "field/start_menu.o"
+ .include "engine/sound.o"
+ .include "battle/battle_anim.o"
+ .include "engine/task.o"
+ .include "debug/mori_debug_menu.o"
@ unknown_task
@@ -160,8 +160,8 @@ gUnknown_03005560: @ 3005560
gUnknown_030056A0: @ 30056A0
.space 0x640
- .include "pokemon_menu.o"
- .include "pokedex.o"
+ .include "pokemon/pokemon_menu.o"
+ .include "pokemon/pokedex.o"
@ pokemon_summary_screen
@@ -187,9 +187,9 @@ gCurrentBagPocketItemSlots: @ 3005D24
gUnknown_03005D28: @ 3005D28
.space 0x4
- .include "record_mixing.o"
- .include "sound_check_menu.o"
- .include "tv.o"
+ .include "engine/record_mixing.o"
+ .include "debug/sound_check_menu.o"
+ .include "field/tv.o"
.space 0x64 @ unused variable?
@@ -231,19 +231,19 @@ gUnknown_03005E08: @ 3005E08
gUnknown_03005E0C: @ 3005E0C
.space 0x4
- .include "contest_painting.o"
- .include "evolution_scene.o"
+ .include "scene/contest_painting.o"
+ .include "scene/evolution_scene.o"
@ pokedex_cry_screen
gUnknown_03005E98: @ 3005E98
.space 0x4
- .include "save.o"
+ .include "engine/save.o"
.space 0x10 @ unused variable?
- .include "intro.o"
+ .include "scene/intro.o"
@ battle_anim_813F0F4
@@ -257,7 +257,6 @@ gUnknown_03005F10: @ 3005F10
gUnknown_03005F14: @ 3005F14
.space 0xC
-
- .include "pokeblock_feed.o"
- .include "m4a_2.o"
- .include "agb_flash.o"
+ .include "pokemon/pokeblock_feed.o"
+ .include "libs/m4a_2.o"
+ .include "libs/agb_flash.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 040173cfd..8289165e9 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1,11 +1,11 @@
- .include "src/main.o"
- .include "src/sprite.o"
- .include "src/text.o"
- .include "src/string_util.o"
+ .include "src/engine/main.o"
+ .include "src/engine/sprite.o"
+ .include "src/engine/text.o"
+ .include "src/engine/string_util.o"
.space 0x2E8
- .include "src/link.o"
+ .include "src/engine/link.o"
.include "src/rom3.o"
@ battle
@@ -293,9 +293,9 @@ gMoveToLearn: @ 2024E82
gBattleMonForms: @ 2024E84
.space 0x4
- .include "src/pokemon_1.o"
- .include "src/pokemon_2.o"
- .include "src/load_save.o"
+ .include "src/pokemon/pokemon_1.o"
+ .include "src/pokemon/pokemon_2.o"
+ .include "src/engine/load_save.o"
@ trade
@@ -308,17 +308,17 @@ gUnknown_02029700: @ 2029700
gUnknown_020297D8: @ 20297D8
.space 0x4
- .include "src/berry_blender.o"
- .include "src/new_game.o"
- .include "src/overworld.o"
- .include "src/fieldmap.o"
- .include "src/field_camera.o"
- .include "src/field_player_avatar.o"
- .include "src/field_message_box.o"
- .include "src/script.o"
- .include "src/scrcmd.o"
- .include "src/field_control_avatar.o"
- .include "src/event_data.o"
+ .include "src/scene/berry_blender.o"
+ .include "src/scene/new_game.o"
+ .include "src/field/overworld.o"
+ .include "src/field/fieldmap.o"
+ .include "src/field/field_camera.o"
+ .include "src/field/field_player_avatar.o"
+ .include "src/field/field_message_box.o"
+ .include "src/engine/script.o"
+ .include "src/field/scrcmd.o"
+ .include "src/field/field_control_avatar.o"
+ .include "src/field/event_data.o"
@ party_menu
@@ -338,14 +338,14 @@ gUnknown_0202E8F8: @ 202E8F8
gUnknown_0202E8FA: @ 202E8FA
.space 0x2
- .include "src/start_menu.o"
- .include "src/menu.o"
- .include "src/tileset_anim.o"
- .include "src/palette.o"
- .include "src/sound.o"
- .include "src/battle_anim.o"
+ .include "src/field/start_menu.o"
+ .include "src/engine/menu.o"
+ .include "src/engine/tileset_anim.o"
+ .include "src/engine/palette.o"
+ .include "src/engine/sound.o"
+ .include "src/battle/battle_anim.o"
.include "src/rom_8077ABC.o"
- .include "src/title_screen.o"
+ .include "src/scene/title_screen.o"
@ field_weather
@@ -365,20 +365,19 @@ gUnknown_0202FF38: @ 202FF38
gUnknown_0202FF58: @ 202FF58
.space 0x4
- .include "src/battle_setup.o"
- .include "src/wild_encounter.o"
- .include "src/field_effect.o"
+ .include "src/battle/battle_setup.o"
+ .include "src/field/wild_encounter.o"
+ .include "src/field/field_effect.o"
@ unknown_task
gUnknown_0202FFA4: @ 202FFA4
.space 0x4
-
- .include "src/pokemon_menu.o"
- .include "src/pokedex.o"
- .include "src/trainer_card.o"
- .include "src/pokemon_storage_system.o"
+ .include "src/pokemon/pokemon_menu.o"
+ .include "src/pokemon/pokedex.o"
+ .include "src/engine/trainer_card.o"
+ .include "src/pokemon/pokemon_storage_system.o"
@ still pokemon_storage_system
@@ -442,9 +441,9 @@ gUnknown_020384F0: @ 20384F0
gUnknown_020384F4: @ 20384F4
.space 0x4
- .include "src/script_movement.o"
- .include "src/map_name_popup.o"
- .include "src/item_menu.o"
+ .include "src/field/script_movement.o"
+ .include "src/field/map_name_popup.o"
+ .include "src/field/item_menu.o"
@ contest
@@ -501,8 +500,8 @@ gScriptContestCategory: @ 203869C
gScriptContestRank: @ 203869E
.space 0x2
- .include "src/shop.o"
- .include "src/money.o"
+ .include "src/field/shop.o"
+ .include "src/field/money.o"
@ record_mixing
@@ -510,7 +509,7 @@ gScriptContestRank: @ 203869E
gUnknown_02038738: @ 2038738
.space 0x78
- .include "src/sound_check_menu.o"
+ .include "src/debug/sound_check_menu.o"
@ secret_base
@@ -520,7 +519,7 @@ gUnknown_020387DC: @ 20387DC
@ tv
- .include "src/tv.o"
+ .include "src/field/tv.o"
@ fldeff_80C5CD4
@@ -528,8 +527,8 @@ gUnknown_020387DC: @ 20387DC
gUnknown_020387EC: @ 20387EC
.space 0x4
- .include "src/rotating_gate.o"
- .include "src/safari_zone.o"
+ .include "src/field/rotating_gate.o"
+ .include "src/field/safari_zone.o"
@ easy_chat
@@ -544,15 +543,15 @@ gUnknown_020388B0: @ 20388B0
gUnknown_020388B4: @ 20388B4
.space 0x4
- .include "src/mon_markings.o"
- .include "src/mauville_man.o"
- .include "src/menu_helpers.o"
- .include "src/region_map.o"
- .include "src/decoration.o"
- .include "src/battle_ai.o"
+ .include "src/pokemon/mon_markings.o"
+ .include "src/field/mauville_man.o"
+ .include "src/field/menu_helpers.o"
+ .include "src/field/region_map.o"
+ .include "src/field/decoration.o"
+ .include "src/battle/battle_ai.o"
.include "src/rom6.o"
- .include "src/pokeblock.o"
- .include "src/field_specials.o"
+ .include "src/field/pokeblock.o"
+ .include "src/field/field_specials.o"
@ pokedex_area_screen
@@ -580,7 +579,7 @@ gUnknown_0203926A: @ 203926A
gAbilitiesPerBank: @ 203926C
.space 0x4
- .include "src/choose_party.o"
+ .include "src/field/choose_party.o"
@ cable_car
@@ -606,19 +605,19 @@ gUnknown_0203927C: @ 203927C
gUnknown_0203927D: @ 203927D
.space 0x7
- .include "src/save.o"
- .include "src/mystery_event_script.o"
- .include "src/roamer.o"
- .include "src/use_pokeblock.o"
- .include "src/player_pc.o"
- .include "src/intro.o"
- .include "src/hall_of_fame.o"
- .include "src/credits.o"
- .include "src/lottery_corner.o"
- .include "src/berry_tag_screen.o"
- .include "src/mystery_event_menu.o"
- .include "src/save_failed_screen.o"
- .include "src/pokeblock_feed.o"
+ .include "src/engine/save.o"
+ .include "src/engine/mystery_event_script.o"
+ .include "src/field/roamer.o"
+ .include "src/field/use_pokeblock.o"
+ .include "src/field/player_pc.o"
+ .include "src/scene/intro.o"
+ .include "src/scene/hall_of_fame.o"
+ .include "src/scene/credits.o"
+ .include "src/field/lottery_corner.o"
+ .include "src/field/berry_tag_screen.o"
+ .include "src/engine/mystery_event_menu.o"
+ .include "src/engine/save_failed_screen.o"
+ .include "src/pokemon/pokeblock_feed.o"
@ intro_credits_graphics
@@ -645,4 +644,4 @@ gUnknown_02039760: @ 2039760
gUnknown_0203A360: @ 203A360
.space 0x20
- .include "src/menu_cursor.o"
+ .include "src/engine/menu_cursor.o"