diff options
author | camthesaxman <cameronghall@cox.net> | 2017-10-01 00:21:17 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-10-01 00:21:17 -0500 |
commit | 1a8b3fa9af2c248bd40e72ae467b45ba888e31bf (patch) | |
tree | 66dec9ad8b1eac336690eda0c0438779012d28e2 | |
parent | 30bc88f6572c435ff49b62f16c3734c12f75f7f0 (diff) | |
parent | 83efcc9c3d1e81b78c2cd9ceab3ac6420a5f4070 (diff) |
move sound_check_menu.c to debug
-rw-r--r-- | Makefile | 23 | ||||
-rw-r--r-- | asm-de/contest_link_80C2020.s | 4 | ||||
-rw-r--r-- | asm-de/easy_chat.s | 2 | ||||
-rw-r--r-- | asm/battle_2.s | 8 | ||||
-rw-r--r-- | asm/battle_9.s | 48 | ||||
-rw-r--r-- | asm/battle_anim_80CA710.s | 2172 | ||||
-rw-r--r-- | asm/battle_anim_81258BC.s | 22 | ||||
-rw-r--r-- | asm/battle_anim_812C144.s | 454 | ||||
-rw-r--r-- | asm/battle_anim_813F0F4.s | 120 | ||||
-rw-r--r-- | asm/battle_tower.s | 4 | ||||
-rw-r--r-- | asm/cable_car.s | 8 | ||||
-rw-r--r-- | asm/contest.s | 2 | ||||
-rw-r--r-- | asm/contest_link_80C2020.s | 4 | ||||
-rw-r--r-- | asm/daycare.s | 2399 | ||||
-rw-r--r-- | asm/easy_chat.s | 2 | ||||
-rw-r--r-- | asm/field_effect_helpers.s | 4349 | ||||
-rw-r--r-- | asm/field_map_obj.s | 628 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 4 | ||||
-rw-r--r-- | asm/pokemon_summary_screen.s | 4 | ||||
-rw-r--r-- | asm/pokenav.s | 2 | ||||
-rw-r--r-- | asm/slot_machine.s | 4 | ||||
-rw-r--r-- | asm/trade.s | 12 | ||||
-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.s | 6 | ||||
-rw-r--r-- | data/daycare.s | 17 | ||||
-rw-r--r-- | data/egg_moves.inc | 1306 | ||||
-rw-r--r-- | data/field_effect_helpers.s | 37 | ||||
-rw-r--r-- | include/battle.h | 7 | ||||
-rw-r--r-- | include/battle_anim.h | 4 | ||||
-rw-r--r-- | include/data/field_map_obj/anim_func_ptrs.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/base_oam.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/berry_tree_graphics_tables.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/callback_subroutine_pointers.h | 4 | ||||
-rw-r--r-- | include/data/field_map_obj/field_effect_object_template_pointers.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/field_effect_objects.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/map_object_anims.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/map_object_graphics_info.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/map_object_graphics_info_pointers.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/map_object_pic_tables.h | 2 | ||||
-rw-r--r-- | include/data/field_map_obj/map_object_subsprites.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/base_stats.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/cry_ids.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/dex_order.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/egg_moves.h | 1318 | ||||
-rw-r--r-- | include/data/pokemon/evolution.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/experience_tables.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/item_effects.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/level_up_learnset_pointers.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/level_up_learnsets.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/nature_stats.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/spinda_spots.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/tmhm_learnsets.h | 2 | ||||
-rw-r--r-- | include/data/pokemon/trainer_class_lookups.h | 2 | ||||
-rw-r--r-- | include/daycare.h | 6 | ||||
-rw-r--r-- | include/decompress.h | 2 | ||||
-rw-r--r-- | include/field_camera.h | 2 | ||||
-rw-r--r-- | include/field_effect_helpers.h | 6 | ||||
-rw-r--r-- | include/field_map_obj.h | 64 | ||||
-rw-r--r-- | include/global.h | 50 | ||||
-rw-r--r-- | include/mail_data.h | 2 | ||||
-rw-r--r-- | include/pokedex.h | 12 | ||||
-rw-r--r-- | include/pokemon.h | 14 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 2 | ||||
-rw-r--r-- | include/rom_8077ABC.h | 16 | ||||
-rw-r--r-- | include/sprite.h | 2 | ||||
-rw-r--r-- | include/trade.h | 5 | ||||
-rw-r--r-- | ld_script.txt | 573 | ||||
-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.c | 18 | ||||
-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.c | 350 | ||||
-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.c | 1690 | ||||
-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.c | 1632 | ||||
-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.c | 204 | ||||
-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-x | src/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.c | 6 | ||||
-rw-r--r-- | src/unused_8124F94.c | 6 | ||||
-rw-r--r-- | sym_bss.txt | 133 | ||||
-rw-r--r-- | sym_common.txt | 65 | ||||
-rw-r--r-- | sym_ewram.txt | 131 |
289 files changed, 7694 insertions, 12737 deletions
@@ -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 *)¤tHP); } -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" |