summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2018-02-07 18:06:59 -0600
committerDiegoisawesome <diego@domoreaweso.me>2018-02-07 18:06:59 -0600
commit772fd47564da4d2c4072b83e43a9cc28e62ce5bb (patch)
treeb81a93d022488ed5a71ce0ac80ee4dd1b5662ac9
parent5db765a475bf401417bbf7a3ca8b89dc0425f793 (diff)
parent48e63979c8a131bc059974194bd548f60dcdd24c (diff)
Merge branch 'master' of https://github.com/pret/pokeemerald into menu
-rw-r--r--Makefile9
-rw-r--r--asm/battle_anim_80A5C6C.s338
-rw-r--r--asm/battle_anim_80A9C70.s12
-rw-r--r--asm/battle_anim_80D51AC.s108
-rw-r--r--asm/battle_anim_80FE840.s2366
-rw-r--r--asm/battle_anim_815A0D4.s498
-rw-r--r--asm/battle_anim_8170478.s160
-rw-r--r--asm/battle_anim_sound_tasks.s34
-rw-r--r--asm/battle_frontier_1.s10
-rw-r--r--asm/battle_frontier_2.s2
-rw-r--r--asm/battle_link_817C95C.s270
-rw-r--r--asm/battle_tower.s2
-rw-r--r--asm/berry_tag_screen.s1538
-rw-r--r--asm/cable_club.s50
-rw-r--r--asm/contest.s30
-rw-r--r--asm/contest_link_80F57C4.s4
-rw-r--r--asm/coord_event_weather.s156
-rw-r--r--asm/easy_chat.s2
-rw-r--r--asm/field_control_avatar.s2
-rw-r--r--asm/field_message_box.s337
-rw-r--r--asm/field_screen.s88
-rw-r--r--asm/field_specials.s6
-rw-r--r--asm/intro.s18
-rw-r--r--asm/item_icon.s468
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/item_menu_icons.s20
-rw-r--r--asm/item_use.s2863
-rw-r--r--asm/link.s130
-rw-r--r--asm/macros/battle_script.inc2
-rw-r--r--asm/main_menu.s4
-rw-r--r--asm/map_obj_8097404.s1861
-rw-r--r--asm/map_obj_lock.s16
-rw-r--r--asm/mystery_event_menu.s669
-rw-r--r--asm/option_menu.s10
-rw-r--r--asm/overworld.s14
-rw-r--r--asm/party_menu.s226
-rw-r--r--asm/player_pc.s8
-rw-r--r--asm/pokemon_1.s2
-rw-r--r--asm/pokemon_animation.s11782
-rw-r--r--asm/pokemon_item_effect.s54
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/pokemon_summary_screen.s4
-rw-r--r--asm/pokenav.s48
-rw-r--r--asm/rayquaza_scene.s5972
-rw-r--r--asm/record_mixing.s12
-rw-r--r--asm/reset_rtc_screen.s1342
-rw-r--r--asm/script_movement.s2
-rw-r--r--asm/shop.s6
-rw-r--r--asm/start_menu.s6
-rw-r--r--asm/time_events.s225
-rw-r--r--asm/title_screen.s1321
-rw-r--r--asm/trade.s18
-rw-r--r--asm/trainer_card.s20
-rw-r--r--asm/unknown_task.s593
-rw-r--r--asm/use_pokeblock.s4
-rw-r--r--constants/battle_constants.inc41
-rw-r--r--data/battle_ai_scripts.s52
-rw-r--r--data/battle_anim_scripts.s181
-rw-r--r--data/battle_scripts_1.s148
-rw-r--r--data/berry_tag_screen.s34
-rw-r--r--data/coord_event_weather.s21
-rw-r--r--data/graphics/berries/berry_graphics.inc172
-rw-r--r--data/item_icon.s15
-rw-r--r--data/mystery_event_menu.s12
-rw-r--r--data/pokemon_animation.s240
-rw-r--r--data/reset_rtc_screen.s78
-rw-r--r--data/save.s20
-rw-r--r--data/scripts/cable_club.inc34
-rw-r--r--data/scripts/maps/BattleFrontier_BattleTowerLobby.inc8
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.inc6
-rw-r--r--data/scripts/pokeblocks.inc8
-rw-r--r--data/specials.inc2
-rw-r--r--data/time_events.s7
-rw-r--r--data/title_screen.s163
-rw-r--r--graphics/battle_anims/sprites/smokescreen_impact.pal19
-rw-r--r--graphics/battle_interface/ball_display.pal19
-rw-r--r--graphics/battle_interface/ball_status_bar.pal19
-rw-r--r--graphics/battle_interface/unk_battlebox.pal19
-rw-r--r--graphics/battle_interface/unused_window.pal19
-rw-r--r--graphics/berries/aguav.png (renamed from graphics/berries/pics/aguav.png)bin380 -> 380 bytes
-rw-r--r--graphics/berries/apicot.png (renamed from graphics/berries/pics/apicot.png)bin397 -> 397 bytes
-rw-r--r--graphics/berries/aspear.png (renamed from graphics/berries/pics/aspear.png)bin422 -> 422 bytes
-rw-r--r--graphics/berries/belue.png (renamed from graphics/berries/pics/belue.png)bin644 -> 644 bytes
-rw-r--r--graphics/berries/bluk.png (renamed from graphics/berries/pics/bluk.png)bin444 -> 444 bytes
-rw-r--r--graphics/berries/cheri.png (renamed from graphics/berries/pics/cheri.png)bin355 -> 355 bytes
-rw-r--r--graphics/berries/chesto.png (renamed from graphics/berries/pics/chesto.png)bin458 -> 458 bytes
-rw-r--r--graphics/berries/cornn.png (renamed from graphics/berries/pics/cornn.png)bin485 -> 485 bytes
-rw-r--r--graphics/berries/durin.png (renamed from graphics/berries/pics/durin.png)bin801 -> 801 bytes
-rw-r--r--graphics/berries/enigma.png (renamed from graphics/berries/pics/enigma.png)bin497 -> 497 bytes
-rw-r--r--graphics/berries/figy.png (renamed from graphics/berries/pics/figy.png)bin418 -> 418 bytes
-rw-r--r--graphics/berries/ganlon.png (renamed from graphics/berries/pics/ganlon.png)bin387 -> 387 bytes
-rw-r--r--graphics/berries/grepa.png (renamed from graphics/berries/pics/grepa.png)bin397 -> 397 bytes
-rw-r--r--graphics/berries/hondew.png (renamed from graphics/berries/pics/hondew.png)bin534 -> 534 bytes
-rw-r--r--graphics/berries/iapapa.png (renamed from graphics/berries/pics/iapapa.png)bin624 -> 624 bytes
-rw-r--r--graphics/berries/kelpsy.png (renamed from graphics/berries/pics/kelpsy.png)bin412 -> 412 bytes
-rw-r--r--graphics/berries/lansat.png (renamed from graphics/berries/pics/lansat.png)bin474 -> 474 bytes
-rw-r--r--graphics/berries/leppa.png (renamed from graphics/berries/pics/leppa.png)bin369 -> 369 bytes
-rw-r--r--graphics/berries/liechi.png (renamed from graphics/berries/pics/liechi.png)bin561 -> 561 bytes
-rw-r--r--graphics/berries/lum.png (renamed from graphics/berries/pics/lum.png)bin289 -> 289 bytes
-rw-r--r--graphics/berries/mago.png (renamed from graphics/berries/pics/mago.png)bin409 -> 409 bytes
-rw-r--r--graphics/berries/magost.png (renamed from graphics/berries/pics/magost.png)bin392 -> 392 bytes
-rw-r--r--graphics/berries/nanab.png (renamed from graphics/berries/pics/nanab.png)bin363 -> 363 bytes
-rw-r--r--graphics/berries/nomel.png (renamed from graphics/berries/pics/nomel.png)bin430 -> 430 bytes
-rw-r--r--graphics/berries/oran.png (renamed from graphics/berries/pics/oran.png)bin340 -> 340 bytes
-rw-r--r--graphics/berries/palettes/aguav.pal19
-rw-r--r--graphics/berries/palettes/apicot.pal19
-rw-r--r--graphics/berries/palettes/aspear.pal19
-rw-r--r--graphics/berries/palettes/belue.pal19
-rw-r--r--graphics/berries/palettes/bluk.pal19
-rw-r--r--graphics/berries/palettes/cheri.pal19
-rw-r--r--graphics/berries/palettes/chesto.pal19
-rw-r--r--graphics/berries/palettes/cornn.pal19
-rw-r--r--graphics/berries/palettes/durin.pal19
-rw-r--r--graphics/berries/palettes/enigma.pal19
-rw-r--r--graphics/berries/palettes/figy.pal19
-rw-r--r--graphics/berries/palettes/ganlon.pal19
-rw-r--r--graphics/berries/palettes/grepa.pal19
-rw-r--r--graphics/berries/palettes/hondew.pal19
-rw-r--r--graphics/berries/palettes/iapapa.pal19
-rw-r--r--graphics/berries/palettes/kelpsy.pal19
-rw-r--r--graphics/berries/palettes/lansat.pal19
-rw-r--r--graphics/berries/palettes/leppa.pal19
-rw-r--r--graphics/berries/palettes/liechi.pal19
-rw-r--r--graphics/berries/palettes/lum.pal19
-rw-r--r--graphics/berries/palettes/mago.pal19
-rw-r--r--graphics/berries/palettes/magost.pal19
-rw-r--r--graphics/berries/palettes/nanab.pal19
-rw-r--r--graphics/berries/palettes/nomel.pal19
-rw-r--r--graphics/berries/palettes/oran.pal19
-rw-r--r--graphics/berries/palettes/pamtre.pal19
-rw-r--r--graphics/berries/palettes/pecha.pal19
-rw-r--r--graphics/berries/palettes/persim.pal19
-rw-r--r--graphics/berries/palettes/petaya.pal19
-rw-r--r--graphics/berries/palettes/pinap.pal19
-rw-r--r--graphics/berries/palettes/pomeg.pal19
-rw-r--r--graphics/berries/palettes/qualot.pal19
-rw-r--r--graphics/berries/palettes/rabuta.pal19
-rw-r--r--graphics/berries/palettes/rawst.pal19
-rw-r--r--graphics/berries/palettes/razz.pal19
-rw-r--r--graphics/berries/palettes/salac.pal19
-rw-r--r--graphics/berries/palettes/sitrus.pal19
-rw-r--r--graphics/berries/palettes/spelon.pal19
-rw-r--r--graphics/berries/palettes/starf.pal19
-rw-r--r--graphics/berries/palettes/tamato.pal19
-rw-r--r--graphics/berries/palettes/watmel.pal19
-rw-r--r--graphics/berries/palettes/wepear.pal19
-rw-r--r--graphics/berries/palettes/wiki.pal19
-rw-r--r--graphics/berries/pamtre.png (renamed from graphics/berries/pics/pamtre.png)bin539 -> 539 bytes
-rw-r--r--graphics/berries/pecha.png (renamed from graphics/berries/pics/pecha.png)bin363 -> 363 bytes
-rw-r--r--graphics/berries/persim.png (renamed from graphics/berries/pics/persim.png)bin330 -> 330 bytes
-rw-r--r--graphics/berries/petaya.png (renamed from graphics/berries/pics/petaya.png)bin639 -> 639 bytes
-rw-r--r--graphics/berries/pinap.png (renamed from graphics/berries/pics/pinap.png)bin491 -> 491 bytes
-rw-r--r--graphics/berries/pomeg.png (renamed from graphics/berries/pics/pomeg.png)bin406 -> 406 bytes
-rw-r--r--graphics/berries/qualot.png (renamed from graphics/berries/pics/qualot.png)bin422 -> 422 bytes
-rw-r--r--graphics/berries/rabuta.png (renamed from graphics/berries/pics/rabuta.png)bin710 -> 710 bytes
-rw-r--r--graphics/berries/rawst.png (renamed from graphics/berries/pics/rawst.png)bin414 -> 414 bytes
-rw-r--r--graphics/berries/razz.png (renamed from graphics/berries/pics/razz.png)bin520 -> 520 bytes
-rw-r--r--graphics/berries/salac.png (renamed from graphics/berries/pics/salac.png)bin519 -> 519 bytes
-rw-r--r--graphics/berries/sitrus.png (renamed from graphics/berries/pics/sitrus.png)bin404 -> 404 bytes
-rw-r--r--graphics/berries/spelon.png (renamed from graphics/berries/pics/spelon.png)bin467 -> 467 bytes
-rw-r--r--graphics/berries/starf.png (renamed from graphics/berries/pics/starf.png)bin440 -> 440 bytes
-rw-r--r--graphics/berries/tamato.png (renamed from graphics/berries/pics/tamato.png)bin642 -> 642 bytes
-rw-r--r--graphics/berries/watmel.png (renamed from graphics/berries/pics/watmel.png)bin636 -> 636 bytes
-rw-r--r--graphics/berries/wepear.png (renamed from graphics/berries/pics/wepear.png)bin400 -> 400 bytes
-rw-r--r--graphics/berries/wiki.png (renamed from graphics/berries/pics/wiki.png)bin429 -> 429 bytes
-rw-r--r--graphics/berry_blender/arrow.pal19
-rw-r--r--graphics/berry_blender/center.pal19
-rw-r--r--graphics/berry_blender/outer.pal19
-rw-r--r--graphics/birch_speech/birch.pal19
-rw-r--r--graphics/decorations/decor_attract_mat.pal19
-rw-r--r--graphics/decorations/decor_big_plant.pal19
-rw-r--r--graphics/decorations/decor_blastoise_doll.pal19
-rw-r--r--graphics/decorations/decor_blue_brick.pal19
-rw-r--r--graphics/decorations/decor_blue_tent.pal19
-rw-r--r--graphics/decorations/decor_breakable_door.pal19
-rw-r--r--graphics/decorations/decor_brick_desk.pal19
-rw-r--r--graphics/decorations/decor_camp_desk.pal19
-rw-r--r--graphics/decorations/decor_charizard_doll.pal19
-rw-r--r--graphics/decorations/decor_colorful_plant.pal19
-rw-r--r--graphics/decorations/decor_comfort_desk.pal19
-rw-r--r--graphics/decorations/decor_fire_blast_mat.pal19
-rw-r--r--graphics/decorations/decor_fissure_mat.pal19
-rw-r--r--graphics/decorations/decor_glass_ornament.pal19
-rw-r--r--graphics/decorations/decor_gorgeous_plant.pal19
-rw-r--r--graphics/decorations/decor_hard_desk.pal19
-rw-r--r--graphics/decorations/decor_heavy_desk.pal19
-rw-r--r--graphics/decorations/decor_lapras_doll.pal19
-rw-r--r--graphics/decorations/decor_powder_snow_mat.pal19
-rw-r--r--graphics/decorations/decor_pretty_desk.pal19
-rw-r--r--graphics/decorations/decor_pretty_flowers.pal19
-rw-r--r--graphics/decorations/decor_ragged_desk.pal19
-rw-r--r--graphics/decorations/decor_red_brick.pal19
-rw-r--r--graphics/decorations/decor_red_plant.pal19
-rw-r--r--graphics/decorations/decor_red_tent.pal19
-rw-r--r--graphics/decorations/decor_regice_doll.pal19
-rw-r--r--graphics/decorations/decor_regirock_doll.pal19
-rw-r--r--graphics/decorations/decor_registeel_doll.pal19
-rw-r--r--graphics/decorations/decor_rhydon_doll.pal19
-rw-r--r--graphics/decorations/decor_sand_ornament.pal19
-rw-r--r--graphics/decorations/decor_slide.pal19
-rw-r--r--graphics/decorations/decor_snorlax_doll.pal19
-rw-r--r--graphics/decorations/decor_solid_board.pal19
-rw-r--r--graphics/decorations/decor_spikes_mat.pal19
-rw-r--r--graphics/decorations/decor_stand.pal19
-rw-r--r--graphics/decorations/decor_surf_mat.pal19
-rw-r--r--graphics/decorations/decor_thunder_mat.pal19
-rw-r--r--graphics/decorations/decor_tire.pal19
-rw-r--r--graphics/decorations/decor_tropical_plant.pal19
-rw-r--r--graphics/decorations/decor_venusaur_doll.pal19
-rw-r--r--graphics/decorations/decor_wailmer_doll.pal19
-rw-r--r--graphics/decorations/decor_yellow_brick.pal19
-rw-r--r--graphics/interface/ball/ultra.pal19
-rw-r--r--graphics/interface/link_test_digits.pal19
-rw-r--r--graphics/interface/unk_textbox_border.pal19
-rw-r--r--graphics/interface/wireless_link_display.pal19
-rw-r--r--graphics/interface/wireless_link_icon.pal19
-rw-r--r--graphics/intro/copyright.pal19
-rw-r--r--graphics/intro/intro1_flygon.pal19
-rw-r--r--graphics/intro/intro2_bgclouds.pal19
-rw-r--r--graphics/intro/intro2_bgnight.pal19
-rw-r--r--graphics/intro/intro2_bgtrees.pal19
-rw-r--r--graphics/intro/intro2_brendan.pal19
-rw-r--r--graphics/intro/intro2_bubbles.pal19
-rw-r--r--graphics/intro/intro2_flygon.pal19
-rw-r--r--graphics/intro/intro2_grass.pal19
-rw-r--r--graphics/intro/intro2_latias.pal19
-rw-r--r--graphics/intro/intro2_latios.pal19
-rw-r--r--graphics/intro/intro2_manectric.pal19
-rw-r--r--graphics/intro/intro2_may.pal19
-rw-r--r--graphics/intro/intro2_torchic.pal19
-rw-r--r--graphics/intro/intro2_volbeat.pal19
-rw-r--r--graphics/intro/intro3_lightning.pal19
-rw-r--r--graphics/intro/intro3_pokeball.pal259
-rw-r--r--graphics/intro/intro3_streaks.pal19
-rw-r--r--graphics/link/minigame_digits.pal19
-rw-r--r--graphics/link_games/berrycrush_grinder_base.pal19
-rw-r--r--graphics/link_games/berrycrush_timerdigits.pal19
-rw-r--r--graphics/link_games/dodrioberry_berrysprites.pal19
-rw-r--r--graphics/link_games/dodrioberry_pkmn.pal19
-rw-r--r--graphics/link_games/dodrioberry_platform.pal19
-rw-r--r--graphics/link_games/dodrioberry_status.pal19
-rw-r--r--graphics/link_games/pkmnjump_321start1.pal19
-rw-r--r--graphics/link_games/pkmnjump_321start2.pal19
-rw-r--r--graphics/link_games/pkmnjump_bg.pal19
-rw-r--r--graphics/link_games/pkmnjump_results.pal19
-rw-r--r--graphics/link_games/pkmnjump_venusaur.pal19
-rw-r--r--graphics/misc/cable_car.pal19
-rw-r--r--graphics/misc/clock_small.pal19
-rw-r--r--graphics/misc/evo_sparkle.pal19
-rw-r--r--graphics/misc/japanese_hof.pal19
-rw-r--r--graphics/pokenav/brendan_icon.pal19
-rw-r--r--graphics/pokenav/fly_target_icons.pal19
-rw-r--r--graphics/pokenav/may_icon.pal19
-rw-r--r--graphics/title_screen/emerald_version.pal19
-rw-r--r--graphics/title_screen/press_start.pal19
-rw-r--r--graphics/unused/old_charmap.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_1.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_2.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_3.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_4.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_5.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_6.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_7.pal19
-rw-r--r--graphics/wonder_transfers/wonder_card_8.pal19
-rw-r--r--graphics/wonder_transfers/wonder_news_1.pal19
-rw-r--r--graphics/wonder_transfers/wonder_news_7.pal19
-rw-r--r--graphics/wonder_transfers/wonder_news_8.pal19
-rw-r--r--include/battle.h329
-rw-r--r--include/battle_ai_script_commands.h4
-rw-r--r--include/battle_anim.h16
-rw-r--r--include/battle_controllers.h112
-rw-r--r--include/battle_frontier_1.h7
-rw-r--r--include/battle_gfx_sfx_util.h4
-rw-r--r--include/battle_interface.h4
-rw-r--r--include/battle_link_817C95C.h2
-rw-r--r--include/battle_main.h (renamed from include/battle_2.h)6
-rw-r--r--include/battle_script_commands.h2
-rw-r--r--include/battle_util.h4
-rw-r--r--include/berry_fix_program.h6
-rw-r--r--include/berry_tag_screen.h6
-rw-r--r--include/blend_palette.h10
-rw-r--r--include/clear_save_data_menu.h6
-rw-r--r--include/constants/items.h3
-rw-r--r--include/constants/rgb.h16
-rw-r--r--include/constants/weather.h39
-rw-r--r--include/coord_event_weather.h6
-rw-r--r--include/field_map_obj_helpers.h30
-rw-r--r--include/field_weather.h167
-rw-r--r--include/gba/defines.h5
-rw-r--r--include/global.h22
-rw-r--r--include/graphics.h34
-rw-r--r--include/intro.h8
-rw-r--r--include/item.h1
-rw-r--r--include/item_icon.h15
-rw-r--r--include/item_menu.h13
-rw-r--r--include/item_menu_icons.h6
-rw-r--r--include/item_use.h54
-rw-r--r--include/link.h8
-rw-r--r--include/main_menu.h6
-rw-r--r--include/map_obj_8097404.h34
-rw-r--r--include/menu.h2
-rw-r--r--include/menu_helpers.h1
-rw-r--r--include/mystery_event_menu.h6
-rw-r--r--include/overworld.h2
-rw-r--r--include/palette.h1
-rw-r--r--include/pokemon.h3
-rw-r--r--include/pokemon_animation.h7
-rw-r--r--include/rayquaza_scene.h17
-rw-r--r--include/recorded_battle.h6
-rw-r--r--include/reset_rtc_screen.h6
-rw-r--r--include/scanline_effect.h47
-rw-r--r--include/sprite.h1
-rw-r--r--include/strings.h34
-rw-r--r--include/time_events.h8
-rw-r--r--include/title_screen.h8
-rw-r--r--include/unknown_task.h22
-rw-r--r--ld_script.txt46
-rw-r--r--src/battle_ai_script_commands.c318
-rw-r--r--src/battle_ai_switch_items.c340
-rw-r--r--src/battle_anim.c188
-rw-r--r--src/battle_bg.c8
-rw-r--r--src/battle_controller_link_opponent.c800
-rw-r--r--src/battle_controller_link_partner.c712
-rw-r--r--src/battle_controller_opponent.c826
-rw-r--r--src/battle_controller_player.c1312
-rw-r--r--src/battle_controller_player_partner.c774
-rw-r--r--src/battle_controller_recorded_opponent.c768
-rw-r--r--src/battle_controller_recorded_player.c784
-rw-r--r--src/battle_controller_safari.c170
-rw-r--r--src/battle_controller_wally.c514
-rw-r--r--src/battle_controllers.c564
-rw-r--r--src/battle_gfx_sfx_util.c351
-rw-r--r--src/battle_interface.c175
-rw-r--r--src/battle_main.c (renamed from src/battle_2.c)1713
-rw-r--r--src/battle_message.c162
-rw-r--r--src/battle_script_commands.c3494
-rw-r--r--src/battle_setup.c14
-rw-r--r--src/battle_transition.c258
-rw-r--r--src/battle_util.c1384
-rw-r--r--src/battle_util2.c42
-rw-r--r--src/berry_fix_program.c242
-rw-r--r--src/berry_tag_screen.c653
-rw-r--r--src/calculate_base_damage.c2
-rw-r--r--src/coord_event_weather.c119
-rw-r--r--src/decoration.c18
-rw-r--r--src/diploma.c2
-rw-r--r--src/egg_hatch.c4
-rw-r--r--src/evolution_scene.c6
-rw-r--r--src/field_map_obj.c2
-rwxr-xr-xsrc/field_map_obj_helpers.c844
-rwxr-xr-xsrc/field_message_box.c155
-rw-r--r--src/field_poison.c2
-rw-r--r--src/hall_of_fame.c4
-rw-r--r--src/item_icon.c169
-rwxr-xr-xsrc/item_use.c1124
-rw-r--r--src/mail.c2
-rw-r--r--src/mystery_event_menu.c302
-rw-r--r--src/option_menu.c2
-rw-r--r--src/palette.c270
-rw-r--r--src/pokeball.c118
-rw-r--r--src/pokeblock.c2
-rw-r--r--src/pokemon_2.c52
-rw-r--r--src/pokemon_3.c43
-rw-r--r--src/pokemon_animation.c5658
-rw-r--r--src/rayquaza_scene.c1918
-rw-r--r--src/recorded_battle.c80
-rw-r--r--src/reset_rtc_screen.c639
-rw-r--r--src/reshow_battle_screen.c192
-rw-r--r--src/safari_zone.c6
-rw-r--r--src/save.c57
-rw-r--r--src/scanline_effect.c262
-rw-r--r--src/scrcmd.c10
-rw-r--r--src/secret_base.c240
-rw-r--r--src/sprite.c114
-rw-r--r--src/start_menu.c12
-rw-r--r--src/text.c4110
-rw-r--r--src/time_events.c118
-rw-r--r--src/title_screen.c783
-rw-r--r--src/trainer_see.c4
-rw-r--r--src/tv.c20
-rw-r--r--src/use_pokeblock.c4
-rw-r--r--src/wallclock.c2
-rw-r--r--sym_bss.txt12
-rw-r--r--sym_common.txt6
-rw-r--r--sym_ewram.txt104
385 files changed, 26772 insertions, 46667 deletions
diff --git a/Makefile b/Makefile
index b9e2fb289..c38d8fe76 100644
--- a/Makefile
+++ b/Makefile
@@ -30,8 +30,11 @@ LDFLAGS = -Map ../../$(MAP)
OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy
-LIBGCC := tools/agbcc/lib/libgcc.a
-LIBC := tools/agbcc/lib/libc.a
+ifeq ($(OS),Windows_NT)
+ LIB := ../../tools/agbcc/lib/libgcc.a ../../tools/agbcc/lib/libc.a
+else
+ LIB := -L ../../tools/agbcc/lib -lgcc -lc
+endif
SHA1 := sha1sum -c
@@ -163,7 +166,7 @@ $(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_comm
cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
- cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) ../../$(LIBC)
+ cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(ROM): $(ELF)
$(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@
diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s
index 08baa4595..a3be18667 100644
--- a/asm/battle_anim_80A5C6C.s
+++ b/asm/battle_anim_80A5C6C.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start GetBankPosition
-GetBankPosition: @ 80A5C6C
+ thumb_func_start GetBattlerSpriteCoord
+GetBattlerSpriteCoord: @ 80A5C6C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
@@ -40,7 +40,7 @@ _080A5C9C:
_080A5CB0:
ldr r4, =gUnknown_08525F58
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 22
ldr r1, =gBattleTypeFlags
@@ -56,7 +56,7 @@ _080A5CB0:
_080A5CD8:
ldr r4, =gUnknown_08525F58
adds r0, r5, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 22
ldr r1, =gBattleTypeFlags
@@ -90,7 +90,7 @@ _080A5D24:
b _080A5D9A
_080A5D28:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A5D60
@@ -102,7 +102,7 @@ _080A5D28:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A5D98
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -120,7 +120,7 @@ _080A5D60:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A5D98
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -154,7 +154,7 @@ _080A5DB0:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end GetBankPosition
+ thumb_func_end GetBattlerSpriteCoord
thumb_func_start sub_80A5DB8
sub_80A5DB8: @ 80A5DB8
@@ -164,7 +164,7 @@ sub_80A5DB8: @ 80A5DB8
lsls r1, 16
lsrs r5, r1, 16
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A5DDA
@@ -203,7 +203,7 @@ _080A5E04:
ldrh r0, [r0, 0x2]
cmp r0, 0
bne _080A5E3C
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -293,7 +293,7 @@ _080A5EC8:
ldrh r0, [r0, 0x2]
cmp r0, 0
bne _080A5F04
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -394,7 +394,7 @@ sub_80A5FA0: @ 80A5FA0
adds r7, r4, 0
movs r5, 0
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -445,7 +445,7 @@ sub_80A600C: @ 80A600C
lsls r2, 24
lsrs r7, r2, 24
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A6030
@@ -476,7 +476,7 @@ _080A603E:
lsrs r4, r0, 16
_080A605C:
adds r0, r6, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
ldr r3, =gUnknown_08525F58
lsls r0, 24
lsrs r0, 22
@@ -494,7 +494,7 @@ _080A605C:
cmp r7, 0
beq _080A609C
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A6096
@@ -577,7 +577,7 @@ _080A611C:
_080A6126:
adds r0, r4, 0
adds r1, r5, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
_080A612E:
lsls r0, 24
lsrs r0, 24
@@ -586,18 +586,18 @@ _080A612E:
bx r1
thumb_func_end sub_80A60AC
- thumb_func_start GetBankSpriteDefault_Y
-GetBankSpriteDefault_Y: @ 80A6138
+ thumb_func_start GetBattlerSpriteDefault_Y
+GetBattlerSpriteDefault_Y: @ 80A6138
push {lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0x4
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
- thumb_func_end GetBankSpriteDefault_Y
+ thumb_func_end GetBattlerSpriteDefault_Y
thumb_func_start GetSubstituteSpriteDefault_Y
GetSubstituteSpriteDefault_Y: @ 80A614C
@@ -605,13 +605,13 @@ GetSubstituteSpriteDefault_Y: @ 80A614C
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A6170
adds r0, r4, 0
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0x80
@@ -620,7 +620,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C
_080A6170:
adds r0, r4, 0
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0x88
@@ -642,7 +642,7 @@ sub_80A6190: @ 80A6190
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
bl IsContest
@@ -650,7 +650,7 @@ sub_80A6190: @ 80A6190
cmp r0, 0
bne _080A6238
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A61E4
@@ -662,7 +662,7 @@ sub_80A6190: @ 80A6190
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A621C
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -680,7 +680,7 @@ _080A61E4:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A621C
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -699,7 +699,7 @@ _080A621C:
ldrh r4, [r1, 0x2]
_080A621E:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A6238
@@ -716,56 +716,56 @@ _080A6238:
bx r1
thumb_func_end sub_80A6190
- thumb_func_start GetAnimBankSpriteId
-GetAnimBankSpriteId: @ 80A6240
+ thumb_func_start GetAnimBattlerSpriteId
+GetAnimBattlerSpriteId: @ 80A6240
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
cmp r0, 0
bne _080A6268
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl IsBankSpritePresent
+ bl IsBattlerSpritePresent
lsls r0, 24
cmp r0, 0
beq _080A62B6
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r4]
b _080A62C6
.pool
_080A6268:
cmp r0, 0x1
bne _080A6288
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
- bl IsBankSpritePresent
+ bl IsBattlerSpritePresent
lsls r0, 24
cmp r0, 0
beq _080A62B6
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r4]
b _080A62C6
.pool
_080A6288:
cmp r1, 0x2
bne _080A62A4
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A62B6
b _080A62C0
.pool
_080A62A4:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080A62C0
@@ -774,7 +774,7 @@ _080A62B6:
b _080A62CA
.pool
_080A62C0:
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r4
_080A62C6:
@@ -785,7 +785,7 @@ _080A62CA:
pop {r1}
bx r1
.pool
- thumb_func_end GetAnimBankSpriteId
+ thumb_func_end GetAnimBattlerSpriteId
thumb_func_start StoreSpriteCallbackInData6
StoreSpriteCallbackInData6: @ 80A62D4
@@ -1242,16 +1242,16 @@ sub_80A65EC: @ 80A65EC
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -1439,16 +1439,16 @@ sub_80A6760: @ 80A6760
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -1547,16 +1547,16 @@ sub_80A6814: @ 80A6814
sub_80A6838: @ 80A6838
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1575,16 +1575,16 @@ sub_80A6864: @ 80A6864
lsls r1, 16
lsrs r5, r1, 16
mov r8, r5
- ldr r7, =gAnimBankAttacker
+ ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r6, r0
@@ -1596,7 +1596,7 @@ sub_80A6864: @ 80A6864
.pool
_080A68A4:
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A68BC
@@ -1729,7 +1729,7 @@ sub_80A6980: @ 80A6980
lsls r1, 24
cmp r1, 0
bne _080A69A8
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A60AC
@@ -1765,7 +1765,7 @@ sub_80A69CC: @ 80A69CC
lsls r1, 24
cmp r1, 0
bne _080A69F0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A60AC
@@ -1777,7 +1777,7 @@ sub_80A69CC: @ 80A69CC
b _080A6A04
.pool
_080A69F0:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A60AC
@@ -1806,41 +1806,41 @@ _080A6A04:
.pool
thumb_func_end sub_80A69CC
- thumb_func_start GetBankSide
-GetBankSide: @ 80A6A30
+ thumb_func_start GetBattlerSide
+GetBattlerSide: @ 80A6A30
lsls r0, 24
lsrs r0, 24
- ldr r1, =gBanksByIdentity
+ ldr r1, =gBattlerPositions
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
bx lr
.pool
- thumb_func_end GetBankSide
+ thumb_func_end GetBattlerSide
- thumb_func_start GetBankIdentity
-GetBankIdentity: @ 80A6A44
+ thumb_func_start GetBattlerPosition
+GetBattlerPosition: @ 80A6A44
lsls r0, 24
lsrs r0, 24
- ldr r1, =gBanksByIdentity
+ ldr r1, =gBattlerPositions
adds r0, r1
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end GetBankIdentity
+ thumb_func_end GetBattlerPosition
- thumb_func_start GetBankByIdentity
-GetBankByIdentity: @ 80A6A54
+ thumb_func_start GetBattlerAtPosition
+GetBattlerAtPosition: @ 80A6A54
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
movs r1, 0
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r2, [r0]
cmp r1, r2
bcs _080A6A7E
- ldr r4, =gBanksByIdentity
+ ldr r4, =gBattlerPositions
ldrb r0, [r4]
cmp r0, r3
beq _080A6A7E
@@ -1860,10 +1860,10 @@ _080A6A7E:
pop {r1}
bx r1
.pool
- thumb_func_end GetBankByIdentity
+ thumb_func_end GetBattlerAtPosition
- thumb_func_start IsBankSpritePresent
-IsBankSpritePresent: @ 80A6A90
+ thumb_func_start IsBattlerSpritePresent
+IsBattlerSpritePresent: @ 80A6A90
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -1872,28 +1872,28 @@ IsBankSpritePresent: @ 80A6A90
lsls r0, 24
cmp r0, 0
beq _080A6ABC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
cmp r0, r4
beq _080A6B0A
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
cmp r0, r4
beq _080A6B0A
b _080A6B18
.pool
_080A6ABC:
- ldr r0, =gBanksByIdentity
+ ldr r0, =gBattlerPositions
adds r0, r4, r0
ldrb r0, [r0]
cmp r0, 0xFF
beq _080A6B18
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A6AF0
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -1903,7 +1903,7 @@ _080A6ABC:
b _080A6AFE
.pool
_080A6AF0:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r0, r1
ldrh r1, [r0]
@@ -1926,7 +1926,7 @@ _080A6B1A:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end IsBankSpritePresent
+ thumb_func_end IsBattlerSpritePresent
thumb_func_start IsDoubleBattle
IsDoubleBattle: @ 80A6B20
@@ -2061,7 +2061,7 @@ sub_80A6BFC: @ 80A6BFC
b _080A6C60
.pool
_080A6C30:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -2889,7 +2889,7 @@ sub_80A7238: @ 80A7238
beq _080A7268
ldr r4, =gSprites
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -2934,7 +2934,7 @@ sub_80A7270: @ 80A7270
cmp r0, 0
bne _080A72A6
adds r0, r7, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A72B4
@@ -3372,7 +3372,7 @@ _080A75F6:
_080A7602:
cmp r7, 0
beq _080A7614
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3383,7 +3383,7 @@ _080A7614:
mov r0, r8
cmp r0, 0
beq _080A7628
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3394,11 +3394,11 @@ _080A7628:
mov r0, r9
cmp r0, 0
beq _080A764E
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A764E
@@ -3413,11 +3413,11 @@ _080A764E:
mov r0, r10
cmp r0, 0
beq _080A7674
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7674
@@ -3496,15 +3496,15 @@ _080A76F2:
cmp r5, 0
beq _080A771A
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A771A
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
@@ -3514,15 +3514,15 @@ _080A771A:
cmp r6, 0
beq _080A7746
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7746
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3534,15 +3534,15 @@ _080A7746:
cmp r7, 0
beq _080A7772
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7772
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3555,15 +3555,15 @@ _080A7772:
cmp r0, 0
beq _080A77A0
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A77A0
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -3592,7 +3592,7 @@ sub_80A77B4: @ 80A77B4
push {lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
pop {r1}
@@ -3670,9 +3670,9 @@ _080A7838:
_080A7842:
adds r0, r5, 0
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A785C
@@ -3682,10 +3682,10 @@ _080A7842:
_080A785C:
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
@@ -3693,7 +3693,7 @@ _080A785C:
strh r0, [r5, 0x32]
ldrb r0, [r4]
adds r1, r7, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
@@ -3716,9 +3716,9 @@ sub_80A78AC: @ 80A78AC
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A78CC
@@ -3730,10 +3730,10 @@ _080A78CC:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -3741,7 +3741,7 @@ _080A78CC:
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
@@ -3799,19 +3799,19 @@ _080A7954:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _080A7976
.pool
_080A796C:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80A6980
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_080A7976:
ldrb r6, [r0]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A798E
@@ -3828,7 +3828,7 @@ _080A798E:
strh r0, [r5, 0x2E]
adds r0, r6, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r4, 0x4]
@@ -3836,7 +3836,7 @@ _080A798E:
strh r0, [r5, 0x32]
adds r0, r6, 0
adds r1, r7, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
@@ -3858,7 +3858,7 @@ duplicate_obj_of_side_rel2move_in_transparent_mode: @ 80A79E8
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
@@ -4084,7 +4084,7 @@ sub_80A7B98: @ 80A7B98
lsrs r4, r0, 24
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -4539,7 +4539,7 @@ sub_80A7F18: @ 80A7F18
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldr r7, =0x00000181
ldr r0, =gBattleMonForms
adds r6, r5, r0
@@ -4567,7 +4567,7 @@ _080A7F42:
_080A7F78:
lsls r0, r4, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A7FD8
@@ -4579,7 +4579,7 @@ _080A7F78:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A7FC0
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -4614,7 +4614,7 @@ _080A7FD8:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A8010
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -4837,14 +4837,14 @@ sub_80A8174: @ 80A8174
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A81B4
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
@@ -4863,15 +4863,15 @@ sub_80A8174: @ 80A8174
orrs r0, r2
strb r0, [r1, 0x5]
_080A81B4:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A81EC
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
mov r3, r8
ldrb r0, [r3]
adds r0, r1
@@ -4894,12 +4894,12 @@ _080A81EC:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8224
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r6]
eors r0, r5
adds r0, r1
@@ -4922,12 +4922,12 @@ _080A8224:
mov r1, r8
ldrb r0, [r1]
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A825C
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
mov r3, r8
ldrb r0, [r3]
eors r0, r5
@@ -4959,7 +4959,7 @@ _080A825C:
sub_80A8278: @ 80A8278
push {r4-r6,lr}
movs r5, 0
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
bge _080A82D2
@@ -4968,13 +4968,13 @@ _080A8286:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A82C8
adds r0, r4, 0
bl sub_80A82E4
- ldr r3, =gBankSpriteIds
+ ldr r3, =gBattlerSpriteIds
adds r3, r5, r3
ldrb r2, [r3]
lsls r1, r2, 4
@@ -4998,7 +4998,7 @@ _080A8286:
strb r2, [r0, 0x5]
_080A82C8:
adds r5, 0x1
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r5, r0
blt _080A8286
@@ -5027,7 +5027,7 @@ _080A82FC:
b _080A8320
_080A8300:
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0x1E
@@ -5053,7 +5053,7 @@ sub_80A8328: @ 80A8328
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r4, r0, 24
bl IsContest
@@ -5093,7 +5093,7 @@ sub_80A8364: @ 80A8364
cmp r0, 0
bne _080A838A
adds r0, r4, 0
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -5486,7 +5486,7 @@ _080A86AC:
.pool
_080A86C4:
mov r0, r8
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A8790
@@ -5499,7 +5499,7 @@ _080A86C4:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A871C
- ldr r0, =gBattlePartyID
+ ldr r0, =gBattlerPartyIndexes
mov r1, r8
lsls r4, r1, 1
adds r4, r0
@@ -5589,7 +5589,7 @@ _080A8790:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A87DC
- ldr r0, =gBattlePartyID
+ ldr r0, =gBattlerPartyIndexes
mov r1, r8
lsls r4, r1, 1
adds r4, r0
@@ -5713,7 +5713,7 @@ _080A88A6:
_080A88AE:
mov r0, r8
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4]
@@ -5722,7 +5722,7 @@ _080A88AE:
_080A88C0:
mov r0, r8
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4]
@@ -5731,7 +5731,7 @@ _080A88C0:
_080A88D2:
mov r0, r8
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4]
@@ -5744,7 +5744,7 @@ _080A88E4:
_080A88EA:
mov r0, r8
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4]
@@ -5757,7 +5757,7 @@ _080A88FC:
_080A8902:
mov r0, r8
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
@@ -5798,13 +5798,13 @@ _080A8942:
_080A8946:
adds r0, r4, 0
adds r1, r5, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r8, r0
adds r0, r4, 0
adds r1, r6, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
bl IsDoubleBattle
@@ -5819,12 +5819,12 @@ _080A8946:
eors r4, r0
adds r0, r4, 0
adds r1, r5, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
adds r1, r6, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r3, r0, 24
mov r0, r8
@@ -5941,9 +5941,9 @@ sub_80A8A6C: @ 80A8A6C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8AAC
@@ -5998,9 +5998,9 @@ _080A8AB6:
sub_80A8AEC: @ 80A8AEC
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8B1C
@@ -6054,9 +6054,9 @@ sub_80A8B64: @ 80A8B64
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080A8B90
@@ -6101,14 +6101,14 @@ sub_80A8BC4: @ 80A8BC4
ldr r0, =gTasks
adds r5, r1, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x8]
- ldr r7, =gAnimBankAttacker
+ ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
@@ -6389,21 +6389,21 @@ _080A8E26:
sub_80A8E30: @ 80A8E30
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A8E68
@@ -6487,9 +6487,9 @@ sub_80A8EE4: @ 80A8EE4
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x36]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080A8F24
diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s
index c471cc729..755653156 100644
--- a/asm/battle_anim_80A9C70.s
+++ b/asm/battle_anim_80A9C70.s
@@ -17,7 +17,7 @@ sub_80A9C70: @ 80A9C70
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r6, [r0]
ldr r0, =sub_80A9DB4
@@ -331,10 +331,10 @@ sub_80A9EF4: @ 80A9EF4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
ldr r1, =0xffe00000
@@ -342,7 +342,7 @@ sub_80A9EF4: @ 80A9EF4
lsrs r5, r0, 16
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
ldr r1, =0xffdc0000
@@ -863,9 +863,9 @@ LaunchStatusAnimation: @ 80AA364
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
strb r4, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
strb r4, [r0]
ldr r0, =gBattleAnims_Statuses
movs r2, 0
diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s
index 3ee1786ad..3f36bb4a2 100644
--- a/asm/battle_anim_80D51AC.s
+++ b/asm/battle_anim_80D51AC.s
@@ -12,7 +12,7 @@ sub_80D51AC: @ 80D51AC
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
@@ -165,7 +165,7 @@ sub_80D52D0: @ 80D52D0
bgt _080D52FC
lsls r0, 24
lsrs r0, 24
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -200,23 +200,23 @@ _080D5320:
_080D5324:
movs r0, 0x3
_080D5326:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080D533C
movs r6, 0x1
_080D533C:
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
b _080D5350
.pool
_080D5348:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
_080D5350:
@@ -379,7 +379,7 @@ sub_80D5484: @ 80D5484
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0xFF
@@ -603,7 +603,7 @@ sub_80D5644: @ 80D5644
lsrs r4, 24
ldr r5, =gBattleAnimArgs
ldrb r0, [r5]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -723,7 +723,7 @@ sub_80D5738: @ 80D5738
movs r6, 0x1
ldr r4, =gBattleAnimArgs
ldrb r0, [r4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
movs r1, 0x8
@@ -842,9 +842,9 @@ sub_80D5830: @ 80D5830
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D584C
@@ -871,9 +871,9 @@ sub_80D5860: @ 80D5860
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5890
@@ -891,8 +891,8 @@ _080D5894:
movs r0, 0
strh r2, [r4, 0x2E]
strh r0, [r4, 0x32]
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -938,7 +938,7 @@ sub_80D58F8: @ 80D58F8
strb r0, [r2]
ldr r5, =gBattleAnimArgs
ldrb r0, [r5, 0x4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldrh r2, [r5]
@@ -987,13 +987,13 @@ sub_80D5968: @ 80D5968
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D598C
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
b _080D5990
.pool
_080D598C:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
_080D5990:
ldrb r0, [r0]
adds r0, r1
@@ -1133,18 +1133,18 @@ sub_80D5A94: @ 80D5A94
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D5AB0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _080D5AB2
.pool
_080D5AB0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_080D5AB2:
ldrb r2, [r0]
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r2, r0
ldrb r6, [r0]
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5ADC
@@ -1218,18 +1218,18 @@ sub_80D5B48: @ 80D5B48
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D5B70
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _080D5B72
.pool
_080D5B70:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_080D5B72:
ldrb r1, [r0]
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r1, r0
ldrb r7, [r0]
adds r0, r1, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5B9C
@@ -1338,9 +1338,9 @@ sub_80D5C50: @ 80D5C50
bl __divsi3
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5C82
@@ -1352,7 +1352,7 @@ sub_80D5C50: @ 80D5C50
strh r0, [r5, 0xA]
_080D5C82:
ldrb r0, [r5]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r1, =gTasks
lsls r4, r6, 2
adds r4, r6
@@ -1508,7 +1508,7 @@ sub_80D5DB0: @ 80D5DB0
cmp r0, 0
blt _080D5E10
ldrb r0, [r1]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _080D5E18
@@ -1518,20 +1518,20 @@ _080D5DD8:
beq _080D5DE8
b _080D5E10
_080D5DDE:
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
b _080D5DEA
.pool
_080D5DE8:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
_080D5DEA:
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D5E10
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r4
adds r0, r1
@@ -1549,9 +1549,9 @@ _080D5E18:
lsls r0, 3
adds r5, r0, r1
strh r2, [r5, 0x8]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5E44
@@ -1622,9 +1622,9 @@ sub_80D5EB8: @ 80D5EB8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D5ED4
@@ -1635,7 +1635,7 @@ sub_80D5EB8: @ 80D5EB8
_080D5ED4:
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x8]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gTasks
@@ -1660,7 +1660,7 @@ _080D5ED4:
b _080D5F18
.pool
_080D5F14:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
_080D5F18:
strh r0, [r2, 0x12]
@@ -1722,7 +1722,7 @@ sub_80D5F3C: @ 80D5F3C
.pool
_080D5F94:
ldrb r0, [r4, 0x12]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080D5FBC
@@ -1836,7 +1836,7 @@ sub_80D6064: @ 80D6064
lsrs r4, 24
ldr r6, =gBattleAnimArgs
ldrb r0, [r6, 0x6]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
@@ -1939,7 +1939,7 @@ sub_80D6134: @ 80D6134
lsrs r7, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -1995,14 +1995,14 @@ _080D61B8:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D61C8
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _080D61CA
.pool
_080D61C8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_080D61CA:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0
lsls r0, 24
cmp r0, 0
@@ -2057,7 +2057,7 @@ sub_80D622C: @ 80D622C
lsrs r5, r0, 24
ldr r4, =gBattleAnimArgs
ldrb r0, [r4, 0x4]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
mov r8, r0
@@ -2076,14 +2076,14 @@ sub_80D622C: @ 80D622C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D6274
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _080D6276
.pool
_080D6274:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_080D6276:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080D6288
@@ -2290,7 +2290,7 @@ _080D63EE:
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x1E]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x16]
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index 031bf2128..3e3be2100 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -22,9 +22,9 @@ sub_80FE840: @ 80FE840
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FE87C
@@ -96,16 +96,16 @@ sub_80FE8E0: @ 80FE8E0
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -132,16 +132,16 @@ sub_80FE930: @ 80FE930
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -167,10 +167,10 @@ sub_80FE988: @ 80FE988
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -178,7 +178,7 @@ sub_80FE988: @ 80FE988
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -212,14 +212,14 @@ _080FE9FA:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080FEA14
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
b _080FEA1E
.pool
_080FEA14:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x6
@@ -287,7 +287,7 @@ sub_80FEA58: @ 80FEA58
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, =gUnknown_08592210
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r3, r0, 0
@@ -321,16 +321,16 @@ sub_80FEAD8: @ 80FEAD8
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -374,21 +374,21 @@ sub_80FEB44: @ 80FEB44
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FEB90
@@ -410,10 +410,10 @@ _080FEB94:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -421,7 +421,7 @@ _080FEB94:
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -494,9 +494,9 @@ sub_80FEC48: @ 80FEC48
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FEC68
@@ -508,10 +508,10 @@ _080FEC68:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -519,7 +519,7 @@ _080FEC68:
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
@@ -655,7 +655,7 @@ sub_80FED74: @ 80FED74
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEDC8
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -669,7 +669,7 @@ sub_80FED74: @ 80FED74
b _080FEDEC
.pool
_080FEDC8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
adds r0, 0x1
@@ -730,7 +730,7 @@ _080FEE36:
bl DestroyAnimVisualTask
b _080FEE70
_080FEE3E:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -771,10 +771,10 @@ sub_80FEE78: @ 80FEE78
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x4]
@@ -823,14 +823,14 @@ sub_80FEECC: @ 80FEECC
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEF18
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
b _080FEF22
.pool
_080FEF18:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
@@ -868,10 +868,10 @@ sub_80FEF44: @ 80FEF44
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x4]
@@ -950,16 +950,16 @@ _080FEFF6:
sub_80FEFFC: @ 80FEFFC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -1026,9 +1026,9 @@ _080FF08C:
sub_80FF090: @ 80FF090
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF0B4
@@ -1080,9 +1080,9 @@ sub_80FF0F4: @ 80FF0F4
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF114
@@ -1098,10 +1098,10 @@ _080FF114:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF154
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
@@ -1109,7 +1109,7 @@ _080FF114:
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
@@ -1117,7 +1117,7 @@ _080FF114:
b _080FF174
.pool
_080FF154:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -1139,13 +1139,13 @@ _080FF174:
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -1265,7 +1265,7 @@ sub_80FF268: @ 80FF268
lsrs r0, 24
cmp r0, 0x1
bne _080FF28A
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -1350,7 +1350,7 @@ _080FF2F8:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080FF338
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -1359,7 +1359,7 @@ _080FF2F8:
b _080FF346
.pool
_080FF338:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -1434,7 +1434,7 @@ sub_80FF3B0: @ 80FF3B0
ands r0, r1
strb r0, [r2]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
movs r0, 0x80
lsls r0, 1
strh r0, [r4, 0x2E]
@@ -1452,7 +1452,7 @@ sub_80FF3EC: @ 80FF3EC
push {r4,lr}
adds r4, r0, 0
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
movs r1, 0x32
ldrsh r0, [r4, r1]
cmp r0, 0
@@ -1517,7 +1517,7 @@ sub_80FF458: @ 80FF458
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldr r0, =gSprites
@@ -1550,7 +1550,7 @@ _080FF498:
lsls r0, 28
lsrs r0, 30
strh r0, [r6, 0x24]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
mov r9, r0
ldrb r0, [r0]
bl sub_80A8328
@@ -1567,7 +1567,7 @@ _080FF498:
orrs r0, r1
strb r0, [r7, 0x5]
movs r0, 0x3
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
lsls r4, r1, 4
@@ -1618,7 +1618,7 @@ sub_80FF53C: @ 80FF53C
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -1639,9 +1639,9 @@ sub_80FF53C: @ 80FF53C
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080FF586
@@ -1698,7 +1698,7 @@ sub_80FF5CC: @ 80FF5CC
cmp r5, 0
bne _080FF674
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -1723,7 +1723,7 @@ sub_80FF5CC: @ 80FF5CC
orrs r0, r2
strb r0, [r1, 0x5]
movs r0, 0x3
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -1785,9 +1785,9 @@ sub_80FF698: @ 80FF698
beq _080FF704
b _080FF756
_080FF6AA:
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _080FF6C2
@@ -1799,7 +1799,7 @@ _080FF6AA:
_080FF6C2:
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -1808,7 +1808,7 @@ _080FF6C2:
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -1845,16 +1845,16 @@ _080FF704:
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -1878,16 +1878,16 @@ sub_80FF768: @ 80FF768
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080FF7D4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1941,31 +1941,31 @@ sub_80FF7EC: @ 80FF7EC
push {r4-r6}
sub sp, 0x4
mov r9, r0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
mov r8, r0
mov r0, r8
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r2, r0, 0
lsls r2, 24
subs r4, r5
@@ -2095,10 +2095,10 @@ sub_80FF934: @ 80FF934
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF974
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -2107,7 +2107,7 @@ sub_80FF934: @ 80FF934
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -2349,18 +2349,18 @@ sub_80FFB18: @ 80FFB18
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2453,14 +2453,14 @@ _080FFBEC:
sub_80FFBF4: @ 80FFBF4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -2551,18 +2551,18 @@ sub_80FFCB4: @ 80FFCB4
adds r5, r0, 0
movs r1, 0
bl sub_80A6980
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2954,7 +2954,7 @@ sub_80FFFC0: @ 80FFFC0
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
bl sub_80A82E4
lsls r0, 24
@@ -2963,13 +2963,13 @@ sub_80FFFC0: @ 80FFFC0
strh r0, [r5, 0x10]
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x16]
@@ -2982,7 +2982,7 @@ sub_80FFFC0: @ 80FFFC0
bl sub_80A861C
strh r0, [r5, 0x1E]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
movs r2, 0x1
@@ -3772,15 +3772,15 @@ sub_8100640: @ 8100640
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810065C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810065E
.pool
_0810065C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810065E:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100688
@@ -3837,7 +3837,7 @@ _081006CE:
_081006D4:
adds r0, r6, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5]
@@ -3857,17 +3857,17 @@ _081006E4:
strb r0, [r4, 0x5]
b _08100738
_08100700:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r7, [r7]
adds r0, r7
strh r0, [r4, 0x22]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
_0810071A:
adds r0, r6, 0
bl sub_80A8328
@@ -4074,20 +4074,20 @@ _081008B4:
ldrsh r0, [r1, r3]
cmp r0, 0
bne _081008C4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _081008C6
.pool
_081008C4:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_081008C6:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r5, r0, 24
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
ldr r0, =gBattleAnimArgs
@@ -4237,9 +4237,9 @@ _081009F2:
sub_81009F8: @ 81009F8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100A20
@@ -4277,9 +4277,9 @@ _08100A2C:
sub_8100A50: @ 8100A50
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100A6A
@@ -4343,21 +4343,21 @@ sub_8100A94: @ 8100A94
sub_8100AE0: @ 8100AE0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100B14
@@ -4439,12 +4439,12 @@ sub_8100B88: @ 8100B88
b _08100C24
.pool
_08100BA8:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r5]
@@ -4453,15 +4453,15 @@ _08100BA8:
b _08100C34
.pool
_08100BC8:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
ldrb r0, [r5]
@@ -4469,7 +4469,7 @@ _08100BC8:
mov r8, r2
mov r1, r8
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08100C3E
@@ -4477,7 +4477,7 @@ _08100BC8:
mov r2, r8
eors r0, r2
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
@@ -4486,7 +4486,7 @@ _08100BC8:
mov r1, r8
eors r0, r1
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -4494,24 +4494,24 @@ _08100BC8:
b _08100C3E
.pool
_08100C24:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r4]
_08100C34:
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
_08100C3E:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08100C56
@@ -4754,9 +4754,9 @@ sub_8100E1C: @ 8100E1C
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100E44
@@ -4866,7 +4866,7 @@ sub_8100EF0: @ 8100EF0
adds r0, 0x8
strh r0, [r1, 0x2]
_08100F06:
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0
bl sub_80A60AC
@@ -4885,7 +4885,7 @@ _08100F06:
adds r0, r4
strh r0, [r5, 0x22]
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08100F44
@@ -5090,17 +5090,17 @@ _081010C2:
sub_81010CC: @ 81010CC
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =0x0000ffe8
@@ -5426,11 +5426,11 @@ sub_810135C: @ 810135C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08101378
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810137A
.pool
_08101378:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810137A:
ldrb r6, [r0]
bl IsDoubleBattle
@@ -5440,7 +5440,7 @@ _0810137A:
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081013C4
@@ -5470,7 +5470,7 @@ _081013C4:
bne _081013E8
adds r0, r6, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
@@ -5481,14 +5481,14 @@ _081013C4:
_081013E8:
adds r0, r6, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
_081013FA:
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -5523,9 +5523,9 @@ sub_8101440: @ 8101440
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08101474
@@ -5611,9 +5611,9 @@ sub_81014F4: @ 81014F4
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810152C
@@ -5885,17 +5885,17 @@ _08101718:
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
@@ -6199,9 +6199,9 @@ sub_8101998: @ 8101998
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x2
negs r2, r2
@@ -6213,7 +6213,7 @@ _081019B6:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
@@ -6237,8 +6237,8 @@ sub_81019E8: @ 81019E8
ldrsh r6, [r5, r0]
cmp r6, 0
bne _08101A24
- ldr r1, =gBankSpriteIds
- ldr r4, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6246,7 +6246,7 @@ sub_81019E8: @ 81019E8
movs r1, 0
bl sub_80A7270
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
@@ -6301,9 +6301,9 @@ sub_8101A74: @ 8101A74
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x3
cmp r0, 0
@@ -6315,7 +6315,7 @@ _08101A92:
strh r1, [r4, 0x30]
movs r0, 0
strh r0, [r4, 0x32]
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
@@ -6360,19 +6360,19 @@ sub_8101AE8: @ 8101AE8
ldrsh r0, [r5, r1]
cmp r0, 0
bne _08101B38
- ldr r1, =gBankSpriteIds
- ldr r4, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
strh r0, [r5, 0x34]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08101B2C
@@ -6465,14 +6465,14 @@ _08101BB6:
b _08101C8E
_08101BBC:
strh r5, [r4, 0x30]
- ldr r1, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
strh r0, [r4, 0x32]
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
@@ -6575,15 +6575,15 @@ sub_8101C94: @ 8101C94
adds r0, r6
lsls r0, 3
adds r5, r0, r1
- ldr r1, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
movs r4, 0
strh r0, [r5, 0x8]
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
strh r2, [r5, 0xA]
@@ -6922,15 +6922,15 @@ sub_8101F40: @ 8101F40
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08101F5C
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _08101F5E
.pool
_08101F5C:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_08101F5E:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
@@ -6938,7 +6938,7 @@ _08101F5E:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x4]
@@ -6962,10 +6962,10 @@ _08101F5E:
sub_8101FA8: @ 8101FA8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =0x0000ffd0
@@ -6973,7 +6973,7 @@ sub_8101FA8: @ 8101FA8
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -6992,10 +6992,10 @@ sub_8101FA8: @ 8101FA8
sub_8101FF0: @ 8101FF0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleAnimArgs
@@ -7007,7 +7007,7 @@ sub_8101FF0: @ 8101FF0
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -7115,15 +7115,15 @@ sub_81020D8: @ 81020D8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081020F4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _081020F6
.pool
_081020F4:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_081020F6:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
@@ -7131,7 +7131,7 @@ _081020F6:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x4]
@@ -7191,17 +7191,17 @@ _08102178:
sub_810217C: @ 810217C
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0x20]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0xC
@@ -7316,10 +7316,10 @@ sub_8102268: @ 8102268
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081022B2
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r5, =gBattleAnimArgs
lsrs r0, 24
@@ -7328,7 +7328,7 @@ sub_8102268: @ 8102268
strh r0, [r6, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x2]
@@ -7465,16 +7465,16 @@ _08102390:
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -7539,19 +7539,19 @@ sub_8102434: @ 8102434
lsls r0, 24
lsrs r7, r0, 24
movs r4, 0
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcs _08102490
ldr r6, =gBattleAnimArgs
- ldr r5, =gHealthBoxesIds
+ ldr r5, =gHealthboxSpriteIds
_08102448:
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x1
bne _08102464
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08102464
@@ -7564,7 +7564,7 @@ _08102464:
cmp r0, 0x1
bne _08102482
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7576,7 +7576,7 @@ _08102482:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _08102448
@@ -7597,7 +7597,7 @@ sub_81024A8: @ 81024A8
movs r4, 0
b _081024C2
_081024B2:
- ldr r0, =gHealthBoxesIds
+ ldr r0, =gHealthboxSpriteIds
adds r0, r4, r0
ldrb r0, [r0]
bl SetHealthboxSpriteVisible
@@ -7605,7 +7605,7 @@ _081024B2:
lsls r0, 24
lsrs r4, r0, 24
_081024C2:
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _081024B2
@@ -7673,10 +7673,10 @@ _0810253A:
sub_8102540: @ 8102540
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r2, =gBattleAnimArgs
lsrs r0, 24
@@ -8068,10 +8068,10 @@ _08102862:
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6]
@@ -8079,7 +8079,7 @@ _08102862:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x2]
@@ -8113,9 +8113,9 @@ _08102862:
b _081028FA
.pool
_081028D4:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810291C
@@ -8237,7 +8237,7 @@ sub_81029B4: @ 81029B4
ldr r1, =gTasks
adds r6, r0, r1
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x8]
@@ -8333,7 +8333,7 @@ _08102A88:
_08102A9A:
ldr r0, =sub_8102AE0
str r0, [r6]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -8374,7 +8374,7 @@ sub_8102AE0: @ 8102AE0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08102B32
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -8657,15 +8657,15 @@ _08102D10:
b _08102D4E
.pool
_08102D34:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r3, r0, 24
_08102D4E:
@@ -8855,9 +8855,9 @@ _08102EA6:
sub_8102EB0: @ 8102EB0
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, =gAnimBankAttacker
+ ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8870,7 +8870,7 @@ sub_8102EB0: @ 8102EB0
_08102ECE:
ldrb r0, [r7]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -8880,7 +8880,7 @@ _08102ECE:
strh r0, [r6, 0x20]
ldrb r0, [r7]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r4, 0x4]
@@ -9002,17 +9002,17 @@ sub_8102FB8: @ 8102FB8
_08102FDC:
ldr r6, =0x0000fff0
_08102FDE:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x8
@@ -9149,7 +9149,7 @@ sub_810310C: @ 810310C
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810312C
@@ -9167,7 +9167,7 @@ _08103136:
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
adds r0, r5, 0
movs r1, 0
@@ -9197,18 +9197,18 @@ sub_8103164: @ 8103164
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103180
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08103182
.pool
_08103180:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08103182:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_810310C
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
@@ -9268,11 +9268,11 @@ sub_8103208: @ 8103208
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103224
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08103226
.pool
_08103224:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08103226:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9325,16 +9325,16 @@ sub_8103284: @ 8103284
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081032A0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _081032A2
.pool
_081032A0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_081032A2:
ldrb r5, [r0]
adds r0, r5, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r6, 0
@@ -9463,18 +9463,18 @@ sub_8103390: @ 8103390
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081033AC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _081033AE
.pool
_081033AC:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_081033AE:
ldrb r4, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_810310C
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081033D4
@@ -9591,11 +9591,11 @@ sub_8103498: @ 8103498
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081034B4
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _081034B6
.pool
_081034B4:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_081034B6:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9716,26 +9716,26 @@ _0810357A:
sub_810358C: @ 810358C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081035E4
@@ -9846,8 +9846,8 @@ sub_81036A0: @ 81036A0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -9871,12 +9871,12 @@ sub_81036DC: @ 81036DC
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08103718
@@ -9992,9 +9992,9 @@ sub_81037D8: @ 81037D8
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08103804
@@ -10018,9 +10018,9 @@ _08103810:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810384C
@@ -10117,9 +10117,9 @@ sub_81038C8: @ 81038C8
b _0810390E
.pool
_081038EC:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810390E
@@ -10137,10 +10137,10 @@ _0810390E:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r6, =gBattleAnimArgs
lsrs r0, 24
@@ -10151,7 +10151,7 @@ _0810390E:
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x6]
@@ -10676,8 +10676,8 @@ _08103D54:
strh r0, [r3, 0x4]
b _08103DB6
_08103D5C:
- ldr r1, =gBanksByIdentity
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerPositions
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -10716,10 +10716,10 @@ _08103DB0:
_08103DB4:
strh r0, [r2, 0x4]
_08103DB6:
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
ldr r1, =gTasks
mov r3, r8
adds r4, r3, r7
@@ -10731,7 +10731,7 @@ _08103DB6:
adds r6, r0, 0
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -10742,11 +10742,11 @@ _08103DB6:
ands r0, r1
cmp r0, 0
beq _08103E20
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08103E20
@@ -10759,16 +10759,16 @@ _08103DB6:
.pool
_08103E20:
mov r5, sp
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r1, r10
@@ -10897,7 +10897,7 @@ _08103F28:
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -10914,7 +10914,7 @@ _08103F78:
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -10927,7 +10927,7 @@ _08103F78:
b _08103FB0
.pool
_08103FA0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -11050,15 +11050,15 @@ sub_8104088: @ 8104088
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -11066,9 +11066,9 @@ sub_8104088: @ 8104088
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081040CC
@@ -11145,9 +11145,9 @@ sub_8104154: @ 8104154
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104178
@@ -11200,16 +11200,16 @@ sub_81041C4: @ 81041C4
bl sub_80A69CC
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -11352,9 +11352,9 @@ sub_8104304: @ 8104304
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104322
@@ -11423,17 +11423,17 @@ _08104390:
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
add r0, r8
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
@@ -11510,10 +11510,10 @@ _08104448:
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
add r0, r9
@@ -11522,7 +11522,7 @@ _08104448:
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
@@ -11678,7 +11678,7 @@ sub_81045B0: @ 81045B0
lsls r5, 24
lsrs r5, 24
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -11735,7 +11735,7 @@ sub_8104614: @ 8104614
cmp r1, r0
bne _08104664
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -11771,7 +11771,7 @@ sub_8104674: @ 8104674
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -11786,7 +11786,7 @@ sub_8104674: @ 8104674
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -12129,7 +12129,7 @@ sub_8104938: @ 8104938
.pool
_08104964:
ldrb r0, [r5]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12303,7 +12303,7 @@ sub_8104AB4: @ 8104AB4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12345,9 +12345,9 @@ _08104B10:
sub_8104B1C: @ 8104B1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08104B50
@@ -12356,7 +12356,7 @@ sub_8104B1C: @ 8104B1C
bl StartSpriteAnim
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -12370,7 +12370,7 @@ _08104B50:
bl StartSpriteAnim
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x20
@@ -12378,10 +12378,10 @@ _08104B50:
ldr r0, =0x0000ffc0
_08104B6A:
strh r0, [r4, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -12411,15 +12411,15 @@ sub_8104BAC: @ 8104BAC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08104BC8
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08104BCA
.pool
_08104BC8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08104BCA:
ldrb r5, [r0]
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12432,7 +12432,7 @@ _08104BCA:
_08104BE4:
adds r0, r5, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -12441,7 +12441,7 @@ _08104BE4:
strh r0, [r6, 0x20]
adds r0, r5, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x4]
@@ -12476,7 +12476,7 @@ sub_8104C38: @ 8104C38
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -12528,7 +12528,7 @@ sub_8104CA4: @ 8104CA4
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r2, 0
@@ -12559,9 +12559,9 @@ sub_8104CA4: @ 8104CA4
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12759,7 +12759,7 @@ sub_8104E74: @ 8104E74
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
bl sub_80A6190
lsls r0, 24
@@ -12802,7 +12802,7 @@ _08104EDC:
lsls r0, 16
cmp r2, r0
bgt _08104F1A
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
@@ -12839,7 +12839,7 @@ _08104F1A:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_8104F54
str r0, [r5]
add sp, 0xC
@@ -12919,7 +12919,7 @@ _08104FCC:
ldrsh r0, [r3, r1]
cmp r0, 0
blt _08104FF0
- ldr r2, =gUnknown_02038C28
+ ldr r2, =gScanlineEffectRegBuffers
lsls r0, 1
adds r0, r2
ldrh r1, [r3, 0x14]
@@ -12943,7 +12943,7 @@ _08104FF0:
ldrsh r1, [r3, r2]
cmp r0, r1
blt _0810500E
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
adds r0, r4, 0
@@ -12959,10 +12959,10 @@ _0810500E:
sub_810501C: @ 810501C
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x10
@@ -13194,11 +13194,11 @@ sub_81051C4: @ 81051C4
adds r1, r0, 0
cmp r2, 0
bne _081051F0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _081051F2
.pool
_081051F0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_081051F2:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
@@ -13212,7 +13212,7 @@ _081051F2:
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810526A
@@ -13231,11 +13231,11 @@ _08105230:
adds r0, r5, 0
movs r1, 0x2
_08105234:
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r4, r0, 24
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105260
@@ -13305,15 +13305,15 @@ sub_81052A4: @ 81052A4
ldrsh r0, [r0, r2]
cmp r0, 0
bne _081052DC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r7, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
b _081052E2
.pool
_081052DC:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r7, [r0]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
_081052E2:
ldrb r0, [r0]
mov r8, r0
@@ -13335,13 +13335,13 @@ _08105308:
str r3, [sp, 0x4]
_08105310:
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810536C
adds r0, r7, 0
mov r1, r10
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r1, =gBattleAnimArgs
lsrs r0, 24
@@ -13354,25 +13354,25 @@ _08105310:
mov r4, r8
eors r4, r0
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810535C
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
b _081053EA
.pool
_0810535C:
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
add r0, r8
b _081053EA
.pool
_0810536C:
adds r0, r7, 0
mov r1, r10
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r1, =gBattleAnimArgs
@@ -13389,12 +13389,12 @@ _0810536C:
adds r4, r7, 0
eors r4, r0
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081053E4
ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
+ ldr r2, =gBattlerSpriteIds
adds r0, r7, r2
ldrb r1, [r0]
lsls r0, r1, 4
@@ -13424,7 +13424,7 @@ _081053E0:
b _081053F4
_081053E4:
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r7, r0
_081053EA:
ldrb r1, [r0]
@@ -13442,7 +13442,7 @@ _081053FA:
strb r0, [r1]
adds r0, r7, 0
ldr r1, [sp, 0x4]
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -13457,7 +13457,7 @@ _081053FA:
movs r1, 0x2
mov r0, r8
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810544C
@@ -13473,20 +13473,20 @@ _0810544C:
mov r4, sp
mov r0, r8
mov r1, r10
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
mov r0, r8
ldr r1, [sp, 0x4]
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r2, sp
strh r0, [r2, 0x2]
_0810546C:
mov r0, r8
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105490
@@ -13581,9 +13581,9 @@ sub_8105538: @ 8105538
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -13622,9 +13622,9 @@ sub_810557C: @ 810557C
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0xA0
cmp r0, 0
@@ -13873,7 +13873,7 @@ sub_810577C: @ 810577C
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -13950,9 +13950,9 @@ sub_8105810: @ 8105810
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08105850
@@ -13968,7 +13968,7 @@ _08105850:
_08105856:
strh r0, [r4, 0x24]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14154,7 +14154,7 @@ sub_810599C: @ 810599C
movs r0, 0x2
strh r0, [r4, 0x24]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14292,16 +14292,16 @@ sub_8105AAC: @ 8105AAC
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -14684,9 +14684,9 @@ sub_8105DE8: @ 8105DE8
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08105E08
@@ -14700,7 +14700,7 @@ _08105E08:
strh r0, [r5, 0x2E]
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -14708,7 +14708,7 @@ _08105E08:
strh r0, [r5, 0x32]
ldrb r0, [r6]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
@@ -14939,7 +14939,7 @@ sub_8106020: @ 8106020
lsrs r0, 24
adds r6, r0, 0
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
@@ -14955,7 +14955,7 @@ sub_8106020: @ 8106020
cmp r0, 0x1
bne _0810607C
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15004,7 +15004,7 @@ sub_81060B0: @ 81060B0
lsrs r0, 24
adds r6, r0, 0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r4, r0, 24
ldr r1, =gTasks
@@ -15020,7 +15020,7 @@ sub_81060B0: @ 81060B0
cmp r0, 0x1
bne _0810610C
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -15072,10 +15072,10 @@ sub_8106140: @ 8106140
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -15083,7 +15083,7 @@ sub_8106140: @ 8106140
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -15561,9 +15561,9 @@ _0810653A:
b _0810658A
.pool
_08106578:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -15773,16 +15773,16 @@ _08106730:
sub_810673C: @ 810673C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -15924,16 +15924,16 @@ _08106868:
sub_8106878: @ 8106878
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -16029,16 +16029,16 @@ _08106940:
sub_8106944: @ 8106944
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -16314,7 +16314,7 @@ sub_8106B54: @ 8106B54
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -16505,21 +16505,21 @@ _08106CEC:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08106CFC
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _08106CFE
.pool
_08106CFC:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_08106CFE:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -16593,7 +16593,7 @@ sub_8106D90: @ 8106D90
lsrs r5, 24
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -16645,15 +16645,15 @@ sub_8106E00: @ 8106E00
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08106E1C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08106E1E
.pool
_08106E1C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08106E1E:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -16666,7 +16666,7 @@ _08106E1E:
_08106E38:
adds r0, r6, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r7, =gBattleAnimArgs
lsrs r0, 24
@@ -16676,7 +16676,7 @@ _08106E38:
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r7, 0x4]
@@ -16992,11 +16992,11 @@ sub_81070AC: @ 81070AC
ands r0, r1
cmp r0, 0
beq _081070F8
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081070F8
@@ -17016,16 +17016,16 @@ sub_81070AC: @ 81070AC
b _08107118
.pool
_081070F8:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x28
@@ -17196,15 +17196,15 @@ _0810725A:
sub_8107260: @ 8107260
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08107290
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r4, =gBattleAnimArgs
@@ -17215,7 +17215,7 @@ sub_8107260: @ 8107260
_08107290:
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -17225,7 +17225,7 @@ _081072A2:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -17237,9 +17237,9 @@ _081072A2:
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081072D8
@@ -17253,10 +17253,10 @@ _081072D8:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x32]
@@ -17264,7 +17264,7 @@ _081072D8:
strh r0, [r6, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x36]
@@ -17422,9 +17422,9 @@ sub_810744C: @ 810744C
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810747C
@@ -17445,10 +17445,10 @@ _08107482:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
@@ -17457,7 +17457,7 @@ _08107482:
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r7, [r7, 0x6]
@@ -17621,10 +17621,10 @@ sub_81075EC: @ 81075EC
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -17632,7 +17632,7 @@ sub_81075EC: @ 81075EC
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -17773,16 +17773,16 @@ _08107722:
sub_8107730: @ 8107730
push {r4-r7,lr}
adds r4, r0, 0
- ldr r7, =gAnimBankAttacker
+ ldr r7, =gBattleAnimAttacker
ldrb r0, [r7]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r7]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -17797,7 +17797,7 @@ sub_8107730: @ 8107730
cmp r0, 0
bne _0810778A
ldrb r0, [r7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08107784
@@ -17846,13 +17846,13 @@ _081077BA:
sub_81077C0: @ 81077C0
push {r4-r7,lr}
adds r6, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -17863,12 +17863,12 @@ sub_81077C0: @ 81077C0
negs r0, r0
strh r0, [r4]
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _08107802
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -17898,9 +17898,9 @@ _0810781E:
_08107828:
adds r0, r6, 0
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08107842
@@ -17910,10 +17910,10 @@ _08107828:
_08107842:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x4]
@@ -17921,7 +17921,7 @@ _08107842:
strh r0, [r6, 0x32]
ldrb r0, [r4]
adds r1, r7, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x6]
@@ -18069,9 +18069,9 @@ sub_8107954: @ 8107954
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -18174,9 +18174,9 @@ _08107A32:
b _08107B0E
.pool
_08107AB4:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
@@ -18518,7 +18518,7 @@ _08107D8C:
movs r3, 0
movs r2, 0x10
ldrsh r0, [r4, r2]
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
mov r12, r1
cmp r3, r0
bge _08107DCA
@@ -18555,7 +18555,7 @@ _08107DCA:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107E04
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -18584,7 +18584,7 @@ _08107E04:
asrs r0, r2, 16
cmp r0, 0x9F
bgt _08107E3A
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -18652,7 +18652,7 @@ _08107E7A:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -18689,8 +18689,8 @@ _08107ED8:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _08107F0C
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107EE6:
lsls r1, r3, 16
asrs r1, 16
@@ -18719,8 +18719,8 @@ _08107F0C:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107F40
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107F1E:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -18745,8 +18745,8 @@ _08107F40:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _08108022
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107F4E:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -18771,8 +18771,8 @@ _08107F78:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _08107FAC
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107F86:
lsls r1, r3, 16
asrs r1, 16
@@ -18801,8 +18801,8 @@ _08107FAC:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _08107FE0
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107FBE:
asrs r3, r2, 16
lsls r2, r3, 1
@@ -18827,8 +18827,8 @@ _08107FE0:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0810800C
- ldr r6, =gUnknown_02038C28
- ldr r5, =gUnknown_02039B28
+ ldr r6, =gScanlineEffectRegBuffers
+ ldr r5, =gScanlineEffect
_08107FEE:
asrs r3, r1, 16
lsls r2, r3, 1
@@ -18963,7 +18963,7 @@ sub_81080E4: @ 81080E4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -19278,13 +19278,13 @@ _0810837A:
thumb_func_start sub_8108384
sub_8108384: @ 8108384
push {r4,r5,lr}
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081083B8
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -19298,7 +19298,7 @@ _081083B4:
adds r0, r2, 0
b _081083FA
_081083B8:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -19350,16 +19350,16 @@ sub_8108408: @ 8108408
lsls r1, 24
lsrs r1, 24
str r1, [sp]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0xAC
@@ -19576,9 +19576,9 @@ sub_81085C8: @ 81085C8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08108600
@@ -19956,22 +19956,22 @@ sub_81088E4: @ 81088E4
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0xE]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x10]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -20418,16 +20418,16 @@ sub_8108C94: @ 8108C94
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -20593,7 +20593,7 @@ _08108DE2:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -20648,7 +20648,7 @@ _08108E58:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -20746,9 +20746,9 @@ sub_8108F4C: @ 8108F4C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08108F88
@@ -20798,9 +20798,9 @@ _08108F9E:
sub_8108FBC: @ 8108FBC
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08108FF0
@@ -20886,9 +20886,9 @@ sub_8109064: @ 8109064
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109090
@@ -21037,26 +21037,26 @@ sub_810916C: @ 810916C
sub_8109198: @ 8109198
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _081091DE
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
cmp r1, r0
beq _081091D6
movs r0, 0x3
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
ldrb r1, [r5]
lsls r0, 24
lsrs r0, 24
@@ -21128,10 +21128,10 @@ sub_8109244: @ 8109244
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -21139,7 +21139,7 @@ sub_8109244: @ 8109244
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -21164,16 +21164,16 @@ sub_810929C: @ 810929C
beq _081092E4
movs r4, 0
strh r4, [r6, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x22]
@@ -21389,7 +21389,7 @@ sub_8109460: @ 8109460
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
@@ -21407,9 +21407,9 @@ sub_8109460: @ 8109460
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x12]
@@ -21820,9 +21820,9 @@ sub_81097B4: @ 81097B4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810980C
@@ -21992,9 +21992,9 @@ sub_8109930: @ 8109930
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08109970
@@ -22248,9 +22248,9 @@ _08109B18:
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109B48
@@ -22261,7 +22261,7 @@ _08109B48:
ldr r0, =0x0000fffc
_08109B4A:
strh r0, [r5, 0x36]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -22279,9 +22279,9 @@ _08109B70:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08109B94
@@ -22356,10 +22356,10 @@ _08109BCE:
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -22367,7 +22367,7 @@ _08109BCE:
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -22485,7 +22485,7 @@ _08109CC8:
lsrs r0, 16
cmp r0, 0x83
bls _08109D3C
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -22500,7 +22500,7 @@ _08109CC8:
b _08109D80
.pool
_08109D3C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -22578,9 +22578,9 @@ sub_8109DBC: @ 8109DBC
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -22590,22 +22590,22 @@ sub_8109DBC: @ 8109DBC
movs r1, 0x1
_08109DE2:
strh r1, [r4, 0x20]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
strh r0, [r4, 0x22]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
movs r0, 0x3
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -22973,8 +22973,8 @@ _0810A0CA:
ldrh r0, [r2, 0x8]
adds r0, 0x1
strh r0, [r2, 0x8]
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -23075,9 +23075,9 @@ _0810A194:
sub_810A1A8: @ 810A1A8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A1D0
@@ -23129,9 +23129,9 @@ _0810A20E:
sub_810A214: @ 810A214
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A23C
@@ -23178,22 +23178,22 @@ _0810A26E:
sub_810A274: @ 810A274
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810A2C4
@@ -23261,15 +23261,15 @@ _0810A324:
beq _0810A35C
b _0810A380
_0810A32E:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810A382
.pool
_0810A338:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0810A354
@@ -23282,21 +23282,21 @@ _0810A354:
eors r4, r0
b _0810A384
_0810A35C:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810A380
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
eors r4, r0
b _0810A384
.pool
_0810A380:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810A382:
ldrb r4, [r0]
_0810A384:
@@ -23307,7 +23307,7 @@ _0810A384:
bne _0810A3AC
adds r0, r4, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
@@ -23318,14 +23318,14 @@ _0810A384:
_0810A3AC:
adds r0, r4, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
adds r0, r4, 0
movs r1, 0x3
_0810A3BE:
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -23417,10 +23417,10 @@ sub_810A46C: @ 810A46C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -23428,7 +23428,7 @@ sub_810A46C: @ 810A46C
strh r0, [r4, 0x34]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -23576,9 +23576,9 @@ sub_810A5BC: @ 810A5BC
lsls r0, 24
cmp r0, 0
bne _0810A5D8
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810A5E0
@@ -23588,10 +23588,10 @@ _0810A5D8:
negs r0, r0
strh r0, [r1, 0x2]
_0810A5E0:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -23600,7 +23600,7 @@ _0810A5E0:
strh r0, [r6, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -23633,11 +23633,11 @@ sub_810A628: @ 810A628
ands r0, r1
cmp r0, 0
beq _0810A64C
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
b _0810A64E
.pool
_0810A64C:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
_0810A64E:
ldrb r6, [r0]
bl IsContest
@@ -23645,7 +23645,7 @@ _0810A64E:
cmp r0, 0
bne _0810A666
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810A66E
@@ -23657,7 +23657,7 @@ _0810A666:
_0810A66E:
adds r0, r6, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -23666,7 +23666,7 @@ _0810A66E:
strh r0, [r5, 0x20]
adds r0, r6, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -23827,10 +23827,10 @@ sub_810A7DC: @ 810A7DC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
ldr r1, =gTasks
lsls r4, r5, 2
adds r4, r5
@@ -23844,7 +23844,7 @@ sub_810A7DC: @ 810A7DC
strh r0, [r4, 0x8]
ldrb r0, [r6]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r5, 0x2]
@@ -24220,21 +24220,21 @@ sub_810AAFC: @ 810AAFC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AB28
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810AB2A
.pool
_0810AB28:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810AB2A:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x26]
@@ -24440,21 +24440,21 @@ sub_810ACD8: @ 810ACD8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810ACF4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810ACF6
.pool
_0810ACF4:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810ACF6:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -24478,21 +24478,21 @@ sub_810AD30: @ 810AD30
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AD4C
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810AD4E
.pool
_0810AD4C:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810AD4E:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -24518,28 +24518,28 @@ sub_810AD98: @ 810AD98
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x3A]
movs r0, 0x10
strh r0, [r5, 0x3C]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -24641,20 +24641,20 @@ _0810AE8E:
b _0810AFC0
_0810AE90:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810AECC
@@ -24820,9 +24820,9 @@ _0810AFF4:
_0810AFFA:
b _0810B14E
_0810AFFC:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -24855,13 +24855,13 @@ _0810B012:
_0810B048:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x12]
@@ -24878,16 +24878,16 @@ _0810B070:
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x12]
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r2, 0xA
@@ -25124,16 +25124,16 @@ sub_810B23C: @ 810B23C
beq _0810B280
b _0810B294
_0810B24E:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -25191,25 +25191,25 @@ _0810B2C8:
.4byte _0810B404
.4byte _0810B414
_0810B2DC:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x14]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
@@ -25539,10 +25539,10 @@ _0810B584:
beq _0810B600
b _0810B60E
_0810B58A:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -25561,10 +25561,10 @@ _0810B5A4:
bgt _0810B5A4
strh r1, [r5, 0x24]
_0810B5B4:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -25721,29 +25721,29 @@ sub_810B6C4: @ 810B6C4
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r4]
movs r1, 0x3
str r3, [sp]
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gBattleAnimArgs
@@ -25976,16 +25976,16 @@ sub_810B8EC: @ 810B8EC
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810B92C
@@ -26003,10 +26003,10 @@ _0810B92C:
adds r0, r1
strh r0, [r4, 0x32]
_0810B936:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r1, =gBattleAnimArgs
lsrs r0, 24
@@ -26041,7 +26041,7 @@ sub_810B974: @ 810B974
b _0810B9C6
.pool
_0810B990:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -26049,9 +26049,9 @@ _0810B990:
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810B9B6
@@ -26130,16 +26130,16 @@ sub_810BA24: @ 810BA24
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BA74
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
@@ -26148,7 +26148,7 @@ sub_810BA24: @ 810BA24
b _0810BA86
.pool
_0810BA74:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -26157,9 +26157,9 @@ _0810BA74:
movs r1, 0x1
bl sub_80A8924
_0810BA86:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BAAC
@@ -26277,9 +26277,9 @@ sub_810BB60: @ 810BB60
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, =0x0000ffec
cmp r0, 0
@@ -26312,9 +26312,9 @@ _0810BB90:
sub_810BBC8: @ 810BBC8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r1, =0x0000ffec
cmp r0, 0
@@ -26431,23 +26431,23 @@ sub_810BC94: @ 810BC94
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810BCE0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
b _0810BCF2
.pool
_0810BCE0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -26456,9 +26456,9 @@ _0810BCE0:
movs r1, 0x1
bl sub_80A8924
_0810BCF2:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BD1C
@@ -26645,7 +26645,7 @@ sub_810BE48: @ 810BE48
b _0810BEA2
.pool
_0810BE6C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -26653,9 +26653,9 @@ _0810BE6C:
adds r3, 0x22
movs r1, 0
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BE92
@@ -26712,7 +26712,7 @@ sub_810BED0: @ 810BED0
b _0810BF32
.pool
_0810BEF4:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -26721,7 +26721,7 @@ _0810BEF4:
movs r1, 0
bl sub_80A8924
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BF20
@@ -26742,7 +26742,7 @@ _0810BF26:
adds r0, r1
strh r0, [r5, 0x22]
_0810BF32:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810BF90
.pool
_0810BF40:
@@ -26755,7 +26755,7 @@ _0810BF40:
bl sub_80A6980
b _0810BF8E
_0810BF52:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -26764,7 +26764,7 @@ _0810BF52:
movs r1, 0
bl sub_80A8924
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810BF7C
@@ -26785,7 +26785,7 @@ _0810BF82:
adds r0, r1
strh r0, [r5, 0x22]
_0810BF8E:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810BF90:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -26806,9 +26806,9 @@ _0810BFB4:
movs r0, 0x40
_0810BFB6:
strh r0, [r5, 0x3A]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810BFCC
@@ -27179,16 +27179,16 @@ _0810C2DA:
sub_810C2F0: @ 810C2F0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -27456,16 +27456,16 @@ sub_810C560: @ 810C560
ldr r6, =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
- ldr r7, =gAnimBankTarget
+ ldr r7, =gBattleAnimTarget
ldrb r0, [r7]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560
lsls r0, 8
strh r0, [r5, 0x3C]
_0810C594:
- ldr r3, =gBanksByIdentity
+ ldr r3, =gBattlerPositions
ldrb r0, [r7]
adds r0, r3
ldrb r1, [r0]
@@ -27505,7 +27505,7 @@ _0810C594:
cmp r0, 0
bne _0810C5F0
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -27523,16 +27523,16 @@ _0810C5F0:
movs r0, 0x1
strh r0, [r5, 0x3A]
_0810C5F4:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -27545,10 +27545,10 @@ _0810C5F4:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
@@ -27567,10 +27567,10 @@ _0810C65C:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
@@ -27583,7 +27583,7 @@ _0810C65C:
ldrb r0, [r4]
movs r1, 0x1
_0810C684:
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x8]
@@ -27676,10 +27676,10 @@ _0810C728:
_0810C736:
movs r5, 0x50
strh r5, [r4, 0x2E]
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
@@ -27699,7 +27699,7 @@ _0810C736:
lsls r0, 24
cmp r0, 0
bne _0810C78C
- ldr r1, =gBanksByIdentity
+ ldr r1, =gBattlerPositions
ldrb r0, [r6]
adds r0, r1
ldrb r1, [r0]
@@ -27843,8 +27843,8 @@ _0810C85A:
lsls r0, 24
cmp r0, 0
bne _0810C8B4
- ldr r1, =gBanksByIdentity
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerPositions
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -28050,11 +28050,11 @@ sub_810C9E4: @ 810C9E4
ldrh r0, [r4, 0x2]
lsls r0, 20
lsrs r0, 24
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810CAD0
@@ -28062,12 +28062,12 @@ sub_810C9E4: @ 810C9E4
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r7, r0, 24
adds r0, r5, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
mov r1, r8
@@ -28371,9 +28371,9 @@ _0810CCA6:
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810CCCE
@@ -28381,10 +28381,10 @@ _0810CCA6:
negs r0, r0
strh r0, [r6, 0x4]
_0810CCCE:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
@@ -28392,7 +28392,7 @@ _0810CCCE:
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x6]
@@ -28581,9 +28581,9 @@ sub_810CE68: @ 810CE68
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810CE90
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810CE90
@@ -28680,11 +28680,11 @@ sub_810CF30: @ 810CF30
mov r9, r0
cmp r1, 0
bne _0810CF54
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810CF56
.pool
_0810CF54:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810CF56:
ldrb r0, [r0]
mov r8, r0
@@ -28705,13 +28705,13 @@ _0810CF74:
bl StartSpriteAnim
mov r0, r8
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
mov r0, r8
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -28771,7 +28771,7 @@ _0810D000:
negs r0, r0
lsrs r4, r0, 16
_0810D012:
- ldr r0, =gBanksByIdentity
+ ldr r0, =gBattlerPositions
add r0, r8
ldrb r1, [r0]
adds r0, r7, 0
@@ -28974,16 +28974,16 @@ _0810D1A4:
sub_810D1B4: @ 810D1B4
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
bne _0810D1E0
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -28997,9 +28997,9 @@ _0810D1E0:
adds r0, r6, 0
movs r1, 0x1
bl sub_80A6980
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810D1FE
@@ -29146,16 +29146,16 @@ sub_810D308: @ 810D308
bne _0810D34C
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -29267,21 +29267,21 @@ sub_810D40C: @ 810D40C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D428
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810D42A
.pool
_0810D428:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810D42A:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -29386,10 +29386,10 @@ sub_810D4F4: @ 810D4F4
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810D520
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x4]
@@ -29397,10 +29397,10 @@ sub_810D4F4: @ 810D4F4
b _0810D532
.pool
_0810D520:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x4]
@@ -29409,7 +29409,7 @@ _0810D532:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x6]
@@ -29520,20 +29520,20 @@ sub_810D608: @ 810D608
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D664
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -29545,11 +29545,11 @@ sub_810D608: @ 810D608
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
b _0810D680
.pool
_0810D664:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -29561,7 +29561,7 @@ _0810D664:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
_0810D680:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -29601,7 +29601,7 @@ sub_810D6A8: @ 810D6A8
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -29611,7 +29611,7 @@ sub_810D6A8: @ 810D6A8
lsls r0, 24
lsrs r0, 24
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -29712,31 +29712,31 @@ _0810D7BA:
strh r0, [r7, 0x2E]
b _0810D818
_0810D7C2:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
mov r1, r8
ldrb r0, [r1]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
subs r4, r6
strh r4, [r7, 0x2E]
@@ -29808,28 +29808,28 @@ sub_810D874: @ 810D874
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D8B8
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r4, [r0]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810D8BE
.pool
_0810D8B8:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r4, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810D8BE:
ldrb r0, [r0]
bl sub_80A8328
@@ -29857,7 +29857,7 @@ _0810D8BE:
.pool
_0810D8F8:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810D918
@@ -29879,7 +29879,7 @@ _0810D918:
strh r0, [r5, 0x30]
adds r0, r4, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -29887,7 +29887,7 @@ _0810D918:
strh r0, [r5, 0x34]
adds r0, r4, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -29929,16 +29929,16 @@ _0810D976:
sub_810D984: @ 810D984
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -29954,7 +29954,7 @@ sub_810D984: @ 810D984
ldr r0, =gAnimMoveTurn
ldrb r6, [r0]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810D9CE
@@ -30018,9 +30018,9 @@ _0810DA34:
bl StartSpriteAnim
b _0810DA5E
_0810DA48:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DA5E
@@ -30128,9 +30128,9 @@ _0810DB1A:
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810DB50
@@ -30205,16 +30205,16 @@ _0810DBC2:
bl sub_80A69CC
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -30263,7 +30263,7 @@ _0810DC44:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
@@ -30271,9 +30271,9 @@ _0810DC44:
mov r2, sp
adds r3, r6, 0
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DC72
@@ -30389,7 +30389,7 @@ _0810DD4A:
sub_810DD50: @ 810DD50
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -30397,9 +30397,9 @@ sub_810DD50: @ 810DD50
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DD7C
@@ -30450,7 +30450,7 @@ sub_810DDC4: @ 810DDC4
b _0810DE16
.pool
_0810DDE0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -30458,9 +30458,9 @@ _0810DDE0:
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DE06
@@ -30680,9 +30680,9 @@ sub_810DFA8: @ 810DFA8
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810DFC8
@@ -30696,10 +30696,10 @@ _0810DFC8:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -30709,7 +30709,7 @@ _0810DFC8:
strh r0, [r6, 0x34]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
@@ -30748,9 +30748,9 @@ _0810E03C:
sub_810E044: @ 810E044
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810E070
@@ -30782,13 +30782,13 @@ _0810E070:
_0810E088:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r2, =gBattleAnimArgs
ldrh r1, [r2]
@@ -30805,23 +30805,23 @@ _0810E088:
ldrsh r0, [r2, r3]
cmp r0, 0
bne _0810E0EC
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
b _0810E0FE
.pool
_0810E0EC:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -30867,7 +30867,7 @@ sub_810E13C: @ 810E13C
ldr r0, =sub_810E184
str r0, [r4, 0x1C]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -30929,9 +30929,9 @@ _0810E1C2:
sub_810E1C8: @ 810E1C8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810E1F8
@@ -30955,10 +30955,10 @@ _0810E1FE:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -30966,7 +30966,7 @@ _0810E1FE:
strh r0, [r5, 0x34]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -31021,7 +31021,7 @@ _0810E274:
ble _0810E2BC
_0810E296:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -31099,15 +31099,15 @@ sub_810E314: @ 810E314
ands r0, r1
cmp r0, 0
beq _0810E33C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0810E33E
.pool
_0810E33C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0810E33E:
ldrb r6, [r0]
adds r0, r6, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810E354
@@ -31118,7 +31118,7 @@ _0810E33E:
_0810E354:
adds r0, r6, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -31127,7 +31127,7 @@ _0810E354:
strh r0, [r7, 0x20]
adds r0, r6, 0
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldrh r1, [r4, 0x2]
lsrs r0, 24
@@ -32049,7 +32049,7 @@ _0810EA36:
sub_810EA4C: @ 810EA4C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -32061,16 +32061,16 @@ sub_810EA4C: @ 810EA4C
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -32106,9 +32106,9 @@ _0810EAC4:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0810EADC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810EAF2
@@ -32117,9 +32117,9 @@ _0810EADC:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810EAF8
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810EAF8
@@ -32237,16 +32237,16 @@ sub_810EB88: @ 810EB88
strh r0, [r4, 0x6]
ldr r0, =gUnknown_085973E8
mov r8, r0
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r2, r0, 0
lsls r2, 24
lsrs r2, 24
@@ -32289,7 +32289,7 @@ _0810EC46:
movs r1, 0x1
bl sub_80A69CC
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32341,10 +32341,10 @@ _0810ECAA:
beq _0810ECE0
b _0810ED1E
_0810ECB0:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -32379,7 +32379,7 @@ _0810ECE0:
cmp r0, r1
bge _0810ED1E
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32416,7 +32416,7 @@ sub_810ED28: @ 810ED28
ldr r0, =sub_810ED70
str r0, [r4, 0x1C]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -32545,21 +32545,21 @@ _0810EE28:
ldrsh r0, [r0, r2]
cmp r0, 0
bne _0810EE40
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810EE42
.pool
_0810EE40:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810EE42:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -32700,21 +32700,21 @@ _0810EF60:
ldrsh r0, [r2, r1]
cmp r0, 0
bne _0810EF74
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0810EF76
.pool
_0810EF74:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0810EF76:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -32861,17 +32861,17 @@ sub_810F084: @ 810F084
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r1, r8
strh r0, [r1, 0x20]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
@@ -32989,7 +32989,7 @@ sub_810F184: @ 810F184
cmp r0, 0
bne _0810F1BC
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -33005,7 +33005,7 @@ sub_810F184: @ 810F184
.pool
_0810F1BC:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -33038,9 +33038,9 @@ sub_810F1EC: @ 810F1EC
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F212
@@ -33064,7 +33064,7 @@ _0810F212:
bne _0810F2B8
_0810F22E:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
@@ -33078,7 +33078,7 @@ _0810F22E:
orrs r1, r0
lsrs r6, r1, 31
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F264
@@ -33091,7 +33091,7 @@ _0810F264:
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F284
@@ -33109,9 +33109,9 @@ _0810F284:
lsls r0, 24
cmp r0, 0
beq _0810F2B8
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810F2B0
@@ -33126,9 +33126,9 @@ _0810F2B0:
movs r0, 0x28
b _0810F2F2
_0810F2B8:
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F2CE
@@ -33139,7 +33139,7 @@ _0810F2B8:
_0810F2CE:
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -33148,7 +33148,7 @@ _0810F2CE:
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x2]
@@ -33193,7 +33193,7 @@ sub_810F340: @ 810F340
push {r4,r5,lr}
adds r5, r0, 0
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r1, 0x3C
@@ -33205,12 +33205,12 @@ sub_810F340: @ 810F340
b _0810F3B6
_0810F35C:
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F382
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -33226,12 +33226,12 @@ _0810F382:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F3AC
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -33370,17 +33370,17 @@ sub_810F46C: @ 810F46C
cmp r0, 0
bne _0810F502
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F4D4
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -33398,12 +33398,12 @@ _0810F4D4:
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F502
ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r1, [r0]
lsls r0, r1, 4
@@ -33441,7 +33441,7 @@ sub_810F524: @ 810F524
cmp r0, 0
bne _0810F57C
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
@@ -33454,7 +33454,7 @@ sub_810F524: @ 810F524
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F562
@@ -33464,7 +33464,7 @@ _0810F562:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F57C
@@ -33505,9 +33505,9 @@ _0810F5A6:
lsls r0, 24
cmp r0, 0
beq _0810F5EE
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0810F5E0
@@ -33568,21 +33568,21 @@ _0810F62C:
sub_810F634: @ 810F634
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0810F684
@@ -33623,7 +33623,7 @@ _0810F692:
sub_810F6B0: @ 810F6B0
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x1
bl sub_80A861C
@@ -33645,7 +33645,7 @@ sub_810F6B0: @ 810F6B0
lsls r1, 16
lsrs r7, r1, 16
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -33656,14 +33656,14 @@ sub_810F6B0: @ 810F6B0
_0810F6F6:
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r4
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r7
@@ -33774,7 +33774,7 @@ sub_810F7D4: @ 810F7D4
ldr r0, =gTasks
adds r4, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -33824,16 +33824,16 @@ sub_810F83C: @ 810F83C
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r1, 0
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x8
cmp r0, 0
@@ -33952,16 +33952,16 @@ sub_810F940: @ 810F940
movs r0, 0x10
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x24]
@@ -34260,16 +34260,16 @@ sub_810FBA8: @ 810FBA8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810FBD4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -34305,7 +34305,7 @@ sub_810FBF0: @ 810FBF0
bne _0810FC60
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34316,7 +34316,7 @@ sub_810FBF0: @ 810FBF0
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34331,7 +34331,7 @@ sub_810FBF0: @ 810FBF0
_0810FC60:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34342,7 +34342,7 @@ _0810FC60:
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34357,7 +34357,7 @@ _0810FC94:
bne _0810FCE8
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34368,7 +34368,7 @@ _0810FC94:
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34383,7 +34383,7 @@ _0810FC94:
_0810FCE8:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34394,7 +34394,7 @@ _0810FCE8:
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34535,7 +34535,7 @@ sub_810FE14: @ 810FE14
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -34590,7 +34590,7 @@ _0810FE86:
movs r0, 0
strh r0, [r4, 0x24]
_0810FE92:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -34618,7 +34618,7 @@ _0810FEC0:
adds r0, 0x40
cmp r1, r0
bgt _0810FEFA
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -34651,7 +34651,7 @@ _0810FEFA:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_810FF34
str r0, [r4]
add sp, 0xC
@@ -34700,7 +34700,7 @@ _0810FF66:
ldr r0, =gSineTable
mov r9, r0
movs r7, 0x3
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
mov r12, r1
movs r2, 0xF0
lsls r2, 3
@@ -34775,7 +34775,7 @@ _0810FFFE:
ble _08110026
b _08110014
_0811000E:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08110014:
@@ -34891,7 +34891,7 @@ _08110094:
bl CalcCenterToCornerVec
ldr r1, =gBattleAnimArgs
ldrb r0, [r1]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
@@ -35062,16 +35062,16 @@ _08110256:
beq _0811034A
b _08110360
_08110260:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -35209,9 +35209,9 @@ sub_8110368: @ 8110368
b _081103C4
.pool
_08110394:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081103C4
@@ -35232,7 +35232,7 @@ _08110394:
negs r0, r0
strh r0, [r1]
_081103C4:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
@@ -35254,7 +35254,7 @@ _081103C4:
strh r0, [r6, 0x2E]
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -35262,7 +35262,7 @@ _081103C4:
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
@@ -35297,9 +35297,9 @@ sub_8110438: @ 8110438
b _08110478
.pool
_0811045C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08110478
@@ -35311,7 +35311,7 @@ _0811045C:
negs r1, r1
strh r1, [r0]
_08110478:
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
@@ -35333,13 +35333,13 @@ _08110478:
strh r0, [r6, 0x2E]
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x36]
@@ -35384,23 +35384,23 @@ _08110500:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08110548
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
b _0811055A
.pool
_08110548:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -35457,7 +35457,7 @@ _081105AE:
sub_81105B4: @ 81105B4
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -35465,9 +35465,9 @@ sub_81105B4: @ 81105B4
adds r3, 0x22
movs r1, 0
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081105F0
@@ -35490,9 +35490,9 @@ _081105FC:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08110618
@@ -35655,9 +35655,9 @@ sub_8110720: @ 8110720
b _08110762
.pool
_08110740:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110762
@@ -35676,24 +35676,24 @@ _08110762:
lsls r0, 24
cmp r0, 0
bne _081107B2
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
bne _081107B2
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
beq _081107A0
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -35712,10 +35712,10 @@ _081107B2:
adds r0, r7, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
ldr r6, =gBattleAnimArgs
@@ -35726,7 +35726,7 @@ _081107B2:
lsrs r4, 16
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -35780,9 +35780,9 @@ sub_8110850: @ 8110850
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110870
@@ -35794,10 +35794,10 @@ _08110870:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -35805,7 +35805,7 @@ _08110870:
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x6]
@@ -35941,21 +35941,21 @@ sub_8110994: @ 8110994
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081109B0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _081109B2
.pool
_081109B0:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_081109B2:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x12
@@ -35980,7 +35980,7 @@ sub_81109F0: @ 81109F0
ldrsh r0, [r6, r1]
cmp r0, 0
beq _08110A10
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
@@ -36064,9 +36064,9 @@ sub_8110AB4: @ 8110AB4
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110AE4
@@ -36254,9 +36254,9 @@ _08110C10:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08110C6E
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110C6E
@@ -36480,9 +36480,9 @@ sub_8110E4C: @ 8110E4C
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08110E98
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08110E98
@@ -36620,32 +36620,32 @@ sub_8110F74: @ 8110F74
lsls r1, 3
ldr r0, =gTasks
adds r6, r1, r0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0xC0
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xC0
@@ -36732,7 +36732,7 @@ _0811101E:
strh r0, [r6, 0x24]
strh r5, [r6, 0xA]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -37193,9 +37193,9 @@ _08111412:
sub_8111418: @ 8111418
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -37216,16 +37216,16 @@ _08111434:
sub_8111444: @ 8111444
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
@@ -37443,10 +37443,10 @@ sub_811160C: @ 811160C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -37454,7 +37454,7 @@ sub_811160C: @ 811160C
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -37770,7 +37770,7 @@ sub_811188C: @ 811188C
movs r0, 0x52
bl SetGpuReg
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -37881,7 +37881,7 @@ sub_811196C: @ 811196C
.pool
_08111994:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r1, r0, 24
ldrh r0, [r4, 0x8]
@@ -37925,11 +37925,11 @@ sub_81119E0: @ 81119E0
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0
@@ -37938,7 +37938,7 @@ sub_81119E0: @ 81119E0
mov r1, r8
ldrb r0, [r1]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -38042,16 +38042,16 @@ _08111AD2:
lsls r0, 16
cmp r0, 0
bgt _08111B96
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x30]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
@@ -38104,16 +38104,16 @@ _08111B3C:
lsls r0, 16
cmp r0, 0
bgt _08111B96
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -38285,9 +38285,9 @@ _08111C80:
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08111CF4
@@ -38510,7 +38510,7 @@ sub_8111E78: @ 8111E78
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -38604,7 +38604,7 @@ _08111F0C:
adds r2, r4
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -38626,7 +38626,7 @@ _08111F0C:
movs r0, 0x10
strh r0, [r5, 0xE]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -38728,7 +38728,7 @@ _08112054:
_0811206C:
movs r2, 0x2
movs r3, 0x6
- bl sub_80BA384
+ bl ScanlineEffect_InitWave
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x1C]
@@ -38864,7 +38864,7 @@ sub_8112170: @ 8112170
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -38884,11 +38884,11 @@ _081121A8:
beq _081121F0
b _08112258
_081121AE:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x24]
@@ -38979,51 +38979,51 @@ sub_8112264: @ 8112264
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081122AC
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xE0
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
b _081122D0
.pool
_081122AC:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r2, 0xE0
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
_081122D0:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 8
movs r1, 0xE0
@@ -39166,10 +39166,10 @@ sub_81123C4: @ 81123C4
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
@@ -39189,7 +39189,7 @@ _08112434:
_08112436:
lsls r1, r4, 16
asrs r3, r1, 16
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
@@ -39201,7 +39201,7 @@ _08112436:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08112502
@@ -39221,7 +39221,7 @@ _08112436:
beq _08112502
adds r0, r4, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -39594,9 +39594,9 @@ sub_8112758: @ 8112758
movs r0, 0x54
movs r1, 0x10
bl SetGpuReg
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081127A0
@@ -39869,9 +39869,9 @@ sub_81129F0: @ 81129F0
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08112A24
@@ -40064,9 +40064,9 @@ sub_8112B78: @ 8112B78
movs r1, 0xC
bl Sin
strh r0, [r5, 0x24]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08112B9C
@@ -40195,10 +40195,10 @@ sub_8112C6C: @ 8112C6C
mov r8, r0
mov r0, r8
strh r0, [r4, 0xA]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
@@ -40301,9 +40301,9 @@ _08112D56:
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
movs r1, 0
lsls r0, 24
cmp r0, 0
@@ -40561,8 +40561,8 @@ sub_8112F60: @ 8112F60
movs r2, 0x4
orrs r1, r2
strb r1, [r3]
- ldr r2, =gBankSpriteIds
- ldr r1, =gAnimBankAttacker
+ ldr r2, =gBattlerSpriteIds
+ ldr r1, =gBattleAnimAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
@@ -40679,21 +40679,21 @@ _08113054:
sub_8113064: @ 8113064
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081130B4
@@ -40752,22 +40752,22 @@ sub_8113100: @ 8113100
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80A6838
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08113164
@@ -40834,21 +40834,21 @@ sub_81131B4: @ 81131B4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081131D0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _081131D2
.pool
_081131D0:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_081131D2:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -40876,9 +40876,9 @@ _081131D2:
sub_8113224: @ 8113224
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0811323E
@@ -40898,17 +40898,17 @@ _0811323E:
sub_8113250: @ 8113250
push {r4-r7,lr}
adds r6, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r6, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x22]
@@ -40918,7 +40918,7 @@ sub_8113250: @ 8113250
ldr r0, =gBattleAnimArgs
ldrh r0, [r0]
strh r0, [r6, 0x3A]
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A861C
@@ -41106,7 +41106,7 @@ sub_81133E8: @ 81133E8
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -41133,7 +41133,7 @@ _0811342A:
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -41152,7 +41152,7 @@ _0811345A:
ldrsh r0, [r4, r1]
cmp r3, r0
bgt _08113488
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -41175,7 +41175,7 @@ _08113488:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_81134B8
str r0, [r4]
add sp, 0xC
@@ -41264,7 +41264,7 @@ _0811354E:
bl sub_8113574
b _0811356E
_08113556:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldrh r0, [r2, 0x8]
@@ -41292,11 +41292,11 @@ sub_8113574: @ 8113574
ldrsh r0, [r5, r1]
cmp r4, r0
bgt _081135CA
- ldr r7, =gUnknown_02038C28
+ ldr r7, =gScanlineEffectRegBuffers
mov r12, r7
ldr r0, =gSineTable
mov r8, r0
- ldr r6, =gUnknown_02039B28
+ ldr r6, =gScanlineEffect
_08113592:
lsls r2, r4, 1
ldrb r1, [r6, 0x14]
@@ -41354,18 +41354,18 @@ sub_81135EC: @ 81135EC
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
- ldr r1, =gAnimBankAttacker
+ ldr r1, =gBattleAnimAttacker
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
mov r2, r8
ldrb r0, [r2]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r3, [r5, 0x8]
@@ -41473,7 +41473,7 @@ sub_81136E8: @ 81136E8
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0x8]
- ldr r1, =gAnimBankAttacker
+ ldr r1, =gBattleAnimAttacker
ldrb r4, [r1]
movs r1, 0x10
strh r1, [r0, 0xA]
@@ -41544,8 +41544,8 @@ sub_811375C: @ 811375C
cmp r4, 0x10
bne _081137DE
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -41661,7 +41661,7 @@ sub_8113888: @ 8113888
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -41690,29 +41690,29 @@ _081138C4:
sub_81138D4: @ 81138D4
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x34]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -41918,11 +41918,11 @@ sub_8113A90: @ 8113A90
adds r3, r0, 0
cmp r1, 0
bne _08113AAC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08113AAE
.pool
_08113AAC:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08113AAE:
ldrb r5, [r0]
movs r6, 0x14
@@ -42054,10 +42054,10 @@ sub_8113BAC: @ 8113BAC
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
@@ -42076,7 +42076,7 @@ sub_8113BAC: @ 8113BAC
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r1, r0, 0
@@ -42085,7 +42085,7 @@ sub_8113BAC: @ 8113BAC
adds r0, 0x20
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113C1C
@@ -42096,7 +42096,7 @@ _08113C1C:
ldr r0, =0x0000ffc0
_08113C1E:
strh r0, [r5, 0x18]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -42169,7 +42169,7 @@ _08113CB0:
movs r0, 0x3
bl sub_8114374
movs r3, 0
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
@@ -42189,7 +42189,7 @@ _08113CDC:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
movs r0, 0x3F
eors r7, r0
movs r1, 0xFC
@@ -42344,7 +42344,7 @@ _08113E3E:
b _08113E5E
.pool
_08113E58:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08113E5E:
@@ -42415,7 +42415,7 @@ _08113EBC:
b _081140A6
.pool
_08113EF8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -42472,10 +42472,10 @@ _08113F78:
b _08114044
.pool
_08113F84:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x1F
@@ -42492,7 +42492,7 @@ _08113F84:
strh r1, [r5, 0x22]
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r1, r0, 0x4
@@ -42500,7 +42500,7 @@ _08113F84:
adds r0, 0x4
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08113FD8
@@ -42534,7 +42534,7 @@ _08114002:
str r0, [sp, 0x10]
movs r3, 0
add r4, sp, 0x10
- ldr r6, =gUnknown_02038C28
+ ldr r6, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r7, r6, r0
@@ -42563,7 +42563,7 @@ _08114010:
strb r2, [r4, 0x9]
ldr r0, [sp, 0x10]
ldr r2, [r4, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
_08114044:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -42772,7 +42772,7 @@ _081141DA:
bne _08114232
b _08114204
_081141FE:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08114204:
@@ -42827,9 +42827,9 @@ sub_8114244: @ 8114244
movs r4, 0
cmp r0, 0
ble _081142A4
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, =gUnknown_02039B28
+ ldr r7, =gScanlineEffect
_08114278:
lsls r2, r4, 16
asrs r2, 16
@@ -42861,9 +42861,9 @@ _081142A4:
ldrsh r0, [r6, r2]
cmp r1, r0
bgt _081142EE
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, =gUnknown_02039B28
+ ldr r7, =gScanlineEffect
_081142B8:
asrs r4, r3, 16
cmp r4, 0
@@ -42904,8 +42904,8 @@ _081142EE:
ldrsh r0, [r6, r3]
cmp r1, r0
bge _08114366
- ldr r7, =gUnknown_02038C28
- ldr r4, =gUnknown_02039B28
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r4, =gScanlineEffect
_08114306:
asrs r3, r2, 16
cmp r3, 0
@@ -42935,7 +42935,7 @@ _08114338:
adds r5, r0, 0
adds r5, 0x9F
movs r4, 0
- ldr r3, =gUnknown_02038C28
+ ldr r3, =gScanlineEffectRegBuffers
movs r2, 0xF0
lsls r2, 3
adds r6, r3, r2
@@ -42979,7 +42979,7 @@ sub_8114374: @ 8114374
_0811438A:
lsls r0, r4, 24
lsrs r0, 24
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
@@ -43014,7 +43014,7 @@ sub_81143C0: @ 81143C0
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
bl sub_80A8364
lsls r0, 24
@@ -43030,7 +43030,7 @@ sub_81143C0: @ 81143C0
bl sub_80A438C
ldr r0, =gSprites
mov r9, r0
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
mov r8, r0
ldrb r0, [r6]
add r0, r8
@@ -43049,7 +43049,7 @@ sub_81143C0: @ 81143C0
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811444E
@@ -43091,7 +43091,7 @@ sub_8114470: @ 8114470
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
bl sub_80A8364
lsls r0, 24
@@ -43106,7 +43106,7 @@ sub_8114470: @ 8114470
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081144AC
@@ -43202,15 +43202,15 @@ _0811455C:
lsls r0, 24
cmp r0, 0
bne _081145D6
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _0811458C
ldrb r0, [r4]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _081145D6
@@ -43218,13 +43218,13 @@ _0811458C:
ldrb r0, [r4]
movs r5, 0x2
eors r0, r5
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _081145D6
ldr r3, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r4]
eors r0, r5
adds r0, r1
@@ -43262,13 +43262,13 @@ _081145D6:
b _0811465C
.pool
_08114614:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08114640
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -43279,7 +43279,7 @@ _08114614:
b _08114650
.pool
_08114640:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -43295,11 +43295,11 @@ _08114650:
lsrs r5, r0, 16
_0811465C:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -43421,7 +43421,7 @@ _08114776:
cmp r0, 0x2
bne _08114824
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r5, =gSprites
@@ -43457,8 +43457,8 @@ _081147B8:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _08114886
- ldr r2, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r2, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -43562,7 +43562,7 @@ _081148C4:
.4byte _081148FC
_081148E4:
ldrb r0, [r2]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r2, r0, 24
b _08114902
@@ -43586,15 +43586,15 @@ _08114902:
beq _0811492E
_08114908:
adds r0, r4, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811492C
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r2, [r0]
b _0811492E
@@ -43655,31 +43655,31 @@ _08114980:
sub_8114994: @ 8114994
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x36]
@@ -43716,16 +43716,16 @@ sub_81149FC: @ 81149FC
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -43764,9 +43764,9 @@ sub_8114A7C: @ 8114A7C
adds r6, r0, 0
movs r1, 0x1
bl sub_80A6980
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08114A9C
@@ -43778,10 +43778,10 @@ _08114A9C:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimBankTarget
+ ldr r5, =gBattleAnimTarget
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x4]
@@ -43789,7 +43789,7 @@ _08114A9C:
strh r0, [r6, 0x32]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r4, [r4, 0x6]
@@ -43814,7 +43814,7 @@ sub_8114AF0: @ 8114AF0
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A60AC
@@ -43890,10 +43890,10 @@ sub_8114B80: @ 8114B80
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08114BF4
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r2, [r6, 0x2]
@@ -43901,7 +43901,7 @@ sub_8114B80: @ 8114B80
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r3, [r6, 0x4]
@@ -44092,11 +44092,11 @@ _08114D28:
.4byte _08114E8C
_08114D3C:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -44118,7 +44118,7 @@ _08114D70:
_08114D78:
ldrh r0, [r0]
strh r0, [r4, 0x22]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -44235,7 +44235,7 @@ _08114E4E:
b _08114E7E
.pool
_08114E78:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_08114E7E:
@@ -44272,7 +44272,7 @@ sub_8114EB4: @ 8114EB4
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -44289,7 +44289,7 @@ sub_8114EB4: @ 8114EB4
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -44361,7 +44361,7 @@ sub_8114F54: @ 8114F54
.pool
_08114F78:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
@@ -44438,11 +44438,11 @@ _08115004:
.4byte _081150D4
_08115018:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -44458,7 +44458,7 @@ _08115044:
_08115046:
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -44510,7 +44510,7 @@ _08115094:
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081150DA
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_081150C2:
@@ -44561,7 +44561,7 @@ _08115114:
asrs r4, r0, 16
cmp r2, r0
bge _08115140
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -44584,7 +44584,7 @@ _08115140:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _0811516E
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
@@ -44616,7 +44616,7 @@ _0811516E:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -44634,11 +44634,11 @@ sub_81151A0: @ 81151A0
adds r7, r0, 0
cmp r1, 0
bne _081151BC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _081151BE
.pool
_081151BC:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_081151BE:
ldrb r4, [r0]
movs r6, 0x18
@@ -44657,7 +44657,7 @@ _081151BE:
_081151DA:
adds r0, r4, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r6
@@ -44714,16 +44714,16 @@ sub_8115244: @ 8115244
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08115260
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08115262
.pool
_08115260:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08115262:
ldrb r5, [r0]
adds r0, r5, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldr r2, =0x0000fff0
@@ -44818,7 +44818,7 @@ _08115340:
_08115346:
lsls r0, r5, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08115370
@@ -44829,7 +44829,7 @@ _08115346:
adds r1, r4, 0
adds r1, 0x8
adds r1, r0
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r5, r0
ldrb r0, [r0]
strh r0, [r1]
@@ -44846,7 +44846,7 @@ _08115370:
.pool
_08115380:
ldrb r0, [r6]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1A]
@@ -45217,11 +45217,11 @@ sub_8115628: @ 8115628
adds r6, r2, 0
cmp r0, 0
beq _08115648
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
b _0811564A
.pool
_08115648:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
_0811564A:
ldrb r0, [r0]
adds r5, r0, 0
@@ -45244,7 +45244,7 @@ _0811565A:
adds r4, r0
adds r0, r5, 0
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x20
@@ -45255,7 +45255,7 @@ _0811565A:
strh r1, [r4, 0xA]
adds r0, r5, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
movs r1, 0x40
@@ -45333,9 +45333,9 @@ sub_811572C: @ 811572C
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -45846,15 +45846,15 @@ sub_8115B0C: @ 8115B0C
strh r1, [r0, 0x12]
strh r5, [r0, 0x18]
movs r4, 0
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r1, [r0]
mov r9, r3
mov r8, r2
cmp r5, r1
bge _08115B74
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
- ldr r7, =gAnimBankTarget
+ ldr r7, =gBattleAnimTarget
movs r0, 0x1
mov r12, r0
adds r2, r1, 0
@@ -46336,9 +46336,9 @@ sub_8115F10: @ 8115F10
lsrs r0, 24
mov r8, r0
movs r2, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r6, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r7, [r0]
ldr r4, =gBattleAnimArgs
ldrh r1, [r4]
@@ -46429,10 +46429,10 @@ _08115FD6:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
mov r9, r0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
@@ -46450,7 +46450,7 @@ _08115FF8:
cmp r0, 0
beq _08116028
ldr r2, =gSprites
- ldr r0, =gHealthBoxesIds
+ ldr r0, =gHealthboxSpriteIds
add r0, r9
ldrb r1, [r0]
lsls r0, r1, 4
@@ -46650,13 +46650,13 @@ _0811618A:
cmp r0, 0x1
bhi _081161DC
movs r4, 0
- ldr r5, =gNoOfAllBanks
+ ldr r5, =gBattlersCount
ldrb r0, [r5]
cmp r4, r0
bcs _081161DC
ldr r2, =gSprites
mov r12, r2
- ldr r6, =gBankSpriteIds
+ ldr r6, =gBattlerSpriteIds
movs r7, 0x3
negs r7, r7
_081161BA:
@@ -46691,8 +46691,8 @@ _081161E2:
sub_81161F4: @ 81161F4
push {r4-r6,lr}
ldr r6, =gSprites
- ldr r4, =gBankSpriteIds
- ldr r5, =gAnimBankAttacker
+ ldr r4, =gBattlerSpriteIds
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -46707,7 +46707,7 @@ sub_81161F4: @ 81161F4
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
- ldr r3, =gAnimBankTarget
+ ldr r3, =gBattleAnimTarget
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
@@ -46955,9 +46955,9 @@ _081163FC:
sub_8116420: @ 8116420
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08116444
@@ -47048,7 +47048,7 @@ sub_81164F0: @ 81164F0
adds r4, r0, 0
ldr r5, =gBattleAnimArgs
ldrb r0, [r5]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x2E]
@@ -47256,14 +47256,14 @@ _081166B8:
movs r5, 0
_081166BA:
mov r0, sp
- ldr r1, =gAnimBankAttacker
+ ldr r1, =gBattleAnimAttacker
b _081166CA
.pool
_081166C4:
movs r5, 0
_081166C6:
mov r0, sp
- ldr r1, =gAnimBankTarget
+ ldr r1, =gBattleAnimTarget
_081166CA:
ldrb r1, [r1]
strb r1, [r0]
@@ -47271,10 +47271,10 @@ _081166CA:
.pool
_081166D4:
mov r1, sp
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _0811670E
@@ -47287,13 +47287,13 @@ _081166EC:
_081166F4:
movs r5, 0
mov r2, sp
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08116706
.pool
_08116700:
movs r5, 0
mov r2, sp
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08116706:
ldrb r0, [r0]
movs r1, 0x2
@@ -47310,7 +47310,7 @@ _08116712:
cmp r4, r0
beq _0811673C
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811673C
@@ -47867,15 +47867,15 @@ _08116BA2:
lsls r0, 24
cmp r0, 0
bne _08116C26
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116BD2
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08116C26
@@ -47883,13 +47883,13 @@ _08116BD2:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08116C26
ldr r3, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldrb r0, [r5]
eors r0, r6
adds r0, r1
@@ -47932,13 +47932,13 @@ _08116C26:
b _08116CAC
.pool
_08116C64:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08116C90
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -47949,7 +47949,7 @@ _08116C64:
b _08116CA0
.pool
_08116C90:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -47965,11 +47965,11 @@ _08116CA0:
lsrs r5, r0, 16
_08116CAC:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -48119,7 +48119,7 @@ _08116DF6:
movs r1, 0
bl SetGpuReg
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r4, =gSprites
movs r0, 0x8
ldrsh r1, [r5, r0]
@@ -48137,8 +48137,8 @@ _08116DF6:
ldrsh r0, [r5, r1]
cmp r0, 0x1
bne _08116E7C
- ldr r2, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r2, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -48223,11 +48223,11 @@ sub_8116F04: @ 8116F04
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08116F24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08116F26
.pool
_08116F24:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08116F26:
ldrb r0, [r0]
strb r0, [r1]
@@ -48247,7 +48247,7 @@ _08116F26:
cmp r0, 0
beq _08116F5C
ldrb r0, [r1, 0x1]
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08116F5C
@@ -48306,27 +48306,27 @@ _08116FBA:
cmp r0, 0
bne _08117036
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08116FEC
ldr r0, [r4]
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
cmp r0, 0
bne _08117036
_08116FEC:
ldr r0, [r4]
ldrb r0, [r0, 0x1]
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
bne _08117036
ldr r3, =gSprites
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
ldr r0, [r4]
ldrb r0, [r0, 0x1]
adds r0, r1
@@ -48370,11 +48370,11 @@ _08117078:
ldr r4, =gUnknown_0203A110
ldr r0, [r4]
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _081170A8
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
@@ -48386,7 +48386,7 @@ _08117078:
b _081170BA
.pool
_081170A8:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldr r0, [r4]
ldrb r0, [r0]
lsls r0, 1
@@ -48425,7 +48425,7 @@ sub_81170EC: @ 81170EC
lsrs r5, r0, 24
movs r0, 0
mov r8, r0
- ldr r6, =gBankSpriteIds
+ ldr r6, =gBattlerSpriteIds
ldr r4, =gUnknown_0203A110
ldr r2, [r4]
ldrb r0, [r2]
@@ -48601,7 +48601,7 @@ _08117280:
strh r4, [r1, 0xE]
ldrb r0, [r3, 0x2]
strh r0, [r1, 0x14]
- ldr r2, =gBankSpriteIds
+ ldr r2, =gBattlerSpriteIds
ldrb r0, [r3, 0x1]
adds r0, r2
ldrb r0, [r0]
@@ -49044,7 +49044,7 @@ sub_8117610: @ 8117610
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
movs r5, 0x1
_08117620:
@@ -49096,9 +49096,9 @@ sub_8117660: @ 8117660
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0811769C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0811769C
@@ -49196,9 +49196,9 @@ sub_8117754: @ 8117754
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
@@ -49217,9 +49217,9 @@ sub_8117780: @ 8117780
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
ldr r1, =gBattleAnimArgs
lsls r0, 24
lsrs r0, 24
@@ -49239,10 +49239,10 @@ sub_81177AC: @ 81177AC
lsrs r3, r0, 24
ldr r5, =gBattleAnimArgs
movs r4, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
movs r0, 0x2
- ldr r1, =gAnimBankTarget
+ ldr r1, =gBattleAnimTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
@@ -49266,17 +49266,17 @@ sub_81177E4: @ 81177E4
movs r4, 0
ldr r6, =gSprites
_081177EE:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
cmp r4, r0
beq _0811782C
lsls r0, r4, 24
lsrs r0, 24
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811782C
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
adds r0, r4, r0
ldrb r0, [r0]
lsls r2, r0, 4
@@ -49355,7 +49355,7 @@ sub_8117854: @ 8117854
cmp r1, 0
beq _081178BA
adds r0, r6, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _081178BA
@@ -49431,11 +49431,11 @@ _08117930:
.pool
_08117964:
adds r0, r7, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08117988
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
@@ -49445,7 +49445,7 @@ _08117964:
b _08117996
.pool
_08117988:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r7, 1
adds r0, r1
ldrh r1, [r0]
@@ -49459,7 +49459,7 @@ _08117996:
lsls r0, 16
lsrs r4, r0, 16
_081179A2:
- ldr r5, =gBankSpriteIds
+ ldr r5, =gBattlerSpriteIds
adds r0, r7, r5
ldrb r1, [r0]
adds r0, r7, 0
@@ -49854,13 +49854,13 @@ _08117CD2:
_08117CE4:
cmp r0, 0x1
bne _08117CF0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08117CF6
.pool
_08117CF0:
cmp r0, 0x2
bne _08117CFC
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08117CF6:
ldrb r0, [r0]
adds r4, r0, 0
@@ -49929,13 +49929,13 @@ _08117D6E:
_08117D80:
cmp r0, 0x1
bne _08117D8C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08117D92
.pool
_08117D8C:
cmp r0, 0x2
bne _08117D98
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08117D92:
ldrb r0, [r0]
adds r4, r0, 0
@@ -50004,13 +50004,13 @@ _08117E0A:
_08117E1C:
cmp r0, 0x1
bne _08117E28
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08117E2E
.pool
_08117E28:
cmp r0, 0x2
bne _08117E34
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08117E2E:
ldrb r0, [r0]
adds r4, r0, 0
@@ -50064,11 +50064,11 @@ sub_8117E94: @ 8117E94
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimBankAttacker
- ldr r1, =gBankTarget
+ ldr r2, =gBattleAnimAttacker
+ ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -50083,13 +50083,13 @@ sub_8117EC4: @ 8117EC4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -50116,8 +50116,8 @@ sub_8117F10: @ 8117F10
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimBankTarget
- ldr r1, =gBankTarget
+ ldr r2, =gBattleAnimTarget
+ ldr r1, =gBattlerTarget
ldrb r1, [r1]
strb r1, [r2]
bl DestroyAnimVisualTask
@@ -50131,11 +50131,11 @@ sub_8117F30: @ 8117F30
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimBankAttacker
- ldr r1, =gBankAttacker
+ ldr r2, =gBattleAnimAttacker
+ ldr r1, =gBattlerAttacker
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -50165,7 +50165,7 @@ _08117F78:
adds r3, r0
ldr r0, =gBattleSpritesDataPtr
ldr r4, [r0]
- ldr r2, =gAnimBankAttacker
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
ldr r1, [r4]
lsls r0, 2
@@ -50209,7 +50209,7 @@ sub_8117FD0: @ 8117FD0
bne _08118014
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r3, [r0]
ldr r0, [r1]
lsls r3, 2
@@ -50740,9 +50740,9 @@ _08118442:
strh r0, [r1, 0xC]
_0811845A:
movs r3, 0
- ldr r5, =gUnknown_02039B28
+ ldr r5, =gScanlineEffect
mov r9, r5
- ldr r7, =gUnknown_02038C28
+ ldr r7, =gScanlineEffectRegBuffers
mov r6, r9
adds r5, r1, 0
_08118466:
@@ -50760,8 +50760,8 @@ _08118466:
ble _08118466
cmp r3, 0x9F
bgt _081184AA
- ldr r7, =gUnknown_02038C28
- ldr r6, =gUnknown_02039B28
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r6, =gScanlineEffect
ldr r1, =gTasks
mov r2, r12
adds r0, r2, r4
@@ -51089,9 +51089,9 @@ _0811873C:
strh r0, [r1, 0xC]
_08118752:
movs r3, 0
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
mov r8, r0
- ldr r2, =gUnknown_02038C28
+ ldr r2, =gScanlineEffectRegBuffers
mov r12, r2
mov r7, r8
adds r4, r1, 0
@@ -51110,9 +51110,9 @@ _08118760:
ble _08118760
cmp r3, 0x9F
bgt _081187A4
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
- ldr r7, =gUnknown_02039B28
+ ldr r7, =gScanlineEffect
ldr r1, =gTasks
adds r0, r6, r5
lsls r0, 3
@@ -51378,9 +51378,9 @@ _081189BA:
strh r0, [r1, 0xC]
_081189D0:
movs r3, 0
- ldr r6, =gUnknown_02039B28
+ ldr r6, =gScanlineEffect
mov r8, r6
- ldr r7, =gUnknown_02038C28
+ ldr r7, =gScanlineEffectRegBuffers
adds r4, r1, 0
_081189DA:
lsls r2, r3, 1
@@ -51397,8 +51397,8 @@ _081189DA:
ble _081189DA
cmp r3, 0x9F
bgt _08118A1E
- ldr r7, =gUnknown_02038C28
- ldr r6, =gUnknown_02039B28
+ ldr r7, =gScanlineEffectRegBuffers
+ ldr r6, =gScanlineEffect
ldr r1, =gTasks
mov r2, r12
adds r0, r2, r5
@@ -51707,9 +51707,9 @@ _08118C90:
strh r0, [r1, 0xC]
_08118CA6:
movs r3, 0
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
mov r12, r0
- ldr r2, =gUnknown_02038C28
+ ldr r2, =gScanlineEffectRegBuffers
mov r8, r2
mov r7, r12
adds r4, r1, 0
@@ -51728,9 +51728,9 @@ _08118CB4:
ble _08118CB4
cmp r3, 0x9F
bgt _08118CF8
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r8, r0
- ldr r7, =gUnknown_02039B28
+ ldr r7, =gScanlineEffect
ldr r1, =gTasks
adds r0, r5, r6
lsls r0, 3
@@ -52025,7 +52025,7 @@ _08118F28:
lsls r1, 7
movs r0, 0xC
bl SetGpuReg
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
ldr r1, =gTasks
@@ -52078,7 +52078,7 @@ sub_8118FBC: @ 8118FBC
lsls r5, 16
lsrs r5, 16
adds r0, r4, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
ldr r1, =gMonSpritesGfxPtr
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index d583f1e85..6b894a0f1 100644
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -87,10 +87,10 @@ sub_815A160: @ 815A160
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gAnimBankTarget
+ ldr r6, =gBattleAnimTarget
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 8
@@ -100,7 +100,7 @@ sub_815A160: @ 815A160
asrs r4, 16
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r1, r0, 0
lsls r1, 24
lsrs r1, 8
@@ -207,16 +207,16 @@ sub_815A254: @ 815A254
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
@@ -768,7 +768,7 @@ sub_815A6C4: @ 815A6C4
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
mov r5, sp
adds r5, 0x2
@@ -776,9 +776,9 @@ sub_815A6C4: @ 815A6C4
mov r2, sp
adds r3, r5, 0
bl sub_80A8924
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815A6F8
@@ -919,9 +919,9 @@ sub_815A7EC: @ 815A7EC
lsls r0, 24
cmp r0, 0
bne _0815A840
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815A830
@@ -1017,9 +1017,9 @@ sub_815A8C8: @ 815A8C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1251,16 +1251,16 @@ sub_815AAA4: @ 815AAA4
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815AAD0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1502,15 +1502,15 @@ sub_815ACD0: @ 815ACD0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815ACEC
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0815ACEE
.pool
_0815ACEC:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0815ACEE:
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x2]
@@ -1518,7 +1518,7 @@ _0815ACEE:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -1618,11 +1618,11 @@ sub_815ADB0: @ 815ADB0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815ADDC
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0815ADDE
.pool
_0815ADDC:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0815ADDE:
ldrb r0, [r4]
bl sub_80A6190
@@ -1689,7 +1689,7 @@ _0815AE58:
ldrsh r0, [r5, r6]
cmp r1, r0
bgt _0815AE8E
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r4
@@ -1729,7 +1729,7 @@ _0815AEA2:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_815AED8
str r0, [r5]
add sp, 0xC
@@ -1820,7 +1820,7 @@ _0815AF5C:
ldrsh r0, [r4, r2]
cmp r1, r0
bge _0815AF90
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1848,7 +1848,7 @@ _0815AF90:
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _0815AFC4
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1877,7 +1877,7 @@ _0815AFC4:
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0815AFDA
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_0815AFDA:
@@ -1903,16 +1903,16 @@ sub_815AFF0: @ 815AFF0
movs r5, 0
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xC]
ldrb r0, [r6]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xE]
@@ -1922,7 +1922,7 @@ sub_815AFF0: @ 815AFF0
strh r0, [r4, 0x12]
strh r5, [r4, 0x14]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -2278,16 +2278,16 @@ _0815B2D8:
strh r1, [r5, 0x26]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x32]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
@@ -2320,7 +2320,7 @@ sub_815B338: @ 815B338
.pool
_0815B35C:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2351,7 +2351,7 @@ sub_815B394: @ 815B394
push {r4-r6,lr}
adds r5, r0, 0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x2E
@@ -2370,16 +2370,16 @@ _0815B3B4:
beq _0815B478
b _0815B496
_0815B3BE:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -2482,9 +2482,9 @@ _0815B496:
sub_815B49C: @ 815B49C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815B4BC
@@ -2513,9 +2513,9 @@ sub_815B4D4: @ 815B4D4
ldrh r0, [r4, 0x2E]
adds r0, 0x48
strh r0, [r4, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815B4F8
@@ -2728,7 +2728,7 @@ sub_815B65C: @ 815B65C
cmp r0, 0
bne _0815B69C
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2770,7 +2770,7 @@ sub_815B6B4: @ 815B6B4
cmp r0, 0
bne _0815B6F4
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2814,10 +2814,10 @@ _0815B71E:
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
@@ -2868,7 +2868,7 @@ sub_815B778: @ 815B778
cmp r0, 0
bne _0815B7B8
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -2933,7 +2933,7 @@ _0815B81C:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -2996,9 +2996,9 @@ _0815B886:
_0815B8A6:
b _0815BA7A
_0815B8A8:
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- ldr r1, =gAnimBankTarget
+ ldr r1, =gBattleAnimTarget
ldrb r1, [r1]
mov r2, r8
lsls r4, r2, 2
@@ -3020,7 +3020,7 @@ _0815B8A8:
.pool
_0815B8E0:
ldrb r0, [r5]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r1, r0, 24
_0815B8EA:
@@ -3030,7 +3030,7 @@ _0815B8EA:
adds r2, 0x4
adds r2, r0
ldr r1, =gBattleMonForms
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -3122,8 +3122,8 @@ _0815B99C:
cmp r0, 0
beq _0815B9EC
ldr r3, =gSprites
- ldr r4, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r4, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3138,8 +3138,8 @@ _0815B99C:
.pool
_0815B9EC:
ldr r3, =gSprites
- ldr r4, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r4, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3209,7 +3209,7 @@ _0815BA82:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -3232,9 +3232,9 @@ _0815BAB6:
lsls r0, 24
cmp r0, 0
bne _0815BAF6
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3256,7 +3256,7 @@ _0815BAB6:
lsls r1, r0, 2
adds r1, r2
ldrh r1, [r1, 0x2]
- bl SetBankEnemyShadowSpriteCallback
+ bl SetBattlerShadowSpriteCallback
_0815BAF6:
mov r0, r8
bl DestroyAnimVisualTask
@@ -3278,8 +3278,8 @@ sub_815BB18: @ 815BB18
lsrs r0, 24
ldr r4, =gBattleAnimArgs
ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- ldr r1, =gAnimBankAttacker
+ ldr r2, =gBattlerSpriteIds
+ ldr r1, =gBattleAnimAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r2, [r1]
@@ -3305,9 +3305,9 @@ sub_815BB58: @ 815BB58
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- ldr r1, =gAnimBankTarget
+ ldr r1, =gBattleAnimTarget
ldrb r1, [r1]
movs r2, 0x1
bl HandleSpeciesGfxDataChange
@@ -3390,9 +3390,9 @@ _0815BC02:
b _0815BC5C
.pool
_0815BC34:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815BC58
@@ -3621,17 +3621,17 @@ sub_815BE04: @ 815BE04
lsls r0, 16
lsrs r5, r0, 16
_0815BE2E:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, r5
strh r0, [r7, 0x20]
ldrb r0, [r4]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x20
@@ -3996,9 +3996,9 @@ _0815C124:
b _0815C1CA
.pool
_0815C15C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r4, r0, 24
bl IsDoubleBattle
@@ -4085,9 +4085,9 @@ _0815C224:
adds r5, r0, r1
movs r0, 0
strh r0, [r5, 0xE]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4272,7 +4272,7 @@ sub_815C3A8: @ 815C3A8
cmp r0, 0
bne _0815C3E8
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -4325,9 +4325,9 @@ _0815C41E:
ldrh r0, [r4, 0x32]
adds r0, 0x80
strh r0, [r4, 0x32]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815C450
@@ -4419,7 +4419,7 @@ _0815C4BC:
subs r0, 0x1
strh r0, [r4, 0x14]
ldrb r0, [r5]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4427,14 +4427,14 @@ _0815C4BC:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0815C508
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815C50A
.pool
_0815C508:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815C50A:
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4643,9 +4643,9 @@ _0815C6A8:
sub_815C6B0: @ 815C6B0
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -4683,9 +4683,9 @@ sub_815C700: @ 815C700
ldrh r0, [r4, 0x2E]
adds r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815C744
@@ -4758,7 +4758,7 @@ sub_815C770: @ 815C770
strh r0, [r4, 0x24]
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -4991,16 +4991,16 @@ sub_815C95C: @ 815C95C
ldrsh r0, [r6, r2]
cmp r0, 0
bne _0815C990
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -5100,17 +5100,17 @@ sub_815CA20: @ 815CA20
mov r8, r0
cmp r1, 0
bne _0815CA5C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815CA5E
.pool
_0815CA5C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815CA5E:
ldrb r0, [r0]
strh r0, [r2, 0x1E]
mov r1, r8
ldrb r0, [r1]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gTasks
@@ -5172,7 +5172,7 @@ _0815CAD2:
cmp r0, 0
bne _0815CAF8
ldrb r0, [r6, 0x1E]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsls r2, r5, 4
cmp r0, 0
@@ -5528,16 +5528,16 @@ _0815CDAA:
sub_815CDB4: @ 815CDB4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -5586,14 +5586,14 @@ sub_815CDFC: @ 815CDFC
cmp r0, 0xC3
ble _0815CE48
_0815CE36:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
b _0815CE52
.pool
_0815CE48:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
@@ -5674,7 +5674,7 @@ sub_815CED8: @ 815CED8
lsrs r0, 24
str r0, [sp, 0x18]
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -5693,16 +5693,16 @@ sub_815CED8: @ 815CED8
b _0815D058
.pool
_0815CF18:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815CFC4
movs r0, 0
str r0, [sp, 0x1C]
- ldr r6, =gBattlePartyID
- ldr r4, =gAnimBankTarget
+ ldr r6, =gBattlerPartyIndexes
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5733,7 +5733,7 @@ _0815CF18:
cmp r0, 0
bne _0815CFBC
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815CF9C
@@ -5769,8 +5769,8 @@ _0815CFBE:
_0815CFC4:
movs r2, 0x1
str r2, [sp, 0x1C]
- ldr r6, =gBattlePartyID
- ldr r4, =gAnimBankTarget
+ ldr r6, =gBattlerPartyIndexes
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5801,7 +5801,7 @@ _0815CFC4:
cmp r0, 0
bne _0815D054
adds r0, r2, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815D03C
@@ -5834,21 +5834,21 @@ _0815D056:
_0815D058:
mov r10, r3
_0815D05A:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
mov r2, r10
lsls r1, r2, 16
@@ -5864,7 +5864,7 @@ _0815D05A:
str r3, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
str r0, [sp, 0x10]
movs r0, 0x1
@@ -6072,11 +6072,11 @@ sub_815D240: @ 815D240
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815D26C
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815D26E
.pool
_0815D26C:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815D26E:
ldrb r5, [r0]
movs r6, 0
@@ -6093,7 +6093,7 @@ _0815D26E:
movs r0, 0x18
strh r0, [r4, 0x18]
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6118,7 +6118,7 @@ _0815D2B4:
strh r0, [r4, 0x24]
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x26]
@@ -6151,7 +6151,7 @@ _0815D316:
ldrh r3, [r0]
movs r7, 0
movs r2, 0
- ldr r6, =gUnknown_02038C28
+ ldr r6, =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r6
@@ -6192,7 +6192,7 @@ _0815D326:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_815D398
str r0, [r4]
add sp, 0xC
@@ -6304,7 +6304,7 @@ _0815D40E:
ldrsh r0, [r6, r3]
cmp r1, r0
ble _0815D52E
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
mov r10, r0
ldr r1, [sp, 0x4]
lsls r0, r1, 16
@@ -6325,7 +6325,7 @@ _0815D47E:
subs r0, r1
lsls r0, 7
adds r2, r0
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
adds r2, r0
lsls r4, 16
asrs r4, 16
@@ -6343,7 +6343,7 @@ _0815D47E:
subs r0, r1
lsls r0, 7
adds r3, r0
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
adds r3, r1
lsls r1, r7, 16
asrs r1, 16
@@ -6407,7 +6407,7 @@ _0815D52E:
lsls r1, r2, 17
cmp r1, 0
blt _0815D55A
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
ldr r7, [sp, 0x4]
lsls r0, r7, 16
asrs r0, 16
@@ -6487,7 +6487,7 @@ _0815D5CC:
asrs r0, 16
cmp r0, 0xC
ble _0815D63C
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
movs r0, 0
@@ -6562,7 +6562,7 @@ sub_815D64C: @ 815D64C
strh r0, [r4, 0x8]
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -6827,9 +6827,9 @@ sub_815D870: @ 815D870
ldrb r1, [r6]
adds r0, r5, 0
bl StartSpriteAffineAnim
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815D896
@@ -6837,10 +6837,10 @@ sub_815D870: @ 815D870
negs r0, r0
strh r0, [r6, 0x2]
_0815D896:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r6, 0x2]
@@ -6848,7 +6848,7 @@ _0815D896:
strh r0, [r5, 0x20]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r6, [r6, 0x4]
@@ -7237,8 +7237,8 @@ sub_815DB90: @ 815DB90
lsls r0, 3
mov r1, r8
adds r4, r0, r1
- ldr r1, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -7261,7 +7261,7 @@ sub_815DB90: @ 815DB90
strh r0, [r4, 0x14]
_0815DBD4:
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815DC04
@@ -7373,22 +7373,22 @@ _0815DCC4:
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0815DCE8
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815DCEA
.pool
_0815DCE8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815DCEA:
ldrb r4, [r0]
adds r0, r4, 0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x10]
adds r0, r4, 0
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x12]
@@ -7399,7 +7399,7 @@ _0815DCEA:
strh r0, [r5, 0x14]
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -7661,7 +7661,7 @@ sub_815DF0C: @ 815DF0C
ldrh r0, [r1, 0x2]
strh r0, [r4, 0xA]
ldrb r0, [r1]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
ldr r2, =gSprites
@@ -7746,7 +7746,7 @@ sub_815DFCC: @ 815DFCC
lsrs r0, 24
movs r2, 0xD0
lsls r2, 1
- ldr r1, =gAnimBankAttacker
+ ldr r1, =gBattleAnimAttacker
ldrb r3, [r1]
ldr r1, =gBattleAnimArgs
ldrb r1, [r1]
@@ -7775,9 +7775,9 @@ sub_815DFCC: @ 815DFCC
sub_815E01C: @ 815E01C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, =gAnimBankAttacker
+ ldr r6, =gBattleAnimAttacker
ldrb r0, [r6]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -7789,7 +7789,7 @@ sub_815E01C: @ 815E01C
_0815E038:
ldrb r0, [r6]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r4, =gBattleAnimArgs
lsrs r0, 24
@@ -7798,7 +7798,7 @@ _0815E038:
strh r0, [r5, 0x20]
ldrb r0, [r6]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x2]
@@ -7837,9 +7837,9 @@ _0815E09A:
lsls r0, 2
strh r0, [r5, 0x2E]
_0815E0A8:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815E0C8
@@ -7923,15 +7923,15 @@ _0815E144:
strh r0, [r6, 0x14]
strh r1, [r6, 0x16]
_0815E14E:
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815E188
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
@@ -7951,7 +7951,7 @@ _0815E17C:
_0815E188:
ldrb r0, [r5]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
@@ -7968,10 +7968,10 @@ _0815E1A8:
subs r0, r4, r0
_0815E1AC:
strh r0, [r6, 0x1E]
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
ldrb r0, [r5]
movs r1, 0
@@ -7987,16 +7987,16 @@ _0815E1D0:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x20]
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x22]
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x24]
@@ -8345,33 +8345,33 @@ sub_815E47C: @ 815E47C
lsls r0, 3
ldr r1, =gTasks
adds r7, r0, r1
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
mov r10, r0
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x1E]
mov r1, r10
ldrb r0, [r1]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x20]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x22]
mov r1, r8
ldrb r0, [r1]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
mov r1, r8
ldrb r0, [r1]
@@ -8451,7 +8451,7 @@ _0815E4EE:
bl sub_80A68D4
mov r1, r10
ldrb r0, [r1]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8626,11 +8626,11 @@ sub_815E6D8: @ 815E6D8
adds r6, r0, 0
cmp r1, 0
bne _0815E6F4
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815E6F6
.pool
_0815E6F4:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815E6F6:
ldrb r5, [r0]
ldrh r2, [r4, 0x4]
@@ -8659,7 +8659,7 @@ _0815E724:
strh r1, [r4, 0x3C]
adds r0, r5, 0
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -8827,7 +8827,7 @@ _0815E85C:
ldrh r0, [r2, 0x2]
strh r0, [r4, 0x8]
ldrb r0, [r2]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -8942,15 +8942,15 @@ sub_815E954: @ 815E954
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815E970
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
b _0815E972
.pool
_0815E970:
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
_0815E972:
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
@@ -9326,7 +9326,7 @@ sub_815EC48: @ 815EC48
ldr r0, =gTasks
adds r6, r1, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x26]
@@ -9339,10 +9339,10 @@ sub_815EC48: @ 815EC48
lsrs r7, r0, 24
cmp r7, 0x1
bne _0815ECB4
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
@@ -9350,7 +9350,7 @@ sub_815EC48: @ 815EC48
movs r0, 0x2
eors r0, r1
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -9363,9 +9363,9 @@ _0815ECAC:
b _0815ECD2
.pool
_0815ECB4:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815ECD0
@@ -9606,18 +9606,18 @@ sub_815EE84: @ 815EE84
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _0815EEAA
.pool
_0815EEA8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_0815EEAA:
ldrb r0, [r0]
strh r0, [r4, 0x3C]
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -9771,14 +9771,14 @@ _0815EFEC:
lsls r0, 24
lsrs r0, 24
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r5, r0, 24
ldrh r0, [r4, 0x3C]
lsls r0, 24
lsrs r0, 24
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r1, r0, 24
_0815F00C:
@@ -9991,15 +9991,15 @@ _0815F17C:
sub_815F18C: @ 815F18C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
ldrb r0, [r4]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _0815F1B8
@@ -10057,7 +10057,7 @@ sub_815F20C: @ 815F20C
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r5, r0, 24
adds r2, r5, 0
@@ -10126,7 +10126,7 @@ _0815F2A0:
b _0815F310
.pool
_0815F2AC:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0
bl LoadBattleMonGfxAndAnimate
@@ -10135,7 +10135,7 @@ _0815F2AC:
cmp r0, 0
beq _0815F2EE
ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
+ ldr r2, =gBattlerSpriteIds
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
@@ -10191,7 +10191,7 @@ sub_815F330: @ 815F330
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r3, r0, 24
ldr r1, =gTasks
@@ -10360,9 +10360,9 @@ _0815F482:
sub_815F48C: @ 815F48C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankTarget
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815F4B8
@@ -10384,10 +10384,10 @@ _0815F4B8:
strb r0, [r1]
ldr r4, =0x0000ffa0
_0815F4C8:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x3
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
@@ -10639,7 +10639,7 @@ _0815F67C:
strh r1, [r0, 0x8]
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -10764,7 +10764,7 @@ sub_815F7C4: @ 815F7C4
strh r0, [r4, 0x30]
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -10943,7 +10943,7 @@ _0815F92C:
.4byte _0815FD8C
_0815F940:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
@@ -10958,9 +10958,9 @@ _0815F940:
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11036,7 +11036,7 @@ _0815F9F4:
ldr r3, [r0, 0xC]
mov r9, r3
ldrh r6, [r0]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -11045,13 +11045,13 @@ _0815F9F4:
b _0815FB4E
.pool
_0815FA28:
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815FAC8
- ldr r7, =gBattlePartyID
+ ldr r7, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
@@ -11096,7 +11096,7 @@ _0815FA9C:
ldrh r6, [r1, 0x2]
_0815FA9E:
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11115,7 +11115,7 @@ _0815FA9E:
b _0815FB50
.pool
_0815FAC8:
- ldr r7, =gBattlePartyID
+ ldr r7, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
@@ -11160,7 +11160,7 @@ _0815FB2C:
ldrh r6, [r1, 0x2]
_0815FB2E:
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11177,10 +11177,10 @@ _0815FB2E:
_0815FB4E:
ldr r5, =0x0000ffe0
_0815FB50:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
lsls r3, r5, 16
@@ -11191,7 +11191,7 @@ _0815FB50:
str r4, [sp, 0x8]
mov r0, r9
str r0, [sp, 0xC]
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
str r0, [sp, 0x10]
movs r0, 0
@@ -11253,9 +11253,9 @@ _0815FBE8:
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11307,18 +11307,18 @@ _0815FC56:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815FCD6
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815FCB4
lsls r4, r5, 16
asrs r4, 16
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -11328,10 +11328,10 @@ _0815FC56:
_0815FCB4:
lsls r4, r5, 16
asrs r4, 16
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -11365,7 +11365,7 @@ _0815FCE8:
.pool
_0815FD08:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
@@ -11383,9 +11383,9 @@ _0815FD08:
ldr r5, =gSprites
adds r0, r5
bl sub_80A8610
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
cmp r0, 0
@@ -11425,7 +11425,7 @@ _0815FD7E:
.pool
_0815FD8C:
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r7, r0, 24
ldr r1, =gTasks
@@ -11440,11 +11440,11 @@ _0815FD8C:
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x18]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
mov r9, r4
ldr r2, [sp, 0x18]
@@ -11469,7 +11469,7 @@ _0815FD8C:
mov r1, r10
ldrb r0, [r1]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r3, r5, 0
@@ -11499,7 +11499,7 @@ _0815FE0C:
mov r2, r10
ldrb r0, [r2]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r3, r5, 0
@@ -11563,10 +11563,10 @@ _0815FE92:
asrs r1, 24
movs r0, 0x7A
bl PlaySE12WithPanning
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r0, 0x10
@@ -11583,9 +11583,9 @@ _0815FE92:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -11595,7 +11595,7 @@ _0815FE92:
cmp r0, 0
bne _0815FFBC
movs r0, 0x1
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
ldr r2, =gSprites
lsls r0, 24
lsrs r0, 24
@@ -11652,9 +11652,9 @@ _0815FF6E:
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0815FF9C
@@ -11721,17 +11721,17 @@ _0815FFF4:
.4byte _081600CC
.4byte _08160132
_08160008:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
adds r2, r0, 0
@@ -11755,8 +11755,8 @@ _0816003E:
b _08160150
.pool
_08160058:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11811,8 +11811,8 @@ _081600B4:
strh r1, [r0, 0x26]
b _08160150
_081600CC:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11861,8 +11861,8 @@ _0816012A:
strh r0, [r2, 0x26]
b _08160150
_08160132:
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11893,14 +11893,14 @@ sub_8160164: @ 8160164
ldr r0, =gTasks
adds r4, r1, r0
movs r0, 0
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
lsls r0, 24
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r2, 0x1
negs r2, r2
@@ -12072,9 +12072,9 @@ _081602DA:
sub_81602E0: @ 81602E0
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldrh r0, [r4, 0x2E]
ldrh r1, [r4, 0x30]
@@ -12115,9 +12115,9 @@ _08160326:
sub_8160338: @ 8160338
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0816037C
@@ -12166,10 +12166,10 @@ _08160396:
sub_81603A8: @ 81603A8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimBankAttacker
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
movs r1, 0x2
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x20]
@@ -12396,7 +12396,7 @@ sub_8160544: @ 8160544
strh r0, [r4, 0x8]
ldr r0, =gBattleAnimArgs
ldrb r0, [r0]
- bl GetAnimBankSpriteId
+ bl GetAnimBattlerSpriteId
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index 635c02e03..1bd7e9629 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -16,7 +16,7 @@ sub_8170478: @ 8170478
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r4, [r0]
ldr r0, =gBattle_WIN0H
movs r1, 0
@@ -56,7 +56,7 @@ sub_8170478: @ 8170478
movs r1, 0x3
movs r2, 0x1
bl SetAnimBgAttribute
- ldr r0, =gHealthBoxesIds
+ ldr r0, =gHealthboxSpriteIds
adds r4, r0
ldrb r0, [r4]
ldr r1, =gSprites
@@ -212,7 +212,7 @@ sub_8170660: @ 8170660
push {r7}
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
mov r8, r0
ldr r1, =gTasks
@@ -373,7 +373,7 @@ _0817076C:
movs r1, 0x1
movs r2, 0
bl SetAnimBgAttribute
- ldr r0, =gHealthBoxesIds
+ ldr r0, =gHealthboxSpriteIds
add r0, r8
ldrb r0, [r0]
lsls r1, r0, 4
@@ -434,7 +434,7 @@ sub_8170834: @ 8170834
adds r7, r1, 0
lsls r2, 24
lsrs r2, 24
- ldr r0, =gHealthBoxesIds
+ ldr r0, =gHealthboxSpriteIds
adds r2, r0
ldrb r0, [r2]
lsls r5, r0, 4
@@ -540,7 +540,7 @@ sub_8170920: @ 8170920
lsrs r4, 24
mov r1, sp
adds r1, 0x1
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r2, [r0]
mov r0, sp
bl sub_8170834
@@ -561,7 +561,7 @@ sub_817094C: @ 817094C
push {r5,r6}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gHealthBoxesIds
+ ldr r1, =gHealthboxSpriteIds
adds r0, r1
ldrb r0, [r0]
ldr r1, =gSprites
@@ -628,7 +628,7 @@ sub_81709EC: @ 81709EC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_817094C
adds r0, r4, 0
@@ -765,8 +765,8 @@ sub_8170B04: @ 8170B04
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r5, [r0]
@@ -851,17 +851,17 @@ sub_8170BB0: @ 8170BB0
sub sp, 0xC
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, =gBankSpriteIds
- ldr r4, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r1, r0, r1
ldrb r1, [r1]
mov r9, r1
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _08170BF8
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -872,7 +872,7 @@ sub_8170BB0: @ 8170BB0
b _08170C08
.pool
_08170BF8:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldrb r0, [r4]
lsls r0, 1
adds r0, r1
@@ -904,16 +904,16 @@ _08170C08:
b _08170CEE
.pool
_08170C44:
- ldr r5, =gAnimBankAttacker
+ ldr r5, =gBattleAnimAttacker
ldrb r0, [r5]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
adds r1, r0, 0
lsls r1, 24
ldr r2, =gSprites
@@ -1162,18 +1162,18 @@ sub_8170E04: @ 8170E04
adds r6, r4, r1
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x30]
mov r1, r8
ldrb r0, [r1]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x10
@@ -1186,7 +1186,7 @@ sub_8170E04: @ 8170E04
ldr r0, =gBattleSpritesDataPtr
ldr r0, [r0]
ldr r3, [r0, 0x8]
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
mov r2, r8
ldrb r0, [r2]
adds r0, r1
@@ -1283,7 +1283,7 @@ _08170F54:
lsls r4, 24
lsrs r4, 24
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
bl sub_80A82E4
@@ -1313,18 +1313,18 @@ _08170F54:
adds r6, r4, r0
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r1, =gAnimBankTarget
+ ldr r1, =gBattleAnimTarget
mov r8, r1
ldrb r0, [r1]
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r6, 0x30]
mov r1, r8
ldrb r0, [r1]
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
subs r0, 0x10
@@ -1335,8 +1335,8 @@ _08170F54:
ldr r0, =SpriteCallbackDummy
str r0, [r4]
movs r0, 0
- bl GetBankByIdentity
- ldr r1, =gBankSpriteIds
+ bl GetBattlerAtPosition
+ ldr r1, =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r1
@@ -1371,8 +1371,8 @@ sub_8171030: @ 8171030
lsrs r5, r0, 24
ldr r6, =gSprites
movs r0, 0
- bl GetBankByIdentity
- ldr r1, =gBankSpriteIds
+ bl GetBattlerAtPosition
+ ldr r1, =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r1
@@ -1422,8 +1422,8 @@ sub_81710A8: @ 81710A8
lsrs r5, r0, 24
ldr r6, =gSprites
movs r0, 0
- bl GetBankByIdentity
- ldr r4, =gBankSpriteIds
+ bl GetBattlerAtPosition
+ ldr r4, =gBattlerSpriteIds
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -1438,7 +1438,7 @@ sub_81710A8: @ 81710A8
cmp r0, 0
bge _081710F4
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
adds r0, r4
@@ -1550,7 +1550,7 @@ _08171188:
movs r2, 0x1
movs r3, 0x1C
bl LaunchBallStarsTask
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0
movs r2, 0xE
@@ -1584,8 +1584,8 @@ sub_81711E8: @ 81711E8
ldr r0, =sub_8171240
str r0, [r4, 0x1C]
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -1606,8 +1606,8 @@ _08171224:
sub_8171240: @ 8171240
push {r4-r7,lr}
adds r7, r0, 0
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankTarget
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimTarget
ldrb r0, [r0]
adds r0, r1
ldrb r4, [r0]
@@ -2333,7 +2333,7 @@ sub_81717F8: @ 81717F8
push {r7}
sub sp, 0x4
adds r6, r0, 0
- ldr r7, =gAnimBankTarget
+ ldr r7, =gBattleAnimTarget
ldrh r0, [r6, 0x36]
adds r0, 0x1
movs r1, 0
@@ -2390,7 +2390,7 @@ _08171880:
cmp r1, r0
bne _081718BC
ldr r5, =gSprites
- ldr r4, =gBankSpriteIds
+ ldr r4, =gBattlerSpriteIds
ldrb r0, [r7]
adds r0, r4
ldrb r1, [r0]
@@ -2715,7 +2715,7 @@ sub_8171AE4: @ 8171AE4
movs r2, 0x1
movs r3, 0x1C
bl LaunchBallStarsTask
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0xE
@@ -2723,8 +2723,8 @@ sub_8171AE4: @ 8171AE4
bl LaunchBallFadeMonTask
_08171B36:
ldr r6, =gSprites
- ldr r5, =gBankSpriteIds
- ldr r4, =gAnimBankTarget
+ ldr r5, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimTarget
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -2791,8 +2791,8 @@ sub_8171BAC: @ 8171BAC
strb r0, [r2]
_08171BCA:
ldr r4, =gSprites
- ldr r3, =gBankSpriteIds
- ldr r2, =gAnimBankTarget
+ ldr r3, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2840,8 +2840,8 @@ _08171C24:
cmp r5, 0
beq _08171C8A
ldr r4, =gSprites
- ldr r3, =gBankSpriteIds
- ldr r2, =gAnimBankTarget
+ ldr r3, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -4729,8 +4729,8 @@ sub_8172BF0: @ 8172BF0
lsrs r7, r0, 24
movs r0, 0
mov r8, r0
- ldr r0, =gBankSpriteIds
- ldr r3, =gAnimBankAttacker
+ ldr r0, =gBattlerSpriteIds
+ ldr r3, =gBattleAnimAttacker
ldrb r2, [r3]
adds r0, r2, r0
ldrb r6, [r0]
@@ -4764,7 +4764,7 @@ _08172C36:
adds r0, r4
strh r0, [r5, 0x8]
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08172C78
@@ -4838,7 +4838,7 @@ _08172CDA:
adds r0, r2
strh r0, [r5, 0x8]
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08172D10
@@ -4877,9 +4877,9 @@ _08172D28:
adds r0, r1
ldrb r1, [r0, 0x8]
strh r1, [r0, 0x8]
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
@@ -4949,7 +4949,7 @@ _08172DC0:
beq _08172E4E
b _08172E84
_08172DC6:
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl sub_80A8364
lsls r0, 24
@@ -5009,8 +5009,8 @@ _08172E14:
strh r0, [r4, 0x26]
b _08172E84
_08172E4E:
- ldr r1, =gBankSpriteIds
- ldr r4, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r4, =gBattleAnimAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
@@ -5048,7 +5048,7 @@ sub_8172E9C: @ 8172E9C
ldr r3, =gBattleAnimArgs
ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
- ldr r1, =gAnimBankAttacker
+ ldr r1, =gBattleAnimAttacker
ldrb r1, [r1]
ldr r2, [r2]
lsls r1, 2
@@ -5068,7 +5068,7 @@ sub_8172ED0: @ 8172ED0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimBankTarget
+ ldr r2, =gBattleAnimTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
@@ -5108,7 +5108,7 @@ sub_8172EF0: @ 8172EF0
bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08172FC8
@@ -5234,12 +5234,12 @@ _0817303A:
ldrb r0, [r4, 0x8]
mov r8, r0
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r5, r0, 24
mov r0, r8
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0x1E
@@ -5347,7 +5347,7 @@ _08173118:
cmp r0, 0
bne _08173160
mov r0, r8
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
movs r1, 0x3F
cmp r0, 0
@@ -5575,11 +5575,11 @@ sub_817330C: @ 817330C
movs r0, 0x1E
strh r0, [r4, 0x2E]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
ldr r5, =gBattleAnimArgs
lsrs r0, 24
@@ -5587,11 +5587,11 @@ sub_817330C: @ 817330C
adds r0, r1
strh r0, [r4, 0x32]
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
ldrh r5, [r5, 0x6]
@@ -5602,8 +5602,8 @@ sub_817330C: @ 817330C
adds r0, r4, 0
bl sub_80A68D4
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5627,8 +5627,8 @@ sub_817339C: @ 817339C
push {lr}
adds r3, r0, 0
ldr r2, =gSprites
- ldr r1, =gBankSpriteIds
- ldr r0, =gAnimBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5678,8 +5678,8 @@ sub_8173400: @ 8173400
push {r4,r5,lr}
adds r4, r0, 0
ldr r5, =gSprites
- ldr r3, =gBankSpriteIds
- ldr r2, =gAnimBankAttacker
+ ldr r3, =gBattlerSpriteIds
+ ldr r2, =gBattleAnimAttacker
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -5732,21 +5732,21 @@ sub_817345C: @ 817345C
.pool
_08173478:
movs r0, 0
- bl GetBankByIdentity
- ldr r1, =gAnimBankAttacker
+ bl GetBattlerAtPosition
+ ldr r1, =gBattleAnimAttacker
strb r0, [r1]
movs r0, 0x1
b _08173498
.pool
_0817348C:
movs r0, 0x1
- bl GetBankByIdentity
- ldr r1, =gAnimBankAttacker
+ bl GetBattlerAtPosition
+ ldr r1, =gBattleAnimAttacker
strb r0, [r1]
movs r0, 0
_08173498:
- bl GetBankByIdentity
- ldr r1, =gAnimBankTarget
+ bl GetBattlerAtPosition
+ ldr r1, =gBattleAnimTarget
strb r0, [r1]
_081734A0:
adds r0, r4, 0
@@ -5812,13 +5812,13 @@ sub_817351C: @ 817351C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, =gAnimBankAttacker
+ ldr r3, =gBattleAnimAttacker
ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
ldr r1, [r2, 0x8]
ldrh r1, [r1]
strb r1, [r3]
- ldr r3, =gAnimBankTarget
+ ldr r3, =gBattleAnimTarget
ldr r1, [r2, 0x8]
ldrh r1, [r1]
lsrs r1, 8
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index 949934e1d..def934fab 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -336,25 +336,25 @@ _08158DD0:
adds r2, r0, 0
cmp r1, 0
bne _08158DEC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r4, [r0]
b _08158E12
.pool
_08158DEC:
cmp r1, 0x1
bne _08158DFC
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r4, [r0]
b _08158E12
.pool
_08158DFC:
cmp r1, 0x2
bne _08158E08
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08158E0A
.pool
_08158E08:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08158E0A:
ldrb r1, [r0]
movs r0, 0x2
@@ -369,7 +369,7 @@ _08158E12:
bne _08158E38
_08158E1E:
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08158E38
@@ -379,11 +379,11 @@ _08158E1E:
.pool
_08158E38:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08158E5C
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -393,7 +393,7 @@ _08158E38:
b _08158E6A
.pool
_08158E5C:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -461,25 +461,25 @@ _08158EE0:
adds r2, r0, 0
cmp r1, 0
bne _08158EFC
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r4, [r0]
b _08158F22
.pool
_08158EFC:
cmp r1, 0x1
bne _08158F0C
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
ldrb r4, [r0]
b _08158F22
.pool
_08158F0C:
cmp r1, 0x2
bne _08158F18
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
b _08158F1A
.pool
_08158F18:
- ldr r0, =gAnimBankTarget
+ ldr r0, =gBattleAnimTarget
_08158F1A:
ldrb r1, [r0]
movs r0, 0x2
@@ -494,7 +494,7 @@ _08158F22:
bne _08158F48
_08158F2E:
adds r0, r4, 0
- bl IsAnimBankSpriteVisible
+ bl IsBattlerSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08158F48
@@ -504,11 +504,11 @@ _08158F2E:
.pool
_08158F48:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _08158F6C
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -518,7 +518,7 @@ _08158F48:
b _08158F7A
.pool
_08158F6C:
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -705,7 +705,7 @@ sub_81590B8: @ 81590B8
.pool
_081590F8:
ldr r1, =gAnimSpeciesByBanks
- ldr r0, =gAnimBankAttacker
+ ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
index 976543692..ef146fbe5 100644
--- a/asm/battle_frontier_1.s
+++ b/asm/battle_frontier_1.s
@@ -11000,8 +11000,8 @@ _0819486C:
movs r1, 0
strh r1, [r0, 0x8]
_08194878:
- bl dp12_8087EA4
- ldr r0, =gUnknown_02038C28
+ bl ScanlineEffect_Clear
+ ldr r0, =gScanlineEffectRegBuffers
ldr r2, =0x00001f0a
movs r4, 0xF0
lsls r4, 3
@@ -11017,7 +11017,7 @@ _08194888:
bge _08194888
movs r5, 0x5B
ldr r3, =gUnknown_0860CF44
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
ldr r2, =0x00001f09
ldr r4, =0x00000836
adds r1, r0, r4
@@ -11033,7 +11033,7 @@ _081948A4:
ldr r0, [r3]
ldr r1, [r3, 0x4]
ldr r2, [r3, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
mov r0, r8
bl DestroyTask
_081948C2:
@@ -11513,7 +11513,7 @@ sub_8194CE4: @ 8194CE4
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.pool
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 417fa8ffa..d405e4f3d 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -21098,7 +21098,7 @@ sub_81A5718: @ 81A5718
b _081A57D8
.pool
_081A576C:
- ldr r0, =gBattleMoveFlags
+ ldr r0, =gMoveResultFlags
ldrb r1, [r0]
movs r0, 0x29
ands r0, r1
diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s
index fedb50c45..dcfd89132 100644
--- a/asm/battle_link_817C95C.s
+++ b/asm/battle_link_817C95C.s
@@ -34,32 +34,32 @@ _0817C988:
movs r1, 0x81
lsls r1, 2
adds r7, r0, r1
- ldr r5, =gBankAttacker
+ ldr r5, =gBattlerAttacker
ldrb r0, [r5]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r6, r0, 24
ldr r0, =gEffectBank
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, =gStringInfo
ldr r0, [r0]
ldrb r0, [r0, 0x7]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
cmp r4, 0
bne _0817CA00
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
ldrb r0, [r5]
lsls r0, 1
adds r0, r2
@@ -70,7 +70,7 @@ _0817C988:
b _0817CA10
.pool
_0817CA00:
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
ldrb r0, [r5]
lsls r0, 1
adds r0, r2
@@ -83,7 +83,7 @@ _0817CA10:
str r1, [sp, 0x8]
cmp r6, 0
bne _0817CA3C
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
lsls r0, 1
adds r0, r2
@@ -94,7 +94,7 @@ _0817CA10:
b _0817CA4C
.pool
_0817CA3C:
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
lsls r0, 1
adds r0, r2
@@ -105,12 +105,12 @@ _0817CA3C:
_0817CA4C:
adds r1, r0
str r1, [sp, 0xC]
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
ldr r1, =gStringInfo
ldr r1, [r1]
ldrh r1, [r1]
- bl GetBankMoveSlotId
+ bl GetBattlerMoveSlotId
lsls r0, 24
lsrs r0, 24
mov r10, r0
@@ -134,20 +134,20 @@ _0817CA4C:
bl _0817E0A2
.pool
_0817CA9C:
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
mov r8, r0
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r5, r0, 25
ldr r0, =gEffectBank
ldrb r0, [r0]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r3, r0, 25
ldr r1, [sp]
@@ -571,8 +571,8 @@ _0817D0DC:
adds r3, r4
lsls r3, 2
adds r3, r7, r3
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -601,8 +601,8 @@ _0817D124:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -634,8 +634,8 @@ _0817D16C:
adds r0, r4
lsls r0, 2
adds r5, r7, r0
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -715,8 +715,8 @@ _0817D216:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -775,8 +775,8 @@ _0817D296:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -833,8 +833,8 @@ _0817D314:
lsls r0, r4, 4
adds r3, r0
adds r3, r7, r3
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -940,8 +940,8 @@ _0817D3F2:
bne _0817D3FE
bl _0817E0A6
_0817D3FE:
- ldr r0, =gBankAttacker
- ldr r1, =gBankTarget
+ ldr r0, =gBattlerAttacker
+ ldr r1, =gBattlerTarget
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
@@ -1014,8 +1014,8 @@ _0817D498:
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1091,8 +1091,8 @@ _0817D53C:
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1161,8 +1161,8 @@ _0817D5CE:
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1226,8 +1226,8 @@ _0817D65E:
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1301,7 +1301,7 @@ _0817D6F2:
strb r0, [r1]
bl _0817E0A6
_0817D704:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1314,7 +1314,7 @@ _0817D704:
lsls r4, 3
adds r2, r4
adds r2, r7, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1353,8 +1353,8 @@ _0817D76C:
bne _0817D77E
bl _0817E0A6
_0817D77E:
- ldr r6, =gBattlePartyID
- ldr r5, =gBankAttacker
+ ldr r6, =gBattlerPartyIndexes
+ ldr r5, =gBattlerAttacker
ldrb r0, [r5]
lsls r0, 1
adds r0, r6
@@ -1395,7 +1395,7 @@ _0817D7B2:
b _0817D934
.pool
_0817D7D8:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1408,7 +1408,7 @@ _0817D7D8:
lsls r4, 3
adds r2, r4
adds r2, r7, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1439,7 +1439,7 @@ _0817D7D8:
b _0817D88C
.pool
_0817D838:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1452,7 +1452,7 @@ _0817D838:
lsls r4, 3
adds r2, r4
adds r2, r7, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1496,9 +1496,9 @@ _0817D8A4:
bne _0817D8B6
bl _0817E0A6
_0817D8B6:
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
mov r8, r2
- ldr r6, =gBankAttacker
+ ldr r6, =gBattlerAttacker
ldrb r0, [r6]
lsls r0, 1
add r0, r8
@@ -1573,8 +1573,8 @@ _0817D94C:
lsls r0, r6, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1627,7 +1627,7 @@ _0817D9AE:
movs r0, 0x9
b _0817E086
_0817D9C2:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1640,7 +1640,7 @@ _0817D9C2:
lsls r4, 3
adds r2, r4
adds r2, r7, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1671,8 +1671,8 @@ _0817D9C2:
b _0817DB76
.pool
_0817DA24:
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1702,7 +1702,7 @@ _0817DA48:
b _0817E0A6
.pool
_0817DA68:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1715,7 +1715,7 @@ _0817DA68:
lsls r4, 3
adds r2, r4
adds r2, r7, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1747,8 +1747,8 @@ _0817DA68:
b _0817DB76
.pool
_0817DACC:
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1790,7 +1790,7 @@ _0817DB10:
b _0817E0A6
.pool
_0817DB24:
- ldr r5, =gBattlePartyID
+ ldr r5, =gBattlerPartyIndexes
ldr r6, =gEffectBank
ldrb r0, [r6]
lsls r0, 1
@@ -1803,7 +1803,7 @@ _0817DB24:
lsls r4, 3
adds r3, r4
adds r3, r7, r3
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r5
@@ -1838,8 +1838,8 @@ _0817DB76:
b _0817E0A6
.pool
_0817DB90:
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1875,8 +1875,8 @@ _0817DBD4:
lsls r0, r1, 4
adds r3, r0
adds r3, r7, r3
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -1943,8 +1943,8 @@ _0817DC62:
adds r2, r6
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2021,8 +2021,8 @@ _0817DCFC:
lsls r0, r4, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2049,8 +2049,8 @@ _0817DD38:
lsls r0, r4, 4
adds r2, r0
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2121,8 +2121,8 @@ _0817DDC8:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2154,8 +2154,8 @@ _0817DE10:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2253,8 +2253,8 @@ _0817DEDC:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2331,8 +2331,8 @@ _0817DF70:
adds r2, r4
lsls r2, 2
adds r2, r7, r2
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2413,8 +2413,8 @@ _0817DFE6:
negs r0, r0
ands r0, r2
strb r0, [r1]
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -2557,22 +2557,22 @@ _0817E122:
lsls r1, 2
adds r1, r0, r1
str r1, [sp, 0x8]
- ldr r2, =gBankAttacker
+ ldr r2, =gBattlerAttacker
mov r10, r2
ldrb r0, [r2]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
mov r9, r0
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
mov r1, r10
ldrb r0, [r1]
adds r1, r7, 0
- bl GetBankMoveSlotId
+ bl GetBattlerMoveSlotId
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
@@ -2593,7 +2593,7 @@ _0817E122:
_0817E184:
mov r2, r10
ldrb r0, [r2]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
lsls r0, 3
@@ -2604,7 +2604,7 @@ _0817E184:
mov r2, r10
ldrb r1, [r2]
lsls r1, 1
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
adds r1, r2
ldrh r2, [r1]
adds r2, 0x1
@@ -2617,7 +2617,7 @@ _0817E184:
strb r1, [r0]
mov r1, r10
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
lsls r0, 24
lsrs r0, 25
lsls r0, 3
@@ -2685,7 +2685,7 @@ _0817E23C:
mov r1, r10
ldrb r0, [r1]
lsls r0, 1
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
adds r0, r2
ldrh r1, [r0]
adds r1, 0x1
@@ -2723,7 +2723,7 @@ _0817E27A:
mov r1, r10
ldrb r0, [r1]
lsls r0, 1
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
adds r0, r1
ldrh r1, [r0]
adds r1, 0x1
@@ -2812,9 +2812,9 @@ sub_817E32C: @ 817E32C
movs r1, 0x81
lsls r1, 2
adds r4, r0, r1
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
cmp r5, 0x12
@@ -3244,14 +3244,14 @@ sub_817E684: @ 817E684
movs r2, 0x81
lsls r2, 2
adds r7, r0, r2
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r3, r0, 24
mov r0, r10
@@ -3297,8 +3297,8 @@ _0817E6F0:
.4byte _0817E760
.4byte _0817E760
_0817E760:
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -3324,13 +3324,13 @@ _0817E760:
_0817E79C:
ldr r1, =gUnknown_0860A834
add r1, r12
- ldr r7, =gBattlePartyID
+ ldr r7, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r4
lsls r2, r0, 4
ldr r4, =0x0000ffff
ldr r1, [r1]
- ldr r3, =gBankAttacker
+ ldr r3, =gBattlerAttacker
ldrh r0, [r1]
cmp r6, r0
bne _0817E7E0
@@ -3708,15 +3708,15 @@ sub_817EA80: @ 817EA80
movs r1, 0x81
lsls r1, 2
adds r5, r0, r1
- ldr r3, =gBankAttacker
+ ldr r3, =gBattlerAttacker
mov r8, r3
ldrb r0, [r3]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r4, 1
@@ -4005,8 +4005,8 @@ _0817ECCC:
ldrb r0, [r0]
lsrs r0, 5
subs r6, r0, 0x1
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -4164,8 +4164,8 @@ _0817EE1C:
cmp r7, 0x1
bne _0817EEBC
adds r2, r4, 0
- ldr r1, =gBattlePartyID
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerPartyIndexes
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -4227,7 +4227,7 @@ _0817EE8E:
b _0817EEBC
_0817EE96:
adds r2, r4, 0
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
mov r3, r8
ldrb r0, [r3]
lsls r0, 1
@@ -4269,9 +4269,9 @@ sub_817EECC: @ 817EECC
beq _0817EEE6
b _0817F1FA
_0817EEE6:
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -4291,7 +4291,7 @@ _0817EEF8:
bgt _0817EF10
b _0817F1FA
_0817EF10:
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
muls r0, r1
adds r0, r5
@@ -4367,7 +4367,7 @@ _0817EF8A:
beq _0817EF98
b _0817F1FA
_0817EF98:
- ldr r2, =gBankAttacker
+ ldr r2, =gBattlerAttacker
ldrb r0, [r2]
adds r0, r6
ldrb r0, [r0]
@@ -4386,11 +4386,11 @@ _0817EF98:
mov r10, r3
mov r8, r0
add r7, sp, 0x10
- ldr r4, =gBankTarget
+ ldr r4, =gBattlerTarget
mov r9, r4
_0817EFC2:
lsls r1, r5, 1
- ldr r6, =gBankAttacker
+ ldr r6, =gBattlerAttacker
ldrb r0, [r6]
movs r2, 0x58
muls r0, r2
@@ -4411,16 +4411,16 @@ _0817EFC2:
lsls r0, 24
cmp r0, 0
beq _0817F0B4
- ldr r4, =gSideAffecting
+ ldr r4, =gSideStatuses
mov r1, r9
ldrb r0, [r1]
- bl GetBankIdentity
+ bl GetBattlerPosition
movs r1, 0x1
ands r1, r0
lsls r1, 1
adds r1, r4
ldrh r3, [r1]
- ldr r2, =gBankAttacker
+ ldr r2, =gBattlerAttacker
ldrb r0, [r2]
movs r4, 0x58
muls r0, r4
@@ -4437,7 +4437,7 @@ _0817EFC2:
str r4, [sp]
movs r4, 0
str r4, [sp, 0x4]
- ldr r6, =gBankAttacker
+ ldr r6, =gBattlerAttacker
ldrb r4, [r6]
str r4, [sp, 0x8]
mov r6, r9
@@ -4448,7 +4448,7 @@ _0817EFC2:
ldr r4, =gBattleMoveDamage
str r3, [r4]
ldr r1, =gStatuses3
- ldr r2, =gBankAttacker
+ ldr r2, =gBattlerAttacker
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
@@ -4472,7 +4472,7 @@ _0817EFC2:
str r0, [r4]
_0817F06A:
ldr r0, =gProtectStructs
- ldr r6, =gBankAttacker
+ ldr r6, =gBattlerAttacker
ldrb r1, [r6]
lsls r1, 4
adds r1, r0
@@ -4513,9 +4513,9 @@ _0817F0B4:
cmp r5, 0x3
ble _0817EFC2
movs r5, 0
- ldr r3, =gBankAttacker
+ ldr r3, =gBattlerAttacker
ldr r6, =gMoveSelectionCursor
- ldr r4, =gBattlePartyID
+ ldr r4, =gBattlerPartyIndexes
mov r8, r4
movs r7, 0x64
mov r9, r7
@@ -4545,9 +4545,9 @@ _0817F0D8:
movs r7, 0
_0817F0F6:
movs r5, 0
- ldr r4, =gBankTarget
+ ldr r4, =gBattlerTarget
ldr r6, =gEnemyParty
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
add r0, r10
ldrb r3, [r0]
@@ -4582,7 +4582,7 @@ _0817F11A:
adds r6, r0, 0
lsls r6, 16
lsrs r6, 16
- ldr r2, =gBankAttacker
+ ldr r2, =gBattlerAttacker
ldrb r0, [r2]
lsls r0, 1
add r0, r8
@@ -4598,7 +4598,7 @@ _0817F11A:
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
ldrb r3, [r4]
mov r2, r10
adds r0, r3, r2
@@ -4625,7 +4625,7 @@ _0817F1D4:
_0817F1DC:
ldr r2, =gBattleMoveDamage
ldr r1, =gMoveSelectionCursor
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -4695,7 +4695,7 @@ _0817F270:
cmp r2, 0x95
bne _0817F294
ldr r2, =gBattleMons
- ldr r0, =gBankAttacker
+ ldr r0, =gBattlerAttacker
ldrb r1, [r0]
movs r0, 0x58
muls r0, r1
@@ -4793,15 +4793,15 @@ _0817F324:
.pool
thumb_func_end sub_817F2A8
- thumb_func_start GetBankMoveSlotId
-GetBankMoveSlotId: @ 817F33C
+ thumb_func_start GetBattlerMoveSlotId
+GetBattlerMoveSlotId: @ 817F33C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsrs r7, r1, 16
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
ldr r6, =gEnemyParty
cmp r0, 0
@@ -4809,7 +4809,7 @@ GetBankMoveSlotId: @ 817F33C
ldr r6, =gPlayerParty
_0817F356:
movs r4, 0
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r5, 1
adds r5, r0, r1
b _0817F36E
@@ -4835,7 +4835,7 @@ _0817F388:
pop {r4-r7}
pop {r1}
bx r1
- thumb_func_end GetBankMoveSlotId
+ thumb_func_end GetBattlerMoveSlotId
thumb_func_start sub_817F394
sub_817F394: @ 817F394
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index b5b06c4e1..6156d6890 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -5354,7 +5354,7 @@ sub_8164E04: @ 8164E04
adds r0, r2
ldrh r1, [r5]
bl sub_8165B88
- ldr r6, =gBattlePartyID
+ ldr r6, =gBattlerPartyIndexes
ldrh r0, [r6, 0x2]
movs r5, 0x64
muls r0, r5
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
deleted file mode 100644
index 8a32f5b3a..000000000
--- a/asm/berry_tag_screen.s
+++ /dev/null
@@ -1,1538 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8177C14
-sub_8177C14: @ 8177C14
- push {r4,lr}
- ldr r4, =gUnknown_0203BCF4
- ldr r0, =0x0000180c
- bl AllocZeroed
- str r0, [r4]
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemIdToBerryType
- ldr r1, [r4]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xC0
- lsls r2, 5
- adds r1, r2
- strh r0, [r1]
- ldr r0, =sub_8177C84
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8177C14
-
- thumb_func_start sub_8177C54
-sub_8177C54: @ 8177C54
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8177C54
-
- thumb_func_start sub_8177C70
-sub_8177C70: @ 8177C70
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8177C70
-
- thumb_func_start sub_8177C84
-sub_8177C84: @ 8177C84
- push {lr}
-_08177C86:
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08177CAA
- bl sub_8177CB0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08177CAA
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08177C86
-_08177CAA:
- pop {r0}
- bx r0
- thumb_func_end sub_8177C84
-
- thumb_func_start sub_8177CB0
-sub_8177CB0: @ 8177CB0
- push {lr}
- sub sp, 0x4
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xF
- bls _08177CC4
- b _08177DF4
-_08177CC4:
- lsls r0, 2
- ldr r1, =_08177CD8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08177CD8:
- .4byte _08177D18
- .4byte _08177D26
- .4byte _08177D2C
- .4byte _08177D40
- .4byte _08177D46
- .4byte _08177D4C
- .4byte _08177D5C
- .4byte _08177D78
- .4byte _08177D84
- .4byte _08177D8A
- .4byte _08177D90
- .4byte _08177D96
- .4byte _08177D9C
- .4byte _08177DA6
- .4byte _08177DB4
- .4byte _08177DC2
-_08177D18:
- bl SetVBlankHBlankCallbacksToNull
- bl ResetVramOamAndBgCntRegs
- bl clear_scheduled_bg_copies_to_vram
- b _08177DDC
-_08177D26:
- bl ScanlineEffect_Stop
- b _08177DDC
-_08177D2C:
- bl ResetPaletteFade
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- b _08177DDA
- .pool
-_08177D40:
- bl ResetSpriteData
- b _08177DDC
-_08177D46:
- bl FreeAllSpritePalettes
- b _08177DDC
-_08177D4C:
- bl sub_81221AC
- lsls r0, 24
- cmp r0, 0
- bne _08177DDC
- bl ResetTasks
- b _08177DDC
-_08177D5C:
- bl sub_8177E14
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- ldr r1, =0x00001808
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _08177DDC
- .pool
-_08177D78:
- bl sub_8177E88
- lsls r0, 24
- cmp r0, 0
- beq _08177E0C
- b _08177DDC
-_08177D84:
- bl sub_8178008
- b _08177DDC
-_08177D8A:
- bl sub_8178090
- b _08177DDC
-_08177D90:
- bl sub_81780F4
- b _08177DDC
-_08177D96:
- bl sub_8178338
- b _08177DDC
-_08177D9C:
- bl sub_817839C
- bl sub_8178404
- b _08177DDC
-_08177DA6:
- ldr r0, =sub_8178654
- movs r1, 0
- bl CreateTask
- b _08177DDC
- .pool
-_08177DB4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08177DDC
-_08177DC2:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
-_08177DDA:
- strb r0, [r2, 0x8]
-_08177DDC:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08177E0C
- .pool
-_08177DF4:
- ldr r0, =sub_8177C70
- bl SetVBlankCallback
- ldr r0, =sub_8177C54
- bl SetMainCallback2
- movs r0, 0x1
- b _08177E0E
- .pool
-_08177E0C:
- movs r0, 0
-_08177E0E:
- add sp, 0x4
- pop {r1}
- bx r1
- thumb_func_end sub_8177CB0
-
- thumb_func_start sub_8177E14
-sub_8177E14: @ 8177E14
- push {r4,lr}
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085EFCF0
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203BCF4
- ldr r1, [r4]
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 4
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8177E14
-
- thumb_func_start sub_8177E88
-sub_8177E88: @ 8177E88
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_0203BCF4
- ldr r0, [r1]
- ldr r2, =0x00001808
- adds r0, r2
- ldrh r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x5
- bls _08177E9E
- b _08177FEC
-_08177E9E:
- lsls r0, 2
- ldr r1, =_08177EB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08177EB4:
- .4byte _08177ECC
- .4byte _08177EF8
- .4byte _08177F1C
- .4byte _08177F3C
- .4byte _08177FA8
- .4byte _08177FC8
-_08177ECC:
- bl reset_temp_tile_data_buffers
- ldr r1, =gUnknown_08D9BB44
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, =gUnknown_0203BCF4
- ldr r1, [r0]
- ldr r0, =0x00001808
- adds r1, r0
- b _08177FD6
- .pool
-_08177EF8:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08177F06
- b _08177FFC
-_08177F06:
- ldr r0, =gUnknown_08D9BF98
- ldr r4, =gUnknown_0203BCF4
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r1, [r4]
- b _08177FD2
- .pool
-_08177F1C:
- ldr r0, =gUnknown_08D9C13C
- ldr r1, [r7]
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- bl LZDecompressWram
- ldr r1, [r7]
- ldr r0, =0x00001808
- adds r1, r0
- b _08177FD6
- .pool
-_08177F3C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08177F78
- movs r2, 0
- ldr r6, =gUnknown_0203BCF4
- movs r5, 0x80
- lsls r5, 4
- ldr r4, =0x00004042
- ldr r3, =0x000003ff
-_08177F52:
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r5
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _08177F52
- b _08177F98
- .pool
-_08177F78:
- movs r2, 0
- ldr r6, =gUnknown_0203BCF4
- movs r5, 0x80
- lsls r5, 4
- ldr r4, =0x00005042
- ldr r3, =0x000003ff
-_08177F84:
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r5
- adds r0, r1
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _08177F84
-_08177F98:
- ldr r1, [r7]
- b _08177FD2
- .pool
-_08177FA8:
- ldr r0, =gUnknown_08D9BEF0
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_0203BCF4
- ldr r1, [r0]
- ldr r0, =0x00001808
- adds r1, r0
- b _08177FD6
- .pool
-_08177FC8:
- ldr r0, =gUnknown_0857FDEC
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0203BCF4
- ldr r1, [r0]
-_08177FD2:
- ldr r2, =0x00001808
- adds r1, r2
-_08177FD6:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08177FFC
- .pool
-_08177FEC:
- ldr r0, =gUnknown_0857FDF4
- bl LoadCompressedObjectPalette
- movs r0, 0x1
- b _08177FFE
- .pool
-_08177FFC:
- movs r0, 0
-_08177FFE:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8177E88
-
- thumb_func_start sub_8178008
-sub_8178008: @ 8178008
- push {r4,lr}
- ldr r0, =gUnknown_085EFD28
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r0, =gUnknown_085EFD00
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- movs r4, 0
-_08178020:
- lsls r0, r4, 24
- lsrs r0, 24
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08178020
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178008
-
- thumb_func_start sub_817804C
-sub_817804C: @ 817804C
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r6, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_085EFD20
- adds r4, r5
- str r4, [sp, 0x8]
- lsls r6, 24
- asrs r6, 24
- str r6, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- bl AddTextPrinterParameterized2
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817804C
-
- thumb_func_start sub_8178090
-sub_8178090: @ 8178090
- push {r4,lr}
- sub sp, 0x8
- movs r0, 0
- bl GetBgTilemapBuffer
- ldr r1, =gUnknown_0203BCF4
- ldr r1, [r1]
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2
- movs r2, 0x80
- lsls r2, 4
- bl memcpy
- movs r0, 0x3
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- ldr r4, =gText_BerryTag
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x40
- bl GetStringCenterAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x3
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_817804C
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178090
-
- thumb_func_start sub_81780F4
-sub_81780F4: @ 81780F4
- push {lr}
- bl sub_8178110
- bl sub_8178174
- bl itemid_copy_name
- bl sub_81782D0
- bl sub_8178304
- pop {r0}
- bx r0
- thumb_func_end sub_81780F4
-
- thumb_func_start sub_8178110
-sub_8178110: @ 8178110
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r5, =gUnknown_0203BCF4
- ldr r0, [r5]
- movs r4, 0xC0
- lsls r4, 5
- adds r0, r4
- ldrb r0, [r0]
- bl GetBerryInfo
- adds r6, r0, 0
- ldr r0, =gStringVar1
- ldr r1, [r5]
- adds r1, r4
- ldrh r1, [r1]
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar2
- adds r1, r6, 0
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_UnkF908Var1Var2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_817804C
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178110
-
- thumb_func_start sub_8178174
-sub_8178174: @ 8178174
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- bl GetBerryInfo
- adds r4, r0, 0
- ldr r2, =gText_SizeSlash
- movs r7, 0x1
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldrh r0, [r4, 0x8]
- cmp r0, 0
- beq _08178230
- adds r1, r0, 0
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- movs r1, 0xFE
- bl __divsi3
- adds r5, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _081781C8
- adds r5, 0xA
-_081781C8:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- movs r1, 0xA
- bl __udivsi3
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- adds r5, r0, 0
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_Var1DotVar2
- adds r0, r4, 0
- bl StringExpandPlaceholders
- str r7, [sp]
- str r6, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x28
- bl PrintTextOnWindow
- b _08178242
- .pool
-_08178230:
- ldr r2, =gText_ThreeMarks
- str r7, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x28
- bl PrintTextOnWindow
-_08178242:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178174
-
- thumb_func_start itemid_copy_name
-itemid_copy_name: @ 8178250
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- bl GetBerryInfo
- adds r6, r0, 0
- ldr r2, =gText_FirmSlash
- movs r5, 0x11
- str r5, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- beq _081782B0
- ldr r0, =gBerryFirmnessStringPointers
- ldrb r1, [r6, 0x7]
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- str r5, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x28
- bl PrintTextOnWindow
- b _081782C2
- .pool
-_081782B0:
- ldr r2, =gText_ThreeMarks
- str r5, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x28
- bl PrintTextOnWindow
-_081782C2:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end itemid_copy_name
-
- thumb_func_start sub_81782D0
-sub_81782D0: @ 81782D0
- push {lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- bl GetBerryInfo
- ldr r2, [r0, 0xC]
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81782D0
-
- thumb_func_start sub_8178304
-sub_8178304: @ 8178304
- push {lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- bl GetBerryInfo
- ldr r2, [r0, 0x10]
- movs r0, 0x11
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178304
-
- thumb_func_start sub_8178338
-sub_8178338: @ 8178338
- push {r4,lr}
- ldr r4, =gUnknown_0203BCF4
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80D50D4
- ldr r1, [r4]
- ldr r2, =0x00001802
- adds r1, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178338
-
- thumb_func_start sub_817836C
-sub_817836C: @ 817836C
- push {lr}
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- ldr r1, =0x00001802
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- bl sub_80D510C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817836C
-
- thumb_func_start sub_817839C
-sub_817839C: @ 817839C
- push {r4,lr}
- movs r0, 0x40
- bl sub_80D518C
- ldr r4, =gUnknown_0203BCF4
- ldr r1, [r4]
- ldr r2, =0x00001803
- adds r1, r2
- strb r0, [r1]
- movs r0, 0x68
- bl sub_80D518C
- ldr r1, [r4]
- ldr r2, =0x00001804
- adds r1, r2
- strb r0, [r1]
- movs r0, 0x90
- bl sub_80D518C
- ldr r1, [r4]
- ldr r2, =0x00001805
- adds r1, r2
- strb r0, [r1]
- movs r0, 0xB8
- bl sub_80D518C
- ldr r1, [r4]
- ldr r2, =0x00001806
- adds r1, r2
- strb r0, [r1]
- movs r0, 0xE0
- bl sub_80D518C
- ldr r1, [r4]
- ldr r2, =0x00001807
- adds r1, r2
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817839C
-
- thumb_func_start sub_8178404
-sub_8178404: @ 8178404
- push {r4,r5,lr}
- ldr r4, =gUnknown_0203BCF4
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 5
- adds r0, r1
- ldrb r0, [r0]
- bl GetBerryInfo
- adds r5, r0, 0
- ldrb r0, [r5, 0x15]
- cmp r0, 0
- beq _08178448
- ldr r3, =gSprites
- ldr r0, [r4]
- ldr r1, =0x00001803
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _08178462
- .pool
-_08178448:
- ldr r3, =gSprites
- ldr r0, [r4]
- ldr r1, =0x00001803
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_08178462:
- strb r1, [r0]
- adds r4, r3, 0
- ldrb r0, [r5, 0x16]
- cmp r0, 0
- beq _0817849C
- ldr r3, =gUnknown_0203BCF4
- ldr r0, [r3]
- ldr r1, =0x00001804
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _081784B6
- .pool
-_0817849C:
- ldr r3, =gUnknown_0203BCF4
- ldr r0, [r3]
- ldr r1, =0x00001804
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_081784B6:
- strb r1, [r0]
- ldrb r0, [r5, 0x17]
- cmp r0, 0
- beq _081784E8
- ldr r0, [r3]
- ldr r1, =0x00001805
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _08178500
- .pool
-_081784E8:
- ldr r0, [r3]
- ldr r1, =0x00001805
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_08178500:
- strb r1, [r0]
- ldrb r0, [r5, 0x18]
- cmp r0, 0
- beq _0817852C
- ldr r0, [r3]
- ldr r1, =0x00001806
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _08178544
- .pool
-_0817852C:
- ldr r0, [r3]
- ldr r1, =0x00001806
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_08178544:
- strb r1, [r0]
- ldrb r0, [r5, 0x19]
- cmp r0, 0
- beq _08178570
- ldr r0, [r3]
- ldr r1, =0x00001807
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- b _08178588
- .pool
-_08178570:
- ldr r0, [r3]
- ldr r1, =0x00001807
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
-_08178588:
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178404
-
- thumb_func_start sub_8178594
-sub_8178594: @ 8178594
- push {r4,lr}
- movs r4, 0
-_08178598:
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- ldr r1, =0x00001803
- adds r0, r1
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08178598
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178594
-
- thumb_func_start sub_81785D0
-sub_81785D0: @ 81785D0
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8178610
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81785D0
-
- thumb_func_start sub_8178610
-sub_8178610: @ 8178610
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08178642
- bl sub_817836C
- bl sub_8178594
- ldr r0, =gUnknown_0203BCF4
- ldr r0, [r0]
- bl Free
- bl FreeAllWindowBuffers
- ldr r0, =bag_menu_mail_related
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08178642:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178610
-
- thumb_func_start sub_8178654
-sub_8178654: @ 8178654
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081786A6
- ldr r3, =gMain
- ldrh r0, [r3, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _08178688
- movs r1, 0x1
- negs r1, r1
- adds r0, r2, 0
- bl sub_81786AC
- b _081786A6
- .pool
-_08178688:
- cmp r1, 0x80
- bne _08178696
- adds r0, r2, 0
- movs r1, 0x1
- bl sub_81786AC
- b _081786A6
-_08178696:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081786A6
- adds r0, r4, 0
- bl sub_81785D0
-_081786A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8178654
-
- thumb_func_start sub_81786AC
-sub_81786AC: @ 81786AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r2, =gTasks + 0x8
- adds r4, r0, r2
- ldr r2, =gUnknown_0203CE58
- ldrh r0, [r2, 0xE]
- ldrh r2, [r2, 0x18]
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- lsrs r7, r1, 24
- asrs r6, r1, 24
- adds r0, r6
- cmp r0, 0x2D
- bhi _08178718
- lsls r1, r0, 16
- lsrs r1, 16
- movs r0, 0x4
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- cmp r0, 0
- beq _08178718
- cmp r6, 0
- bge _081786F4
- movs r0, 0x2
- b _081786F6
- .pool
-_081786F4:
- movs r0, 0x1
-_081786F6:
- strh r0, [r4, 0x2]
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x5
- bl PlaySE
- lsls r0, r7, 24
- asrs r0, 24
- bl sub_8178728
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81787AC
- str r1, [r0]
-_08178718:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81786AC
-
- thumb_func_start sub_8178728
-sub_8178728: @ 8178728
- push {r4-r6,lr}
- ldr r5, =gUnknown_0203CE70
- adds r6, r5, 0
- subs r6, 0xA
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- ble _08178764
- ldrh r0, [r6]
- cmp r0, 0x3
- bls _08178752
- ldrh r1, [r5]
- adds r1, 0x8
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- cmp r0, 0
- bne _08178760
-_08178752:
- ldrh r0, [r6]
- adds r0, r4
- strh r0, [r6]
- b _0817877A
- .pool
-_08178760:
- ldrh r0, [r5]
- b _08178776
-_08178764:
- ldrh r1, [r6]
- cmp r1, 0x3
- bhi _08178770
- ldrh r0, [r5]
- cmp r0, 0
- bne _08178776
-_08178770:
- adds r0, r1, r4
- strh r0, [r6]
- b _0817877A
-_08178776:
- adds r0, r4
- strh r0, [r5]
-_0817877A:
- ldrh r1, [r6]
- ldrh r5, [r5]
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- bl BagGetItemIdByPocketPosition
- lsls r0, 16
- lsrs r0, 16
- bl ItemIdToBerryType
- ldr r1, =gUnknown_0203BCF4
- ldr r1, [r1]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xC0
- lsls r2, 5
- adds r1, r2
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178728
-
- thumb_func_start sub_81787AC
-sub_81787AC: @ 81787AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- ldrh r0, [r6]
- adds r0, 0x10
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _08178828
- movs r2, 0
- ldrsh r0, [r6, r2]
- cmp r0, 0x70
- beq _08178888
- cmp r0, 0x70
- bgt _081787FE
- cmp r0, 0x40
- beq _0817881A
- cmp r0, 0x40
- bgt _081787F4
- cmp r0, 0x30
- beq _08178898
- b _081788A6
- .pool
-_081787F4:
- cmp r0, 0x50
- beq _0817888E
- cmp r0, 0x60
- beq _08178820
- b _081788A6
-_081787FE:
- cmp r0, 0xA0
- beq _08178824
- cmp r0, 0xA0
- bgt _08178810
- cmp r0, 0x80
- beq _08178882
- cmp r0, 0x90
- beq _08178878
- b _081788A6
-_08178810:
- cmp r0, 0xB0
- beq _08178872
- cmp r0, 0xC0
- beq _0817886C
- b _081788A6
-_0817881A:
- bl sub_8178110
- b _081788A6
-_08178820:
- movs r0, 0x1
- b _0817889A
-_08178824:
- movs r0, 0x2
- b _0817889A
-_08178828:
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x70
- beq _0817887E
- cmp r0, 0x70
- bgt _0817884C
- cmp r0, 0x40
- beq _0817886C
- cmp r0, 0x40
- bgt _08178842
- cmp r0, 0x30
- beq _08178868
- b _081788A6
-_08178842:
- cmp r0, 0x50
- beq _08178872
- cmp r0, 0x60
- beq _08178878
- b _081788A6
-_0817884C:
- cmp r0, 0xA0
- beq _0817888E
- cmp r0, 0xA0
- bgt _0817885E
- cmp r0, 0x80
- beq _08178882
- cmp r0, 0x90
- beq _08178888
- b _081788A6
-_0817885E:
- cmp r0, 0xB0
- beq _08178898
- cmp r0, 0xC0
- beq _081788A2
- b _081788A6
-_08178868:
- movs r0, 0x2
- b _0817889A
-_0817886C:
- bl sub_8178304
- b _081788A6
-_08178872:
- bl sub_81782D0
- b _081788A6
-_08178878:
- bl sub_8178404
- b _081788A6
-_0817887E:
- movs r0, 0x1
- b _0817889A
-_08178882:
- bl itemid_copy_name
- b _081788A6
-_08178888:
- bl sub_8178174
- b _081788A6
-_0817888E:
- bl sub_817836C
- bl sub_8178338
- b _081788A6
-_08178898:
- movs r0, 0
-_0817889A:
- movs r1, 0
- bl FillWindowPixelBuffer
- b _081788A6
-_081788A2:
- bl sub_8178110
-_081788A6:
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bne _081788B8
- ldrh r0, [r6]
- negs r0, r0
- lsls r0, 16
- lsrs r5, r0, 16
- b _081788BA
-_081788B8:
- ldrh r5, [r6]
-_081788BA:
- ldr r2, =gSprites
- ldr r3, =gUnknown_0203BCF4
- ldr r0, [r3]
- ldr r1, =0x00001802
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x26]
- movs r4, 0
- adds r7, r2, 0
- ldr r2, =0x00001803
-_081788D6:
- ldr r0, [r3]
- adds r0, r2
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x26]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081788D6
- movs r4, 0x80
- lsls r4, 5
- ldrb r2, [r6, 0x2]
- movs r0, 0x1
- adds r1, r4, 0
- bl ChangeBgY
- ldrb r2, [r6, 0x2]
- movs r0, 0x2
- adds r1, r4, 0
- bl ChangeBgY
- movs r2, 0
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08178922
- ldr r0, =gTasks
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_8178654
- str r0, [r1]
-_08178922:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81787AC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 611b87eef..1d2f5d1ff 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -178,7 +178,7 @@ _080B24C8:
b _080B24F2
_080B24CC:
ldr r4, =gStringVar1
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -239,7 +239,7 @@ sub_80B252C: @ 80B252C
ands r0, r1
cmp r0, 0
beq _080B2570
- bl sub_800B320
+ bl IsLinkConnectionEstablished
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -269,7 +269,7 @@ sub_80B2578: @ 80B2578
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_800B320
+ bl IsLinkConnectionEstablished
lsls r0, 24
cmp r0, 0
beq _080B258E
@@ -404,7 +404,7 @@ sub_80B2688: @ 80B2688
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
@@ -426,7 +426,7 @@ sub_80B2688: @ 80B2688
adds r4, r0, r1
movs r0, 0
strh r0, [r4, 0xE]
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -506,7 +506,7 @@ sub_80B275C: @ 80B275C
mov r9, r0
mov r7, r8
add r7, r9
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
@@ -585,7 +585,7 @@ sub_80B2804: @ 80B2804
bne _080B2898
bl sub_800AA48
adds r4, r0, 0
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -652,7 +652,7 @@ sub_80B28A8: @ 80B28A8
lsrs r0, 24
cmp r0, 0x1
beq _080B290A
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
adds r4, r0, 0
bl sub_800AA48
lsls r4, 24
@@ -729,13 +729,13 @@ _080B297C:
cmp r2, 0x9
bne _080B2994
_080B2984:
- bl sub_80097E8
+ bl CloseLink
bl HideFieldMessageBox
ldr r0, =sub_80B2CB0
b _080B29E4
.pool
_080B2994:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
ldr r4, =gUnknown_03005DB8
strb r0, [r4]
bl GetMultiplayerId
@@ -812,7 +812,7 @@ _080B2A42:
cmp r0, 0x9
bne _080B2A6C
_080B2A4A:
- bl sub_80097E8
+ bl CloseLink
_080B2A4E:
bl HideFieldMessageBox
ldr r0, =gTasks
@@ -825,7 +825,7 @@ _080B2A4E:
b _080B2ACE
.pool
_080B2A6C:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
ldr r4, =gUnknown_03005DB8
strb r0, [r4]
bl GetMultiplayerId
@@ -1610,7 +1610,7 @@ sub_80B3144: @ 80B3144
ldrsh r2, [r4, r3]
cmp r2, 0
bne _080B3178
- bl sub_8009734
+ bl OpenLink
bl sub_800A2BC
ldr r0, =task00_08081A90
movs r1, 0x50
@@ -1640,12 +1640,12 @@ sub_80B3194: @ 80B3194
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080B31DA
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -1681,7 +1681,7 @@ sub_80B31E8: @ 80B31E8
lsrs r5, r0, 24
bl sub_800AA48
adds r4, r0, 0
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -1808,7 +1808,7 @@ _080B32E0:
_080B32F8:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r1, =gLinkType
ldr r2, =0x00002211
adds r0, r2, 0
@@ -1921,7 +1921,7 @@ _080B33E8:
_080B3408:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =gLinkType
ldr r2, =0x00002211
adds r1, r2, 0
@@ -2399,7 +2399,7 @@ _080B382E:
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
bl sub_8009FAC
b _080B3864
_080B3840:
@@ -2470,7 +2470,7 @@ _080B38C6:
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
bl Rfu_set_zero
b _080B38FC
_080B38D8:
@@ -2651,7 +2651,7 @@ task00_08081A90: @ 80B3A30
lsls r0, 17
cmp r1, r0
ble _080B3A62
- bl sub_80097E8
+ bl CloseLink
ldr r0, =c2_800ACD4
bl SetMainCallback2
adds r0, r4, 0
@@ -2669,7 +2669,7 @@ _080B3A62:
lsls r0, 24
cmp r0, 0
bne _080B3A86
- bl sub_80097E8
+ bl CloseLink
ldr r0, =c2_800ACD4
bl SetMainCallback2
_080B3A86:
@@ -2761,7 +2761,7 @@ _080B3B2A:
b _080B3BB8
.pool
_080B3B40:
- bl sub_8009734
+ bl OpenLink
ldr r0, =task00_08081A90
movs r1, 0x1
bl CreateTask
@@ -2779,14 +2779,14 @@ _080B3B54:
strh r0, [r5, 0x2]
b _080B3B96
_080B3B68:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
adds r4, r0, 0
bl sub_800AA48
lsls r4, 24
lsls r0, 24
cmp r4, r0
bcc _080B3BB8
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _080B3B96
diff --git a/asm/contest.s b/asm/contest.s
index 3c34965ad..87abc1d06 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -563,7 +563,7 @@ _080D7B4E:
bl sub_80D779C
bl sub_80D77E4
bl sub_80D7678
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl ResetPaletteFade
ldr r2, =gPaletteFade
ldrb r0, [r2, 0x8]
@@ -1048,7 +1048,7 @@ _080D8004:
bl sub_80DC594
bl sub_80DC5E8
bl sub_80DC7EC
- ldr r1, =gBanksByIdentity
+ ldr r1, =gBattlerPositions
strb r4, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
@@ -1058,12 +1058,12 @@ _080D8004:
strb r2, [r1, 0x3]
ldr r0, =gBattleTypeFlags
str r4, [r0]
- ldr r4, =gBankAttacker
+ ldr r4, =gBattlerAttacker
strb r2, [r4]
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
strb r3, [r0]
bl sub_80DB0C4
- ldr r2, =gBankSpriteIds
+ ldr r2, =gBattlerSpriteIds
ldrb r1, [r4]
adds r1, r2
strb r0, [r1]
@@ -1367,7 +1367,7 @@ vblank_cb_battle: @ 80D827C
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.pool
@@ -2547,8 +2547,8 @@ _080D8DD0:
lsls r4, 3
adds r4, r0
strh r5, [r4, 0xC]
- ldr r1, =gBankSpriteIds
- ldr r0, =gBankAttacker
+ ldr r1, =gBattlerSpriteIds
+ ldr r0, =gBattlerAttacker
ldrb r0, [r0]
adds r0, r1
strb r5, [r0]
@@ -13796,9 +13796,9 @@ sub_80DEA20: @ 80DEA20
push {lr}
ldr r0, =SpriteCallbackDummy
bl CreateInvisibleSpriteWithCallback
- ldr r1, =gBankSpriteIds
+ ldr r1, =gBattlerSpriteIds
strb r0, [r1, 0x3]
- ldr r0, =gBankTarget
+ ldr r0, =gBattlerTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -13817,7 +13817,7 @@ sub_80DEA20: @ 80DEA20
thumb_func_start sub_80DEA5C
sub_80DEA5C: @ 80DEA5C
push {r4,lr}
- ldr r0, =gBankSpriteIds
+ ldr r0, =gBattlerSpriteIds
ldrb r0, [r0, 0x3]
lsls r4, r0, 4
adds r4, r0
@@ -13829,13 +13829,13 @@ sub_80DEA5C: @ 80DEA5C
strh r0, [r4, 0x26]
movs r0, 0x3
movs r1, 0
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x20]
movs r0, 0x3
movs r1, 0x1
- bl GetBankPosition
+ bl GetBattlerSpriteCoord
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x22]
@@ -13905,12 +13905,12 @@ _080DEAD0:
.4byte _080DEB60
.4byte _080DEB60
_080DEB54:
- ldr r1, =gBankTarget
+ ldr r1, =gBattlerTarget
movs r0, 0x2
b _080DEB64
.pool
_080DEB60:
- ldr r1, =gBankTarget
+ ldr r1, =gBattlerTarget
movs r0, 0x3
_080DEB64:
strb r0, [r1]
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index 55503fde1..e73c657a9 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -344,7 +344,7 @@ sub_80F5B00: @ 80F5B00
bl SetVBlankCallback
bl sub_80F7DF4
bl sub_80F57C4
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl ResetPaletteFade
bl ResetSpriteData
bl ResetTasks
@@ -492,7 +492,7 @@ sub_80F5C24: @ 80F5C24
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.pool
diff --git a/asm/coord_event_weather.s b/asm/coord_event_weather.s
deleted file mode 100644
index 7c1188ad6..000000000
--- a/asm/coord_event_weather.s
+++ /dev/null
@@ -1,156 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809D7BC
-sub_809D7BC: @ 809D7BC
- push {lr}
- movs r0, 0x1
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7BC
-
- thumb_func_start sub_809D7C8
-sub_809D7C8: @ 809D7C8
- push {lr}
- movs r0, 0x2
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7C8
-
- thumb_func_start sub_809D7D4
-sub_809D7D4: @ 809D7D4
- push {lr}
- movs r0, 0x3
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7D4
-
- thumb_func_start sub_809D7E0
-sub_809D7E0: @ 809D7E0
- push {lr}
- movs r0, 0x4
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7E0
-
- thumb_func_start sub_809D7EC
-sub_809D7EC: @ 809D7EC
- push {lr}
- movs r0, 0x5
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7EC
-
- thumb_func_start sub_809D7F8
-sub_809D7F8: @ 809D7F8
- push {lr}
- movs r0, 0x6
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D7F8
-
- thumb_func_start sub_809D804
-sub_809D804: @ 809D804
- push {lr}
- movs r0, 0x9
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D804
-
- thumb_func_start sub_809D810
-sub_809D810: @ 809D810
- push {lr}
- movs r0, 0x7
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D810
-
- thumb_func_start sub_809D81C
-sub_809D81C: @ 809D81C
- push {lr}
- movs r0, 0x8
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D81C
-
- thumb_func_start sub_809D828
-sub_809D828: @ 809D828
- push {lr}
- movs r0, 0xB
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D828
-
- thumb_func_start sub_809D834
-sub_809D834: @ 809D834
- push {lr}
- movs r0, 0xC
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D834
-
- thumb_func_start sub_809D840
-sub_809D840: @ 809D840
- push {lr}
- movs r0, 0x14
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D840
-
- thumb_func_start sub_809D84C
-sub_809D84C: @ 809D84C
- push {lr}
- movs r0, 0x15
- bl sub_80AEDF0
- pop {r0}
- bx r0
- thumb_func_end sub_809D84C
-
- thumb_func_start trigger_activate_weather
-trigger_activate_weather: @ 809D858
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, =gUnknown_085102E0
-_0809D862:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0809D87C
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _0809D886
- .pool
-_0809D87C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _0809D862
-_0809D886:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end trigger_activate_weather
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 86c78d2cf..db2ffac14 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -652,7 +652,7 @@ sub_811A7E4: @ 811A7E4
_0811A804:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
b _0811A840
_0811A80E:
ldr r0, =gPaletteFade
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index e0e7b5efb..89e6efa6a 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -2155,7 +2155,7 @@ trigger_activate: @ 809D04C
cmp r1, 0
bne _0809D062
ldrb r0, [r4, 0x6]
- bl trigger_activate_weather
+ bl DoCoordEventWeather
b _0809D082
_0809D062:
ldrh r0, [r4, 0x6]
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
deleted file mode 100644
index 44272603c..000000000
--- a/asm/field_message_box.s
+++ /dev/null
@@ -1,337 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8098128
-sub_8098128: @ 8098128
- ldr r1, =gUnknown_020375BC
- movs r0, 0
- strb r0, [r1]
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- movs r1, 0x3
- negs r1, r1
- ands r0, r1
- subs r1, 0x2
- ands r0, r1
- subs r1, 0x4
- ands r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_8098128
-
- thumb_func_start sub_8098154
-sub_8098154: @ 8098154
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08098188
- cmp r0, 0x1
- bgt _0809817C
- cmp r0, 0
- beq _08098182
- b _080981B0
- .pool
-_0809817C:
- cmp r0, 0x2
- beq _08098198
- b _080981B0
-_08098182:
- bl sub_81973A4
- b _08098190
-_08098188:
- movs r0, 0
- movs r1, 0x1
- bl NewMenuHelpers_DrawDialogueFrame
-_08098190:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080981B0
-_08098198:
- bl sub_8197224
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080981B0
- ldr r1, =gUnknown_020375BC
- movs r0, 0
- strb r0, [r1]
- adds r0, r5, 0
- bl DestroyTask
-_080981B0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098154
-
- thumb_func_start task_add_textbox
-task_add_textbox: @ 80981BC
- push {lr}
- ldr r0, =sub_8098154
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_add_textbox
-
- thumb_func_start task_del_textbox
-task_del_textbox: @ 80981D0
- push {lr}
- ldr r0, =sub_8098154
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080981E4
- bl DestroyTask
-_080981E4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_del_textbox
-
- thumb_func_start ShowFieldMessage
-ShowFieldMessage: @ 80981EC
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, =gUnknown_020375BC
- ldrb r0, [r4]
- cmp r0, 0
- bne _0809820C
- adds r0, r1, 0
- movs r1, 0x1
- bl textbox_fdecode_auto_and_task_add
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x1
- b _0809820E
- .pool
-_0809820C:
- movs r0, 0
-_0809820E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ShowFieldMessage
-
- thumb_func_start sub_8098214
-sub_8098214: @ 8098214
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8196094
- adds r1, r0, 0
- cmp r1, 0
- bne _0809822E
- ldr r0, =gUnknown_020375BC
- strb r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0809822E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098214
-
- thumb_func_start sub_8098238
-sub_8098238: @ 8098238
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gUnknown_020375BC
- ldrb r0, [r5]
- cmp r0, 0
- bne _08098270
- ldr r0, =gStringVar4
- adds r1, r4, 0
- bl StringExpandPlaceholders
- ldr r0, =sub_8098214
- movs r1, 0
- bl CreateTask
- adds r0, r4, 0
- bl sub_8196080
- movs r0, 0x2
- strb r0, [r5]
- movs r0, 0x1
- b _08098272
- .pool
-_08098270:
- movs r0, 0
-_08098272:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8098238
-
- thumb_func_start ShowFieldAutoScrollMessage
-ShowFieldAutoScrollMessage: @ 8098278
- push {lr}
- adds r1, r0, 0
- ldr r2, =gUnknown_020375BC
- ldrb r0, [r2]
- cmp r0, 0
- bne _08098298
- movs r0, 0x3
- strb r0, [r2]
- adds r0, r1, 0
- movs r1, 0
- bl textbox_fdecode_auto_and_task_add
- movs r0, 0x1
- b _0809829A
- .pool
-_08098298:
- movs r0, 0
-_0809829A:
- pop {r1}
- bx r1
- thumb_func_end ShowFieldAutoScrollMessage
-
- thumb_func_start sub_80982A0
-sub_80982A0: @ 80982A0
- push {lr}
- ldr r2, =gUnknown_020375BC
- movs r1, 0x3
- strb r1, [r2]
- movs r1, 0x1
- bl textbox_fdecode_auto_and_task_add
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80982A0
-
- thumb_func_start sub_80982B8
-sub_80982B8: @ 80982B8
- push {lr}
- ldr r1, =gUnknown_020375BC
- ldrb r0, [r1]
- cmp r0, 0
- bne _080982D4
- movs r0, 0x2
- strb r0, [r1]
- bl textbox_auto_and_task_add
- movs r0, 0x1
- b _080982D6
- .pool
-_080982D4:
- movs r0, 0
-_080982D6:
- pop {r1}
- bx r1
- thumb_func_end sub_80982B8
-
- thumb_func_start textbox_fdecode_auto_and_task_add
-textbox_fdecode_auto_and_task_add: @ 80982DC
- push {r4,lr}
- adds r2, r0, 0
- adds r4, r1, 0
- ldr r0, =gStringVar4
- adds r1, r2, 0
- bl StringExpandPlaceholders
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl AddTextPrinterForMessage
- bl task_add_textbox
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end textbox_fdecode_auto_and_task_add
-
- thumb_func_start textbox_auto_and_task_add
-textbox_auto_and_task_add: @ 8098304
- push {lr}
- movs r0, 0x1
- bl AddTextPrinterForMessage
- bl task_add_textbox
- pop {r0}
- bx r0
- thumb_func_end textbox_auto_and_task_add
-
- thumb_func_start HideFieldMessageBox
-HideFieldMessageBox: @ 8098314
- push {lr}
- bl task_del_textbox
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- ldr r1, =gUnknown_020375BC
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end HideFieldMessageBox
-
- thumb_func_start textbox_any_visible
-textbox_any_visible: @ 8098330
- ldr r0, =gUnknown_020375BC
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end textbox_any_visible
-
- thumb_func_start IsFieldMessageBoxHidden
-IsFieldMessageBoxHidden: @ 809833C
- push {lr}
- ldr r0, =gUnknown_020375BC
- ldrb r0, [r0]
- cmp r0, 0
- beq _08098350
- movs r0, 0
- b _08098352
- .pool
-_08098350:
- movs r0, 0x1
-_08098352:
- pop {r1}
- bx r1
- thumb_func_end IsFieldMessageBoxHidden
-
- thumb_func_start sub_8098358
-sub_8098358: @ 8098358
- push {lr}
- bl task_del_textbox
- movs r0, 0
- movs r1, 0x1
- bl NewMenuHelpers_DrawStdWindowFrame
- ldr r1, =gUnknown_020375BC
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098358
-
- thumb_func_start sub_8098374
-sub_8098374: @ 8098374
- push {lr}
- bl task_del_textbox
- ldr r1, =gUnknown_020375BC
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098374
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_screen.s b/asm/field_screen.s
index 6b49b9c7c..d05028cc6 100644
--- a/asm/field_screen.s
+++ b/asm/field_screen.s
@@ -1625,8 +1625,8 @@ _080ABCBC:
.pool
thumb_func_end sub_80ABC7C
- thumb_func_start fade_screen
-fade_screen: @ 80ABCD0
+ thumb_func_start FadeScreen
+FadeScreen: @ 80ABCD0
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
@@ -1762,7 +1762,7 @@ _080ABDE4:
pop {r0}
bx r0
.pool
- thumb_func_end fade_screen
+ thumb_func_end FadeScreen
thumb_func_start sub_80ABDFC
sub_80ABDFC: @ 80ABDFC
@@ -2339,43 +2339,43 @@ _080AC290:
.4byte _080AC300
_080AC2B8:
movs r0, 0x1
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2C0:
movs r0, 0x2
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2C8:
movs r0, 0x3
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2D0:
movs r0, 0x4
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2D8:
movs r0, 0x5
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2E0:
movs r0, 0x6
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2E8:
movs r0, 0x9
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2F0:
movs r0, 0x7
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC2F8:
movs r0, 0x8
- bl sub_80AEDF0
+ bl SetWeather
b _080AC306
_080AC300:
movs r0, 0xB
- bl sub_80AEDF0
+ bl SetWeather
_080AC306:
pop {r0}
bx r0
@@ -2472,15 +2472,15 @@ _080AC3B6:
bx r0
thumb_func_end play_some_sound
- thumb_func_start sub_80AC3BC
-sub_80AC3BC: @ 80AC3BC
+ thumb_func_start IsWeatherChangeComplete
+IsWeatherChangeComplete: @ 80AC3BC
ldr r0, =gUnknown_02038454
ldr r1, =0x000006d3
adds r0, r1
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end sub_80AC3BC
+ thumb_func_end IsWeatherChangeComplete
thumb_func_start sub_80AC3D0
sub_80AC3D0: @ 80AC3D0
@@ -7537,8 +7537,8 @@ GetSav1Weather: @ 80AEDAC
.pool
thumb_func_end GetSav1Weather
- thumb_func_start sub_80AEDBC
-sub_80AEDBC: @ 80AEDBC
+ thumb_func_start SetSav1WeatherFromCurrMapHeader
+SetSav1WeatherFromCurrMapHeader: @ 80AEDBC
push {r4,r5,lr}
ldr r4, =gSaveBlock1Ptr
ldr r0, [r4]
@@ -7559,10 +7559,10 @@ sub_80AEDBC: @ 80AEDBC
pop {r0}
bx r0
.pool
- thumb_func_end sub_80AEDBC
+ thumb_func_end SetSav1WeatherFromCurrMapHeader
- thumb_func_start sub_80AEDF0
-sub_80AEDF0: @ 80AEDF0
+ thumb_func_start SetWeather
+SetWeather: @ 80AEDF0
push {lr}
bl SetSav1Weather
bl GetSav1Weather
@@ -7571,7 +7571,7 @@ sub_80AEDF0: @ 80AEDF0
bl weather_set
pop {r0}
bx r0
- thumb_func_end sub_80AEDF0
+ thumb_func_end SetWeather
thumb_func_start sub_80AEE08
sub_80AEE08: @ 80AEE08
@@ -7872,13 +7872,13 @@ _080AF06A:
bl palette_bg_faded_fill_black
movs r0, 0
movs r1, 0
- bl fade_screen
+ bl FadeScreen
b _080AF084
_080AF078:
bl palette_bg_faded_fill_white
movs r0, 0x2
movs r1, 0
- bl fade_screen
+ bl FadeScreen
_080AF084:
pop {r4}
pop {r0}
@@ -7891,7 +7891,7 @@ sub_80AF08C: @ 80AF08C
bl palette_bg_faded_fill_white
movs r0, 0x2
movs r1, 0x8
- bl fade_screen
+ bl FadeScreen
pop {r0}
bx r0
thumb_func_end sub_80AF08C
@@ -7902,7 +7902,7 @@ pal_fill_black: @ 80AF0A0
bl palette_bg_faded_fill_black
movs r0, 0
movs r1, 0
- bl fade_screen
+ bl FadeScreen
pop {r0}
bx r0
thumb_func_end pal_fill_black
@@ -7928,12 +7928,12 @@ sub_80AF0B4: @ 80AF0B4
_080AF0DA:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
b _080AF0EC
_080AF0E4:
movs r0, 0x3
movs r1, 0
- bl fade_screen
+ bl FadeScreen
_080AF0EC:
pop {r4}
pop {r0}
@@ -8761,7 +8761,7 @@ sub_80AF79C: @ 80AF79C
bl music_something
movs r0, 0x3
movs r1, 0x8
- bl fade_screen
+ bl FadeScreen
bl play_some_sound
ldr r0, =gFieldCallback
ldr r1, =sub_80AF3B0
@@ -8990,7 +8990,7 @@ _080AF99A:
bl sub_8009FAC
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
bl music_something
movs r0, 0x9
bl PlaySE
@@ -9572,12 +9572,12 @@ _080AFE30:
beq _080AFEBC
b _080AFEC6
_080AFE36:
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
adds r0, r1
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -9591,12 +9591,12 @@ _080AFE36:
b _080AFEC6
.pool
_080AFE64:
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
adds r0, r1
movs r6, 0x2
ldrsh r1, [r4, r6]
@@ -9631,7 +9631,7 @@ _080AFEB4:
bl DestroyTask
b _080AFEC6
_080AFEBC:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r5, 0
bl DestroyTask
_080AFEC6:
@@ -9665,12 +9665,12 @@ _080AFEF4:
beq _080AFF80
b _080AFF8A
_080AFEFA:
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
adds r0, r1
movs r2, 0x2
ldrsh r1, [r4, r2]
@@ -9684,12 +9684,12 @@ _080AFEFA:
b _080AFF8A
.pool
_080AFF28:
- ldr r0, =gUnknown_02039B28
+ ldr r0, =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
adds r0, r1
movs r6, 0x2
ldrsh r1, [r4, r6]
@@ -9724,7 +9724,7 @@ _080AFF78:
bl DestroyTask
b _080AFF8A
_080AFF80:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
adds r0, r5, 0
bl DestroyTask
_080AFF8A:
@@ -9914,7 +9914,7 @@ sub_80B00E8: @ 80B00E8
lsrs r0, 24
cmp r0, 0
beq _080B0116
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
ldr r1, =gUnknown_0854FE64
lsls r0, 1
adds r0, r1
@@ -9940,7 +9940,7 @@ _080B0116:
thumb_func_start door_upload_tiles
door_upload_tiles: @ 80B0124
push {r4,lr}
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldr r1, =0x00000e68
@@ -10261,7 +10261,7 @@ _080B0368:
bl sub_8199C30
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
movs r2, 0x4
ldrsh r1, [r5, r2]
movs r0, 0x6
@@ -10280,7 +10280,7 @@ _080B0368:
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
movs r0, 0x1
strh r0, [r5]
b _080B052C
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 200ab1fdb..29aca304f 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -5764,7 +5764,7 @@ sub_813ABD4: @ 813ABD4
adds r0, r4, 0
adds r1, r4, 0
adds r2, r5, 0
- bl AddItemIconObject
+ bl AddItemIconSprite
ldr r4, =gUnknown_0203AB6C
strb r0, [r4]
lsls r0, 24
@@ -7156,14 +7156,14 @@ sub_813B7D8: @ 813B7D8
ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
movs r0, 0
movs r1, 0x1
- bl sub_81D6720
+ bl DoRayquazaScene
b _0813B802
.pool
_0813B7F8:
ldr r2, =c2_exit_to_overworld_1_continue_scripts_restart_music
movs r0, 0x1
movs r1, 0
- bl sub_81D6720
+ bl DoRayquazaScene
_0813B802:
pop {r0}
bx r0
diff --git a/asm/intro.s b/asm/intro.s
index efc36e7d9..a0149851e 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -11,7 +11,7 @@ sub_816CBE8: @ 816CBE8
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_816CBE8
@@ -59,7 +59,7 @@ sub_816CC54: @ 816CC54
lsls r0, 24
cmp r0, 0
bne _0816CC66
- ldr r0, =c2_title_screen_1
+ ldr r0, =CB2_InitTitleScreen
bl SetMainCallback2
_0816CC66:
pop {r0}
@@ -337,13 +337,13 @@ _0816CEFA:
.pool
thumb_func_end c2_copyright_1
- thumb_func_start c2_show_copyright_and_intro_again_2
-c2_show_copyright_and_intro_again_2: @ 816CF0C
+ thumb_func_start CB2_InitCopyrightScreenAfterTitleScreen
+CB2_InitCopyrightScreenAfterTitleScreen: @ 816CF0C
push {lr}
bl do_copyright_screen
pop {r0}
bx r0
- thumb_func_end c2_show_copyright_and_intro_again_2
+ thumb_func_end CB2_InitCopyrightScreenAfterTitleScreen
thumb_func_start task_intro_1
@ void task_intro_1(int task_id)
@@ -2124,7 +2124,7 @@ task_intro_17: @ 816DEEC
movs r1, 0xA0
movs r2, 0x4
movs r3, 0x4
- bl sub_80BA384
+ bl ScanlineEffect_InitWave
add sp, 0xC
pop {r0}
bx r0
@@ -2411,7 +2411,7 @@ _0816E156:
adds r0, r1
ldr r1, =task_intro_19
str r1, [r0]
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_0816E176:
@@ -2623,7 +2623,7 @@ task_intro_19: @ 816E2A0
movs r1, 0xA0
movs r2, 0x4
movs r3, 0x4
- bl sub_80BA384
+ bl ScanlineEffect_InitWave
add sp, 0xC
pop {r4}
pop {r0}
@@ -3038,7 +3038,7 @@ _0816E69C:
adds r0, r1
ldr r1, =task_intro_21
str r1, [r0]
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
_0816E6BC:
diff --git a/asm/item_icon.s b/asm/item_icon.s
deleted file mode 100644
index e3fe4189a..000000000
--- a/asm/item_icon.s
+++ /dev/null
@@ -1,468 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start AllocItemIconTemporaryBuffers
-@ bool8 AllocItemIconTemporaryBuffers()
-AllocItemIconTemporaryBuffers: @ 81AFDE4
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203CEBC
- movs r0, 0x90
- lsls r0, 1
- bl Alloc
- str r0, [r5]
- cmp r0, 0
- beq _081AFE1A
- ldr r4, =gUnknown_0203CEC0
- movs r0, 0x80
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- cmp r0, 0
- beq _081AFE14
- movs r0, 0x1
- b _081AFE1C
- .pool
-_081AFE14:
- ldr r0, [r5]
- bl Free
-_081AFE1A:
- movs r0, 0
-_081AFE1C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end AllocItemIconTemporaryBuffers
-
- thumb_func_start FreeItemIconTemporaryBuffers
-@ void FreeItemIconTemporaryBuffers()
-FreeItemIconTemporaryBuffers: @ 81AFE24
- push {lr}
- ldr r0, =gUnknown_0203CEBC
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_0203CEC0
- ldr r0, [r0]
- bl Free
- pop {r0}
- bx r0
- .pool
- thumb_func_end FreeItemIconTemporaryBuffers
-
- thumb_func_start CopyItemIconPicTo4x4Buffer
-@ void CopyItemIconPicTo4x4Buffer(void *src, void *dest)
-CopyItemIconPicTo4x4Buffer: @ 81AFE44
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
-_081AFE4C:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 5
- adds r0, r6, r0
- lsls r1, r4, 7
- adds r1, r5, r1
- movs r2, 0x30
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081AFE4C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end CopyItemIconPicTo4x4Buffer
-
- thumb_func_start AddItemIconObject
-@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId)
-AddItemIconObject: @ 81AFE70
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- bl AllocItemIconTemporaryBuffers
- lsls r0, 24
- cmp r0, 0
- beq _081AFF28
- adds r0, r5, 0
- movs r1, 0
- bl GetItemIconPicOrPalette
- ldr r4, =gUnknown_0203CEBC
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r0, [r4]
- ldr r4, =gUnknown_0203CEC0
- ldr r1, [r4]
- bl CopyItemIconPicTo4x4Buffer
- ldr r0, [r4]
- str r0, [sp]
- ldr r4, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- lsls r2, r7, 16
- ldr r1, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- movs r1, 0x1
- bl GetItemIconPicOrPalette
- str r0, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r6
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- movs r0, 0x18
- bl Alloc
- adds r5, r0, 0
- ldr r0, =gUnknown_08614FF4
- adds r1, r5, 0
- movs r2, 0xC
- bl CpuSet
- strh r7, [r5]
- strh r6, [r5, 0x2]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeItemIconTemporaryBuffers
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- b _081AFF2A
- .pool
-_081AFF28:
- movs r0, 0x40
-_081AFF2A:
- add sp, 0x10
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObject
-
- thumb_func_start AddItemIconObjectWithCustomObjectTemplate
-@ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId)
-AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- bl AllocItemIconTemporaryBuffers
- lsls r0, 24
- cmp r0, 0
- beq _081AFFEC
- adds r0, r5, 0
- movs r1, 0
- bl GetItemIconPicOrPalette
- ldr r4, =gUnknown_0203CEBC
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r0, [r4]
- ldr r4, =gUnknown_0203CEC0
- ldr r1, [r4]
- bl CopyItemIconPicTo4x4Buffer
- ldr r0, [r4]
- str r0, [sp]
- ldr r4, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- lsls r2, r7, 16
- ldr r1, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- movs r1, 0x1
- bl GetItemIconPicOrPalette
- str r0, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r6
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- movs r0, 0x18
- bl Alloc
- adds r5, r0, 0
- mov r0, r8
- adds r1, r5, 0
- movs r2, 0xC
- bl CpuSet
- strh r7, [r5]
- strh r6, [r5, 0x2]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeItemIconTemporaryBuffers
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- b _081AFFEE
- .pool
-_081AFFEC:
- movs r0, 0x40
-_081AFFEE:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddItemIconObjectWithCustomObjectTemplate
-
- thumb_func_start GetItemIconPicOrPalette
-@ u32 GetItemIconPicOrPalette(u16 itemId, u8 which)
-GetItemIconPicOrPalette: @ 81AFFFC
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =0x0000ffff
- cmp r3, r0
- bne _081B0018
- ldr r3, =0x00000179
- b _081B0022
- .pool
-_081B0018:
- movs r0, 0xBC
- lsls r0, 1
- cmp r3, r0
- bls _081B0022
- movs r3, 0
-_081B0022:
- ldr r2, =gItemIconTable
- lsls r0, r1, 2
- lsls r1, r3, 3
- adds r0, r1
- adds r0, r2
- ldr r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetItemIconPicOrPalette
-
- thumb_func_start sub_81B0038
-sub_81B0038: @ 81B0038
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 24
- lsrs r6, r4, 24
- bl reset_brm
- ldr r0, =gUnknown_0203CEC4
- mov r10, r0
- movs r0, 0x8E
- lsls r0, 2
- bl Alloc
- adds r5, r0, 0
- mov r1, r10
- str r5, [r1]
- cmp r5, 0
- bne _081B0088
- ldr r0, [sp, 0x2C]
- bl SetMainCallback2
- b _081B0194
- .pool
-_081B0088:
- ldr r3, =gUnknown_0203CEC8
- movs r1, 0xF
- mov r4, r8
- ands r1, r4
- ldrb r2, [r3, 0x8]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x8]
- ldr r0, [sp, 0x2C]
- str r0, [r3]
- movs r4, 0
- strb r7, [r3, 0xB]
- lsls r2, r6, 2
- ldrh r1, [r5, 0xA]
- movs r0, 0x3
- ands r0, r1
- orrs r0, r2
- strh r0, [r5, 0xA]
- ldr r0, [sp, 0x28]
- str r0, [r5]
- str r4, [r5, 0x4]
- ldrb r1, [r5, 0x8]
- movs r0, 0xF
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x8]
- mov r1, r10
- ldr r2, [r1]
- ldrh r0, [r2, 0x8]
- movs r4, 0xFE
- lsls r4, 3
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xFE
- lsls r1, 10
- orrs r0, r1
- str r0, [r2, 0x8]
- adds r6, r3, 0
- mov r5, r8
- cmp r5, 0x4
- bne _081B00F0
- ldrb r0, [r2, 0x8]
- movs r1, 0x1
- orrs r0, r1
- b _081B00F8
- .pool
-_081B00F0:
- ldrb r1, [r2, 0x8]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_081B00F8:
- strb r0, [r2, 0x8]
- mov r0, r9
- cmp r0, 0xFF
- beq _081B0114
- movs r0, 0x3
- mov r1, r9
- ands r0, r1
- lsls r0, 4
- ldrb r2, [r6, 0x8]
- movs r1, 0x31
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6, 0x8]
-_081B0114:
- movs r2, 0
- ldr r5, =gUnknown_0203CEC4
- movs r4, 0x86
- lsls r4, 2
- movs r3, 0
-_081B011E:
- ldr r0, [r5]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _081B011E
- movs r2, 0
- ldr r4, =gUnknown_0203CEC4
- movs r3, 0xFF
-_081B0138:
- ldr r0, [r4]
- adds r0, 0xC
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x2
- bls _081B0138
- ldr r4, [sp]
- cmp r4, 0
- bne _081B015C
- strb r4, [r6, 0x9]
- b _081B017E
- .pool
-_081B015C:
- adds r1, r6, 0
- movs r0, 0x9
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _081B017A
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _081B017E
-_081B017A:
- movs r0, 0
- strb r0, [r6, 0x9]
-_081B017E:
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl CalculatePlayerPartyCount
- ldr r0, =c2_811EBD0
- bl SetMainCallback2
-_081B0194:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81B0038
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 591b91775..010e83c49 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -4524,7 +4524,7 @@ ItemMenu_CheckTag: @ 81AD378
lsrs r0, 24
ldr r1, =gUnknown_0203CE54
ldr r2, [r1]
- ldr r1, =sub_8177C14
+ ldr r1, =DoBerryTagScreen
str r1, [r2]
bl unknown_ItemMenu_Confirm
pop {r0}
diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s
index 1adc0feb7..8068e37c2 100644
--- a/asm/item_menu_icons.s
+++ b/asm/item_menu_icons.s
@@ -348,7 +348,7 @@ AddBagItemIconObject: @ 80D4F38
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
- bl AddItemIconObject
+ bl AddItemIconSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
@@ -527,8 +527,8 @@ _080D5082:
.pool
thumb_func_end sub_80D5070
- thumb_func_start sub_80D50D4
-sub_80D50D4: @ 80D50D4
+ thumb_func_start CreateBerryTagSprite
+CreateBerryTagSprite: @ 80D50D4
push {r4,r5,lr}
adds r4, r1, 0
adds r5, r2, 0
@@ -554,17 +554,17 @@ sub_80D50D4: @ 80D50D4
pop {r1}
bx r1
.pool
- thumb_func_end sub_80D50D4
+ thumb_func_end CreateBerryTagSprite
- thumb_func_start sub_80D510C
-sub_80D510C: @ 80D510C
+ thumb_func_start FreeBerryTagSpritePalette
+FreeBerryTagSpritePalette: @ 80D510C
push {lr}
ldr r0, =0x00007544
bl FreeSpritePaletteByTag
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D510C
+ thumb_func_end FreeBerryTagSpritePalette
thumb_func_start sub_80D511C
sub_80D511C: @ 80D511C
@@ -617,8 +617,8 @@ _080D5172:
.pool
thumb_func_end sub_80D511C
- thumb_func_start sub_80D518C
-sub_80D518C: @ 80D518C
+ thumb_func_start CreateBerryFlavorCircleSprite
+CreateBerryFlavorCircleSprite: @ 80D518C
push {lr}
adds r1, r0, 0
ldr r0, =gUnknown_0857FE10
@@ -632,6 +632,6 @@ sub_80D518C: @ 80D518C
pop {r1}
bx r1
.pool
- thumb_func_end sub_80D518C
+ thumb_func_end CreateBerryFlavorCircleSprite
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_use.s b/asm/item_use.s
deleted file mode 100644
index 0d9f30ec3..000000000
--- a/asm/item_use.s
+++ /dev/null
@@ -1,2863 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpItemUseCallback
-@ void SetUpItemUseCallback(u8 taskId)
-SetUpItemUseCallback: @ 80FD060
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gSpecialVar_ItemId
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _080FD084
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x10]
- b _080FD08A
- .pool
-_080FD084:
- ldrh r0, [r1]
- bl ItemId_GetType
-_080FD08A:
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FD0B8
- ldr r0, =gUnknown_0203CE54
- ldr r2, [r0]
- ldr r1, =gUnknown_085920D8
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl unknown_ItemMenu_Confirm
- b _080FD0CC
- .pool
-_080FD0B8:
- ldr r0, =gUnknown_0203CF2C
- ldr r2, [r0]
- ldr r1, =gUnknown_085920D8
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_81C5B14
-_080FD0CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpItemUseCallback
-
- thumb_func_start SetUpItemUseOnFieldCallback
-@ void SetUpItemUseOnFieldCallback()
-SetUpItemUseOnFieldCallback: @ 80FD0DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- beq _080FD110
- ldr r1, =gFieldCallback
- ldr r0, =MapPostLoadHook_UseItem
- str r0, [r1]
- adds r0, r2, 0
- bl SetUpItemUseCallback
- b _080FD11A
- .pool
-_080FD110:
- ldr r0, =gUnknown_0203A0F4
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
-_080FD11A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpItemUseOnFieldCallback
-
- thumb_func_start MapPostLoadHook_UseItem
-@ void MapPostLoadHook_UseItem()
-MapPostLoadHook_UseItem: @ 80FD124
- push {lr}
- bl pal_fill_black
- ldr r0, =Task_CallItemUseOnFieldCallback
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end MapPostLoadHook_UseItem
-
- thumb_func_start Task_CallItemUseOnFieldCallback
-@ void Task_CallItemUseOnFieldCallback(u8 taskId)
-Task_CallItemUseOnFieldCallback: @ 80FD13C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FD158
- ldr r0, =gUnknown_0203A0F4
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080FD158:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_CallItemUseOnFieldCallback
-
- thumb_func_start DisplayCannotUseItemMessage
-@ void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, u8 *str)
-DisplayCannotUseItemMessage: @ 80FD164
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r1, r2, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r6, =gStringVar4
- adds r0, r6, 0
- bl StringExpandPlaceholders
- cmp r4, 0
- bne _080FD1B4
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FD1A0
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r6, 0
- bl DisplayItemMessage
- b _080FD1BE
- .pool
-_080FD1A0:
- ldr r1, =gText_DadsAdvice
- ldr r2, =sub_81C6714
- adds r0, r5, 0
- bl DisplayItemMessageInBattlePyramid
- b _080FD1BE
- .pool
-_080FD1B4:
- ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField
- adds r0, r5, 0
- adds r1, r6, 0
- bl DisplayItemMessageOnField
-_080FD1BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DisplayCannotUseItemMessage
-
- thumb_func_start DisplayDadsAdviceCannotUseItemMessage
-@ void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
-DisplayDadsAdviceCannotUseItemMessage: @ 80FD1C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gText_DadsAdvice
- bl DisplayCannotUseItemMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end DisplayDadsAdviceCannotUseItemMessage
-
- thumb_func_start DisplayCannotDismountBikeMessage
-@ void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
-DisplayCannotDismountBikeMessage: @ 80FD1E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gText_CantDismountBike
- bl DisplayCannotUseItemMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end DisplayCannotDismountBikeMessage
-
- thumb_func_start CleanUpAfterFailingToUseRegisteredKeyItemOnField
-@ void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId)
-CleanUpAfterFailingToUseRegisteredKeyItemOnField: @ 80FD1F8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- adds r0, r4, 0
- bl DestroyTask
- bl sub_80984F4
- bl ScriptContext2_Disable
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CleanUpAfterFailingToUseRegisteredKeyItemOnField
-
- thumb_func_start CheckIfItemIsTMHMOrEvolutionStone
-@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
-CheckIfItemIsTMHMOrEvolutionStone: @ 80FD21C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, =ItemUseOutOfBattle_TMHM
- cmp r0, r1
- bne _080FD238
- movs r0, 0x1
- b _080FD24E
- .pool
-_080FD238:
- adds r0, r4, 0
- bl ItemId_GetFieldFunc
- ldr r1, =ItemUseOutOfBattle_EvolutionStone
- cmp r0, r1
- beq _080FD24C
- movs r0, 0
- b _080FD24E
- .pool
-_080FD24C:
- movs r0, 0x2
-_080FD24E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckIfItemIsTMHMOrEvolutionStone
-
- thumb_func_start sub_80FD254
-sub_80FD254: @ 80FD254
- push {lr}
- sub sp, 0x24
- mov r1, sp
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
- ldr r1, =bag_menu_mail_related
- mov r0, sp
- movs r2, 0
- bl ReadMail
- add sp, 0x24
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FD254
-
- thumb_func_start ItemUseOutOfBattle_Mail
-@ void ItemUseOutOfBattle_Mail(int taskId)
-ItemUseOutOfBattle_Mail: @ 80FD278
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CE54
- ldr r2, [r1]
- ldr r1, =sub_80FD254
- str r1, [r2]
- bl unknown_ItemMenu_Confirm
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_Mail
-
- thumb_func_start ItemUseOutOfBattle_Bike
-@ void ItemUseOutOfBattle_Bike(int taskId)
-ItemUseOutOfBattle_Bike: @ 80FD298
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =0x0000088b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FD30E
- adds r0, r4, 0
- bl MetatileBehavior_IsVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FD30E
- adds r0, r4, 0
- bl MetatileBehavior_IsHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FD30E
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedVerticalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FD30E
- adds r0, r4, 0
- bl MetatileBehavior_IsIsolatedHorizontalRail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FD320
-_080FD30E:
- ldrb r1, [r6, 0x6]
- adds r0, r5, 0
- bl DisplayCannotDismountBikeMessage
- b _080FD350
- .pool
-_080FD320:
- bl sav1_map_is_biking_allowed
- cmp r0, 0x1
- bne _080FD348
- bl IsBikingDisallowedByPlayer
- lsls r0, 24
- cmp r0, 0
- bne _080FD348
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =ItemUseOnFieldCB_Bike
- str r0, [r1]
- adds r0, r5, 0
- bl SetUpItemUseOnFieldCallback
- b _080FD350
- .pool
-_080FD348:
- ldrb r1, [r6, 0x6]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080FD350:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ItemUseOutOfBattle_Bike
-
- thumb_func_start ItemUseOnFieldCB_Bike
-ItemUseOnFieldCB_Bike: @ 80FD358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- cmp r0, 0
- bne _080FD378
- movs r0, 0x2
- bl GetOnOffBike
- b _080FD37E
- .pool
-_080FD378:
- movs r0, 0x4
- bl GetOnOffBike
-_080FD37E:
- bl sub_80984F4
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseOnFieldCB_Bike
-
- thumb_func_start CanFish
-@ bool8 CanFish()
-CanFish: @ 80FD394
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- cmp r0, 0
- bne _080FD41C
- movs r0, 0x10
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080FD41C
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080FD3EC
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080FD41C
-_080FD3E8:
- movs r0, 0x1
- b _080FD41E
-_080FD3EC:
- adds r0, r5, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- beq _080FD40C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridIsImpassableAt
- lsls r0, 24
- cmp r0, 0
- beq _080FD3E8
-_080FD40C:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_8089510
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FD3E8
-_080FD41C:
- movs r0, 0
-_080FD41E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CanFish
-
- thumb_func_start ItemUseOutOfBattle_Rod
-ItemUseOutOfBattle_Rod: @ 80FD428
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CanFish
- cmp r0, 0x1
- bne _080FD44C
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =ItemUseOnFieldCB_Rod
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080FD45E
- .pool
-_080FD44C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080FD45E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_Rod
-
- thumb_func_start ItemUseOnFieldCB_Rod
-ItemUseOnFieldCB_Rod: @ 80FD468
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 24
- bl StartFishing
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOnFieldCB_Rod
-
- thumb_func_start ItemUseOutOfBattle_Itemfinder
-ItemUseOutOfBattle_Itemfinder: @ 80FD490
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x27
- bl IncrementGameStat
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =ItemUseOnFieldCB_Itemfinder
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_Itemfinder
-
- thumb_func_start ItemUseOnFieldCB_Itemfinder
-ItemUseOnFieldCB_Itemfinder: @ 80FD4B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- adds r1, r4, 0
- bl ItemfinderCheckForHiddenItems
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FD4EC
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80FD504
- str r0, [r1]
- b _080FD4F6
- .pool
-_080FD4EC:
- ldr r1, =gText_ItemFinderNothing
- ldr r2, =sub_80FD5CC
- adds r0, r4, 0
- bl DisplayItemMessageOnField
-_080FD4F6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOnFieldCB_Itemfinder
-
- thumb_func_start sub_80FD504
-sub_80FD504: @ 80FD504
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r7, r0, 3
- ldr r0, =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FD5B8
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _080FD5AC
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80FD9B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080FD564
- ldr r1, =gUnknown_085920E4
- subs r0, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80FDA24
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =sub_80FDA94
- str r1, [r0]
- b _080FD5C2
- .pool
-_080FD564:
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- adds r3, r6, 0
- ldr r7, =gUnknown_085920E4
- movs r6, 0x3
-_080FD574:
- adds r0, r1, r7
- adds r1, 0x1
- ldrb r0, [r0]
- cmp r2, r0
- bne _080FD584
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r4, 0xA]
-_080FD584:
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _080FD574
- ldr r1, =gTasks
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80FDADC
- str r1, [r0]
- movs r0, 0
- strh r0, [r4, 0x6]
- strh r0, [r4, 0x4]
- b _080FD5C2
- .pool
-_080FD5AC:
- movs r0, 0x48
- bl PlaySE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_080FD5B8:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r4, 0x6]
-_080FD5C2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD504
-
- thumb_func_start sub_80FD5CC
-sub_80FD5CC: @ 80FD5CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- bl sub_80984F4
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD5CC
-
- thumb_func_start ItemfinderCheckForHiddenItems
-@ bool8 ItemfinderCheckForHiddenItems(struct map_events *events, u8 taskId)
-ItemfinderCheckForHiddenItems: @ 80FD5F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r3, 0
- mov r9, r4
- ldrb r0, [r5, 0x3]
- cmp r3, r0
- bge _080FD6A4
- subs r1, 0x5
- mov r8, r1
-_080FD628:
- lsls r3, 16
- asrs r1, r3, 16
- ldr r2, [r5, 0x10]
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r1, r4, r2
- ldrb r0, [r1, 0x5]
- adds r7, r3, 0
- cmp r0, 0x7
- bne _080FD694
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r1, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FD694
- ldr r1, [r5, 0x10]
- adds r1, r4, r1
- ldrh r2, [r1]
- adds r2, 0x7
- mov r0, sp
- ldrh r0, [r0]
- subs r2, r0
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- mov r3, r9
- ldrh r1, [r3]
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- asrs r1, r2, 16
- movs r3, 0xE0
- lsls r3, 11
- adds r2, r3
- lsrs r2, 16
- cmp r2, 0xE
- bhi _080FD694
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, r8
- blt _080FD694
- cmp r2, 0x5
- bgt _080FD694
- adds r0, r6, 0
- bl sub_80FD8E0
-_080FD694:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r3, r0, 16
- asrs r0, 16
- ldrb r2, [r5, 0x3]
- cmp r0, r2
- blt _080FD628
-_080FD6A4:
- adds r0, r6, 0
- bl sub_80FD7C8
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- beq _080FD6C4
- movs r0, 0
- b _080FD6C6
- .pool
-_080FD6C4:
- movs r0, 0x1
-_080FD6C6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ItemfinderCheckForHiddenItems
-
- thumb_func_start sub_80FD6D4
-sub_80FD6D4: @ 80FD6D4
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r3, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrb r2, [r0, 0x3]
- ldr r5, [r0, 0x10]
- movs r1, 0
- cmp r1, r2
- bge _080FD728
- lsls r0, r3, 16
- asrs r6, r0, 16
- lsls r0, r4, 16
- asrs r4, r0, 16
- adds r3, r5, 0
-_080FD6F2:
- ldrb r0, [r3, 0x5]
- cmp r0, 0x7
- bne _080FD720
- ldrh r0, [r3]
- cmp r6, r0
- bne _080FD720
- ldrh r0, [r3, 0x2]
- cmp r4, r0
- bne _080FD720
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r3, 0xA]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FD728
- movs r0, 0x1
- b _080FD72A
-_080FD720:
- adds r3, 0xC
- adds r1, 0x1
- cmp r1, r2
- blt _080FD6F2
-_080FD728:
- movs r0, 0
-_080FD72A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD6D4
-
- thumb_func_start sub_80FD730
-sub_80FD730: @ 80FD730
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- bl mapconnection_get_mapheader
- adds r3, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080FD758
- cmp r0, 0x2
- bgt _080FD74E
- cmp r0, 0x1
- beq _080FD76C
- b _080FD7AC
-_080FD74E:
- cmp r0, 0x3
- beq _080FD784
- cmp r0, 0x4
- beq _080FD78E
- b _080FD7AC
-_080FD758:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- subs r0, 0x7
- adds r0, r6
- b _080FD7A2
-_080FD76C:
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- subs r0, r5, r0
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- b _080FD79E
- .pool
-_080FD784:
- ldr r0, [r3]
- ldr r0, [r0]
- subs r0, 0x7
- adds r0, r5
- b _080FD798
-_080FD78E:
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, 0x7
- subs r0, r5, r0
-_080FD798:
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, [r4, 0x4]
-_080FD79E:
- adds r0, 0x7
- subs r0, r6, r0
-_080FD7A2:
- lsls r0, 16
- lsrs r2, r0, 16
- b _080FD7B0
- .pool
-_080FD7AC:
- movs r0, 0
- b _080FD7C2
-_080FD7B0:
- ldr r0, [r3, 0x4]
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- bl sub_80FD6D4
- lsls r0, 24
- lsrs r0, 24
-_080FD7C2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD730
-
- thumb_func_start sub_80FD7C8
-sub_80FD7C8: @ 80FD7C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, =gMapHeader
- ldr r1, [r0]
- ldr r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- ldr r0, [r1, 0x4]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- adds r1, 0x7
- cmp r0, r1
- bgt _080FD8CC
-_080FD816:
- mov r5, sp
- ldrh r0, [r5, 0x2]
- subs r0, 0x5
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- movs r6, 0x2
- ldrsh r0, [r5, r6]
- adds r0, 0x5
- lsls r3, 16
- mov r8, r3
- cmp r1, r0
- bgt _080FD8B6
- movs r0, 0x7
- str r0, [sp, 0x10]
- mov r1, r8
- asrs r1, 16
- mov r9, r1
- mov r10, r0
-_080FD83E:
- ldr r3, [sp, 0x10]
- cmp r3, r9
- bgt _080FD860
- ldr r5, [sp, 0x8]
- lsls r0, r5, 16
- asrs r0, 16
- cmp r9, r0
- bge _080FD860
- asrs r1, r2, 16
- cmp r10, r1
- bgt _080FD860
- ldr r6, [sp, 0xC]
- lsls r0, r6, 16
- asrs r0, 16
- lsls r7, r4, 16
- cmp r1, r0
- blt _080FD89E
-_080FD860:
- mov r0, r8
- asrs r5, r0, 16
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8088A8C
- adds r7, r4, 0
- cmp r0, 0
- beq _080FD89E
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80FD730
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FD89E
- mov r0, sp
- ldrh r1, [r0]
- subs r1, r5, r1
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, r6, r2
- lsls r2, 16
- asrs r2, 16
- ldr r0, [sp, 0x4]
- bl sub_80FD8E0
-_080FD89E:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r7, r1
- lsrs r4, r0, 16
- lsls r2, r4, 16
- asrs r1, r2, 16
- mov r3, sp
- movs r5, 0x2
- ldrsh r0, [r3, r5]
- adds r0, 0x5
- cmp r1, r0
- ble _080FD83E
-_080FD8B6:
- movs r1, 0x80
- lsls r1, 9
- add r1, r8
- lsrs r3, r1, 16
- asrs r1, 16
- mov r0, sp
- movs r6, 0
- ldrsh r0, [r0, r6]
- adds r0, 0x7
- cmp r1, r0
- ble _080FD816
-_080FD8CC:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FD7C8
-
- thumb_func_start sub_80FD8E0
-sub_80FD8E0: @ 80FD8E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r12, r2
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r3, r1, r0
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080FD918
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
- movs r0, 0x1
- strh r0, [r3, 0x4]
- b _080FD9A2
- .pool
-_080FD918:
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080FD928
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080FD92A
-_080FD928:
- ldrh r4, [r3]
-_080FD92A:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- ldrh r1, [r3, 0x2]
- mov r9, r1
- cmp r0, 0
- bge _080FD93E
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- b _080FD940
-_080FD93E:
- ldrh r2, [r3, 0x2]
-_080FD940:
- lsls r1, r7, 16
- asrs r0, r1, 16
- cmp r0, 0
- bge _080FD950
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- b _080FD952
-_080FD950:
- lsrs r6, r1, 16
-_080FD952:
- mov r1, r12
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r1, 0
- bge _080FD964
- negs r0, r1
- lsls r0, 16
- b _080FD966
-_080FD964:
- mov r0, r8
-_080FD966:
- lsrs r5, r0, 16
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r2, r1, 16
- adds r4, r0, r2
- lsls r0, r6, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- adds r0, r1
- cmp r4, r0
- ble _080FD988
- strh r7, [r3]
- mov r1, r12
- strh r1, [r3, 0x2]
- b _080FD9A2
-_080FD988:
- cmp r4, r0
- bne _080FD9A2
- cmp r2, r1
- bgt _080FD99C
- cmp r2, r1
- bne _080FD9A2
- mov r1, r9
- lsls r0, r1, 16
- cmp r0, r8
- bge _080FD9A2
-_080FD99C:
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
-_080FD9A2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FD8E0
-
- thumb_func_start sub_80FD9B0
-sub_80FD9B0: @ 80FD9B0
- push {r4,r5,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bne _080FD9C2
- cmp r1, 0
- beq _080FDA1C
-_080FD9C2:
- lsls r0, r2, 16
- asrs r2, r0, 16
- adds r5, r0, 0
- cmp r2, 0
- bge _080FD9D4
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- b _080FD9D6
-_080FD9D4:
- lsrs r4, r5, 16
-_080FD9D6:
- lsls r0, r1, 16
- asrs r2, r0, 16
- adds r1, r0, 0
- cmp r2, 0
- bge _080FD9E8
- negs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- b _080FD9EA
-_080FD9E8:
- lsrs r3, r1, 16
-_080FD9EA:
- lsls r0, r4, 16
- asrs r2, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r2, r0
- ble _080FDA02
- cmp r5, 0
- bge _080FD9FE
- movs r0, 0x4
- b _080FDA1E
-_080FD9FE:
- movs r0, 0x2
- b _080FDA1E
-_080FDA02:
- cmp r2, r0
- bge _080FDA0C
- cmp r1, 0
- blt _080FDA14
- b _080FDA18
-_080FDA0C:
- cmp r2, r0
- bne _080FDA1C
- cmp r1, 0
- bge _080FDA18
-_080FDA14:
- movs r0, 0x1
- b _080FDA1E
-_080FDA18:
- movs r0, 0x3
- b _080FDA1E
-_080FDA1C:
- movs r0, 0
-_080FDA1E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FD9B0
-
- thumb_func_start sub_80FDA24
-sub_80FDA24: @ 80FDA24
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, =gMapObjects
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnim
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl npc_sync_anim_pause_bits
- adds r0, r5, 0
- bl PlayerTurnInPlace
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDA24
-
- thumb_func_start sub_80FDA94
-sub_80FDA94: @ 80FDA94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FDACA
- ldr r1, =gText_ItemFinderNearby
- ldr r2, =sub_80FD5CC
- adds r0, r4, 0
- bl DisplayItemMessageOnField
-_080FDACA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDA94
-
- thumb_func_start sub_80FDADC
-sub_80FDADC: @ 80FDADC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080FDB1C
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080FDB50
-_080FDB1C:
- ldr r1, =gUnknown_085920E4
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80FDA24
- movs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- movs r1, 0x3
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _080FDB50
- ldr r1, =gText_ItemFinderOnTop
- ldr r2, =sub_80FD5CC
- adds r0, r5, 0
- bl DisplayItemMessageOnField
-_080FDB50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDADC
-
- thumb_func_start ItemUseOutOfBattle_PokeblockCase
-ItemUseOutOfBattle_PokeblockCase: @ 80FDB6C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FDB98
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
- b _080FDBDA
- .pool
-_080FDB98:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080FDBC8
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r0, =sub_80FDBEC
- str r0, [r1]
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080FDBDA
- .pool
-_080FDBC8:
- ldr r0, =gFieldCallback
- ldr r1, =sub_80AF6D4
- str r1, [r0]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, =sub_80FDC00
- str r0, [r5]
-_080FDBDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_PokeblockCase
-
- thumb_func_start sub_80FDBEC
-sub_80FDBEC: @ 80FDBEC
- push {lr}
- ldr r1, =bag_menu_mail_related
- movs r0, 0
- bl OpenPokeblockCase
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDBEC
-
- thumb_func_start sub_80FDC00
-sub_80FDC00: @ 80FDC00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080FDC24
- bl overworld_free_bg_tilemaps
- ldr r1, =c2_exit_to_overworld_2_switch
- movs r0, 0
- bl OpenPokeblockCase
- adds r0, r4, 0
- bl DestroyTask
-_080FDC24:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDC00
-
- thumb_func_start ItemUseOutOfBattle_CoinCase
-ItemUseOutOfBattle_CoinCase: @ 80FDC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gStringVar1
- bl GetCoins
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_CoinCase
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080FDC90
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- b _080FDC9A
- .pool
-_080FDC90:
- ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_080FDC9A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_CoinCase
-
- thumb_func_start ItemUseOutOfBattle_PowderJar
-ItemUseOutOfBattle_PowderJar: @ 80FDCA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gStringVar1
- bl sub_80247BC
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_PowderQty
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080FDCFC
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
- b _080FDD06
- .pool
-_080FDCFC:
- ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_080FDD06:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_PowderJar
-
- thumb_func_start sub_80FDD10
-sub_80FDD10: @ 80FDD10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerFacingPlantedBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FDD58
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =sub_80FDD74
- str r0, [r1]
- ldr r1, =gFieldCallback
- ldr r0, =MapPostLoadHook_UseItem
- str r0, [r1]
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- str r0, [r1]
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080FDD68
- .pool
-_080FDD58:
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_080FDD68:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDD10
-
- thumb_func_start sub_80FDD74
-sub_80FDD74: @ 80FDD74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- bl ScriptContext2_Enable
- ldr r0, =Route102_EventScript_274482
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDD74
-
- thumb_func_start ItemUseOutOfBattle_WailmerPail
-ItemUseOutOfBattle_WailmerPail: @ 80FDDA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80FDE2C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FDDC8
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =sub_80FDE7C
- b _080FDDD8
- .pool
-_080FDDC8:
- bl TryToWaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FDDEC
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =sub_80FDE08
-_080FDDD8:
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080FDDFE
- .pool
-_080FDDEC:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r5, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080FDDFE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_WailmerPail
-
- thumb_func_start sub_80FDE08
-sub_80FDE08: @ 80FDE08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, =Route102_EventScript_2744C0
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDE08
-
- thumb_func_start sub_80FDE2C
-sub_80FDE2C: @ 80FDE2C
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, sp
- ldrh r0, [r0]
- ldrh r1, [r4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _080FDE68
- ldr r0, =gMapObjects
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x5]
- cmp r0, 0xE4
- beq _080FDE70
-_080FDE68:
- movs r0, 0
- b _080FDE72
- .pool
-_080FDE70:
- movs r0, 0x1
-_080FDE72:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FDE2C
-
- thumb_func_start sub_80FDE7C
-sub_80FDE7C: @ 80FDE7C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, =BattleFrontier_OutsideEast_EventScript_242CFC
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDE7C
-
- thumb_func_start ItemUseOutOfBattle_Medicine
-ItemUseOutOfBattle_Medicine: @ 80FDEA0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =ItemUseCB_Medicine
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_Medicine
-
- thumb_func_start ItemUseOutOfBattle_ReduceEV
-ItemUseOutOfBattle_ReduceEV: @ 80FDEBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =sub_81B67C8
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_ReduceEV
-
- thumb_func_start ItemUseOutOfBattle_SacredAsh
-ItemUseOutOfBattle_SacredAsh: @ 80FDED8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =sub_81B79E8
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_SacredAsh
-
- thumb_func_start ItemUseOutOfBattle_PPRecovery
-ItemUseOutOfBattle_PPRecovery: @ 80FDEF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =dp05_ether
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_PPRecovery
-
- thumb_func_start ItemUseOutOfBattle_PPUp
-ItemUseOutOfBattle_PPUp: @ 80FDF10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =dp05_pp_up
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_PPUp
-
- thumb_func_start ItemUseOutOfBattle_RareCandy
-ItemUseOutOfBattle_RareCandy: @ 80FDF2C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =dp05_rare_candy
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_RareCandy
-
- thumb_func_start ItemUseOutOfBattle_TMHM
-ItemUseOutOfBattle_TMHM: @ 80FDF48
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r1, [r0]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bls _080FDF74
- ldr r2, =gText_BootedUpHM
- ldr r3, =sub_80FDF90
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FDF80
- .pool
-_080FDF74:
- ldr r2, =gText_BootedUpTM
- ldr r3, =sub_80FDF90
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
-_080FDF80:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_TMHM
-
- thumb_func_start sub_80FDF90
-sub_80FDF90: @ 80FDF90
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl PlaySE
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =task08_0809AD8C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FDF90
-
- thumb_func_start task08_0809AD8C
-task08_0809AD8C: @ 80FDFBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080FE000
- ldr r4, =gStringVar1
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_TMHMContainedVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r3, =sub_80FE024
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl DisplayItemMessage
-_080FE000:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task08_0809AD8C
-
- thumb_func_start sub_80FE024
-sub_80FE024: @ 80FE024
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_085920E8
- movs r1, 0x6
- bl bag_menu_yes_no
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE024
-
- thumb_func_start sub_80FE03C
-sub_80FE03C: @ 80FE03C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =sub_81B6DC4
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE03C
-
- thumb_func_start sub_80FE058
-sub_80FE058: @ 80FE058
- push {r4,lr}
- ldr r4, =gSpecialVar_ItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- ldrh r0, [r4]
- ldr r1, =gStringVar2
- bl CopyItemName
- ldr r0, =gStringVar4
- ldr r1, =gText_PlayerUsedVar2
- bl StringExpandPlaceholders
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE0AC
- ldrh r0, [r4]
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- bl sub_81AB9A8
- ldrh r0, [r4]
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- bl sub_81ABA88
- b _080FE0B4
- .pool
-_080FE0AC:
- bl sub_81C5924
- bl sub_81C59BC
-_080FE0B4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE058
-
- thumb_func_start ItemUseOutOfBattle_Repel
-ItemUseOutOfBattle_Repel: @ 80FE0BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, =0x00004021
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080FE0EC
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80FE124
- str r0, [r1]
- b _080FE116
- .pool
-_080FE0EC:
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE10C
- ldr r2, =gText_RepelEffectsLingered
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE116
- .pool
-_080FE10C:
- ldr r1, =gText_RepelEffectsLingered
- ldr r2, =sub_81C6714
- adds r0, r5, 0
- bl DisplayItemMessageInBattlePyramid
-_080FE116:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_Repel
-
- thumb_func_start sub_80FE124
-sub_80FE124: @ 80FE124
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r5, =gTasks + 0x8
- adds r1, r4, r5
- ldrh r0, [r1, 0x10]
- adds r0, 0x1
- strh r0, [r1, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080FE156
- movs r0, 0
- strh r0, [r1, 0x10]
- movs r0, 0x2F
- bl PlaySE
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, =sub_80FE164
- str r1, [r0]
-_080FE156:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE124
-
- thumb_func_start sub_80FE164
-sub_80FE164: @ 80FE164
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _080FE1C2
- ldr r4, =0x00004021
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl ItemId_GetHoldEffectParam
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl VarSet
- bl sub_80FE058
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE1B8
- ldr r2, =gStringVar4
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r5, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE1C2
- .pool
-_080FE1B8:
- ldr r1, =gStringVar4
- ldr r2, =sub_81C6714
- adds r0, r6, 0
- bl DisplayItemMessageInBattlePyramid
-_080FE1C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE164
-
- thumb_func_start sub_80FE1D0
-sub_80FE1D0: @ 80FE1D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080FE226
- movs r0, 0x75
- bl PlaySE
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE21C
- ldr r2, =gStringVar4
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE226
- .pool
-_080FE21C:
- ldr r1, =gStringVar4
- ldr r2, =sub_81C6714
- adds r0, r5, 0
- bl DisplayItemMessageInBattlePyramid
-_080FE226:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE1D0
-
- thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
-ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gSpecialVar_ItemId
- ldrh r0, [r4]
- ldr r1, =gStringVar2
- bl CopyItemName
- ldrh r0, [r4]
- cmp r0, 0x2B
- bne _080FE278
- ldr r0, =0x000008ad
- bl FlagSet
- ldr r0, =0x000008ae
- bl FlagClear
- ldr r0, =gStringVar4
- ldr r1, =gText_UsedVar2WildLured
- bl StringExpandPlaceholders
- b _080FE28C
- .pool
-_080FE278:
- ldr r0, =0x000008ae
- bl FlagSet
- ldr r0, =0x000008ad
- bl FlagClear
- ldr r0, =gStringVar4
- ldr r1, =gText_UsedVar2WildRepelled
- bl StringExpandPlaceholders
-_080FE28C:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x18]
- ldr r1, =sub_80FE1D0
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
-
- thumb_func_start task08_080A1C44
-task08_080A1C44: @ 80FE2BC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl player_avatar_init_params_reset
- bl sub_80B7CC8
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task08_080A1C44
-
- thumb_func_start re_escape_rope
-re_escape_rope: @ 80FE2D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl flagmods_08054D70
- bl sub_80FE058
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, =gStringVar4
- ldr r2, =task08_080A1C44
- adds r0, r4, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end re_escape_rope
-
- thumb_func_start sub_80FE314
-sub_80FE314: @ 80FE314
- push {lr}
- ldr r0, =gMapHeader
- ldrb r1, [r0, 0x1A]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080FE32C
- movs r0, 0
- b _080FE32E
- .pool
-_080FE32C:
- movs r0, 0x1
-_080FE32E:
- pop {r1}
- bx r1
- thumb_func_end sub_80FE314
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80FE334
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80FE314
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080FE35C
- ldr r1, =gUnknown_0203A0F4
- ldr r0, =re_escape_rope
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080FE36E
- .pool
-_080FE35C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080FE36E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start ItemUseOutOfBattle_EvolutionStone
-ItemUseOutOfBattle_EvolutionStone: @ 80FE378
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =sub_81B7C74
- str r1, [r2]
- bl SetUpItemUseCallback
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_EvolutionStone
-
- thumb_func_start ItemUseInBattle_PokeBall
-ItemUseInBattle_PokeBall: @ 80FE394
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsPlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080FE3D0
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE3C8
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080FE3FA
- .pool
-_080FE3C8:
- adds r0, r4, 0
- bl sub_81C5B14
- b _080FE3FA
-_080FE3D0:
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE3F0
- ldr r2, =gText_BoxFull
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE3FA
- .pool
-_080FE3F0:
- ldr r1, =gText_BoxFull
- ldr r2, =sub_81C6714
- adds r0, r5, 0
- bl DisplayItemMessageInBattlePyramid
-_080FE3FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseInBattle_PokeBall
-
- thumb_func_start sub_80FE408
-sub_80FE408: @ 80FE408
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080FE43A
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE434
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080FE43A
- .pool
-_080FE434:
- adds r0, r5, 0
- bl sub_81C5B14
-_080FE43A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80FE408
-
- thumb_func_start sub_80FE440
-sub_80FE440: @ 80FE440
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080FE4AC
- movs r0, 0x1
- bl PlaySE
- ldr r4, =gSpecialVar_ItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE49C
- ldrh r0, [r4]
- bl sub_806CF78
- adds r2, r0, 0
- ldr r3, =sub_80FE408
- adds r0, r5, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE4AC
- .pool
-_080FE49C:
- ldrh r0, [r4]
- bl sub_806CF78
- adds r1, r0, 0
- ldr r2, =sub_80FE408
- adds r0, r6, 0
- bl DisplayItemMessageInBattlePyramid
-_080FE4AC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE440
-
- thumb_func_start ItemUseInBattle_StatIncrease
-ItemUseInBattle_StatIncrease: @ 80FE4B8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gBattlePartyID
- ldr r0, =gBankInMenu
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- adds r0, r1
- ldr r1, =gSpecialVar_ItemId
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080FE52C
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE518
- ldr r2, =gText_WontHaveEffect
- ldr r3, =bag_menu_inits_lists_menu
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE53C
- .pool
-_080FE518:
- ldr r1, =gText_WontHaveEffect
- ldr r2, =sub_81C6714
- adds r0, r4, 0
- bl DisplayItemMessageInBattlePyramid
- b _080FE53C
- .pool
-_080FE52C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80FE440
- str r0, [r1]
- strh r2, [r1, 0x18]
-_080FE53C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseInBattle_StatIncrease
-
- thumb_func_start sub_80FE54C
-sub_80FE54C: @ 80FE54C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE574
- ldr r0, =gUnknown_0203CE54
- ldr r1, [r0]
- ldr r0, =sub_81B89F0
- str r0, [r1]
- adds r0, r4, 0
- bl unknown_ItemMenu_Confirm
- b _080FE582
- .pool
-_080FE574:
- ldr r0, =gUnknown_0203CF2C
- ldr r1, [r0]
- ldr r0, =sub_81B89F0
- str r0, [r1]
- adds r0, r4, 0
- bl sub_81C5B14
-_080FE582:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE54C
-
- thumb_func_start ItemUseInBattle_Medicine
-ItemUseInBattle_Medicine: @ 80FE590
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =ItemUseCB_Medicine
- str r1, [r2]
- bl sub_80FE54C
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseInBattle_Medicine
-
- thumb_func_start sub_80FE5AC
-sub_80FE5AC: @ 80FE5AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =sub_81B79E8
- str r1, [r2]
- bl sub_80FE54C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80FE5AC
-
- thumb_func_start ItemUseInBattle_PPRecovery
-ItemUseInBattle_PPRecovery: @ 80FE5C8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gUnknown_03006328
- ldr r1, =dp05_ether
- str r1, [r2]
- bl sub_80FE54C
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseInBattle_PPRecovery
-
- thumb_func_start ItemUseInBattle_Escape
-ItemUseInBattle_Escape: @ 80FE5E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080FE634
- bl sub_80FE058
- bl InBattlePyramid
- lsls r0, 24
- cmp r0, 0
- bne _080FE620
- ldr r2, =gStringVar4
- ldr r3, =unknown_ItemMenu_Confirm
- adds r0, r4, 0
- movs r1, 0x1
- bl DisplayItemMessage
- b _080FE646
- .pool
-_080FE620:
- ldr r1, =gStringVar4
- ldr r2, =sub_81C5B14
- adds r0, r4, 0
- bl DisplayItemMessageInBattlePyramid
- b _080FE646
- .pool
-_080FE634:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xE]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080FE646:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseInBattle_Escape
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80FE650
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080FE66A
- b _080FE75C
-_080FE66A:
- lsls r0, 2
- ldr r1, =_080FE67C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080FE67C:
- .4byte _080FE708
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE75C
- .4byte _080FE75C
- .4byte _080FE6EC
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE6D0
- .4byte _080FE75C
- .4byte _080FE724
- .4byte _080FE724
- .4byte _080FE740
-_080FE6D0:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_Medicine
- b _080FE770
- .pool
-_080FE6EC:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_SacredAsh
- b _080FE770
- .pool
-_080FE708:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_RareCandy
- b _080FE770
- .pool
-_080FE724:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPUp
- b _080FE770
- .pool
-_080FE740:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPRecovery
- b _080FE770
- .pool
-_080FE75C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x10]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080FE770:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80FE77C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gSpecialVar_ItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080FE814
- lsls r0, 2
- ldr r1, =_080FE7A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080FE7A4:
- .4byte _080FE7FC
- .4byte _080FE814
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE804
- .4byte _080FE814
- .4byte _080FE804
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE814
- .4byte _080FE80C
-_080FE7FC:
- adds r0, r4, 0
- bl ItemUseInBattle_StatIncrease
- b _080FE81A
-_080FE804:
- adds r0, r4, 0
- bl ItemUseInBattle_Medicine
- b _080FE81A
-_080FE80C:
- adds r0, r4, 0
- bl ItemUseInBattle_PPRecovery
- b _080FE81A
-_080FE814:
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080FE81A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start ItemUseOutOfBattle_CannotUse
-ItemUseOutOfBattle_CannotUse: @ 80FE820
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0xE]
- bl DisplayDadsAdviceCannotUseItemMessage
- pop {r0}
- bx r0
- .pool
- thumb_func_end ItemUseOutOfBattle_CannotUse
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/link.s b/asm/link.s
index 0d143f0f3..805b3aec0 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -15,7 +15,7 @@ sub_80093CC: @ 80093CC
cmp r0, r1
beq _080093F4
bl sub_800B4A4
- bl sub_80097E8
+ bl CloseLink
bl RestoreSerialTimer3IntrHandlers
movs r0, 0
b _080093FE
@@ -29,15 +29,15 @@ _080093FE:
bx r1
thumb_func_end sub_80093CC
- thumb_func_start sub_8009404
-sub_8009404: @ 8009404
+ thumb_func_start Task_DestroySelf
+Task_DestroySelf: @ 8009404
push {lr}
lsls r0, 24
lsrs r0, 24
bl DestroyTask
pop {r0}
bx r0
- thumb_func_end sub_8009404
+ thumb_func_end Task_DestroySelf
thumb_func_start sub_8009414
sub_8009414: @ 8009414
@@ -210,7 +210,7 @@ sub_8009570: @ 8009570
ldr r2, =0x00001111
adds r0, r2, 0
strh r0, [r1]
- bl sub_8009734
+ bl OpenLink
ldr r0, =gMain
ldrh r0, [r0, 0x24]
bl SeedRng
@@ -236,7 +236,7 @@ _080095A0:
lsls r1, 5
movs r0, 0
bl SetGpuReg
- ldr r0, =sub_8009404
+ ldr r0, =Task_DestroySelf
movs r1, 0
bl CreateTask
bl RunTasks
@@ -384,8 +384,8 @@ _08009726:
.pool
thumb_func_end task02_080097CC
- thumb_func_start sub_8009734
-sub_8009734: @ 8009734
+ thumb_func_start OpenLink
+OpenLink: @ 8009734
push {r4-r6,lr}
ldr r0, =gLinkVSyncDisabled
ldrb r4, [r0]
@@ -443,10 +443,10 @@ _080097BE:
pop {r0}
bx r0
.pool
- thumb_func_end sub_8009734
+ thumb_func_end OpenLink
- thumb_func_start sub_80097E8
-sub_80097E8: @ 80097E8
+ thumb_func_start CloseLink
+CloseLink: @ 80097E8
push {r4,lr}
ldr r0, =gReceivedRemoteLinkPlayers
movs r4, 0
@@ -464,7 +464,7 @@ _080097FC:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80097E8
+ thumb_func_end CloseLink
thumb_func_start sub_8009818
sub_8009818: @ 8009818
@@ -698,7 +698,7 @@ _080099FC:
bls _080099FC
ldrh r0, [r4]
strh r0, [r5]
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
@@ -717,7 +717,7 @@ _080099FC:
_08009A34:
bl sub_800AEB4
_08009A38:
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldrh r0, [r0]
_08009A3C:
pop {r4,r5}
@@ -745,7 +745,7 @@ _08009A70:
adds r5, r0
adds r4, 0x1
_08009A78:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r4, r0
@@ -1378,7 +1378,7 @@ GetLinkPlayerCount: @ 8009FCC
ldrb r0, [r0]
cmp r0, 0
bne _08009FEC
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r0, [r0]
movs r1, 0x1C
ands r0, r1
@@ -1514,7 +1514,7 @@ sub_800A0AC: @ 800A0AC
str r1, [r0]
ldr r0, =gUnknown_020229C8
strh r1, [r0]
- bl sub_8009734
+ bl OpenLink
pop {r0}
bx r0
.pool
@@ -1532,7 +1532,7 @@ sub_800A0C8: @ 800A0C8
beq _0800A0DA
b _0800A214
_0800A0DA:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r5, r0
@@ -1552,7 +1552,7 @@ _0800A0FC:
bne _0800A10E
ldr r0, =gUnknown_0300306C
strb r4, [r0]
- bl sub_80097E8
+ bl CloseLink
_0800A10E:
movs r6, 0
ldr r4, =gLinkPlayers
@@ -2211,7 +2211,7 @@ _0800A616:
thumb_func_start sub_800A620
sub_800A620: @ 800A620
push {lr}
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r1, [r0]
movs r0, 0x20
ands r0, r1
@@ -2499,7 +2499,7 @@ _0800A81C:
thumb_func_start sub_800A824
sub_800A824: @ 800A824
push {lr}
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r0, [r0]
movs r1, 0x20
ands r0, r1
@@ -2534,7 +2534,7 @@ task00_link_test: @ 800A850
movs r2, 0x1
movs r3, 0x2
bl sub_800A6E8
- ldr r4, =gUnknown_030030E0
+ ldr r4, =gLinkStatus
ldr r0, [r4]
movs r1, 0xF
movs r2, 0x1
@@ -2606,7 +2606,7 @@ task00_link_test: @ 800A850
movs r2, 0x6
movs r3, 0x1
bl sub_800A6E8
- bl sub_800B320
+ bl IsLinkConnectionEstablished
lsls r0, 24
lsrs r0, 24
movs r1, 0x19
@@ -2807,7 +2807,7 @@ _0800AAB4:
ldrb r0, [r0]
cmp r3, r0
bne _0800AAE4
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
mov r1, r9
@@ -2887,7 +2887,7 @@ _0800AB5A:
ldr r1, =gUnknown_0300306C
movs r0, 0x1
strb r0, [r1]
- bl sub_80097E8
+ bl CloseLink
ldr r0, =c2_800ACD4
bl SetMainCallback2
_0800AB6A:
@@ -2918,25 +2918,25 @@ sub_800AB98: @ 800AB98
.pool
thumb_func_end sub_800AB98
- thumb_func_start sub_800ABAC
-sub_800ABAC: @ 800ABAC
- ldr r0, =gUnknown_030030E0
+ thumb_func_start GetLinkPlayerCount_2
+GetLinkPlayerCount_2: @ 800ABAC
+ ldr r0, =gLinkStatus
ldr r0, [r0]
movs r1, 0x1C
ands r0, r1
lsrs r0, 2
bx lr
.pool
- thumb_func_end sub_800ABAC
+ thumb_func_end GetLinkPlayerCount_2
- thumb_func_start sub_800ABBC
-sub_800ABBC: @ 800ABBC
+ thumb_func_start IsLinkMaster
+IsLinkMaster: @ 800ABBC
push {lr}
ldr r0, =gLinkVSyncDisabled
ldrb r0, [r0]
cmp r0, 0
bne _0800ABDC
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r0, [r0]
lsrs r0, 5
movs r1, 0x1
@@ -2950,7 +2950,7 @@ _0800ABDC:
_0800ABE4:
pop {r1}
bx r1
- thumb_func_end sub_800ABBC
+ thumb_func_end IsLinkMaster
thumb_func_start sub_800ABE8
sub_800ABE8: @ 800ABE8
@@ -3074,7 +3074,7 @@ _0800ACD0:
ldr r0, =gUnknown_03002748
movs r4, 0x1
strb r4, [r0]
- bl sub_80097E8
+ bl CloseLink
ldr r1, =gUnknown_03003140
movs r0, 0
str r0, [r1]
@@ -3178,7 +3178,7 @@ _0800ADB6:
ldr r0, =gUnknown_03002748
movs r4, 0x1
strb r4, [r0]
- bl sub_80097E8
+ bl CloseLink
ldr r1, =gUnknown_03003140
movs r0, 0
str r0, [r1]
@@ -3290,7 +3290,7 @@ sub_800AEB4: @ 800AEB4
ldrb r0, [r0]
cmp r0, 0
beq _0800AEF4
- ldr r0, =gUnknown_030030E0
+ ldr r0, =gLinkStatus
ldr r2, [r0]
movs r0, 0xFE
lsls r0, 11
@@ -3315,7 +3315,7 @@ _0800AEEA:
ldr r1, =gUnknown_0300306C
movs r0, 0x1
strb r0, [r1]
- bl sub_80097E8
+ bl CloseLink
_0800AEF4:
pop {r0}
bx r0
@@ -3426,7 +3426,7 @@ _0800AF8C:
ldr r1, =gSoftResetDisabled
movs r0, 0
strb r0, [r1]
- ldr r0, =sub_8009404
+ ldr r0, =Task_DestroySelf
movs r1, 0
bl CreateTask
bl StopMapMusic
@@ -3740,16 +3740,16 @@ _0800B314:
.pool
thumb_func_end sub_800B2F8
- thumb_func_start sub_800B320
-sub_800B320: @ 800B320
- ldr r0, =gUnknown_030030E0
+ thumb_func_start IsLinkConnectionEstablished
+IsLinkConnectionEstablished: @ 800B320
+ ldr r0, =gLinkStatus
ldr r0, [r0]
lsrs r0, 6
movs r1, 0x1
ands r0, r1
bx lr
.pool
- thumb_func_end sub_800B320
+ thumb_func_end IsLinkConnectionEstablished
thumb_func_start sub_800B330
sub_800B330: @ 800B330
@@ -3864,7 +3864,7 @@ HandleLinkConnection: @ 800B40C
ldr r1, =gSendCmd
ldr r2, =gRecvCmds
bl sub_800B638
- ldr r4, =gUnknown_030030E0
+ ldr r4, =gLinkStatus
str r0, [r4]
ldr r0, =gUnknown_030022EC
bl sub_80099E0
@@ -15025,7 +15025,7 @@ _08010E20:
ldrb r1, [r0]
movs r1, 0x2
strb r1, [r0]
- bl sub_80097E8
+ bl CloseLink
b _08010E8E
.pool
_08010E5C:
@@ -16613,7 +16613,7 @@ sub_8011AFC: @ 8011AFC
adds r0, r2, 0
strh r0, [r1]
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
ldr r0, =gMain
ldrh r0, [r0, 0x24]
bl SeedRng
@@ -18142,7 +18142,7 @@ _08012848:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
ldrb r1, [r4]
movs r0, 0xF
ands r0, r1
@@ -19650,7 +19650,7 @@ _08013590:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C5C
movs r0, 0x70
bl AllocZeroed
@@ -20398,7 +20398,7 @@ _08013CD0:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C5C
movs r0, 0x1
bl sub_80111B0
@@ -21684,7 +21684,7 @@ _080148CC:
bne _080149B2
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
movs r0, 0x2
strh r0, [r7]
b _080149B2
@@ -21897,7 +21897,7 @@ _08014AB0:
movs r1, 0
bl sub_8010FA0
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
movs r0, 0x2
bl sub_8011C10
movs r0, 0x1
@@ -22435,7 +22435,7 @@ _08014FA4:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C5C
movs r0, 0x70
bl AllocZeroed
@@ -22823,7 +22823,7 @@ _08015358:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C5C
movs r0, 0x70
bl AllocZeroed
@@ -23373,7 +23373,7 @@ _08015878:
ldrh r2, [r2, 0xC]
bl sub_8010FCC
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C84
ldr r0, [r6, 0x8]
movs r1, 0x1
@@ -25223,7 +25223,7 @@ _080169BE:
movs r2, 0
bl sub_8010F84
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011C84
movs r0, 0x1
bl sub_80111B0
@@ -28867,7 +28867,7 @@ sub_80186A4: @ 80186A4
movs r0, 0x3
bl GetBgTilemapBuffer
bl Free
- ldr r0, =c2_title_screen_1
+ ldr r0, =CB2_InitTitleScreen
bl SetMainCallback2
pop {r0}
bx r0
@@ -31098,7 +31098,7 @@ _080198FE:
b _08019922
.pool
_0801990C:
- bl sub_80097E8
+ bl CloseLink
ldr r0, [r5, 0x10]
bl Free
adds r0, r4, 0
@@ -31433,7 +31433,7 @@ _08019B84:
b _08019B9C
_08019B96:
adds r0, r4, 0
- bl sub_8097404
+ bl FreezeMapObject
_08019B9C:
movs r0, 0x1
_08019B9E:
@@ -39837,7 +39837,7 @@ sub_801DF20: @ 801DF20
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_801DF20
@@ -42568,7 +42568,7 @@ sub_801F544: @ 801F544
str r0, [r4]
_0801F55A:
bl FreeAllWindowBuffers
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
pop {r4}
@@ -44875,13 +44875,13 @@ sub_8020770: @ 8020770
strh r1, [r0, 0x20]
str r1, [sp, 0xC]
add r0, sp, 0xC
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
ldr r2, =0x010003c0
bl CpuFastSet
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
add sp, 0x10
pop {r0}
bx r0
@@ -44896,12 +44896,12 @@ sub_80207C0: @ 80207C0
lsrs r0, 16
mov r1, sp
strh r0, [r1]
- ldr r5, =gUnknown_02039B28
+ ldr r5, =gScanlineEffect
ldrb r0, [r5, 0x14]
lsls r1, r0, 4
subs r1, r0
lsls r1, 7
- ldr r4, =gUnknown_02038C28
+ ldr r4, =gScanlineEffectRegBuffers
adds r1, r4
ldr r2, =0x01000090
mov r0, sp
@@ -44939,7 +44939,7 @@ sub_8020818: @ 8020818
lsrs r4, 16
mov r0, sp
strh r4, [r0]
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x01000090
mov r9, r0
mov r0, sp
@@ -46462,7 +46462,7 @@ _080214C6:
lsrs r3, 16
ldr r0, =gUnknown_082F436C
adds r1, r2, 0
- bl AddItemIconObjectWithCustomObjectTemplate
+ bl AddCustomItemIconSprite
lsls r0, 24
lsrs r0, 24
mov r2, r9
diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc
index a16b59366..c5ffb5abc 100644
--- a/asm/macros/battle_script.inc
+++ b/asm/macros/battle_script.inc
@@ -1389,7 +1389,7 @@
.endm
.macro jumpifmovehadnoeffect jumpptr
- jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr
+ jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpptr
.endm
.macro jumpifbattletype flags, jumpptr
diff --git a/asm/main_menu.s b/asm/main_menu.s
index 9d6cba40f..9c6cd1253 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -1495,7 +1495,7 @@ _08030478:
b _0803048A
.pool
_08030480:
- ldr r0, =sub_8178974
+ ldr r0, =CB2_InitMysteryEventMenu
b _0803048A
.pool
_08030488:
@@ -1608,7 +1608,7 @@ _08030578:
ldr r0, =gUnknown_02022D06
strh r4, [r0]
bl FreeAllWindowBuffers
- ldr r0, =c2_title_screen_1
+ ldr r0, =CB2_InitTitleScreen
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s
deleted file mode 100644
index 4a6ae9945..000000000
--- a/asm/map_obj_8097404.s
+++ /dev/null
@@ -1,1861 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8097404
-@ bool8 sub_8097404(struct npc_state *fieldObject)
-sub_8097404: @ 8097404
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0xA0
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0809748C
- ldrb r0, [r5, 0x1]
- movs r4, 0x1
- orrs r0, r4
- strb r0, [r5, 0x1]
- ldr r3, =gSprites
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 7
- ldrb r2, [r5, 0x2]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x2]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- lsrs r1, 7
- ands r1, r4
- ldrb r2, [r5, 0x3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
- b _0809748E
- .pool
-_0809748C:
- movs r0, 0x1
-_0809748E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8097404
-
- thumb_func_start FreezeMapObjects
-@ void FreezeMapObjects()
-FreezeMapObjects: @ 8097494
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gMapObjects
-_0809749A:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _080974B8
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- beq _080974B8
- adds r0, r1, 0
- bl sub_8097404
-_080974B8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _0809749A
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FreezeMapObjects
-
- thumb_func_start sub_80974D0
-sub_80974D0: @ 80974D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r6, =gMapObjects
-_080974DA:
- cmp r4, r5
- beq _080974FC
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r6
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _080974FC
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- beq _080974FC
- adds r0, r1, 0
- bl sub_8097404
-_080974FC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _080974DA
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80974D0
-
- thumb_func_start npc_sync_anim_pause_bits
-@ void npc_sync_anim_pause_bits(struct npc_state *fieldObject)
-npc_sync_anim_pause_bits: @ 8097514
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r2, [r5]
- ldr r1, =0x00000101
- adds r0, r1, 0
- ands r0, r2
- cmp r0, r1
- bne _0809756C
- ldrb r1, [r5, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r5, 0x1]
- ldr r4, =gSprites
- ldrb r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r5, 0x2]
- adds r1, 0x2C
- lsrs r2, 7
- lsls r2, 6
- ldrb r3, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrb r1, [r5, 0x3]
- lsls r1, 31
- lsrs r1, 31
- adds r2, 0x2C
- lsls r1, 7
- ldrb r3, [r2]
- movs r0, 0x7F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0809756C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_sync_anim_pause_bits
-
- thumb_func_start UnfreezeMapObjects
-UnfreezeMapObjects: @ 809757C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gMapObjects
-_08097582:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08097598
- adds r0, r1, 0
- bl npc_sync_anim_pause_bits
-_08097598:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08097582
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UnfreezeMapObjects
-
- thumb_func_start little_step
-@ void little_step(struct obj *object, u8 direction)
-little_step: @ 80975AC
- lsls r1, 24
- ldr r2, =gUnknown_0850DB7C
- lsrs r1, 22
- adds r1, r2
- ldrh r2, [r1]
- ldrh r3, [r0, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x2]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end little_step
-
- thumb_func_start double_little_steps
-double_little_steps: @ 80975CC
- lsls r1, 24
- ldr r2, =gUnknown_0850DB7C
- lsrs r1, 22
- adds r1, r2
- ldrh r2, [r1]
- lsls r2, 1
- ldrh r3, [r0, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x2]
- lsls r1, 1
- ldrh r2, [r0, 0x22]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end double_little_steps
-
- thumb_func_start triple_little_steps
-triple_little_steps: @ 80975F0
- lsls r1, 24
- ldr r2, =gUnknown_0850DB7C
- lsrs r1, 22
- adds r1, r2
- ldrh r2, [r1]
- lsls r3, r2, 1
- adds r2, r3
- ldrh r3, [r0, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x2]
- lsls r2, r1, 1
- adds r1, r2
- ldrh r2, [r0, 0x22]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end triple_little_steps
-
- thumb_func_start quad_little_steps
-quad_little_steps: @ 8097618
- lsls r1, 24
- ldr r2, =gUnknown_0850DB7C
- lsrs r1, 22
- adds r1, r2
- ldrh r2, [r1]
- lsls r2, 2
- ldrh r3, [r0, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x2]
- lsls r1, 2
- ldrh r2, [r0, 0x22]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end quad_little_steps
-
- thumb_func_start oct_little_steps
-@ void oct_little_steps(struct obj *object, u8 direction)
-oct_little_steps: @ 809763C
- lsls r1, 24
- ldr r2, =gUnknown_0850DB7C
- lsrs r1, 22
- adds r1, r2
- ldrh r2, [r1]
- lsls r2, 3
- ldrh r3, [r0, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x2]
- lsls r1, 3
- ldrh r2, [r0, 0x22]
- adds r1, r2
- strh r1, [r0, 0x22]
- bx lr
- .pool
- thumb_func_end oct_little_steps
-
- thumb_func_start oamt_npc_ministep_reset
-@ void oamt_npc_ministep_reset(struct obj *object, u8 direction, u8 speed)
-oamt_npc_ministep_reset: @ 8097660
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0
- strh r1, [r0, 0x34]
- strh r2, [r0, 0x36]
- strh r3, [r0, 0x38]
- bx lr
- thumb_func_end oamt_npc_ministep_reset
-
- thumb_func_start obj_npc_ministep
-@ bool8 obj_npc_ministep(struct obj *object)
-obj_npc_ministep: @ 8097674
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, =gUnknown_0850E768
- movs r0, 0x36
- ldrsh r2, [r4, r0]
- lsls r0, r2, 1
- adds r0, r5
- movs r3, 0x38
- ldrsh r1, [r4, r3]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bge _080976D4
- ldr r1, =gUnknown_0850E754
- lsls r0, r2, 2
- adds r0, r1
- movs r1, 0x38
- ldrsh r2, [r4, r1]
- ldr r0, [r0]
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsls r1, 1
- adds r1, r5
- lsls r0, 16
- asrs r0, 16
- movs r3, 0
- ldrsh r1, [r1, r3]
- cmp r0, r1
- blt _080976D4
- movs r0, 0x1
- b _080976D6
- .pool
-_080976D4:
- movs r0, 0
-_080976D6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end obj_npc_ministep
-
- thumb_func_start sub_80976DC
-@ void sub_80976DC(struct obj *object, u8 direction)
-sub_80976DC: @ 80976DC
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- strh r1, [r0, 0x34]
- strh r2, [r0, 0x36]
- strh r2, [r0, 0x38]
- bx lr
- thumb_func_end sub_80976DC
-
- thumb_func_start sub_80976EC
-@ bool8 sub_80976EC(struct obj *object)
-sub_80976EC: @ 80976EC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x36]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0809770C
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl little_step
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_0809770C:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- bgt _0809771E
- movs r0, 0
- b _08097720
-_0809771E:
- movs r0, 0x1
-_08097720:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80976EC
-
- thumb_func_start sub_8097728
-sub_8097728: @ 8097728
- ldr r1, =gUnknown_0850E7BA
- lsls r0, 16
- asrs r0, 16
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bx lr
- .pool
- thumb_func_end sub_8097728
-
- thumb_func_start sub_809773C
-sub_809773C: @ 809773C
- ldr r1, =gUnknown_0850E772
- lsls r0, 16
- asrs r0, 16
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bx lr
- .pool
- thumb_func_end sub_809773C
-
- thumb_func_start sub_8097750
-sub_8097750: @ 8097750
- movs r1, 0
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8097750
-
- thumb_func_start sub_8097758
-sub_8097758: @ 8097758
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0809778E
- cmp r0, 0x1
- bgt _08097770
- cmp r0, 0
- beq _0809777A
- b _080977F2
-_08097770:
- cmp r0, 0x2
- beq _080977B6
- cmp r0, 0x3
- beq _080977CA
- b _080977F2
-_0809777A:
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _080977E8
-_0809778E:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_8097728
- ldrh r2, [r5, 0x26]
- adds r0, r2
- b _080977F0
-_080977B6:
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _080977E8
-_080977CA:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
-_080977E8:
- bl sub_8097728
- ldrh r1, [r5, 0x26]
- adds r0, r1
-_080977F0:
- strh r0, [r5, 0x26]
-_080977F2:
- ldrh r0, [r5, 0x3A]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x48
- bne _0809780A
- strh r1, [r5, 0x3A]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_0809780A:
- movs r2, 0x3C
- ldrsh r0, [r5, r2]
- cmp r0, 0x4
- bne _08097818
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r6, 0x1
-_08097818:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8097758
-
- thumb_func_start sub_8097820
-sub_8097820: @ 8097820
- lsls r1, 24
- ldr r2, =gUnknown_0850E834
- lsrs r1, 22
- adds r1, r2
- lsls r0, 16
- asrs r0, 16
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- bx lr
- .pool
- thumb_func_end sub_8097820
-
- thumb_func_start sub_809783C
-sub_809783C: @ 809783C
- push {r4,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0
- strh r1, [r0, 0x34]
- strh r2, [r0, 0x36]
- strh r3, [r0, 0x38]
- strh r4, [r0, 0x3A]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809783C
-
- thumb_func_start sub_809785C
-sub_809785C: @ 809785C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, =gUnknown_0850E840
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r5, sp, 0x8
- ldr r1, =gUnknown_0850E846
- adds r0, r5, 0
- movs r2, 0x3
- bl memcpy
- movs r6, 0
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0809788E
- ldrh r1, [r4, 0x34]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl little_step
-_0809788E:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- adds r1, r5, r1
- ldrb r1, [r1]
- asrs r0, r1
- ldrh r1, [r4, 0x38]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8097820
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x3A]
- adds r1, 0x1
- strh r1, [r4, 0x3A]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- lsls r0, 16
- asrs r2, r0, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 17
- cmp r1, r0
- bne _080978C8
- movs r6, 0x1
-_080978C8:
- cmp r1, r2
- blt _080978D2
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r6, 0xFF
-_080978D2:
- adds r0, r6, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809785C
-
- thumb_func_start sub_80978E4
-sub_80978E4: @ 80978E4
- push {r4-r6,lr}
- sub sp, 0xC
- adds r5, r0, 0
- ldr r1, =gUnknown_0850E84A
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r4, sp, 0x8
- ldr r1, =gUnknown_0850E850
- adds r0, r4, 0
- movs r2, 0x3
- bl memcpy
- movs r6, 0
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08097920
- ldrh r1, [r5, 0x3A]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08097920
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl little_step
-_08097920:
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- adds r1, r4, r1
- ldrb r1, [r1]
- asrs r0, r1
- ldrh r1, [r5, 0x38]
- lsls r1, 24
- lsrs r1, 24
- bl sub_8097820
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0x3A]
- adds r1, 0x1
- strh r1, [r5, 0x3A]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- lsls r0, 16
- asrs r2, r0, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 17
- cmp r1, r0
- bne _0809795A
- movs r6, 0x1
-_0809795A:
- cmp r1, r2
- blt _08097964
- movs r0, 0
- strh r0, [r5, 0x26]
- movs r6, 0xFF
-_08097964:
- adds r0, r6, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80978E4
-
- thumb_func_start SetFieldObjectStepTimer
-@ void SetFieldObjectStepTimer(struct obj *object, u16 a2)
-SetFieldObjectStepTimer: @ 8097978
- strh r1, [r0, 0x34]
- bx lr
- thumb_func_end SetFieldObjectStepTimer
-
- thumb_func_start RunFieldObjectStepTimer
-@ bool8 RunFieldObjectStepTimer(struct obj *object)
-RunFieldObjectStepTimer: @ 809797C
- push {lr}
- ldrh r1, [r0, 0x34]
- subs r1, 0x1
- strh r1, [r0, 0x34]
- lsls r1, 16
- cmp r1, 0
- beq _0809798E
- movs r0, 0
- b _08097990
-_0809798E:
- movs r0, 0x1
-_08097990:
- pop {r1}
- bx r1
- thumb_func_end RunFieldObjectStepTimer
-
- thumb_func_start obj_anim_image_set_and_seek
-obj_anim_image_set_and_seek: @ 8097994
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- adds r3, r0, 0
- adds r3, 0x2A
- strb r1, [r3]
- adds r4, r0, 0
- adds r4, 0x2C
- ldrb r3, [r4]
- movs r1, 0x41
- negs r1, r1
- ands r1, r3
- strb r1, [r4]
- adds r1, r2, 0
- bl SeekSpriteAnim
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end obj_anim_image_set_and_seek
-
- thumb_func_start sub_80979BC
-sub_80979BC: @ 80979BC
- push {lr}
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080979CE
- movs r0, 0
- b _080979D0
-_080979CE:
- movs r0, 0x1
-_080979D0:
- pop {r1}
- bx r1
- thumb_func_end sub_80979BC
-
- thumb_func_start sub_80979D4
-sub_80979D4: @ 80979D4
- push {r4-r6,lr}
- mov r12, r0
- lsls r1, 24
- lsrs r1, 24
- mov r3, r12
- adds r3, 0x3E
- movs r0, 0x1
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08097A3C
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- mov r4, r12
- adds r4, 0x28
- movs r0, 0
- ldrsb r0, [r4, r0]
- ldr r2, =gSpriteCoordOffsetX
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r12
- ldrh r1, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- subs r3, 0x15
- movs r0, 0
- ldrsb r0, [r3, r0]
- ldr r2, =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r2, [r2]
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r2, r3, 0
- b _08097A6A
- .pool
-_08097A3C:
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- mov r3, r12
- adds r3, 0x28
- movs r0, 0
- ldrsb r0, [r3, r0]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r12
- ldrh r1, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r1, r2
- mov r2, r12
- adds r2, 0x29
- movs r0, 0
- ldrsb r0, [r2, r0]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, r3, 0
-_08097A6A:
- ldrb r0, [r4]
- lsls r0, 24
- asrs r0, 25
- subs r0, r6, r0
- lsls r0, 16
- lsrs r3, r0, 16
- ldrb r0, [r2]
- lsls r0, 24
- asrs r0, 25
- subs r0, r5, r0
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xFF
- bgt _08097A96
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _08097AA2
-_08097A96:
- mov r4, r12
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
-_08097AA2:
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _08097AB6
- lsls r0, r2, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _08097AC2
-_08097AB6:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08097AC2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80979D4
-
- thumb_func_start sub_8097AC8
-sub_8097AC8: @ 8097AC8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8097D68
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x1
- bl SetObjectSubpriorityByZCoord
- ldrh r1, [r4, 0x32]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80979D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8097AC8
-
- thumb_func_start sub_8097AF0
-sub_8097AF0: @ 8097AF0
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0x3F
-_08097AF6:
- ldr r0, =gSprites
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08097B16
- ldr r1, [r2, 0x1C]
- ldr r0, =sub_8097AC8
- cmp r1, r0
- bne _08097B16
- adds r0, r2, 0
- bl DestroySprite
-_08097B16:
- adds r5, 0x44
- subs r4, 0x1
- cmp r4, 0
- bge _08097AF6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097AF0
-
- thumb_func_start sub_8097B2C
-sub_8097B2C: @ 8097B2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r6, =gSprites
- movs r4, 0
-_08097B38:
- adds r2, r4, r6
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08097B68
- ldr r1, [r2, 0x1C]
- ldr r0, =sub_8097AC8
- cmp r1, r0
- bne _08097B68
- ldrh r0, [r2, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08097B68
- adds r0, r3, 0
- b _08097B72
- .pool
-_08097B68:
- adds r4, 0x44
- adds r3, 0x1
- cmp r3, 0x3F
- ble _08097B38
- movs r0, 0x40
-_08097B72:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8097B2C
-
- thumb_func_start sub_8097B78
-sub_8097B78: @ 8097B78
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- bl sub_8097B2C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08097BAA
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_08097BAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097B78
-
- thumb_func_start sub_8097BB4
-sub_8097BB4: @ 8097BB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- bl sub_8097B2C
- adds r1, r0, 0
- cmp r1, 0x40
- beq _08097C3E
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- adds r0, r5, 0
- bl GetFieldObjectGraphicsInfo
- ldrh r3, [r4, 0x4]
- lsls r3, 22
- ldr r1, [r0, 0x10]
- ldr r2, [r1, 0x4]
- ldr r1, [r1]
- str r1, [r4]
- str r2, [r4, 0x4]
- lsrs r3, 22
- ldrh r2, [r4, 0x4]
- ldr r1, =0xfffffc00
- ands r1, r2
- orrs r1, r3
- strh r1, [r4, 0x4]
- ldrb r2, [r0, 0xC]
- lsls r2, 28
- lsrs r2, 24
- ldrb r3, [r4, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r2
- strb r1, [r4, 0x5]
- ldr r1, [r0, 0x1C]
- str r1, [r4, 0xC]
- ldr r1, [r0, 0x14]
- cmp r1, 0
- bne _08097C20
- str r1, [r4, 0x18]
- adds r0, r4, 0
- adds r0, 0x42
- strb r1, [r0]
- b _08097C36
- .pool
-_08097C20:
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r2, r4, 0
- adds r2, 0x42
- ldrb r0, [r2]
- movs r1, 0x3F
- ands r1, r0
- movs r0, 0x80
- orrs r1, r0
- strb r1, [r2]
-_08097C36:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_08097C3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8097BB4
-
- thumb_func_start sub_8097C44
-sub_8097C44: @ 8097C44
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097B2C
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x40
- beq _08097C80
- cmp r4, 0
- beq _08097C74
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x32]
- b _08097C80
- .pool
-_08097C74:
- ldr r1, =gSprites
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x32]
-_08097C80:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097C44
-
- thumb_func_start sub_8097C8C
-sub_8097C8C: @ 8097C8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097B2C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- bne _08097CA2
- movs r0, 0
- b _08097CBA
-_08097CA2:
- movs r3, 0
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r2, 0x32
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08097CB8
- movs r3, 0x1
-_08097CB8:
- adds r0, r3, 0
-_08097CBA:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8097C8C
-
- thumb_func_start sub_8097CC4
-sub_8097CC4: @ 8097CC4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_8097B2C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08097CEA
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r4, [r1, 0x34]
- strh r0, [r1, 0x36]
-_08097CEA:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097CC4
-
- thumb_func_start sub_8097CF4
-sub_8097CF4: @ 8097CF4
- push {lr}
- adds r2, r0, 0
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08097D06
- cmp r0, 0x1
- beq _08097D0E
- b _08097D2C
-_08097D06:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x36]
- adds r0, 0x1
- strh r0, [r2, 0x36]
-_08097D0E:
- ldrh r0, [r2, 0x26]
- subs r0, 0x8
- movs r3, 0
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xA0
- negs r1, r1
- cmp r0, r1
- bne _08097D2C
- strh r3, [r2, 0x26]
- movs r0, 0x1
- strh r0, [r2, 0x32]
- strh r3, [r2, 0x34]
- strh r3, [r2, 0x36]
-_08097D2C:
- pop {r0}
- bx r0
- thumb_func_end sub_8097CF4
-
- thumb_func_start sub_8097D30
-sub_8097D30: @ 8097D30
- push {lr}
- adds r1, r0, 0
- movs r2, 0x36
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08097D42
- cmp r0, 0x1
- beq _08097D4C
- b _08097D5E
-_08097D42:
- ldr r0, =0x0000ff60
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x36]
- adds r0, 0x1
- strh r0, [r1, 0x36]
-_08097D4C:
- ldrh r0, [r1, 0x26]
- adds r0, 0x8
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _08097D5E
- strh r0, [r1, 0x34]
- strh r0, [r1, 0x36]
-_08097D5E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097D30
-
- thumb_func_start sub_8097D68
-sub_8097D68: @ 8097D68
- push {lr}
- adds r1, r0, 0
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08097D84
- cmp r0, 0x1
- bgt _08097D7E
- cmp r0, 0
- beq _08097D98
- b _08097D94
-_08097D7E:
- cmp r0, 0x2
- beq _08097D8C
- b _08097D94
-_08097D84:
- adds r0, r1, 0
- bl sub_8097D30
- b _08097D98
-_08097D8C:
- adds r0, r1, 0
- bl sub_8097CF4
- b _08097D98
-_08097D94:
- movs r0, 0
- strh r0, [r1, 0x34]
-_08097D98:
- pop {r0}
- bx r0
- thumb_func_end sub_8097D68
-
- thumb_func_start sub_8097D9C
-sub_8097D9C: @ 8097D9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097B2C
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08097DC0
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08097DC8
-_08097DC0:
- movs r0, 0
- b _08097DCA
- .pool
-_08097DC8:
- movs r0, 0x1
-_08097DCA:
- pop {r1}
- bx r1
- thumb_func_end sub_8097D9C
-
- thumb_func_start oe_exec_and_other_stuff
-oe_exec_and_other_stuff: @ 8097DD0
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gFieldEffectArguments
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- bl FieldObjectGetLocalIdAndMap
- adds r0, r4, 0
- bl FieldEffectStart
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oe_exec_and_other_stuff
-
- thumb_func_start DoShadowFieldEffect
-DoShadowFieldEffect: @ 8097DF8
- push {lr}
- adds r1, r0, 0
- ldrb r2, [r1, 0x2]
- lsls r0, r2, 25
- cmp r0, 0
- blt _08097E10
- movs r0, 0x40
- orrs r0, r2
- strb r0, [r1, 0x2]
- movs r0, 0x3
- bl oe_exec_and_other_stuff
-_08097E10:
- pop {r0}
- bx r0
- thumb_func_end DoShadowFieldEffect
-
- thumb_func_start DoRippleFieldEffect
-@ void DoRippleFieldEffect(struct npc_state *fieldObject, struct obj *object)
-DoRippleFieldEffect: @ 8097E14
- push {r4,lr}
- adds r4, r1, 0
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldr r2, =gFieldEffectArguments
- movs r3, 0x20
- ldrsh r1, [r4, r3]
- str r1, [r2]
- movs r3, 0x22
- ldrsh r1, [r4, r3]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- adds r1, r0
- subs r1, 0x2
- str r1, [r2, 0x4]
- movs r0, 0x97
- str r0, [r2, 0x8]
- movs r0, 0x3
- str r0, [r2, 0xC]
- movs r0, 0x5
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoRippleFieldEffect
-
- thumb_func_start sub_8097E50
-sub_8097E50: @ 8097E50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- mov r8, r1
- movs r0, 0
- mov r12, r0
- ldr r0, =gUnknown_020375B8
- ldr r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- bne _08097E80
- movs r0, 0x14
- bl AllocZeroed
- str r0, [r6]
- ldrb r1, [r4, 0x8]
- strb r1, [r0]
- ldr r1, [r6]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- b _08097ECC
- .pool
-_08097E80:
- movs r2, 0x10
- movs r5, 0
- movs r1, 0
- adds r3, r6, 0
- b _08097E90
-_08097E8A:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_08097E90:
- cmp r1, 0xF
- bhi _08097EB2
- cmp r2, 0x10
- bne _08097EA4
- ldr r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08097EA4
- adds r2, r1, 0
-_08097EA4:
- ldr r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r7, [r4, 0x8]
- cmp r0, r7
- bne _08097E8A
- movs r5, 0x1
-_08097EB2:
- cmp r5, 0
- bne _08097ECE
- cmp r2, 0x10
- beq _08097ECE
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r4, 0x8]
- strb r1, [r0]
- ldr r1, [r6]
- ldrb r0, [r1, 0x10]
- adds r0, 0x1
- strb r0, [r1, 0x10]
- movs r0, 0x1
-_08097ECC:
- mov r12, r0
-_08097ECE:
- mov r1, r12
- cmp r1, 0x1
- bne _08097EE0
- ldrb r0, [r4, 0x1]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
-_08097EE0:
- movs r0, 0x1
- mov r7, r8
- strh r0, [r7, 0x32]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8097E50
-
- thumb_func_start sub_8097EF0
-sub_8097EF0: @ 8097EF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- movs r0, 0x1
- strh r0, [r1, 0x32]
- ldr r5, =gUnknown_020375B8
- ldr r0, [r5]
- cmp r0, 0
- beq _08097F68
- movs r7, 0
- adds r0, r6, 0
- bl sub_8097F78
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x10
- beq _08097F28
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- subs r0, 0x1
- strb r0, [r1, 0x10]
- movs r7, 0x1
-_08097F28:
- ldr r0, [r5]
- ldrb r4, [r0, 0x10]
- cmp r4, 0
- bne _08097F36
- bl Free
- str r4, [r5]
-_08097F36:
- cmp r7, 0x1
- bne _08097F68
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- lsls r1, 25
- lsrs r1, 31
- lsls r1, 4
- ldrb r2, [r6, 0x1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- movs r1, 0x3
- negs r1, r1
- ands r0, r1
- strb r0, [r6, 0x1]
- mov r2, r8
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08097F68:
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8097EF0
-
- thumb_func_start sub_8097F78
-@ signed int sub_8097F78(npc_state *a1)
-sub_8097F78: @ 8097F78
- push {lr}
- movs r2, 0
- ldr r1, =gUnknown_020375B8
- ldr r1, [r1]
- ldrb r3, [r0, 0x8]
-_08097F82:
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _08097F94
- adds r0, r2, 0
- b _08097FA0
- .pool
-_08097F94:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _08097F82
- movs r0, 0x10
-_08097FA0:
- pop {r1}
- bx r1
- thumb_func_end sub_8097F78
-
- thumb_func_start sub_8097FA4
-sub_8097FA4: @ 8097FA4
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =sub_8097FE4
- movs r1, 0xFF
- bl CreateTask
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x8
- adds r1, r6, 0
- bl StoreWordInTwoHalfwords
- strb r5, [r6, 0x1B]
- ldr r0, =0x0000ffff
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097FA4
-
- thumb_func_start sub_8097FE4
-sub_8097FE4: @ 8097FE4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks
- adds r4, r1, r0
- adds r0, r4, 0
- adds r0, 0x8
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- ldr r0, [sp]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- ldrh r1, [r4, 0xC]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08098020
- ldrh r0, [r4, 0xE]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_08098020:
- ldrh r1, [r4, 0xC]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08098030
- ldrh r0, [r4, 0xE]
- negs r0, r0
- strh r0, [r4, 0xE]
-_08098030:
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8097FE4
-
- thumb_func_start sub_8098044
-sub_8098044: @ 8098044
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- adds r0, 0x8
- mov r1, sp
- bl LoadWordFromTwoHalfwords
- adds r0, r4, 0
- bl DestroyTask
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098044
-
- thumb_func_start sub_8098074
-sub_8098074: @ 8098074
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r4, 0
- ldr r7, =gMapObjects
-_08098082:
- cmp r4, r6
- beq _080980A8
- cmp r4, r5
- beq _080980A8
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r7
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _080980A8
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- cmp r4, r0
- beq _080980A8
- adds r0, r1, 0
- bl sub_8097404
-_080980A8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08098082
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8098074
-
- thumb_func_start sub_80980C0
-sub_80980C0: @ 80980C0
- movs r0, 0
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- movs r0, 0
- bx lr
- thumb_func_end sub_80980C0
-
- thumb_func_start sub_80980D0
-sub_80980D0: @ 80980D0
- push {lr}
- adds r2, r1, 0
- ldrh r0, [r2, 0x26]
- subs r0, 0x8
- strh r0, [r2, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xA0
- negs r1, r1
- cmp r0, r1
- bne _080980EC
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
-_080980EC:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80980D0
-
- thumb_func_start sub_80980F4
-sub_80980F4: @ 80980F4
- ldr r0, =0x0000ff60
- strh r0, [r1, 0x26]
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
- movs r0, 0
- bx lr
- .pool
- thumb_func_end sub_80980F4
-
- thumb_func_start sub_8098108
-sub_8098108: @ 8098108
- push {lr}
- ldrh r0, [r1, 0x26]
- adds r0, 0x8
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- bne _0809811C
- ldrh r0, [r1, 0x32]
- adds r0, 0x1
- strh r0, [r1, 0x32]
-_0809811C:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8098108
-
- thumb_func_start sub_8098124
-sub_8098124: @ 8098124
- movs r0, 0x1
- bx lr
- thumb_func_end sub_8098124
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s
index 3cf009175..97abc7fec 100644
--- a/asm/map_obj_lock.s
+++ b/asm/map_obj_lock.s
@@ -109,7 +109,7 @@ _0809842A:
cmp r0, 0
blt _08098452
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
movs r0, 0x1
strh r0, [r5, 0xA]
_08098452:
@@ -154,7 +154,7 @@ LockSelectedMapObject: @ 80984A0
push {r4,r5,lr}
ldr r4, =gSelectedMapObject
ldrb r0, [r4]
- bl sub_80974D0
+ bl FreezeMapObjectsExceptOne
ldr r0, =sub_8098400
movs r1, 0x50
bl CreateTask
@@ -171,7 +171,7 @@ LockSelectedMapObject: @ 80984A0
cmp r0, 0
blt _080984DE
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
ldr r0, =gTasks
lsls r1, r5, 2
adds r1, r5
@@ -317,7 +317,7 @@ _080985E8:
cmp r0, 0
blt _0809860C
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
movs r0, 0x1
strh r0, [r5, 0xA]
_0809860C:
@@ -385,7 +385,7 @@ sub_8098630: @ 8098630
cmp r0, 0
blt _0809869A
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
movs r0, 0x1
strh r0, [r6, 0xA]
_0809869A:
@@ -410,14 +410,14 @@ _0809869A:
cmp r0, 0
blt _0809871A
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
movs r0, 0x1
strh r0, [r4, 0xA]
b _0809871A
.pool
_080986E0:
adds r0, r4, 0
- bl sub_80974D0
+ bl FreezeMapObjectsExceptOne
ldr r0, =sub_80985BC
movs r1, 0x50
bl CreateTask
@@ -439,7 +439,7 @@ _080986E0:
cmp r0, 0
blt _0809871A
adds r0, r1, 0
- bl sub_8097404
+ bl FreezeMapObject
movs r0, 0x1
strh r0, [r5, 0xA]
_0809871A:
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
deleted file mode 100644
index 34b8cadd6..000000000
--- a/asm/mystery_event_menu.s
+++ /dev/null
@@ -1,669 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8178944
-sub_8178944: @ 8178944
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8178944
-
- thumb_func_start sub_8178958
-sub_8178958: @ 8178958
- push {lr}
- movs r2, 0
- ldr r1, =gLinkPlayers
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x36]
- cmp r0, r1
- bne _08178968
- movs r2, 0x1
-_08178968:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8178958
-
- thumb_func_start sub_8178974
-sub_8178974: @ 8178974
- push {r4,lr}
- sub sp, 0x8
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, =sub_8178944
- bl SetVBlankCallback
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085EFD64
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_085EFD68
- bl InitWindows
- lsls r0, 16
- cmp r0, 0
- beq _08178A22
- bl DeactivateAllTextPrinters
- movs r4, 0
-_081789AC:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r4, 0x1
- cmp r4, 0x1
- ble _081789AC
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl sub_809882C
- movs r0, 0xE0
- bl sub_81978B0
- movs r1, 0xA0
- lsls r1, 1
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- ldr r0, =sub_8009404
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, =sub_8178A78
- bl SetMainCallback2
-_08178A22:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178974
-
- thumb_func_start sub_8178A40
-sub_8178A40: @ 8178A40
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x1
- cmp r4, 0
- bne _08178A54
- ldr r1, =gText_EventSafelyLoaded
- bl StringCopy
- movs r5, 0
-_08178A54:
- cmp r4, 0x2
- bne _08178A5A
- movs r5, 0
-_08178A5A:
- cmp r4, 0x1
- bne _08178A66
- ldr r1, =gText_LoadErrorEndingSession
- adds r0, r6, 0
- bl StringCopy
-_08178A66:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8178A40
-
- thumb_func_start sub_8178A78
-sub_8178A78: @ 8178A78
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _08178A8E
- b _08178E58
-_08178A8E:
- lsls r0, 2
- ldr r1, =_08178AA0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08178AA0:
- .4byte _08178AE4
- .4byte _08178B12
- .4byte _08178B48
- .4byte _08178B80
- .4byte _08178BCC
- .4byte _08178BDC
- .4byte _08178C54
- .4byte _08178D28
- .4byte _08178D38
- .4byte _08178D58
- .4byte _08178D60
- .4byte _08178D74
- .4byte _08178DBC
- .4byte _08178DE0
- .4byte _08178E0C
- .4byte _08178E24
- .4byte _08178E48
-_08178AE4:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xD
- bl SetWindowBorderStyle
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08178E30
-_08178B12:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08178B20
- b _08178E58
-_08178B20:
- ldr r1, =gText_LinkStandby2
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08178E3C
- .pool
-_08178B48:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _08178B56
- b _08178E58
-_08178B56:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, =gLinkType
- ldr r2, =0x00005501
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8009734
- b _08178E58
- .pool
-_08178B80:
- ldr r0, =gUnknown_030030E0
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08178B8E
- b _08178D00
-_08178B8E:
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bhi _08178B98
- b _08178D00
-_08178B98:
- movs r0, 0x15
- bl PlaySE
- ldr r1, =gText_PressAToLoadEvent
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08178D00
- .pool
-_08178BCC:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _08178BDA
- b _08178E58
-_08178BDA:
- b _08178E34
-_08178BDC:
- bl sub_800ABAC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _08178CD0
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08178C38
- movs r0, 0x5
- bl PlaySE
- bl sub_800A620
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xD
- bl SetWindowBorderStyle
- ldr r1, =gText_LoadingEvent
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- movs r2, 0x87
- lsls r2, 3
- adds r1, r4, r2
- b _08178E3C
- .pool
-_08178C38:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08178C42
- b _08178E58
-_08178C42:
- movs r0, 0x5
- bl PlaySE
- bl sub_80097E8
- movs r0, 0x87
- lsls r0, 3
- adds r1, r4, r0
- b _08178D1E
-_08178C54:
- bl sub_800B320
- lsls r0, 24
- cmp r0, 0
- beq _08178D00
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08178C68
- b _08178E58
-_08178C68:
- movs r0, 0x2
- movs r1, 0x2
- bl sub_800A0C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08178CAC
- bl sub_800AC34
- ldr r4, =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8178A40
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r0, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- b _08178CF2
- .pool
-_08178CAC:
- bl sub_8178958
- lsls r0, 24
- cmp r0, 0
- beq _08178CCC
- ldr r1, =gText_DontRemoveCableTurnOff
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- b _08178E34
- .pool
-_08178CCC:
- bl sub_80097E8
-_08178CD0:
- ldr r4, =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8178A40
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
-_08178CF2:
- movs r1, 0xD
- strb r1, [r0]
- b _08178E58
- .pool
-_08178D00:
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08178D0E
- b _08178E58
-_08178D0E:
- movs r0, 0x5
- bl PlaySE
- bl sub_80097E8
- movs r2, 0x87
- lsls r2, 3
- adds r1, r4, r2
-_08178D1E:
- movs r0, 0xF
- strb r0, [r1]
- b _08178E58
- .pool
-_08178D28:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- beq _08178D36
- b _08178E58
-_08178D36:
- b _08178E34
-_08178D38:
- bl GetBlockReceivedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08178D44
- b _08178E58
-_08178D44:
- bl ResetBlockReceivedFlags
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08178E3C
- .pool
-_08178D58:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r4, r0
- b _08178E3C
-_08178D60:
- bl sub_800AC34
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08178E3C
- .pool
-_08178D74:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r6, [r0]
- cmp r6, 0
- bne _08178E58
- ldr r5, =0x0201c000
- adds r0, r5, 0
- bl RunMysteryEventScript
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- str r6, [sp, 0x4]
- ldr r2, =0x050001f5
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuSet
- ldr r0, =gStringVar4
- adds r1, r4, 0
- bl sub_8178A40
- lsls r0, 24
- cmp r0, 0
- bne _08178E34
- movs r0, 0
- bl TrySavingData
- b _08178E34
- .pool
-_08178DBC:
- ldr r1, =gStringVar4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _08178E3C
- .pool
-_08178DE0:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _08178E58
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, =gUnknown_0203BCF8
- strb r2, [r0]
- b _08178E58
- .pool
-_08178E0C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08178E58
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x87
- lsls r2, 3
- adds r1, r4, r2
- b _08178E3C
-_08178E24:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08178E30:
- bl BeginNormalPaletteFade
-_08178E34:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
-_08178E3C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08178E58
- .pool
-_08178E48:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08178E58
- bl DoSoftReset
-_08178E58:
- ldr r0, =gUnknown_030030E0
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08178E98
- bl sub_800ABBC
- lsls r0, 24
- cmp r0, 0
- bne _08178E98
- bl sub_80097E8
- ldr r4, =gStringVar4
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8178A40
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl sub_8178EC4
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
-_08178E98:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8178A78
-
- thumb_func_start sub_8178EC4
-sub_8178EC4: @ 8178EC4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x1C
- adds r5, r0, 0
- mov r10, r1
- adds r6, r2, 0
- ldr r4, [sp, 0x38]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- mov r9, r0
- movs r1, 0x1
- mov r8, r1
- add r0, sp, 0x14
- mov r1, r8
- strb r1, [r0]
- adds r1, r0, 0
- movs r0, 0x2
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- adds r0, r1, 0
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- str r3, [sp, 0x18]
- bl FillWindowPixelBuffer
- mov r0, r9
- str r0, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- add r0, sp, 0x14
- str r0, [sp, 0x8]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- mov r1, r10
- str r1, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r6, 0
- ldr r3, [sp, 0x18]
- bl AddTextPrinterParameterized2
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8178EC4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/option_menu.s b/asm/option_menu.s
deleted file mode 100644
index c3fc4d140..000000000
--- a/asm/option_menu.s
+++ /dev/null
@@ -1,10 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/overworld.s b/asm/overworld.s
index 2858fb6d3..492fcd2cb 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -1383,7 +1383,7 @@ _080850C8:
adds r1, r5, 0
bl TryUpdateRandomTrainerRematches
bl DoTimeBasedEvents
- bl sub_80AEDBC
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_8085B2C
bl update_sav1_flash_used_on_map
bl Overworld_ClearSavedMusic
@@ -1483,7 +1483,7 @@ _080851A2:
beq _080851EE
bl DoTimeBasedEvents
_080851EE:
- bl sub_80AEDBC
+ bl SetSav1WeatherFromCurrMapHeader
bl sub_8085B2C
cmp r5, 0
beq _08085200
@@ -3584,7 +3584,7 @@ sub_808631C: @ 808631C
lsrs r0, 24
cmp r0, 0x1
bne _0808632E
- bl sub_80097E8
+ bl CloseLink
_0808632E:
ldr r0, =gLinkVSyncDisabled
ldrb r0, [r0]
@@ -3637,7 +3637,7 @@ VBlankCB_Field: @ 8086390
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
bl FieldUpdateBgTilemapScroll
bl TransferPlttBuffer
bl TransferTilesetAnimsBuffer
@@ -3657,7 +3657,7 @@ sub_80863B0: @ 80863B0
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
b _080863F0
.pool
_080863D4:
@@ -3671,7 +3671,7 @@ _080863D4:
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
_080863F0:
pop {r0}
bx r0
@@ -4294,7 +4294,7 @@ sub_8086988: @ 8086988
bl ResetTasks
bl ResetSpriteData
bl ResetPaletteFade
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
bl dp13_810BB8C
bl ResetCameraUpdateInfo
bl InstallCameraPanAheadCallback
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 429b629ea..a70baf3df 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -4,6 +4,192 @@
.syntax unified
.text
+
+ thumb_func_start sub_81B0038
+sub_81B0038: @ 81B0038
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ bl reset_brm
+ ldr r0, =gUnknown_0203CEC4
+ mov r10, r0
+ movs r0, 0x8E
+ lsls r0, 2
+ bl Alloc
+ adds r5, r0, 0
+ mov r1, r10
+ str r5, [r1]
+ cmp r5, 0
+ bne _081B0088
+ ldr r0, [sp, 0x2C]
+ bl SetMainCallback2
+ b _081B0194
+ .pool
+_081B0088:
+ ldr r3, =gUnknown_0203CEC8
+ movs r1, 0xF
+ mov r4, r8
+ ands r1, r4
+ ldrb r2, [r3, 0x8]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x8]
+ ldr r0, [sp, 0x2C]
+ str r0, [r3]
+ movs r4, 0
+ strb r7, [r3, 0xB]
+ lsls r2, r6, 2
+ ldrh r1, [r5, 0xA]
+ movs r0, 0x3
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5, 0xA]
+ ldr r0, [sp, 0x28]
+ str r0, [r5]
+ str r4, [r5, 0x4]
+ ldrb r1, [r5, 0x8]
+ movs r0, 0xF
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5, 0x8]
+ mov r1, r10
+ ldr r2, [r1]
+ ldrh r0, [r2, 0x8]
+ movs r4, 0xFE
+ lsls r4, 3
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xFE
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ adds r6, r3, 0
+ mov r5, r8
+ cmp r5, 0x4
+ bne _081B00F0
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x1
+ orrs r0, r1
+ b _081B00F8
+ .pool
+_081B00F0:
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+_081B00F8:
+ strb r0, [r2, 0x8]
+ mov r0, r9
+ cmp r0, 0xFF
+ beq _081B0114
+ movs r0, 0x3
+ mov r1, r9
+ ands r0, r1
+ lsls r0, 4
+ ldrb r2, [r6, 0x8]
+ movs r1, 0x31
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r6, 0x8]
+_081B0114:
+ movs r2, 0
+ ldr r5, =gUnknown_0203CEC4
+ movs r4, 0x86
+ lsls r4, 2
+ movs r3, 0
+_081B011E:
+ ldr r0, [r5]
+ lsls r1, r2, 1
+ adds r0, r4
+ adds r0, r1
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _081B011E
+ movs r2, 0
+ ldr r4, =gUnknown_0203CEC4
+ movs r3, 0xFF
+_081B0138:
+ ldr r0, [r4]
+ adds r0, 0xC
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x2
+ bls _081B0138
+ ldr r4, [sp]
+ cmp r4, 0
+ bne _081B015C
+ strb r4, [r6, 0x9]
+ b _081B017E
+ .pool
+_081B015C:
+ adds r1, r6, 0
+ movs r0, 0x9
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _081B017A
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ bne _081B017E
+_081B017A:
+ movs r0, 0
+ strb r0, [r6, 0x9]
+_081B017E:
+ ldr r2, =gTextFlags
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl CalculatePlayerPartyCount
+ ldr r0, =c2_811EBD0
+ bl SetMainCallback2
+_081B0194:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_81B0038
thumb_func_start sub_81B01B0
sub_81B01B0: @ 81B01B0
@@ -16041,14 +16227,14 @@ _081B8AF8:
b _081B8B24
_081B8AFC:
adds r0, r4, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081B8B1E
adds r0, r5, 0
bl sub_81B8F38
lsls r0, 24
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
lsls r1, r4, 1
adds r1, r2
lsrs r0, 24
@@ -16060,7 +16246,7 @@ _081B8B1E:
lsls r0, 24
lsrs r4, r0, 24
_081B8B24:
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r4, r0
bcc _081B8AFC
@@ -16115,7 +16301,7 @@ _081B8BA8:
ldr r1, =gUnknown_0203CEE8
movs r0, 0x1
strb r0, [r1]
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
ldr r0, =gBankInMenu
ldrb r0, [r0]
lsls r0, 1
@@ -16150,7 +16336,7 @@ _081B8BFC:
_081B8C20:
ldr r0, =gBankInMenu
ldrb r0, [r0]
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, 1
adds r0, r1
ldrb r0, [r0]
@@ -16228,9 +16414,9 @@ _081B8CBE:
bne _081B8CFC
movs r5, 0x1
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r2, sp
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
adds r0, r1
@@ -16255,16 +16441,16 @@ _081B8CF0:
_081B8CFC:
movs r5, 0x2
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r1, sp
- ldr r4, =gBattlePartyID
+ ldr r4, =gBattlerPartyIndexes
lsls r0, 24
lsrs r0, 23
adds r0, r4
ldrh r0, [r0]
strb r0, [r1]
movs r0, 0x2
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
mov r1, sp
lsls r0, 24
lsrs r0, 23
@@ -16339,24 +16525,24 @@ sub_81B8D88: @ 81B8D88
lsrs r7, r1, 24
lsls r0, 24
lsrs r0, 24
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _081B8DB0
movs r0, 0
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x2
b _081B8DBC
_081B8DB0:
movs r0, 0x1
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x3
_081B8DBC:
- bl GetBankByIdentity
+ bl GetBattlerAtPosition
lsls r0, 24
lsrs r6, r0, 24
bl sub_81B1250
@@ -16388,7 +16574,7 @@ _081B8DF0:
bne _081B8E28
movs r3, 0x1
mov r2, sp
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r1
ldrh r0, [r0]
@@ -16412,7 +16598,7 @@ _081B8E1A:
_081B8E28:
movs r3, 0x2
mov r1, sp
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
lsls r0, r4, 1
adds r0, r2
ldrh r0, [r0]
@@ -17171,7 +17357,7 @@ sub_81B9404: @ 81B9404
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =sub_81B9424
movs r1, 0xA
bl CreateTask
@@ -17247,7 +17433,7 @@ sub_81B94B0: @ 81B94B0
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =sub_81B94D0
movs r1, 0xA
bl CreateTask
@@ -17297,7 +17483,7 @@ sub_81B951C: @ 81B951C
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =sub_81B953C
movs r1, 0xA
bl CreateTask
@@ -17418,7 +17604,7 @@ sub_81B9620: @ 81B9620
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =sub_81B9640
movs r1, 0xA
bl CreateTask
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 090552b93..1ae5b4d14 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -552,7 +552,7 @@ sub_816B2C8: @ 816B2C8
str r0, [r1]
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
pop {r0}
bx r0
.pool
@@ -1221,7 +1221,7 @@ sub_816B878: @ 816B878
lsrs r4, 24
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r1, =gTasks
lsls r0, r4, 2
adds r0, r4
@@ -1494,7 +1494,7 @@ sub_816BABC: @ 816BABC
_0816BAD4:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =gTasks
lsls r1, r4, 2
adds r1, r4
@@ -2179,7 +2179,7 @@ sub_816C060: @ 816C060
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
- bl AddItemIconObject
+ bl AddItemIconSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
diff --git a/asm/pokemon_1.s b/asm/pokemon_1.s
index 15b4af009..0ab5a3307 100644
--- a/asm/pokemon_1.s
+++ b/asm/pokemon_1.s
@@ -581,7 +581,7 @@ _080689E4:
beq _080689CE
_080689F4:
adds r0, r5, 0
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
beq _080689CE
diff --git a/asm/pokemon_animation.s b/asm/pokemon_animation.s
deleted file mode 100644
index a625f8511..000000000
--- a/asm/pokemon_animation.s
+++ /dev/null
@@ -1,11782 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
- thumb_func_start nullsub_69
-nullsub_69: @ 817F3EC
- bx lr
- thumb_func_end nullsub_69
-
- thumb_func_start sub_817F3F0
-sub_817F3F0: @ 817F3F0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r9, r0
- mov r8, r1
- adds r5, r2, 0
- adds r4, r3, 0
- lsls r5, 16
- negs r5, r5
- lsls r4, 16
- negs r4, r4
- lsrs r4, 16
- mov r0, r8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- asrs r5, 16
- adds r1, r5, 0
- bl Cos
- adds r6, r0, 0
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- bl Sin
- subs r6, r0
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- adds r1, r4, 0
- bl Cos
- adds r2, r0, 0
- mov r0, r8
- adds r1, r5, 0
- str r2, [sp]
- bl Sin
- ldr r2, [sp]
- adds r2, r0
- negs r5, r5
- negs r4, r4
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- adds r6, r5
- mov r0, r9
- strh r6, [r0, 0x24]
- lsls r2, 16
- asrs r2, 16
- lsls r4, 16
- asrs r4, 16
- adds r2, r4
- strh r2, [r0, 0x26]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_817F3F0
-
- thumb_func_start GetSpeciesBackAnimId
-GetSpeciesBackAnimId: @ 817F474
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, =gUnknown_0860A8C8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0817F48C
- movs r0, 0
- b _0817F492
- .pool
-_0817F48C:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
-_0817F492:
- pop {r1}
- bx r1
- thumb_func_end GetSpeciesBackAnimId
-
- thumb_func_start sub_817F498
-sub_817F498: @ 817F498
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r6, r5, 2
- adds r0, r6, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- lsls r3, r0, 16
- movs r4, 0xC
- ldrsh r0, [r2, r4]
- orrs r3, r0
- movs r0, 0x8
- ldrsh r4, [r2, r0]
- mov r8, r1
- ldr r0, =SpriteCallbackDummy
- mov r12, r0
- cmp r4, 0
- bne _0817F508
- ldrh r0, [r3, 0x2E]
- strh r0, [r2, 0x10]
- ldrh r0, [r3, 0x32]
- strh r0, [r2, 0x12]
- movs r0, 0x1
- strh r0, [r3, 0x30]
- strh r4, [r3, 0x2E]
- movs r0, 0x2
- adds r1, r6, 0
- ldr r6, =gUnknown_0860AA88
- ldr r7, =gUnknown_03001274
- movs r4, 0
- adds r2, r3, 0
- adds r2, 0x32
-_0817F4E2:
- strh r4, [r2]
- adds r2, 0x2
- adds r0, 0x1
- cmp r0, 0x7
- bls _0817F4E2
- adds r1, r5
- lsls r1, 3
- add r1, r8
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- str r0, [r3, 0x1C]
- movs r0, 0
- str r0, [r7]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0817F508:
- ldr r0, [r3, 0x1C]
- cmp r0, r12
- bne _0817F528
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x10]
- movs r2, 0
- strh r1, [r3, 0x2E]
- ldrh r0, [r0, 0x12]
- strh r0, [r3, 0x32]
- strh r2, [r3, 0x30]
- adds r0, r5, 0
- bl DestroyTask
-_0817F528:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817F498
-
- thumb_func_start LaunchAnimationTaskForFrontSprite
-LaunchAnimationTaskForFrontSprite: @ 817F544
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, =sub_817F498
- movs r1, 0x80
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsrs r0, r5, 16
- strh r0, [r1, 0xA]
- strh r5, [r1, 0xC]
- strh r4, [r1, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end LaunchAnimationTaskForFrontSprite
-
- thumb_func_start sub_817F578
-sub_817F578: @ 817F578
- lsls r1, 24
- ldr r3, =gUnknown_03001274
- movs r2, 0x1
- str r2, [r3]
- ldr r2, =gUnknown_0860AA88
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_817F578
-
- thumb_func_start LaunchAnimationTaskForBackSprite
-LaunchAnimationTaskForBackSprite: @ 817F594
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r6, r1, 24
- lsrs r6, 24
- ldr r0, =sub_817F498
- movs r1, 0x80
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- lsrs r0, r5, 16
- strh r0, [r4, 0xA]
- strh r5, [r4, 0xC]
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- ldr r1, =gBattlePartyID
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r6, 1
- ldr r2, =gUnknown_0860AD2F
- adds r0, r2
- adds r1, r6
- ldrb r0, [r0]
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =gUnknown_0860ACE4
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end LaunchAnimationTaskForBackSprite
-
- thumb_func_start sub_817F60C
-sub_817F60C: @ 817F60C
- ldr r1, =nullsub_69
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_817F60C
-
- thumb_func_start sub_817F618
-sub_817F618: @ 817F618
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r1, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r4, =0xffff0000
- lsls r2, 16
- lsrs r1, 16
- orrs r1, r2
- str r1, [sp]
- ldr r1, [sp, 0x4]
- ands r1, r4
- orrs r1, r3
- str r1, [sp, 0x4]
- ldrb r4, [r0, 0x3]
- lsls r4, 26
- lsrs r4, 27
- add r5, sp, 0x8
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- ldr r0, =gOamMatrices
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r5]
- strh r0, [r4]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x2]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x4]
- ldrh r0, [r5, 0x6]
- strh r0, [r4, 0x6]
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817F618
-
- thumb_func_start sub_817F670
-sub_817F670: @ 817F670
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, =gSpriteAffineAnimTable_860AD68
- str r0, [r4, 0x10]
- ldr r0, =gUnknown_03001274
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0817F68E
- adds r0, r4, 0
- bl InitSpriteAffineAnim
-_0817F68E:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0817F6A8
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _0817F6B0
- .pool
-_0817F6A8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
-_0817F6B0:
- ldrb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817F670
-
- thumb_func_start sub_817F6D4
-sub_817F6D4: @ 817F6D4
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- cmp r0, 0
- bne _0817F6F8
- lsls r0, r1, 16
- negs r0, r0
- lsrs r1, r0, 16
- negs r0, r3
- lsls r0, 16
- lsrs r3, r0, 16
-_0817F6F8:
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- bl sub_817F618
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_817F6D4
-
- thumb_func_start sub_817F70C
-sub_817F70C: @ 817F70C
- push {lr}
- adds r1, r0, 0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0817F720
- movs r2, 0x24
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0817F720:
- pop {r0}
- bx r0
- thumb_func_end sub_817F70C
-
- thumb_func_start sub_817F724
-sub_817F724: @ 817F724
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bhi _0817F750
- ldr r1, =gUnknown_03001240
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0
- strh r2, [r0, 0x6]
- strh r2, [r0]
- movs r1, 0x1
- strh r1, [r0, 0x4]
- strh r2, [r0, 0x2]
- strh r2, [r0, 0x8]
- movs r0, 0x1
- b _0817F752
- .pool
-_0817F750:
- movs r0, 0
-_0817F752:
- pop {r1}
- bx r1
- thumb_func_end sub_817F724
-
- thumb_func_start sub_817F758
-sub_817F758: @ 817F758
- push {r4,lr}
- ldr r4, =gUnknown_03001270
- ldrb r1, [r4]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 2
- lsls r0, 2
- subs r0, r2, r0
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_817F724
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_817F758
-
- thumb_func_start sub_817F77C
-sub_817F77C: @ 817F77C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- movs r3, 0x4
- negs r3, r3
- ands r3, r0
- movs r5, 0x1
- orrs r3, r5
- strb r3, [r4, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r4, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r4, 0
- bl CalcCenterToCornerVec
- ldr r0, =gUnknown_03001274
- ldr r0, [r0]
- cmp r0, 0x1
- bne _0817F800
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0817F7C0
- adds r1, r4, 0
- adds r1, 0x3F
- ldrb r0, [r1]
- orrs r0, r5
- strb r0, [r1]
- adds r5, r1, 0
- b _0817F7D0
- .pool
-_0817F7C0:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r2, [r0]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r5, r0, 0
-_0817F7D0:
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- ldrb r0, [r5]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 3
- orrs r1, r0
- lsls r1, 1
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_0817F800:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_817F77C
-
- thumb_func_start pokemonanimfunc_01
-pokemonanimfunc_01: @ 817F808
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0817F81A
- adds r0, r6, 0
- bl sub_817F670
-_0817F81A:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x28
- ble _0817F840
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _0817F88C
- .pool
-_0817F840:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 9
- movs r1, 0x28
- bl __divsi3
- adds r4, r0, 0
- cmp r0, 0
- bge _0817F854
- adds r4, 0xFF
-_0817F854:
- asrs r4, 8
- lsls r4, 8
- subs r4, r0, r4
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x20
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- strh r0, [r6, 0x36]
- adds r0, r4, 0
- movs r1, 0x20
- bl Cos
- adds r0, r5
- strh r0, [r6, 0x38]
- movs r0, 0x36
- ldrsh r1, [r6, r0]
- movs r0, 0x38
- ldrsh r2, [r6, r0]
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F6D4
-_0817F88C:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_01
-
- thumb_func_start pokemonanimfunc_02
-pokemonanimfunc_02: @ 817F898
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x28
- ble _0817F8B4
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0817F8EE
- .pool
-_0817F8B4:
- movs r0, 0x1
- ands r0, r1
- movs r5, 0xFF
- cmp r0, 0
- bne _0817F8C0
- movs r5, 0x1
-_0817F8C0:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0817F8D4
- adds r0, 0xFF
-_0817F8D4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
-_0817F8EE:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_02
-
- thumb_func_start sub_817F8FC
-sub_817F8FC: @ 817F8FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0817F91C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0817F946
- .pool
-_0817F91C:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 7
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0817F936
- adds r0, 0xFF
-_0817F936:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl Sin
-_0817F946:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817F8FC
-
- thumb_func_start pokemonanimfunc_03
-pokemonanimfunc_03: @ 817F95C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F8FC
- ldr r0, =sub_817F8FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_03
-
- thumb_func_start sub_817F978
-sub_817F978: @ 817F978
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0817F998
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0817F9C4
- .pool
-_0817F998:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 7
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0817F9B2
- adds r0, 0xFF
-_0817F9B2:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl Sin
- negs r0, r0
-_0817F9C4:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817F978
-
- thumb_func_start pokemonanimfunc_04
-pokemonanimfunc_04: @ 817F9D8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F978
- ldr r0, =sub_817F978
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_04
-
- thumb_func_start sub_817F9F4
-sub_817F9F4: @ 817F9F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- ble _0817FA14
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0817FA5E
- .pool
-_0817FA14:
- adds r0, r1, 0
- cmp r1, 0
- bge _0817FA1C
- adds r0, 0x7F
-_0817FA1C:
- asrs r2, r0, 7
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- blt _0817FA60
- cmp r0, 0x1
- ble _0817FA48
- cmp r0, 0x3
- bgt _0817FA60
- ldr r2, =0xffffff00
- adds r1, r2
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x2E
- ldrsh r2, [r4, r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 16
- b _0817FA56
- .pool
-_0817FA48:
- lsls r0, r2, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r1, 17
-_0817FA56:
- asrs r1, 16
- bl Sin
- negs r0, r0
-_0817FA5E:
- strh r0, [r4, 0x26]
-_0817FA60:
- ldrh r0, [r4, 0x32]
- adds r0, 0xC
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817F9F4
-
- thumb_func_start pokemonanimfunc_1E
-pokemonanimfunc_1E: @ 817FA6C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F9F4
- ldr r0, =sub_817F9F4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_1E
-
- thumb_func_start pokemonanimfunc_06
-pokemonanimfunc_06: @ 817FA88
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r0, 0xC0
- lsls r0, 2
- cmp r2, r0
- ble _0817FAA8
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0817FB56
- .pool
-_0817FAA8:
- adds r0, r2, 0
- cmp r2, 0
- bge _0817FAB0
- adds r0, 0x7F
-_0817FAB0:
- lsls r0, 9
- asrs r0, 16
- cmp r0, 0x5
- bhi _0817FB3C
- lsls r0, 2
- ldr r1, =_0817FAC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0817FAC8:
- .4byte _0817FAE0
- .4byte _0817FAE0
- .4byte _0817FAE4
- .4byte _0817FAE8
- .4byte _0817FB04
- .4byte _0817FB1E
-_0817FAE0:
- movs r0, 0
- b _0817FB3A
-_0817FAE4:
- movs r2, 0
- b _0817FB3C
-_0817FAE8:
- adds r0, r2, 0
- cmp r2, 0
- bge _0817FAF0
- adds r0, 0x7F
-_0817FAF0:
- asrs r0, 7
- lsls r0, 7
- subs r0, r2, r0
- lsls r0, 3
- negs r0, r0
- cmp r0, 0
- bge _0817FB00
- adds r0, 0x7F
-_0817FB00:
- asrs r0, 7
- b _0817FB3A
-_0817FB04:
- adds r0, r2, 0
- cmp r2, 0
- bge _0817FB0C
- adds r0, 0x7F
-_0817FB0C:
- asrs r0, 7
- lsls r0, 7
- subs r0, r2, r0
- cmp r0, 0
- bge _0817FB18
- adds r0, 0x7
-_0817FB18:
- asrs r0, 3
- subs r0, 0x8
- b _0817FB3A
-_0817FB1E:
- adds r0, r2, 0
- cmp r2, 0
- bge _0817FB26
- adds r0, 0x7F
-_0817FB26:
- asrs r0, 7
- lsls r0, 7
- subs r0, r2, r0
- lsls r0, 3
- negs r0, r0
- cmp r0, 0
- bge _0817FB36
- adds r0, 0x7F
-_0817FB36:
- asrs r0, 7
- adds r0, 0x8
-_0817FB3A:
- strh r0, [r4, 0x24]
-_0817FB3C:
- adds r0, r2, 0
- cmp r2, 0
- bge _0817FB44
- adds r0, 0x7F
-_0817FB44:
- asrs r0, 7
- lsls r0, 7
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
-_0817FB56:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0xC
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_06
-
- thumb_func_start pokemonanimfunc_09
-pokemonanimfunc_09: @ 817FB64
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0817FB76
- adds r0, r6, 0
- bl sub_817F670
-_0817FB76:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x28
- ble _0817FB9C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _0817FC12
- .pool
-_0817FB9C:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 8
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0817FBB0
- adds r0, 0xFF
-_0817FBB0:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r0, [r6, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0817FBE0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x20
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- strh r0, [r6, 0x36]
- adds r0, r4, 0
- movs r1, 0x20
- b _0817FBFA
-_0817FBE0:
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- strh r0, [r6, 0x36]
- adds r0, r4, 0
- movs r1, 0x8
-_0817FBFA:
- bl Sin
- adds r0, r5
- strh r0, [r6, 0x38]
- movs r0, 0x36
- ldrsh r1, [r6, r0]
- movs r0, 0x38
- ldrsh r2, [r6, r0]
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F6D4
-_0817FC12:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_09
-
- thumb_func_start sub_817FC20
-sub_817FC20: @ 817FC20
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0817FC32
- strh r0, [r4, 0x34]
-_0817FC32:
- ldr r2, =gUnknown_0860AD70
- movs r5, 0x34
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r2, 0x2
- adds r3, r0, r1
- movs r1, 0
- ldrsb r1, [r3, r1]
- movs r5, 0x32
- ldrsh r0, [r4, r5]
- cmp r1, r0
- bne _0817FC6A
- adds r0, r1, 0
- cmp r0, 0
- bne _0817FC60
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0817FC6A
- .pool
-_0817FC60:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x32]
-_0817FC6A:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r1, r0, r1
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _0817FC8C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0817FCBE
- .pool
-_0817FC8C:
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r5, 0x34
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
-_0817FCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_817FC20
-
- thumb_func_start pokemonanimfunc_0A
-pokemonanimfunc_0A: @ 817FCC4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817FC20
- ldr r0, =sub_817FC20
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0A
-
- thumb_func_start sub_817FCDC
-sub_817FCDC: @ 817FCDC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x90
- lsls r0, 4
- cmp r1, r0
- ble _0817FCF8
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0817FD12
- .pool
-_0817FCF8:
- adds r0, r1, 0
- cmp r1, 0
- bge _0817FD00
- adds r0, 0xFF
-_0817FD00:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
-_0817FD12:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817FCDC
-
- thumb_func_start pokemonanimfunc_0F
-pokemonanimfunc_0F: @ 817FD24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817FCDC
- ldr r0, =sub_817FCDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0F
-
- thumb_func_start sub_817FD44
-sub_817FD44: @ 817FD44
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x90
- lsls r0, 4
- cmp r1, r0
- ble _0817FD60
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0817FD78
- .pool
-_0817FD60:
- adds r0, r1, 0
- cmp r1, 0
- bge _0817FD68
- adds r0, 0xFF
-_0817FD68:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl Sin
-_0817FD78:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_817FD44
-
- thumb_func_start pokemonanimfunc_10
-pokemonanimfunc_10: @ 817FD88
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817FD44
- ldr r0, =sub_817FD44
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_10
-
- thumb_func_start pokemonanimfunc_11
-pokemonanimfunc_11: @ 817FDA4
- push {r4-r7,lr}
- adds r7, r0, 0
- ldrh r2, [r7, 0x32]
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _0817FDC8
- ldr r0, =sub_8184D88
- str r0, [r7, 0x1C]
- movs r0, 0
- strh r0, [r7, 0x24]
- strh r0, [r7, 0x26]
- b _0817FE24
- .pool
-_0817FDC8:
- movs r0, 0x1
- ands r0, r2
- movs r5, 0xFF
- cmp r0, 0
- bne _0817FDD4
- movs r5, 0x1
-_0817FDD4:
- movs r1, 0x32
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bge _0817FDDE
- adds r0, 0x3
-_0817FDDE:
- asrs r0, 2
- movs r1, 0x8
- bl Sin
- lsls r0, 16
- asrs r6, r0, 16
- movs r0, 0x32
- ldrsh r1, [r7, r0]
- adds r4, r1, 0
- cmp r1, 0
- bge _0817FDF6
- adds r4, 0xFF
-_0817FDF6:
- asrs r4, 8
- lsls r4, 8
- subs r4, r1, r4
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl Sin
- lsls r5, 24
- asrs r5, 24
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, 0
- strh r0, [r7, 0x26]
- adds r0, r4, 0
- adds r1, r6, 0
- bl Cos
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, 0
- strh r0, [r7, 0x24]
-_0817FE24:
- ldrh r0, [r7, 0x32]
- adds r0, 0x9
- strh r0, [r7, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_11
-
- thumb_func_start sub_817FE30
-sub_817FE30: @ 817FE30
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r2, =gUnknown_03001240
- ldrh r6, [r4, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrh r0, [r5]
- cmp r0, 0
- beq _0817FE54
- subs r0, 0x1
- strh r0, [r5]
- b _0817FEF8
- .pool
-_0817FE54:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0817FE70
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0817FE70
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0817FE70:
- ldr r2, =gUnknown_03001240
- lsls r1, r6, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- cmp r1, r0
- ble _0817FEC4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r1, [r5, 0x4]
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- ble _0817FEB4
- subs r0, r1, 0x1
- movs r1, 0
- strh r0, [r5, 0x4]
- movs r0, 0xA
- strh r0, [r5]
- strh r1, [r4, 0x32]
- b _0817FEF2
- .pool
-_0817FEB4:
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0817FEF2
- .pool
-_0817FEC4:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _0817FED0
- adds r0, 0xFF
-_0817FED0:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x80
- lsls r1, 5
- bl Sin
- strh r0, [r4, 0x3A]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3A]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
-_0817FEF2:
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- strh r0, [r4, 0x32]
-_0817FEF8:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_817FE30
-
- thumb_func_start pokemonanimfunc_12
-pokemonanimfunc_12: @ 817FF00
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r1, 0x6]
- strh r3, [r1]
- adds r0, r4, 0
- bl sub_817FE30
- ldr r0, =sub_817FE30
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_12
-
- thumb_func_start sub_817FF3C
-sub_817FF3C: @ 817FF3C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0817FF54
- adds r0, r4, 0
- bl sub_817F670
-_0817FF54:
- movs r2, 0x32
- ldrsh r6, [r4, r2]
- ldr r1, =gUnknown_03001240
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- cmp r6, r1
- ble _0817FF8C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0817FFAA
- .pool
-_0817FF8C:
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- muls r0, r6
- strh r0, [r4, 0x3A]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3A]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
-_0817FFAA:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_817FF3C
-
- thumb_func_start pokemonanimfunc_1F
-pokemonanimfunc_1F: @ 817FFB8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3C
- strh r0, [r1]
- movs r0, 0x14
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_817FF3C
- ldr r0, =sub_817FF3C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_1F
-
- thumb_func_start sub_817FFF0
-sub_817FFF0: @ 817FFF0
- push {r4-r7,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- bl sub_817F70C
- ldr r1, =gUnknown_03001240
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r6, r0, r1
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818002C
- movs r0, 0
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
- b _0818006A
- .pool
-_0818002C:
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- adds r0, r1, 0
- adds r0, 0xC0
- adds r4, r0, 0
- cmp r0, 0
- bge _0818003E
- ldr r2, =0x000001bf
- adds r4, r1, r2
-_0818003E:
- asrs r4, 8
- lsls r4, 8
- subs r4, r0, r4
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x8
- ldrsh r1, [r6, r0]
- lsls r1, 17
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- negs r0, r0
- strh r0, [r5, 0x24]
- movs r2, 0x8
- ldrsh r1, [r6, r2]
- adds r0, r4, 0
- bl Sin
- ldrh r1, [r6, 0x8]
- adds r0, r1
- strh r0, [r5, 0x26]
-_0818006A:
- ldr r0, =gUnknown_03001240
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F70C
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817FFF0
-
- thumb_func_start pokemonanimfunc_14
-pokemonanimfunc_14: @ 8180090
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r1, 0x6]
- movs r0, 0x6
- strh r0, [r1, 0x8]
- movs r0, 0x18
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_817FFF0
- ldr r0, =sub_817FFF0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_14
-
- thumb_func_start pokemonanimfunc_15
-pokemonanimfunc_15: @ 81800D0
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081800EC
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_081800EC:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _0818010C
- ldrh r0, [r4, 0x3C]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180128
- .pool
-_0818010C:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x10
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x10
- movs r3, 0
- bl BlendPalette
-_08180128:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_15
-
- thumb_func_start pokemonanimfunc_16
-pokemonanimfunc_16: @ 8180134
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r7, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08180148
- adds r0, r6, 0
- bl sub_817F670
-_08180148:
- ldrh r5, [r6, 0x32]
- movs r2, 0x32
- ldrsh r0, [r6, r2]
- cmp r0, 0x28
- ble _08180170
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08180204
- .pool
-_08180170:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 7
- movs r1, 0x28
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bhi _08180196
- ldrh r0, [r6, 0x3C]
- adds r0, 0x33
- strh r0, [r6, 0x3C]
- movs r7, 0xFF
- ands r7, r0
-_08180196:
- movs r2, 0x30
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _081801C4
- lsls r5, r4, 16
- asrs r0, r5, 16
- movs r1, 0x28
- bl Sin
- adds r4, r0, 0
- adds r0, r7, 0
- movs r1, 0x10
- bl Sin
- ldr r1, =0xffffff00
- adds r0, r1
- adds r4, r0
- strh r4, [r6, 0x36]
- adds r4, r5, 0
- b _081801E4
- .pool
-_081801C4:
- adds r0, r7, 0
- movs r1, 0x10
- bl Sin
- adds r5, r0, 0
- lsls r4, 16
- asrs r0, r4, 16
- movs r1, 0x28
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r5
- subs r1, r0
- strh r1, [r6, 0x36]
-_081801E4:
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r6, 0x38]
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- movs r0, 0x38
- ldrsh r2, [r6, r0]
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F618
-_08180204:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_16
-
- thumb_func_start pokemonanimfunc_17
-pokemonanimfunc_17: @ 8180210
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- movs r7, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0818022C
- adds r0, r5, 0
- bl sub_817F670
-_0818022C:
- ldrh r6, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x28
- ble _08180258
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r5, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
- mov r0, r8
- strh r0, [r5, 0x26]
- b _0818030A
- .pool
-_08180258:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x28
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r6, 0
- subs r0, 0xA
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bhi _0818027E
- ldrh r0, [r5, 0x3C]
- adds r0, 0x33
- strh r0, [r5, 0x3C]
- movs r7, 0xFF
- ands r7, r0
-_0818027E:
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _081802A0
- lsls r4, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- ldr r2, =0xffffff00
- adds r1, r2, 0
- subs r1, r0
- strh r1, [r5, 0x36]
- b _081802B2
- .pool
-_081802A0:
- lsls r4, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r5, 0x36]
-_081802B2:
- adds r6, r4, 0
- adds r0, r7, 0
- movs r1, 0x8
- bl Sin
- adds r4, r0, 0
- asrs r0, r6, 16
- movs r1, 0x28
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r4, r1, r4
- subs r4, r0
- strh r4, [r5, 0x38]
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- cmp r4, r1
- beq _081802F0
- movs r2, 0x38
- ldrsh r0, [r5, r2]
- subs r0, r1, r0
- cmp r0, 0
- bge _081802EA
- adds r0, 0x7
-_081802EA:
- lsls r0, 13
- lsrs r0, 16
- mov r8, r0
-_081802F0:
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- movs r0, 0x38
- ldrsh r2, [r5, r0]
- adds r0, r5, 0
- movs r3, 0
- bl sub_817F618
-_0818030A:
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_17
-
- thumb_func_start sub_818031C
-sub_818031C: @ 818031C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gUnknown_0860AA80
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r0, 1
- adds r1, r0, r2
- ldrb r5, [r1]
- adds r2, 0x1
- adds r0, r2
- ldrb r6, [r0]
- movs r1, 0
- cmp r5, 0xFE
- beq _08180358
- subs r0, r6, r7
- muls r0, r5
- adds r1, r6, 0
- bl __divsi3
- lsls r0, 24
- lsrs r1, r0, 24
-_08180358:
- cmp r5, 0xFF
- bne _08180370
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x26]
- b _08180394
- .pool
-_08180370:
- mov r0, r8
- bl Sin
- strh r0, [r4, 0x26]
- cmp r7, r6
- bne _08180386
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r0, 0
- b _08180392
-_08180386:
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_08180392:
- strh r0, [r4, 0x3A]
-_08180394:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_818031C
-
- thumb_func_start pokemonanimfunc_19
-pokemonanimfunc_19: @ 81803A0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x30
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_818031C
- ldr r0, =sub_818031C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_19
-
- thumb_func_start pokemonanimfunc_1A
-pokemonanimfunc_1A: @ 81803BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x32]
- lsls r7, r0, 24
- lsrs r5, r7, 24
- mov r8, r5
- cmp r0, 0
- bne _081803DA
- adds r0, r4, 0
- bl sub_817F670
-_081803DA:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x23
- ble _08180404
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0818045E
- .pool
-_08180404:
- adds r6, r5, 0
- subs r6, 0xA
- lsls r0, r6, 7
- movs r1, 0x14
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r5, 0x9
- bhi _0818042A
- movs r2, 0x80
- lsls r2, 1
- lsrs r3, r7, 25
- lsls r3, 9
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- b _0818045E
-_0818042A:
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08180442
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x5
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- b _0818045E
-_08180442:
- movs r2, 0x80
- lsls r2, 1
- movs r3, 0x23
- mov r0, r8
- subs r3, r0
- lsrs r0, r3, 31
- adds r3, r0
- asrs r3, 1
- lsls r3, 26
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
-_0818045E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_1A
-
- thumb_func_start pokemonanimfunc_1B
-pokemonanimfunc_1B: @ 8180474
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08180486
- adds r0, r6, 0
- bl sub_817F670
-_08180486:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x64
- ble _081804B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r0, 0
- strh r0, [r6, 0x26]
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _081804E8
- .pool
-_081804B0:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 8
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- strh r0, [r6, 0x26]
- movs r5, 0x80
- lsls r5, 1
- ldr r1, =0x00000ccc
- adds r0, r4, 0
- bl Sin
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r5, 0
- bl sub_817F6D4
-_081804E8:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_1B
-
- thumb_func_start sub_81804F8
-sub_81804F8: @ 81804F8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0818050C
- adds r0, r6, 0
- bl sub_817F670
-_0818050C:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x64
- ble _08180534
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r5, [r6, 0x26]
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08180582
- .pool
-_08180534:
- movs r0, 0x32
- ldrsh r5, [r6, r0]
- lsls r0, r5, 8
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 9
- adds r0, r5, 0
- movs r1, 0x64
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0xFF
- ands r5, r0
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- adds r0, r4, 0
- bl Sin
- strh r0, [r6, 0x26]
- movs r4, 0x80
- lsls r4, 1
- adds r0, r5, 0
- ldr r1, =0x00000ccc
- bl Sin
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r4, 0
- bl sub_817F6D4
-_08180582:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81804F8
-
- thumb_func_start pokemonanimfunc_1C
-pokemonanimfunc_1C: @ 8180594
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_81804F8
- ldr r0, =sub_81804F8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_1C
-
- thumb_func_start sub_81805B0
-sub_81805B0: @ 81805B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081805C4
- adds r0, r6, 0
- bl sub_817F670
-_081805C4:
- movs r2, 0x32
- ldrsh r0, [r6, r2]
- cmp r0, 0x64
- ble _081805EC
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r5, [r6, 0x26]
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08180644
- .pool
-_081805EC:
- movs r0, 0x32
- ldrsh r5, [r6, r0]
- lsls r0, r5, 8
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 9
- adds r0, r5, 0
- movs r1, 0x64
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0xFF
- ands r5, r0
- lsls r4, 16
- asrs r0, r4, 16
- lsrs r4, 31
- adds r0, r4
- asrs r0, 1
- movs r2, 0x2E
- ldrsh r1, [r6, r2]
- lsls r1, 17
- asrs r1, 16
- bl Sin
- negs r0, r0
- strh r0, [r6, 0x26]
- movs r4, 0x80
- lsls r4, 1
- adds r0, r5, 0
- ldr r1, =0x00000ccc
- bl Sin
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r4, 0
- bl sub_817F6D4
-_08180644:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81805B0
-
- thumb_func_start pokemonanimfunc_18
-pokemonanimfunc_18: @ 8180654
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_81805B0
- ldr r0, =sub_81805B0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_18
-
- thumb_func_start pokemonanimfunc_1D
-pokemonanimfunc_1D: @ 8180670
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_817F70C
- movs r5, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08180688
- adds r0, r6, 0
- bl sub_817F670
-_08180688:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0x64
- ble _081806B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r5, [r6, 0x24]
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _081806FC
- .pool
-_081806B0:
- movs r0, 0x32
- ldrsh r5, [r6, r0]
- lsls r0, r5, 8
- movs r1, 0x64
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 9
- adds r0, r5, 0
- movs r1, 0x64
- bl __divsi3
- adds r5, r0, 0
- movs r0, 0xFF
- ands r5, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r6, 0x24]
- movs r4, 0x80
- lsls r4, 1
- adds r0, r5, 0
- ldr r1, =0x00000ccc
- bl Sin
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r4, 0
- bl sub_817F6D4
-_081806FC:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- adds r0, r6, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_1D
-
- thumb_func_start sub_8180714
-sub_8180714: @ 8180714
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0818072A
- adds r0, r4, 0
- bl sub_817F670
- strh r6, [r4, 0x34]
-_0818072A:
- adds r0, r4, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- cmp r2, r0
- ble _08180760
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r6, [r4, 0x26]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _081807FE
- .pool
-_08180760:
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08180796
- adds r2, r0, 0
- lsls r0, r2, 1
- cmp r1, r0
- bge _08180796
- movs r0, 0x80
- adds r1, r2, 0
- bl __divsi3
- ldrh r1, [r4, 0x34]
- adds r1, r0
- strh r1, [r4, 0x34]
-_08180796:
- lsls r0, r5, 16
- asrs r1, r0, 16
- movs r2, 0x80
- lsls r2, 1
- adds r5, r0, 0
- cmp r1, r2
- ble _081807B0
- subs r0, r2, r1
- cmp r0, 0
- bge _081807AC
- adds r0, 0x7
-_081807AC:
- lsls r0, 13
- lsrs r6, r0, 16
-_081807B0:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0xA
- bl Sin
- negs r0, r0
- lsls r1, r6, 16
- asrs r1, 16
- subs r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0x20
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- asrs r2, r5, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- bl __divsi3
- ldrh r1, [r4, 0x36]
- adds r1, r0
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x36]
-_081807FE:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8180714
-
- thumb_func_start pokemonanimfunc_00
-pokemonanimfunc_00: @ 818080C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x10
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8180714
- ldr r0, =sub_8180714
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_00
-
- thumb_func_start sub_8180828
-sub_8180828: @ 8180828
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
- movs r0, 0x32
- ldrsh r4, [r5, r0]
- movs r2, 0x3A
- ldrsh r1, [r5, r2]
- movs r0, 0x80
- bl __divsi3
- movs r2, 0x3C
- ldrsh r1, [r5, r2]
- muls r0, r1
- cmp r4, r0
- ble _08180868
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r6, [r5, 0x26]
- adds r0, r5, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
- b _081808D0
- .pool
-_08180868:
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r1, 0x20
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _08180894
- subs r0, r1, r0
- cmp r0, 0
- bge _08180890
- adds r0, 0x7
-_08180890:
- lsls r0, 13
- lsrs r6, r0, 16
-_08180894:
- lsls r0, r6, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r5, 0x26]
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r1, 0x30
- bl Sin
- adds r1, r0, 0
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- lsls r2, r4, 16
- asrs r2, 16
- adds r0, r5, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x36]
-_081808D0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8180828
-
- thumb_func_start pokemonanimfunc_13
-pokemonanimfunc_13: @ 81808D8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081808F2
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
-_081808F2:
- adds r0, r4, 0
- bl sub_8180828
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_13
-
- thumb_func_start sub_8180900
-sub_8180900: @ 8180900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, =gUnknown_03001240
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x6]
- str r1, [sp]
- ldr r5, =gUnknown_0860AD8E
- movs r3, 0x36
- ldrsh r2, [r4, r3]
- lsls r1, r2, 1
- adds r1, r2
- movs r3, 0x8
- ldrsh r2, [r0, r3]
- lsls r0, r2, 1
- adds r0, r2
- lsls r6, r0, 3
- adds r1, r6
- adds r2, r1, r5
- adds r0, r5, 0x1
- adds r1, r0
- movs r0, 0
- ldrsb r0, [r1, r0]
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- mov r9, r2
- subs r0, r2
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldrh r7, [r4, 0x34]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0818096C
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_0818096C:
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r6
- adds r5, 0x2
- mov r8, r5
- adds r1, r0, r5
- movs r5, 0
- ldrsb r5, [r1, r5]
- cmp r5, 0
- bne _081809B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180A3A
- .pool
-_081809B0:
- lsls r0, r7, 16
- asrs r5, r0, 16
- lsls r0, r5, 7
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xA
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r3, r10
- lsls r0, r3, 16
- asrs r0, 16
- muls r0, r5
- movs r1, 0x36
- ldrsh r2, [r4, r1]
- lsls r1, r2, 1
- adds r1, r2
- adds r1, r6
- add r1, r8
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- bl __divsi3
- add r0, r9
- strh r0, [r4, 0x24]
- ldr r2, [sp]
- lsls r0, r2, 16
- asrs r0, 16
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- muls r0, r1
- negs r0, r0
- cmp r0, 0
- bge _08180A04
- adds r0, 0x7
-_08180A04:
- lsls r3, r0, 13
- lsrs r3, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r6
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r5, r0
- bne _08180A34
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r0, 0
- b _08180A38
-_08180A34:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
-_08180A38:
- strh r0, [r4, 0x34]
-_08180A3A:
- adds r0, r4, 0
- bl sub_817F70C
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8180900
-
- thumb_func_start pokemonanimfunc_05
-pokemonanimfunc_05: @ 8180A50
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 5
- strh r0, [r1, 0x6]
- ldrh r0, [r4, 0x3A]
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_8180900
- ldr r0, =sub_8180900
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_05
-
- thumb_func_start pokemonanimfunc_20
-pokemonanimfunc_20: @ 8180A8C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180AA8
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_08180AA8:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _08180ACC
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000002df
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180AE8
- .pool
-_08180ACC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =0x000002df
- movs r1, 0x10
- bl BlendPalette
-_08180AE8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_20
-
- thumb_func_start pokemonanimfunc_21
-pokemonanimfunc_21: @ 8180AF8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180B14
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_08180B14:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _08180B34
- ldrh r0, [r4, 0x3C]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0x1F
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180B50
- .pool
-_08180B34:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x10
- movs r3, 0x1F
- bl BlendPalette
-_08180B50:
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_21
-
- thumb_func_start pokemonanimfunc_22
-pokemonanimfunc_22: @ 8180B5C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180B78
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_08180B78:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _08180B98
- ldrh r0, [r4, 0x3C]
- movs r3, 0xF8
- lsls r3, 7
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180BB6
- .pool
-_08180B98:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0xF8
- lsls r3, 7
- movs r1, 0x10
- bl BlendPalette
-_08180BB6:
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_22
-
- thumb_func_start pokemonanimfunc_23
-pokemonanimfunc_23: @ 8180BC4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180BE0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_08180BE0:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _08180C04
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000003ff
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180C20
- .pool
-_08180C04:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =0x000003ff
- movs r1, 0x10
- bl BlendPalette
-_08180C20:
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_23
-
- thumb_func_start pokemonanimfunc_24
-pokemonanimfunc_24: @ 8180C30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180C4C
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
-_08180C4C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x80
- ble _08180C70
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x00006018
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08180C8C
- .pool
-_08180C70:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =0x00006018
- movs r1, 0x10
- bl BlendPalette
-_08180C8C:
- ldrh r0, [r4, 0x32]
- adds r0, 0x2
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_24
-
- thumb_func_start pokemonanimfunc_25
-pokemonanimfunc_25: @ 8180C9C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- ldr r0, =sub_8180CB4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_25
-
- thumb_func_start sub_8180CB4
-sub_8180CB4: @ 8180CB4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08180CD6
- movs r0, 0x8
- strh r0, [r4, 0x24]
- movs r0, 0x2
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8180CE8
- str r0, [r4, 0x1C]
-_08180CD6:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180CB4
-
- thumb_func_start sub_8180CE8
-sub_8180CE8: @ 8180CE8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- subs r1, r0
- strh r1, [r4, 0x24]
- adds r0, 0x1
- adds r2, r0, 0
- strh r0, [r4, 0x3C]
- lsls r1, 16
- cmp r1, 0
- bgt _08180D32
- lsls r0, r2, 24
- lsrs r2, r0, 24
- movs r0, 0
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x24]
- ldr r5, =sub_8180D44
- movs r3, 0x8
- negs r3, r3
-_08180D14:
- subs r0, r1, r2
- lsls r0, 16
- ldrh r1, [r4, 0x3A]
- adds r1, 0x1
- strh r1, [r4, 0x3A]
- adds r1, r2, 0x1
- lsls r1, 24
- lsrs r2, r1, 24
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, r3
- bgt _08180D14
- movs r0, 0x1
- strh r0, [r4, 0x38]
- str r5, [r4, 0x1C]
-_08180D32:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180CE8
-
- thumb_func_start sub_8180D44
-sub_8180D44: @ 8180D44
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x3C]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, 0x1
- strh r1, [r4, 0x3C]
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r1, [r4, r3]
- cmp r0, r1
- ble _08180D84
- strh r2, [r4, 0x38]
-_08180D84:
- movs r2, 0x80
- lsls r2, 1
- lsls r3, r5, 8
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _08180DAE
- strh r1, [r4, 0x24]
- movs r0, 0x2
- strh r0, [r4, 0x36]
- movs r0, 0
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x32]
- ldr r0, =sub_8180DC0
- str r0, [r4, 0x1C]
-_08180DAE:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180D44
-
- thumb_func_start sub_8180DC0
-sub_8180DC0: @ 8180DC0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0xB
- ble _08180E08
- ldrh r0, [r4, 0x32]
- subs r0, 0x2
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bge _08180DE2
- movs r0, 0
- strh r0, [r4, 0x32]
-_08180DE2:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x32]
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08180E1C
- ldr r0, =sub_8180E28
- str r0, [r4, 0x1C]
- b _08180E1C
- .pool
-_08180E08:
- ldrh r0, [r4, 0x36]
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x36]
- adds r0, r1, 0x1
- strh r0, [r4, 0x34]
-_08180E1C:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8180DC0
-
- thumb_func_start sub_8180E28
-sub_8180E28: @ 8180E28
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- adds r0, 0x2
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _08180E4A
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08180E4A:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180E28
-
- thumb_func_start pokemonanimfunc_26
-pokemonanimfunc_26: @ 8180E5C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r0, 0
- strh r0, [r4, 0x34]
- ldr r0, =sub_8180E78
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_26
-
- thumb_func_start sub_8180E78
-sub_8180E78: @ 8180E78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08180EA2
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _08180EA2
- movs r0, 0xA
- strh r0, [r4, 0x34]
-_08180EA2:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- ble _08180EBA
- movs r1, 0
- movs r0, 0x8
- strh r0, [r4, 0x24]
- ldr r0, =0x0000fff8
- strh r0, [r4, 0x26]
- strh r1, [r4, 0x36]
- ldr r0, =sub_8180ED0
- str r0, [r4, 0x1C]
-_08180EBA:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180E78
-
- thumb_func_start sub_8180ED0
-sub_8180ED0: @ 8180ED0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Cos
- subs r0, 0x8
- strh r0, [r4, 0x24]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- subs r0, 0x8
- strh r0, [r4, 0x26]
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _08180F08
- movs r0, 0xA0
- strh r0, [r4, 0x32]
- movs r0, 0xA
- strh r0, [r4, 0x34]
- ldr r0, =sub_8180F2C
- str r0, [r4, 0x1C]
-_08180F08:
- ldrh r0, [r4, 0x36]
- adds r0, 0x8
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _08180F1A
- movs r0, 0x40
- strh r0, [r4, 0x36]
-_08180F1A:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180ED0
-
- thumb_func_start sub_8180F2C
-sub_8180F2C: @ 8180F2C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _08180F44
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- b _08180F96
-_08180F44:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl Cos
- subs r0, 0x4
- movs r5, 0
- strh r0, [r4, 0x24]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- movs r1, 0x5
- bl Sin
- negs r0, r0
- adds r0, 0x4
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- subs r0, 0x4
- strh r0, [r4, 0x32]
- movs r0, 0x32
- ldrsh r3, [r4, r0]
- subs r3, 0x20
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 25
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bgt _08180F96
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08180F96:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8180F2C
-
- thumb_func_start pokemonanimfunc_27
-pokemonanimfunc_27: @ 8180FA8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _08180FBA
- subs r0, r1, 0x1
- b _08180FFE
-_08180FBA:
- movs r2, 0
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08180FC6
- movs r2, 0x1
-_08180FC6:
- strh r2, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r2, 2
- ldrb r1, [r0]
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- orrs r0, r2
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _08180FFC
- ldrb r0, [r1]
- adds r1, r4, 0
- ands r1, r0
- mov r2, r12
- strb r1, [r2]
- ldr r0, =sub_8184D88
- str r0, [r3, 0x1C]
-_08180FFC:
- movs r0, 0x2
-_08180FFE:
- strh r0, [r3, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_27
-
- thumb_func_start pokemonanimfunc_28
-pokemonanimfunc_28: @ 818100C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- ldr r0, =sub_8181024
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_28
-
- thumb_func_start sub_8181024
-sub_8181024: @ 8181024
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x26]
- adds r1, 0x1
- strh r1, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bgt _08181054
- ldr r0, =0x0000fff0
- strh r0, [r4, 0x24]
- movs r0, 0x10
- strh r0, [r4, 0x26]
- ldr r0, =sub_8181068
- str r0, [r4, 0x1C]
- movs r0, 0xA0
- strh r0, [r4, 0x32]
-_08181054:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181024
-
- thumb_func_start sub_8181068
-sub_8181068: @ 8181068
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x32]
- subs r0, 0x4
- strh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x16
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x16
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r0, 0x32
- ldrsh r3, [r4, r0]
- subs r3, 0x20
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 25
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bgt _081810B2
- ldr r0, =sub_81810C4
- str r0, [r4, 0x1C]
-_081810B2:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181068
-
- thumb_func_start sub_81810C4
-sub_81810C4: @ 81810C4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x24]
- subs r1, 0x1
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- lsls r1, 16
- cmp r1, 0
- bgt _081810E8
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_081810E8:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81810C4
-
- thumb_func_start pokemonanimfunc_29
-pokemonanimfunc_29: @ 81810F8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- ldr r0, =sub_8181110
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_29
-
- thumb_func_start sub_8181110
-sub_8181110: @ 8181110
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x24]
- adds r1, 0x1
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF
- ble _08181134
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r0, =sub_8181144
- str r0, [r4, 0x1C]
-_08181134:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181110
-
- thumb_func_start sub_8181144
-sub_8181144: @ 8181144
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x32]
- adds r0, 0x10
- strh r0, [r4, 0x32]
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bgt _0818117C
- ldr r0, =0x0000fff0
- strh r0, [r4, 0x24]
- movs r0, 0x10
- strh r0, [r4, 0x26]
- movs r0, 0
- strh r0, [r4, 0x32]
- ldr r0, =sub_81811A4
- str r0, [r4, 0x1C]
- b _08181186
- .pool
-_0818117C:
- subs r0, r2, 0x2
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- adds r0, 0x2
- strh r0, [r4, 0x26]
-_08181186:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x32]
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8181144
-
- thumb_func_start sub_81811A4
-sub_81811A4: @ 81811A4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x24]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- lsls r1, 16
- cmp r1, 0
- blt _081811CE
- strh r2, [r4, 0x24]
- strh r2, [r4, 0x26]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_081811CE:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81811A4
-
- thumb_func_start pokemonanimfunc_2A
-pokemonanimfunc_2A: @ 81811E0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x2
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_8181214
- ldr r0, =sub_8181214
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_2A
-
- thumb_func_start sub_8181214
-sub_8181214: @ 8181214
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- ldrh r0, [r1]
- cmp r0, 0
- beq _08181238
- subs r0, 0x1
- strh r0, [r1]
- b _0818134A
- .pool
-_08181238:
- adds r0, r4, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x32]
- movs r1, 0x32
- ldrsh r5, [r4, r1]
- cmp r5, 0
- bne _08181270
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F670
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r0, [r0, 0x2]
- strh r0, [r4, 0x3C]
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
- strh r5, [r4, 0x3A]
-_08181270:
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- movs r6, 0x34
- ldrsh r0, [r4, r6]
- lsls r0, 1
- muls r1, r0
- ldrh r0, [r4, 0x24]
- adds r1, r0
- strh r1, [r4, 0x24]
- ldrh r2, [r4, 0x3C]
- ldrh r0, [r4, 0x36]
- adds r3, r0, 0
- muls r3, r2
- adds r0, r3, 0
- ldrh r6, [r4, 0x26]
- adds r2, r0, r6
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x8
- strh r0, [r4, 0x3A]
- adds r1, 0xF
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x1E
- bls _081812B8
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 4
- strh r0, [r4, 0x24]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x34]
- b _081812D4
- .pool
-_081812B8:
- adds r0, r2, 0
- adds r0, 0xF
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bls _081812DA
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- lsls r0, 4
- strh r0, [r4, 0x26]
- movs r6, 0x36
- ldrsh r0, [r4, r6]
- negs r0, r0
- strh r0, [r4, 0x36]
-_081812D4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_081812DA:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- ble _08181332
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _08181332
- movs r3, 0
- strh r3, [r4, 0x24]
- strh r3, [r4, 0x26]
- ldr r5, =gUnknown_03001240
- movs r6, 0x2E
- ldrsh r0, [r4, r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r2, [r1, 0x4]
- movs r6, 0x4
- ldrsh r0, [r1, r6]
- cmp r0, 0x1
- ble _08181328
- subs r0, r2, 0x1
- strh r0, [r1, 0x4]
- strh r3, [r4, 0x38]
- strh r3, [r4, 0x3A]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0xA
- strh r1, [r0]
- b _08181332
- .pool
-_08181328:
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08181332:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3A]
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
-_0818134A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181214
-
- thumb_func_start pokemonanimfunc_2B
-pokemonanimfunc_2B: @ 8181354
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r0, 0
- strh r0, [r4, 0x3A]
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8181370
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_2B
-
- thumb_func_start sub_8181370
-sub_8181370: @ 8181370
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 1
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0xC0
- ble _081813BA
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081813BA
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- b _081813D2
-_081813BA:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- ble _081813DE
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081813DE
- ldr r1, =0xffffff00
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
-_081813D2:
- movs r3, 0
- bl sub_817F6D4
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_081813DE:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _08181404
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08181404:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181370
-
- thumb_func_start pokemonanimfunc_2C
-pokemonanimfunc_2C: @ 8181418
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08181442
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- strh r2, [r4, 0x3A]
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x36]
-_08181442:
- ldr r1, =gUnknown_0860AA64
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r2, r0, 1
- adds r0, r1, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08181464
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _081814CE
- .pool
-_08181464:
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _0818149A
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08181488
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000003ff
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- b _08181494
- .pool
-_08181488:
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000003ff
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
-_08181494:
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r1, =gUnknown_0860AA64
-_0818149A:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _081814C8
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081814CE
- .pool
-_081814C8:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_081814CE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_2C
-
- thumb_func_start sub_81814D4
-sub_81814D4: @ 81814D4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081814E6
- adds r0, r6, 0
- bl sub_817F670
-_081814E6:
- adds r0, r6, 0
- bl sub_817F70C
- ldr r4, =gUnknown_03001240
- movs r3, 0x2E
- ldrsh r1, [r6, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r4
- movs r0, 0x32
- ldrsh r1, [r6, r0]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r1, r0
- ble _0818154C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r3, 0
- strh r3, [r6, 0x24]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrh r2, [r1, 0x4]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- ble _0818153C
- subs r0, r2, 0x1
- strh r0, [r1, 0x4]
- strh r3, [r6, 0x32]
- b _08181588
- .pool
-_0818153C:
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08181588
- .pool
-_0818154C:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 8
- movs r3, 0x8
- ldrsh r1, [r2, r3]
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- negs r0, r0
- strh r0, [r6, 0x24]
- movs r5, 0x80
- lsls r5, 1
- ldr r1, =0x00000ccc
- adds r0, r4, 0
- bl Sin
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r5, 0
- bl sub_817F6D4
-_08181588:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- adds r0, r6, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81814D4
-
- thumb_func_start pokemonanimfunc_2D
-pokemonanimfunc_2D: @ 81815A0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81814D4
- ldr r0, =sub_81814D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_2D
-
- thumb_func_start sub_81815D4
-sub_81815D4: @ 81815D4
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081815E6
- adds r0, r6, 0
- bl sub_817F670
-_081815E6:
- adds r0, r6, 0
- bl sub_817F70C
- ldr r4, =gUnknown_03001240
- movs r3, 0x2E
- ldrsh r1, [r6, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r4
- movs r0, 0x32
- ldrsh r1, [r6, r0]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r1, r0
- ble _0818164C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r3, 0
- strh r3, [r6, 0x24]
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrh r2, [r1, 0x4]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- ble _0818163C
- subs r0, r2, 0x1
- strh r0, [r1, 0x4]
- strh r3, [r6, 0x32]
- b _0818168A
- .pool
-_0818163C:
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _0818168A
- .pool
-_0818164C:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r0, 8
- movs r3, 0x8
- ldrsh r1, [r2, r3]
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0xA
- bl Sin
- negs r0, r0
- strh r0, [r6, 0x24]
- movs r5, 0x80
- lsls r5, 1
- ldr r1, =0x00000ccc
- adds r0, r4, 0
- bl Sin
- adds r3, r0, 0
- negs r3, r3
- lsls r3, 16
- lsrs r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r5, 0
- bl sub_817F6D4
-_0818168A:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- adds r0, r6, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81815D4
-
- thumb_func_start pokemonanimfunc_2E
-pokemonanimfunc_2E: @ 81816A0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81815D4
- ldr r0, =sub_81815D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_2E
-
- thumb_func_start pokemonanimfunc_2F
-pokemonanimfunc_2F: @ 81816D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- adds r0, r4, 0
- adds r0, 0x28
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- movs r1, 0xA
- bl __divsi3
- negs r0, r0
- strh r0, [r4, 0x3A]
- movs r0, 0x80
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8181708
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_2F
-
- thumb_func_start sub_8181708
-sub_8181708: @ 8181708
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- subs r3, 0x80
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- bgt _08181760
- movs r0, 0x78
- strh r0, [r4, 0x3C]
- movs r0, 0
- strh r0, [r4, 0x34]
- ldr r0, =sub_8181770
- str r0, [r4, 0x1C]
-_08181760:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181708
-
- thumb_func_start sub_8181770
-sub_8181770: @ 8181770
- push {lr}
- adds r1, r0, 0
- movs r2, 0x34
- ldrsh r0, [r1, r2]
- cmp r0, 0x14
- bne _08181784
- ldr r0, =sub_8181794
- str r0, [r1, 0x1C]
- movs r0, 0
- strh r0, [r1, 0x34]
-_08181784:
- ldrh r0, [r1, 0x34]
- adds r0, 0x1
- strh r0, [r1, 0x34]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181770
-
- thumb_func_start sub_8181794
-sub_8181794: @ 8181794
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3C]
- adds r0, 0x2
- movs r6, 0
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Cos
- ldrh r1, [r4, 0x3A]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r5, 0x80
- lsls r5, 1
- ldrh r3, [r4, 0x3C]
- subs r3, 0x80
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r5, 0
- bl sub_817F6D4
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08181800
- strh r6, [r4, 0x24]
- strh r6, [r4, 0x26]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_817F6D4
- strh r6, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =pokemonanimfunc_10
- str r0, [r4, 0x1C]
-_08181800:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181794
-
- thumb_func_start sub_8181810
-sub_8181810: @ 8181810
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrh r0, [r1]
- adds r6, r0, 0
- cmp r6, 0
- beq _08181834
- subs r0, 0x1
- strh r0, [r1]
- b _08181950
- .pool
-_08181834:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0818184A
- adds r0, r5, 0
- bl sub_817F670
- strh r6, [r5, 0x36]
- strh r6, [r5, 0x38]
- movs r0, 0x1
- strh r0, [r5, 0x32]
-_0818184A:
- movs r3, 0x38
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _081818A2
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4, 0
- bl Sin
- strh r0, [r5, 0x3C]
- movs r3, 0x36
- ldrsh r0, [r5, r3]
- movs r1, 0x10
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r1, 0x20
- bl Sin
- adds r1, r0, 0
- strh r1, [r5, 0x3A]
- subs r1, r4, r1
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r5, 0x3C]
- adds r2, r4
- lsls r2, 16
- asrs r2, 16
- adds r0, r5, 0
- movs r3, 0
- bl sub_817F6D4
- movs r3, 0x36
- ldrsh r0, [r5, r3]
- cmp r0, 0x80
- bne _0818193A
- strh r6, [r5, 0x36]
- movs r0, 0x1
- strh r0, [r5, 0x38]
- b _0818193A
-_081818A2:
- cmp r0, 0x1
- bne _0818193A
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r1, 0x20
- bl Sin
- strh r0, [r5, 0x3C]
- movs r3, 0x36
- ldrsh r0, [r5, r3]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r5, 0x26]
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- bl Sin
- adds r1, r0, 0
- strh r1, [r5, 0x3A]
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r0, [r5, 0x3C]
- subs r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r5, 0
- movs r3, 0
- bl sub_817F6D4
- movs r1, 0x36
- ldrsh r0, [r5, r1]
- cmp r0, 0x80
- bne _0818193A
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- ble _08181922
- subs r0, r2, 0x1
- strh r0, [r1, 0x4]
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0]
- strh r6, [r5, 0x36]
- strh r6, [r5, 0x38]
- b _0818193A
-_08181922:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r5, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
-_0818193A:
- ldr r2, =gUnknown_03001240
- movs r3, 0x2E
- ldrsh r1, [r5, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x6]
- ldrh r1, [r5, 0x36]
- adds r0, r1
- strh r0, [r5, 0x36]
-_08181950:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181810
-
- thumb_func_start pokemonanimfunc_30
-pokemonanimfunc_30: @ 8181960
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- bl sub_8181810
- ldr r0, =sub_8181810
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_30
-
- thumb_func_start pokemonanimfunc_31
-pokemonanimfunc_31: @ 8181994
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r4, [r5, r0]
- adds r0, r5, 0
- bl sub_817F70C
- movs r0, 0x80
- lsls r0, 2
- cmp r4, r0
- ble _081819B8
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
- movs r0, 0
- strh r0, [r5, 0x24]
- b _08181A62
- .pool
-_081819B8:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _081819C2
- adds r0, 0x7F
-_081819C2:
- asrs r0, 7
- cmp r0, 0x1
- beq _081819F8
- cmp r0, 0x1
- bgt _081819D2
- cmp r0, 0
- beq _081819DC
- b _08181A48
-_081819D2:
- cmp r0, 0x2
- beq _08181A12
- cmp r0, 0x3
- beq _08181A2A
- b _08181A48
-_081819DC:
- adds r0, r4, 0
- cmp r4, 0
- bge _081819E4
- adds r0, 0x7F
-_081819E4:
- asrs r0, 7
- lsls r0, 7
- subs r0, r4, r0
- lsls r0, 3
- negs r0, r0
- cmp r0, 0
- bge _081819F4
- adds r0, 0x7F
-_081819F4:
- asrs r0, 7
- b _08181A46
-_081819F8:
- adds r0, r4, 0
- cmp r4, 0
- bge _08181A00
- adds r0, 0x7F
-_08181A00:
- asrs r0, 7
- lsls r0, 7
- subs r0, r4, r0
- cmp r0, 0
- bge _08181A0C
- adds r0, 0xF
-_08181A0C:
- asrs r0, 4
- subs r0, 0x8
- b _08181A46
-_08181A12:
- adds r0, r4, 0
- cmp r4, 0
- bge _08181A1A
- adds r0, 0x7F
-_08181A1A:
- asrs r0, 7
- lsls r0, 7
- subs r0, r4, r0
- cmp r0, 0
- bge _08181A26
- adds r0, 0xF
-_08181A26:
- asrs r0, 4
- b _08181A46
-_08181A2A:
- adds r0, r4, 0
- cmp r4, 0
- bge _08181A32
- adds r0, 0x7F
-_08181A32:
- asrs r0, 7
- lsls r0, 7
- subs r0, r4, r0
- lsls r0, 3
- negs r0, r0
- cmp r0, 0
- bge _08181A42
- adds r0, 0x7F
-_08181A42:
- asrs r0, 7
- adds r0, 0x8
-_08181A46:
- strh r0, [r5, 0x24]
-_08181A48:
- adds r0, r4, 0
- cmp r4, 0
- bge _08181A50
- adds r0, 0x7F
-_08181A50:
- asrs r0, 7
- lsls r0, 7
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
-_08181A62:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x32]
- adds r0, 0xC
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_31
-
- thumb_func_start pokemonanimfunc_32
-pokemonanimfunc_32: @ 8181A78
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_817F670
- strh r5, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8181ABC
- ldr r0, =sub_8181ABC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_32
-
- thumb_func_start sub_8181ABC
-sub_8181ABC: @ 8181ABC
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r6, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- ldrh r0, [r1]
- adds r5, r0, 0
- cmp r5, 0
- beq _08181AE0
- subs r0, 0x1
- strh r0, [r1]
- b _08181B44
- .pool
-_08181AE0:
- adds r0, r4, 0
- bl sub_817F70C
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r0, 0x80
- ble _08181AFC
- strh r5, [r4, 0x32]
- ldr r0, =sub_8181B4C
- str r0, [r4, 0x1C]
- b _08181B3E
- .pool
-_08181AFC:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- lsls r3, r0, 3
- adds r0, r2, 0
- cmp r2, 0
- bge _08181B16
- adds r0, 0x7F
-_08181B16:
- asrs r0, 7
- lsls r0, 7
- subs r1, r2, r0
- adds r0, r3, 0
- muls r0, r1
- cmp r0, 0
- bge _08181B26
- adds r0, 0x7F
-_08181B26:
- asrs r0, 7
- strh r0, [r4, 0x24]
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0xC
- strh r0, [r4, 0x32]
-_08181B3E:
- adds r0, r4, 0
- bl sub_817F70C
-_08181B44:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8181ABC
-
- thumb_func_start sub_8181B4C
-sub_8181B4C: @ 8181B4C
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x30
- ble _08181B7C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r0, 0
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x32]
- ldr r0, =sub_8181C2C
- str r0, [r4, 0x1C]
- b _08181C1A
- .pool
-_08181B7C:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0x40
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r6, r1, 0
- adds r0, r6
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r0, [r4, 0x32]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF
- bhi _08181BBA
- ldrh r0, [r4, 0x34]
- adds r0, 0x8
- strh r0, [r4, 0x34]
- ldr r2, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x24]
- ldrh r0, [r0, 0x8]
- subs r1, r0
- strh r1, [r4, 0x24]
-_08181BBA:
- movs r5, 0
- lsls r1, r3, 16
- asrs r2, r1, 16
- lsls r0, r6, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r2, r0
- ble _08181BD6
- subs r0, r2
- cmp r0, 0
- bge _08181BD2
- adds r0, 0x7
-_08181BD2:
- lsls r0, 13
- lsrs r5, r0, 16
-_08181BD6:
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- negs r0, r0
- lsls r1, r5, 16
- asrs r1, 16
- subs r0, r1
- strh r0, [r4, 0x26]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r1, 0x20
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- asrs r2, r6, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x36]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
-_08181C1A:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181B4C
-
- thumb_func_start sub_8181C2C
-sub_8181C2C: @ 8181C2C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r3, [r4, r0]
- cmp r3, 0x80
- ble _08181C90
- ldr r3, =gUnknown_03001240
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x4]
- movs r5, 0x4
- ldrsh r0, [r1, r5]
- cmp r0, 0x1
- ble _08181C7C
- subs r0, r2, 0x1
- movs r2, 0
- strh r0, [r1, 0x4]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0xA
- strh r1, [r0]
- strh r2, [r4, 0x34]
- strh r2, [r4, 0x32]
- strh r2, [r4, 0x36]
- ldr r0, =sub_8181ABC
- b _08181C84
- .pool
-_08181C7C:
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
-_08181C84:
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08181CD0
- .pool
-_08181C90:
- ldr r2, =gUnknown_03001240
- movs r5, 0x2E
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x8
- ldrsh r5, [r0, r1]
- lsls r1, r5, 3
- adds r0, r3, 0
- cmp r3, 0
- bge _08181CAC
- adds r0, 0x7F
-_08181CAC:
- asrs r0, 7
- lsls r0, 7
- subs r2, r3, r0
- adds r0, r1, 0
- muls r0, r2
- cmp r0, 0
- bge _08181CBC
- adds r0, 0x7F
-_08181CBC:
- asrs r0, 7
- lsls r1, r5, 3
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
-_08181CD0:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0xC
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181C2C
-
- thumb_func_start sub_8181CE8
-sub_8181CE8: @ 8181CE8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08181D00
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08181D00:
- adds r0, r4, 0
- bl sub_817F70C
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r0, 0xFE
- ble _08181D60
- movs r5, 0
- strh r5, [r4, 0x24]
- strh r5, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldr r2, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- ble _08181D48
- subs r0, r2, 0x1
- strh r0, [r1, 0x4]
- strh r5, [r4, 0x32]
- strh r5, [r4, 0x3C]
- b _08181D52
- .pool
-_08181D48:
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08181D52:
- adds r0, r4, 0
- bl sub_817F70C
- b _08181DA6
- .pool
-_08181D60:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- movs r1, 0x20
- bl Sin
- adds r3, r0, 0
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- ldr r2, =gUnknown_03001240
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x6]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F70C
-_08181DA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181CE8
-
- thumb_func_start pokemonanimfunc_33
-pokemonanimfunc_33: @ 8181DB0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- bl sub_8181CE8
- ldr r0, =sub_8181CE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_33
-
- thumb_func_start pokemonanimfunc_34
-pokemonanimfunc_34: @ 8181DE4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08181DFC
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08181DFC:
- adds r0, r4, 0
- bl sub_817F70C
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0xFE
- ble _08181E34
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- bl sub_817F70C
- b _08181E8A
- .pool
-_08181E34:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08181E4E
- adds r0, 0x7F
-_08181E4E:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x20
- bl Sin
- adds r3, r0, 0
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F70C
-_08181E8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_34
-
- thumb_func_start pokemonanimfunc_35
-pokemonanimfunc_35: @ 8181E90
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r1, 0x32
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08181E9E
- strh r0, [r3, 0x3C]
-_08181E9E:
- ldrh r4, [r3, 0x32]
- movs r5, 0x32
- ldrsh r1, [r3, r5]
- ldrh r2, [r3, 0x3C]
- movs r5, 0x3C
- ldrsh r0, [r3, r5]
- cmp r1, r0
- bne _08181EC8
- movs r0, 0
- strh r0, [r3, 0x3C]
- adds r0, r4, 0x1
- strh r0, [r3, 0x32]
- adds r1, r3, 0
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r2, r1, 0
- b _08181ED8
-_08181EC8:
- adds r0, r2, 0x1
- strh r0, [r3, 0x3C]
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_08181ED8:
- movs r1, 0x32
- ldrsh r0, [r3, r1]
- cmp r0, 0xA
- ble _08181EEE
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldr r0, =sub_8184D88
- str r0, [r3, 0x1C]
-_08181EEE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_35
-
- thumb_func_start pokemonanimfunc_36
-pokemonanimfunc_36: @ 8181EF8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r0, 0
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8181F14
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_36
-
- thumb_func_start sub_8181F14
-sub_8181F14: @ 8181F14
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x1F
- ble _08181F34
- movs r0, 0
- movs r1, 0x20
- strh r1, [r4, 0x3C]
- strh r0, [r4, 0x32]
- ldr r0, =sub_8181F50
- str r0, [r4, 0x1C]
- b _08181F38
- .pool
-_08181F34:
- adds r0, r1, 0x4
- strh r0, [r4, 0x3C]
-_08181F38:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8181F14
-
- thumb_func_start sub_8181F50
-sub_8181F50: @ 8181F50
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _08181F74
- ldr r0, =sub_8181FC0
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _08181FAE
- .pool
-_08181F74:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsls r0, 4
- negs r0, r0
- cmp r0, 0
- bge _08181F84
- ldr r1, =0x000001ff
- adds r0, r1
-_08181F84:
- asrs r0, 9
- strh r0, [r4, 0x24]
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08181F94
- adds r0, 0x7F
-_08181F94:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0xC
- strh r0, [r4, 0x32]
-_08181FAE:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8181F50
-
- thumb_func_start sub_8181FC0
-sub_8181FC0: @ 8181FC0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3C]
- subs r0, 0x2
- movs r1, 0
- strh r0, [r4, 0x3C]
- lsls r0, 16
- cmp r0, 0
- bge _08181FEC
- strh r1, [r4, 0x3C]
- strh r1, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08181FFE
- .pool
-_08181FEC:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
-_08181FFE:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8181FC0
-
- thumb_func_start pokemonanimfunc_37
-pokemonanimfunc_37: @ 818201C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182036
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182036:
- adds r0, r4, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _08182060
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _081820A6
- .pool
-_08182060:
- adds r0, r1, 0
- adds r0, 0x10
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182072
- adds r0, 0x7F
-_08182072:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182092
- adds r0, 0x7F
-_08182092:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_081820A6:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081820B2
- adds r0, 0x7F
-_081820B2:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- adds r3, r0, 0
- movs r2, 0x80
- lsls r2, 1
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_37
-
- thumb_func_start pokemonanimfunc_38
-pokemonanimfunc_38: @ 81820E0
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r0, 0
- strh r0, [r4, 0x3C]
- strh r0, [r4, 0x36]
- ldr r0, =sub_81820FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_38
-
- thumb_func_start sub_81820FC
-sub_81820FC: @ 81820FC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x18
- ble _0818212C
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0818214A
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, =sub_818216C
- str r0, [r4, 0x1C]
- b _0818214A
- .pool
-_0818212C:
- adds r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_0818214A:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81820FC
-
- thumb_func_start sub_818216C
-sub_818216C: @ 818216C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- ble _0818218C
- movs r0, 0x1
- strh r0, [r4, 0x3A]
- ldr r0, =sub_81821CC
- str r0, [r4, 0x1C]
- b _081821AA
- .pool
-_0818218C:
- adds r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_081821AA:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_818216C
-
- thumb_func_start sub_81821CC
-sub_81821CC: @ 81821CC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 2
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _081821F0
- movs r0, 0x20
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8182248
- str r0, [r4, 0x1C]
-_081821F0:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- subs r0, 0x1D
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bls _08182224
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x3A]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_08182224:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81821CC
-
- thumb_func_start sub_8182248
-sub_8182248: @ 8182248
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _08182270
- movs r0, 0
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0818228E
- .pool
-_08182270:
- subs r0, r1, 0x2
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
-_0818228E:
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3C]
- negs r3, r3
- lsls r3, 24
- lsrs r3, 16
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182248
-
- thumb_func_start pokemonanimfunc_39
-pokemonanimfunc_39: @ 81822B0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x28
- ble _081822D0
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0818235C
- .pool
-_081822D0:
- movs r0, 0x1
- ands r0, r1
- movs r5, 0xFF
- cmp r0, 0
- bne _081822DC
- movs r5, 0x1
-_081822DC:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- adds r0, r2, 0
- cmp r2, 0
- bge _081822E8
- adds r0, r2, 0x3
-_081822E8:
- asrs r0, 2
- lsls r0, 2
- subs r0, r2, r0
- lsls r0, 16
- asrs r1, r0, 16
- lsrs r0, 31
- adds r1, r0
- asrs r1, 1
- cmp r1, 0
- bne _0818232C
- lsls r0, r2, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0818230C
- adds r0, 0xFF
-_0818230C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- negs r0, r0
- b _0818235A
-_0818232C:
- lsls r0, r2, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _0818233C
- adds r0, 0xFF
-_0818233C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- bl Sin
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- lsls r1, r5, 24
- asrs r1, 24
- muls r0, r1
- strh r0, [r4, 0x24]
-_0818235A:
- strh r0, [r4, 0x26]
-_0818235C:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_39
-
- thumb_func_start pokemonanimfunc_3A
-pokemonanimfunc_3A: @ 8182370
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182392
- adds r0, r4, 0
- bl sub_817F670
- strh r5, [r4, 0x38]
- strh r5, [r4, 0x3A]
- strh r5, [r4, 0x3C]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08182392:
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _081823E4
- subs r0, r1, 0x1
- strh r0, [r4, 0x3A]
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- beq _08182494
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r0, 3
- movs r1, 0x14
- bl __divsi3
- adds r1, r0, 0
- ldrh r0, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 16
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x40
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- lsls r0, 16
- asrs r0, 16
- subs r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- b _08182494
-_081823E4:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bne _08182424
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _08182410
- movs r0, 0x40
- strh r0, [r4, 0x3C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08182410:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x40
- bl Cos
- lsls r0, 16
- lsrs r3, r0, 16
- b _08182474
- .pool
-_08182424:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x40
- bl Sin
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _08182448
- movs r0, 0
- movs r1, 0x3
- strh r1, [r4, 0x38]
- movs r1, 0xA
- strh r1, [r4, 0x3A]
- strh r0, [r4, 0x3C]
- b _08182474
-_08182448:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x30
- ble _0818245C
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0818245C
- movs r0, 0x2
- b _0818246E
-_0818245C:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _08182474
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08182474
- movs r0, 0x1
-_0818246E:
- strh r0, [r4, 0x38]
- movs r0, 0x14
- strh r0, [r4, 0x3A]
-_08182474:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x2
- strh r0, [r4, 0x3C]
- movs r0, 0x80
- lsls r0, 1
- adds r2, r0, 0
- lsls r0, r3, 16
- asrs r0, 16
- subs r2, r0
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_08182494:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3A
-
- thumb_func_start pokemonanimfunc_3B
-pokemonanimfunc_3B: @ 81824A0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081824BA
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_081824BA:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _081824E8
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08182540
- .pool
-_081824E8:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081824F4
- adds r0, 0xFF
-_081824F4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182518
- adds r0, 0x7F
-_08182518:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- movs r1, 0x80
- lsls r1, 1
- lsls r2, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
-_08182540:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3B
-
- thumb_func_start pokemonanimfunc_3C
-pokemonanimfunc_3C: @ 8182548
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182562
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182562:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r5, 0x80
- lsls r5, 1
- cmp r0, r5
- ble _08182590
- movs r0, 0
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _081825D4
- .pool
-_08182590:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x10
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x4
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081825AE
- adds r0, 0x3F
-_081825AE:
- asrs r0, 6
- lsls r0, 6
- subs r0, r1, r0
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x80
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl sub_817F6D4
-_081825D4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3C
-
- thumb_func_start pokemonanimfunc_3D
-pokemonanimfunc_3D: @ 81825DC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- ldr r0, =sub_81825F8
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_3D
-
- thumb_func_start sub_81825F8
-sub_81825F8: @ 81825F8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- movs r1, 0
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0818261C
- strh r1, [r4, 0x3C]
- strh r1, [r4, 0x3A]
- ldr r0, =sub_8182648
- str r0, [r4, 0x1C]
- movs r0, 0x40
- b _08182620
- .pool
-_0818261C:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
-_08182620:
- movs r1, 0x80
- bl Sin
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x80
- lsls r1, 1
- lsls r2, r0, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81825F8
-
- thumb_func_start sub_8182648
-sub_8182648: @ 8182648
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x4
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _08182672
- movs r0, 0
- movs r1, 0x80
- bl Cos
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081826C8
-_08182672:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Sin
- movs r2, 0x3A
- ldrsh r1, [r4, r2]
- lsls r1, 2
- negs r1, r1
- subs r1, r0
- strh r1, [r4, 0x26]
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0x3F
- ble _081826A4
- ldr r5, =0x0000ffff
- adds r0, r1, 0
- subs r0, 0x40
- lsls r0, 16
- lsrs r0, 16
- b _081826A8
- .pool
-_081826A4:
- movs r5, 0x1
- movs r0, 0
-_081826A8:
- lsls r0, 16
- asrs r0, 15
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x80
- bl Cos
- lsls r1, r5, 16
- asrs r1, 16
- adds r2, r1, 0
- muls r2, r0
- adds r0, r2, 0
- lsls r0, 16
- lsrs r2, r0, 16
-_081826C8:
- movs r1, 0x80
- lsls r1, 1
- lsls r2, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _081826EE
- movs r0, 0
- strh r0, [r4, 0x3C]
- ldr r0, =sub_81826F8
- str r0, [r4, 0x1C]
-_081826EE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8182648
-
- thumb_func_start sub_81826F8
-sub_81826F8: @ 81826F8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- bl Cos
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0xC
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- ble _08182742
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_08182742:
- movs r1, 0x80
- lsls r1, 1
- lsls r2, r5, 16
- asrs r2, 16
- adds r2, r1
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81826F8
-
- thumb_func_start sub_8182764
-sub_8182764: @ 8182764
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08182798
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- b _081827F4
- .pool
-_08182798:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081827A4
- adds r0, 0xFF
-_081827A4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _081827CC
- adds r0, 0x7F
-_081827CC:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
-_081827F4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182764
-
- thumb_func_start pokemonanimfunc_3E
-pokemonanimfunc_3E: @ 81827FC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182822
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r1, 0x8
- strh r1, [r4, 0x3A]
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x36]
-_08182822:
- adds r0, r4, 0
- bl sub_8182764
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3E
-
- thumb_func_start sub_8182830
-sub_8182830: @ 8182830
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08182864
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- b _081828C0
- .pool
-_08182864:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182870
- adds r0, 0xFF
-_08182870:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182898
- adds r0, 0x3F
-_08182898:
- asrs r0, 6
- lsls r0, 6
- subs r0, r1, r0
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x80
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- movs r0, 0x80
- lsls r0, 17
- adds r1, r0
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F6D4
-_081828C0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8182830
-
- thumb_func_start pokemonanimfunc_3F
-pokemonanimfunc_3F: @ 81828C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081828EE
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x4
- strh r0, [r4, 0x3A]
- adds r0, 0xFC
- strh r0, [r4, 0x38]
- movs r0, 0x10
- strh r0, [r4, 0x36]
-_081828EE:
- adds r0, r4, 0
- bl sub_8182830
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_3F
-
- thumb_func_start pokemonanimfunc_40
-pokemonanimfunc_40: @ 81828FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _0818291A
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_0818291A:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _08182948
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0818299E
- .pool
-_08182948:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182954
- adds r0, 0xFF
-_08182954:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182978
- adds r0, 0x7F
-_08182978:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_0818299E:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_40
-
- thumb_func_start pokemonanimfunc_41
-pokemonanimfunc_41: @ 81829AC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _081829CA
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_081829CA:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _081829F8
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08182A5E
- .pool
-_081829F8:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182A04
- adds r1, 0xFF
-_08182A04:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x10
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182A30
- adds r1, 0xFF
-_08182A30:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x40
- bl Sin
- adds r2, r0, 0
- negs r2, r2
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_08182A5E:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_41
-
- thumb_func_start pokemonanimfunc_42
-pokemonanimfunc_42: @ 8182A6C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08182A8A
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
-_08182A8A:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 2
- cmp r1, r0
- ble _08182AB8
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08182B16
- .pool
-_08182AB8:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182AC4
- adds r0, 0xFF
-_08182AC4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x8
- strh r0, [r4, 0x3C]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- adds r1, r0, 0
- cmp r0, 0
- bge _08182AEA
- adds r1, 0xFF
-_08182AEA:
- asrs r1, 8
- lsls r1, 8
- subs r1, r0, r1
- lsls r1, 16
- asrs r0, r1, 16
- lsrs r1, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x60
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- movs r0, 0x80
- lsls r0, 17
- adds r2, r0
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_08182B16:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_42
-
- thumb_func_start pokemonanimfunc_43
-pokemonanimfunc_43: @ 8182B24
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _08182B48
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _08182C08
- .pool
-_08182B48:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _08182B56
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_08182B56:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _08182B62
- adds r0, r1, 0x3
-_08182B62:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08182BA4
- cmp r0, 0x1
- bgt _08182B80
- cmp r0, 0
- beq _08182B8A
- b _08182BE2
- .pool
-_08182B80:
- cmp r0, 0x2
- beq _08182BB8
- cmp r0, 0x3
- beq _08182BCA
- b _08182BE2
-_08182B8A:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08182B9C
- ldr r1, =0x000001ff
- adds r0, r1
-_08182B9C:
- asrs r0, 9
- b _08182BE0
- .pool
-_08182BA4:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08182BB2
- adds r0, 0x1F
-_08182BB2:
- asrs r0, 5
- subs r0, 0x10
- b _08182BE0
-_08182BB8:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08182BC6
- adds r0, 0x1F
-_08182BC6:
- asrs r0, 5
- b _08182BE0
-_08182BCA:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08182BDC
- ldr r1, =0x000001ff
- adds r0, r1
-_08182BDC:
- asrs r0, 9
- adds r0, 0x10
-_08182BE0:
- strh r0, [r4, 0x24]
-_08182BE2:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08182BEE
- adds r0, 0x7F
-_08182BEE:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x18
- strh r0, [r4, 0x32]
-_08182C08:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_43
-
- thumb_func_start pokemonanimfunc_44
-pokemonanimfunc_44: @ 8182C18
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _08182C34
- strh r0, [r4, 0x3A]
- movs r0, 0x40
- strh r0, [r4, 0x3C]
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_08182C34:
- ldrh r0, [r4, 0x3C]
- adds r1, r0, 0
- adds r1, 0x8
- movs r3, 0
- strh r1, [r4, 0x3C]
- ldrh r2, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r0, 0x4
- bne _08182C52
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _08182C60
- b _08182C5A
-_08182C52:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _08182C60
-_08182C5A:
- strh r3, [r4, 0x3C]
- adds r0, r2, 0x1
- strh r0, [r4, 0x3A]
-_08182C60:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _08182D08
- lsls r0, 2
- ldr r1, =_08182C78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08182C78:
- .4byte _08182CEC
- .4byte _08182C8C
- .4byte _08182CAA
- .4byte _08182CCC
- .4byte _08182CEC
-_08182C8C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r5, 0x3C
- ldrsh r0, [r4, r5]
- movs r1, 0x8
- bl Sin
- subs r0, 0x8
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CAA:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CCC:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x80
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x26]
- b _08182D12
-_08182CEC:
- movs r5, 0x3C
- ldrsh r0, [r4, r5]
- movs r1, 0x8
- bl Sin
- subs r0, 0x8
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r1, 0x8
- bl Cos
- strh r0, [r4, 0x26]
- b _08182D12
-_08182D08:
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_08182D12:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_44
-
- thumb_func_start pokemonanimfunc_45
-pokemonanimfunc_45: @ 8182D24
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x20
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_8180714
- ldr r0, =sub_8180714
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_45
-
- thumb_func_start pokemonanimfunc_46
-pokemonanimfunc_46: @ 8182D40
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F8FC
- ldr r0, =sub_817F8FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_46
-
- thumb_func_start pokemonanimfunc_47
-pokemonanimfunc_47: @ 8182D5C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F978
- ldr r0, =sub_817F978
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_47
-
- thumb_func_start pokemonanimfunc_48
-pokemonanimfunc_48: @ 8182D78
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r1, 0x6]
- ldrh r0, [r4, 0x3A]
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_8180900
- ldr r0, =sub_8180900
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_48
-
- thumb_func_start pokemonanimfunc_49
-pokemonanimfunc_49: @ 8182DB4
- push {lr}
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- bl pokemonanimfunc_05
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_49
-
- thumb_func_start pokemonanimfunc_4A
-pokemonanimfunc_4A: @ 8182DC4
- push {lr}
- movs r1, 0x1
- strh r1, [r0, 0x3A]
- bl pokemonanimfunc_48
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_4A
-
- thumb_func_start pokemonanimfunc_4B
-pokemonanimfunc_4B: @ 8182DD4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08182DE2
- strh r0, [r4, 0x2E]
-_08182DE2:
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bgt _08182DF6
- adds r0, r4, 0
- bl sub_817FC20
- movs r0, 0x1
- b _08182DF8
-_08182DF6:
- subs r0, r1, 0x1
-_08182DF8:
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_4B
-
- thumb_func_start pokemonanimfunc_4C
-pokemonanimfunc_4C: @ 8182E00
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817FCDC
- ldr r0, =sub_817FCDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4C
-
- thumb_func_start pokemonanimfunc_4D
-pokemonanimfunc_4D: @ 8182E20
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817FD44
- ldr r0, =sub_817FD44
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4D
-
- thumb_func_start pokemonanimfunc_4E
-pokemonanimfunc_4E: @ 8182E3C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r1, 0x6]
- strh r3, [r1]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_817FE30
- ldr r0, =sub_817FE30
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4E
-
- thumb_func_start pokemonanimfunc_4F
-pokemonanimfunc_4F: @ 8182E7C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r1, 0x6]
- movs r0, 0x3
- strh r0, [r1, 0x8]
- movs r0, 0xC
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_817FFF0
- ldr r0, =sub_817FFF0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_4F
-
- thumb_func_start pokemonanimfunc_50
-pokemonanimfunc_50: @ 8182EBC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x18
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_818031C
- ldr r0, =sub_818031C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_50
-
- thumb_func_start pokemonanimfunc_51
-pokemonanimfunc_51: @ 8182ED8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_81804F8
- ldr r0, =sub_81804F8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_51
-
- thumb_func_start pokemonanimfunc_52
-pokemonanimfunc_52: @ 8182EF4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F9F4
- ldr r0, =sub_817F9F4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_52
-
- thumb_func_start pokemonanimfunc_53
-pokemonanimfunc_53: @ 8182F10
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x3C
- strh r0, [r1]
- movs r0, 0x1E
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_817FF3C
- ldr r0, =sub_817FF3C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_53
-
- thumb_func_start pokemonanimfunc_54
-pokemonanimfunc_54: @ 8182F48
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x2]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181214
- ldr r0, =sub_8181214
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_54
-
- thumb_func_start pokemonanimfunc_55
-pokemonanimfunc_55: @ 8182F80
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181810
- ldr r0, =sub_8181810
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_55
-
- thumb_func_start pokemonanimfunc_56
-pokemonanimfunc_56: @ 8182FB8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_817F670
- strh r5, [r4, 0x34]
- adds r0, r4, 0
- bl sub_8181ABC
- ldr r0, =sub_8181ABC
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_56
-
- thumb_func_start pokemonanimfunc_07
-pokemonanimfunc_07: @ 8182FFC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x2
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- bl sub_8181CE8
- ldr r0, =sub_8181CE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_07
-
- thumb_func_start pokemonanimfunc_08
-pokemonanimfunc_08: @ 8183030
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x4
- strh r0, [r1, 0x6]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_8181CE8
- ldr r0, =sub_8181CE8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_08
-
- thumb_func_start pokemonanimfunc_0B
-pokemonanimfunc_0B: @ 8183068
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x64
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81814D4
- ldr r0, =sub_81814D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0B
-
- thumb_func_start pokemonanimfunc_0C
-pokemonanimfunc_0C: @ 818309C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81814D4
- ldr r0, =sub_81814D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0C
-
- thumb_func_start pokemonanimfunc_0D
-pokemonanimfunc_0D: @ 81830D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x64
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- bl sub_81815D4
- ldr r0, =sub_81815D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0D
-
- thumb_func_start pokemonanimfunc_0E
-pokemonanimfunc_0E: @ 8183108
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x32
- strh r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- bl sub_81815D4
- ldr r0, =sub_81815D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_0E
-
- thumb_func_start sub_8183140
-sub_8183140: @ 8183140
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r0, 0x90
- lsls r0, 4
- cmp r2, r0
- ble _0818315C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _08183180
- .pool
-_0818315C:
- adds r1, r2, 0
- adds r1, 0xC0
- adds r0, r1, 0
- cmp r1, 0
- bge _0818316A
- ldr r3, =0x000001bf
- adds r0, r2, r3
-_0818316A:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl Sin
- ldrh r1, [r4, 0x3C]
- adds r0, r1
-_08183180:
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8183140
-
- thumb_func_start pokemonanimfunc_57
-pokemonanimfunc_57: @ 8183194
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183140
- ldr r0, =sub_8183140
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_57
-
- thumb_func_start pokemonanimfunc_58
-pokemonanimfunc_58: @ 81831B4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183140
- ldr r0, =sub_8183140
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_58
-
- thumb_func_start pokemonanimfunc_59
-pokemonanimfunc_59: @ 81831D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _081831F8
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _081832BC
- .pool
-_081831F8:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _08183206
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_08183206:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _08183212
- adds r0, r1, 0x3
-_08183212:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08183268
- cmp r0, 0x1
- bgt _08183230
- cmp r0, 0
- beq _0818323A
- b _08183298
- .pool
-_08183230:
- cmp r0, 0x2
- beq _0818324C
- cmp r0, 0x3
- beq _08183284
- b _08183298
-_0818323A:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183248
- adds r0, 0x1F
-_08183248:
- asrs r0, 5
- b _08183296
-_0818324C:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _0818325E
- ldr r1, =0x000001ff
- adds r0, r1
-_0818325E:
- asrs r0, 9
- b _08183296
- .pool
-_08183268:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _0818327A
- ldr r1, =0x000001ff
- adds r0, r1
-_0818327A:
- asrs r0, 9
- adds r0, 0x10
- b _08183296
- .pool
-_08183284:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183292
- adds r0, 0x1F
-_08183292:
- asrs r0, 5
- subs r0, 0x10
-_08183296:
- strh r0, [r4, 0x24]
-_08183298:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081832A4
- adds r0, 0x7F
-_081832A4:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x18
- strh r0, [r4, 0x32]
-_081832BC:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_59
-
- thumb_func_start sub_81832C8
-sub_81832C8: @ 81832C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- movs r0, 0
- mov r8, r0
- movs r2, 0x38
- ldrsh r1, [r6, r2]
- movs r2, 0x3A
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818331A
- mov r0, r8
- strh r0, [r6, 0x26]
- strh r0, [r6, 0x38]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r1, [r6, 0x36]
- movs r2, 0x36
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bgt _08183310
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _081833DC
- .pool
-_08183310:
- subs r0, r1, 0x1
- strh r0, [r6, 0x36]
- mov r0, r8
- strh r0, [r6, 0x3C]
- b _081833DC
-_0818331A:
- movs r1, 0x38
- ldrsh r5, [r6, r1]
- lsls r0, r5, 7
- movs r2, 0x3A
- ldrsh r4, [r6, r2]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- bge _08183334
- adds r4, 0x3
-_08183334:
- asrs r1, r4, 2
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r1
- blt _08183358
- cmp r5, r0
- bge _08183358
- ldrh r0, [r6, 0x3C]
- adds r0, 0x33
- strh r0, [r6, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- ands r1, r0
- mov r8, r1
-_08183358:
- movs r1, 0x30
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0818337C
- lsls r4, r2, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- ldr r2, =0xffffff00
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- b _08183392
- .pool
-_0818337C:
- lsls r4, r2, 16
- asrs r0, r4, 16
- movs r1, 0x10
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
-_08183392:
- adds r7, r4, 0
- ldrh r4, [r6, 0x34]
- lsls r4, 24
- lsrs r4, 24
- mov r5, r8
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl Sin
- adds r5, r0, 0
- asrs r0, r7, 16
- adds r1, r4, 0
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- subs r2, r5
- subs r2, r0
- mov r0, r9
- lsls r1, r0, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F618
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- strh r0, [r6, 0x38]
-_081833DC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81832C8
-
- thumb_func_start pokemonanimfunc_5A
-pokemonanimfunc_5A: @ 81833E8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0818340A
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_0818340A:
- adds r0, r5, 0
- bl sub_81832C8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_5A
-
- thumb_func_start sub_8183418
-sub_8183418: @ 8183418
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- movs r0, 0
- mov r8, r0
- movs r2, 0x38
- ldrsh r1, [r6, r2]
- movs r2, 0x3A
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818346A
- mov r0, r8
- strh r0, [r6, 0x38]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r1, [r6, 0x36]
- movs r2, 0x36
- ldrsh r0, [r6, r2]
- cmp r0, 0x1
- bgt _08183460
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08183538
- .pool
-_08183460:
- subs r0, r1, 0x1
- strh r0, [r6, 0x36]
- mov r0, r8
- strh r0, [r6, 0x3C]
- b _08183538
-_0818346A:
- movs r1, 0x38
- ldrsh r5, [r6, r1]
- lsls r0, r5, 7
- movs r2, 0x3A
- ldrsh r4, [r6, r2]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- cmp r4, 0
- bge _08183486
- adds r4, 0x3
-_08183486:
- asrs r1, r4, 2
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r1
- blt _081834AC
- cmp r5, r0
- bge _081834AC
- ldrh r0, [r6, 0x3C]
- adds r0, 0x33
- strh r0, [r6, 0x3C]
- movs r1, 0xFF
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
-_081834AC:
- ldrh r0, [r6, 0x34]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r1, 0x30
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _081834F0
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- adds r1, r7, 0
- bl Sin
- adds r4, r0, 0
- mov r5, r8
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r5, 0
- bl Sin
- ldr r1, =0xffffff00
- adds r0, r1
- adds r4, r0
- lsls r4, 16
- lsrs r1, r4, 16
- b _08183522
- .pool
-_081834F0:
- mov r4, r8
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r4, 0
- bl Sin
- adds r4, r0, 0
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- adds r1, r7, 0
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r4
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
-_08183522:
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F618
- ldrh r0, [r6, 0x38]
- adds r0, 0x1
- strh r0, [r6, 0x38]
-_08183538:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8183418
-
- thumb_func_start pokemonanimfunc_5B
-pokemonanimfunc_5B: @ 8183544
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08183566
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_08183566:
- adds r0, r5, 0
- bl sub_8183418
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_5B
-
- thumb_func_start sub_8183574
-sub_8183574: @ 8183574
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r3, =gUnknown_0860AA80
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r0, r1, r3
- ldrb r5, [r0]
- adds r2, r5, 0
- cmp r5, 0xFF
- beq _081835A6
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r5, r0, 24
-_081835A6:
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r6, [r0]
- movs r7, 0
- cmp r2, 0xFE
- beq _081835C2
- mov r1, r9
- subs r0, r6, r1
- muls r0, r5
- adds r1, r6, 0
- bl __divsi3
- lsls r0, 24
- lsrs r7, r0, 24
-_081835C2:
- cmp r5, 0xFF
- bne _081835D8
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0818360A
- .pool
-_081835D8:
- mov r1, r8
- adds r1, 0xC0
- adds r0, r1, 0
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- adds r1, r7, 0
- bl Sin
- adds r0, r7
- strh r0, [r4, 0x26]
- cmp r9, r6
- bne _081835FC
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- movs r0, 0
- b _08183608
-_081835FC:
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
-_08183608:
- strh r0, [r4, 0x3A]
-_0818360A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8183574
-
- thumb_func_start pokemonanimfunc_5C
-pokemonanimfunc_5C: @ 8183618
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x28
- strh r0, [r4, 0x2E]
- movs r0, 0x6
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183574
- ldr r0, =sub_8183574
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_5C
-
- thumb_func_start pokemonanimfunc_5D
-pokemonanimfunc_5D: @ 8183638
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x46
- strh r0, [r4, 0x2E]
- movs r0, 0x6
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_817FCDC
- ldr r0, =sub_817FCDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_5D
-
- thumb_func_start pokemonanimfunc_5E
-pokemonanimfunc_5E: @ 8183658
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_817F8FC
- ldr r0, =sub_817F8FC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_5E
-
- thumb_func_start pokemonanimfunc_5F
-pokemonanimfunc_5F: @ 8183674
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x28
- ble _08183690
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _081836CA
- .pool
-_08183690:
- movs r0, 0x1
- ands r0, r1
- movs r5, 0xFF
- cmp r0, 0
- bne _0818369C
- movs r5, 0x1
-_0818369C:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _081836B0
- adds r0, 0xFF
-_081836B0:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x9
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
-_081836CA:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_5F
-
- thumb_func_start pokemonanimfunc_60
-pokemonanimfunc_60: @ 81836D8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x28
- ble _081836F4
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- b _0818372E
- .pool
-_081836F4:
- movs r0, 0x1
- ands r0, r1
- movs r5, 0xFF
- cmp r0, 0
- bne _08183700
- movs r5, 0x1
-_08183700:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r1, 0x28
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _08183714
- adds r0, 0xFF
-_08183714:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xC
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
-_0818372E:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_60
-
- thumb_func_start pokemonanimfunc_61
-pokemonanimfunc_61: @ 818373C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x46
- strh r0, [r4, 0x2E]
- movs r0, 0x6
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183140
- ldr r0, =sub_8183140
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_61
-
- thumb_func_start pokemonanimfunc_62
-pokemonanimfunc_62: @ 818375C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x18
- strh r0, [r4, 0x2E]
- movs r0, 0x6
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183574
- ldr r0, =sub_8183574
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_62
-
- thumb_func_start pokemonanimfunc_63
-pokemonanimfunc_63: @ 818377C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x38
- strh r0, [r4, 0x2E]
- movs r0, 0x9
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- bl sub_8183574
- ldr r0, =sub_8183574
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_63
-
- thumb_func_start pokemonanimfunc_64
-pokemonanimfunc_64: @ 818379C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2E]
- ldr r2, =gUnknown_03001240
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r1, 0x6]
- movs r0, 0x6
- strh r0, [r1, 0x8]
- movs r0, 0x18
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- bl sub_817FFF0
- ldr r0, =sub_817FFF0
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_64
-
- thumb_func_start sub_81837DC
-sub_81837DC: @ 81837DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- movs r5, 0
- movs r0, 0x38
- ldrsh r1, [r7, r0]
- movs r2, 0x3A
- ldrsh r0, [r7, r2]
- cmp r1, r0
- ble _0818382C
- strh r5, [r7, 0x26]
- strh r5, [r7, 0x38]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r7, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- ldrh r1, [r7, 0x36]
- movs r2, 0x36
- ldrsh r0, [r7, r2]
- cmp r0, 0x1
- bgt _08183824
- adds r0, r7, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r7, 0x1C]
- b _0818392C
- .pool
-_08183824:
- subs r0, r1, 0x1
- strh r0, [r7, 0x36]
- strh r5, [r7, 0x3C]
- b _0818392C
-_0818382C:
- movs r0, 0x38
- ldrsh r6, [r7, r0]
- lsls r0, r6, 7
- movs r1, 0x3A
- ldrsh r4, [r7, r1]
- adds r1, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r4, 0
- bge _08183846
- adds r4, 0x3
-_08183846:
- asrs r1, r4, 2
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r1
- blt _08183866
- cmp r6, r0
- bge _08183866
- ldrh r0, [r7, 0x3C]
- adds r0, 0x33
- strh r0, [r7, 0x3C]
- movs r5, 0xFF
- ands r5, r0
-_08183866:
- ldrh r0, [r7, 0x34]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r1, 0x30
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _081838B0
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- mov r1, r9
- bl Sin
- adds r4, r0, 0
- lsls r6, r5, 16
- asrs r5, r6, 16
- mov r0, r9
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r5, 0
- bl Sin
- ldr r2, =0xffffff00
- adds r4, r2
- adds r0, r4
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- mov r0, r8
- b _081838EA
- .pool
-_081838B0:
- lsls r2, 16
- mov r8, r2
- asrs r0, r2, 16
- mov r1, r9
- bl Sin
- adds r6, r0, 0
- lsls r5, 16
- asrs r4, r5, 16
- mov r0, r9
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 23
- adds r0, r4, 0
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r6
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r0, r8
- adds r6, r5, 0
-_081838EA:
- asrs r0, 16
- mov r1, r9
- bl Sin
- adds r5, r0, 0
- asrs r4, r6, 16
- mov r0, r9
- movs r1, 0x5
- bl __udivsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r2, r1, 0
- subs r2, r5
- subs r2, r0
- mov r0, r10
- lsls r1, r0, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl sub_817F618
- ldrh r0, [r7, 0x38]
- adds r0, 0x1
- strh r0, [r7, 0x38]
-_0818392C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81837DC
-
- thumb_func_start pokemonanimfunc_65
-pokemonanimfunc_65: @ 818393C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0818395E
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x28
- strh r0, [r5, 0x3A]
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_0818395E:
- adds r0, r5, 0
- bl sub_81837DC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_65
-
- thumb_func_start pokemonanimfunc_66
-pokemonanimfunc_66: @ 818396C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _08183990
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _08183A54
- .pool
-_08183990:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _0818399E
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_0818399E:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _081839AA
- adds r0, r1, 0x3
-_081839AA:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08183A00
- cmp r0, 0x1
- bgt _081839C8
- cmp r0, 0
- beq _081839D2
- b _08183A30
- .pool
-_081839C8:
- cmp r0, 0x2
- beq _081839E4
- cmp r0, 0x3
- beq _08183A1C
- b _08183A30
-_081839D2:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081839E0
- adds r0, 0x1F
-_081839E0:
- asrs r0, 5
- b _08183A2E
-_081839E4:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _081839F6
- ldr r1, =0x000001ff
- adds r0, r1
-_081839F6:
- asrs r0, 9
- b _08183A2E
- .pool
-_08183A00:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08183A12
- ldr r1, =0x000001ff
- adds r0, r1
-_08183A12:
- asrs r0, 9
- adds r0, 0x10
- b _08183A2E
- .pool
-_08183A1C:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183A2A
- adds r0, 0x1F
-_08183A2A:
- asrs r0, 5
- subs r0, 0x10
-_08183A2E:
- strh r0, [r4, 0x24]
-_08183A30:
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08183A3C
- adds r0, 0x7F
-_08183A3C:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x30
- strh r0, [r4, 0x32]
-_08183A54:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_66
-
- thumb_func_start pokemonanimfunc_67
-pokemonanimfunc_67: @ 8183A60
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- ble _08183A84
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3A]
- b _08183B40
- .pool
-_08183A84:
- movs r1, 0x32
- ldrsh r2, [r4, r1]
- adds r0, r2, 0
- cmp r2, 0
- bge _08183A92
- ldr r1, =0x000001ff
- adds r0, r2, r1
-_08183A92:
- asrs r3, r0, 9
- adds r1, r3, 0
- adds r0, r1, 0
- cmp r1, 0
- bge _08183A9E
- adds r0, r1, 0x3
-_08183A9E:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _08183AF4
- cmp r0, 0x1
- bgt _08183ABC
- cmp r0, 0
- beq _08183AC6
- b _08183B24
- .pool
-_08183ABC:
- cmp r0, 0x2
- beq _08183AD8
- cmp r0, 0x3
- beq _08183B10
- b _08183B24
-_08183AC6:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183AD4
- adds r0, 0x1F
-_08183AD4:
- asrs r0, 5
- b _08183B22
-_08183AD8:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08183AEA
- ldr r1, =0x000001ff
- adds r0, r1
-_08183AEA:
- asrs r0, 9
- b _08183B22
- .pool
-_08183AF4:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 12
- negs r0, r0
- cmp r0, 0
- bge _08183B06
- ldr r1, =0x000001ff
- adds r0, r1
-_08183B06:
- asrs r0, 9
- adds r0, 0x10
- b _08183B22
- .pool
-_08183B10:
- lsls r0, r3, 9
- subs r0, r2, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08183B1E
- adds r0, 0x1F
-_08183B1E:
- asrs r0, 5
- subs r0, 0x10
-_08183B22:
- strh r0, [r4, 0x24]
-_08183B24:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r1, 0x60
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x40
- strh r0, [r4, 0x32]
-_08183B40:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_67
-
- thumb_func_start sub_8183B4C
-sub_8183B4C: @ 8183B4C
- push {r4-r7,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08183B5E
- strh r0, [r4, 0x34]
-_08183B5E:
- ldr r7, =gUnknown_0860ADBE
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsls r0, r1, 1
- adds r0, r1
- adds r5, r7, 0x2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl __divsi3
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _08183B8C
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x32]
-_08183B8C:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r6, r0, r1
- adds r0, r6, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x38
- ldrsh r5, [r4, r1]
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bne _08183BCC
- ldrh r0, [r4, 0x3A]
- subs r0, 0x1
- strh r0, [r4, 0x3A]
- lsls r0, 16
- cmp r0, 0
- bne _08183BC8
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08183C06
- .pool
-_08183BC8:
- strh r1, [r4, 0x32]
- b _08183C06
-_08183BCC:
- adds r0, r6, r7
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r5
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r1, r7, 0x1
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r4, 0x38]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F70C
-_08183C06:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8183B4C
-
- thumb_func_start pokemonanimfunc_68
-pokemonanimfunc_68: @ 8183C0C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r4, 0
- bl sub_8183B4C
- ldr r0, =sub_8183B4C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_68
-
- thumb_func_start pokemonanimfunc_69
-pokemonanimfunc_69: @ 8183C2C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- strh r0, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x3A]
- adds r0, r4, 0
- bl sub_8183B4C
- ldr r0, =sub_8183B4C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_69
-
- thumb_func_start pokemonanimfunc_6A
-pokemonanimfunc_6A: @ 8183C4C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r4, 0
- bl sub_8183B4C
- ldr r0, =sub_8183B4C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_6A
-
- thumb_func_start sub_8183C6C
-sub_8183C6C: @ 8183C6C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- ble _08183CAE
- ldrh r1, [r4, 0x38]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bgt _08183CA4
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- b _08183CE8
- .pool
-_08183CA4:
- subs r0, r1, 0x1
- movs r1, 0
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x3C]
- b _08183CE8
-_08183CAE:
- ldrh r0, [r4, 0x3A]
- adds r0, r1, r0
- strh r0, [r4, 0x3C]
- lsls r0, 16
- asrs r0, 16
- movs r5, 0x80
- lsls r5, 1
- cmp r0, r5
- ble _08183CC2
- strh r5, [r4, 0x3C]
-_08183CC2:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r1, 0x40
- bl Sin
- adds r2, r0, 0
- lsls r2, 16
- asrs r2, 16
- subs r2, r5, r2
- lsls r2, 16
- asrs r2, 16
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
-_08183CE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8183C6C
-
- thumb_func_start pokemonanimfunc_6B
-pokemonanimfunc_6B: @ 8183CF0
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183D16
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x4
- strh r0, [r4, 0x3A]
- movs r0, 0x1
- strh r0, [r4, 0x38]
-_08183D16:
- adds r0, r4, 0
- bl sub_8183C6C
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_6B
-
- thumb_func_start pokemonanimfunc_6C
-pokemonanimfunc_6C: @ 8183D28
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_817F70C
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183D4E
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
- movs r0, 0x2
- strh r0, [r4, 0x38]
-_08183D4E:
- adds r0, r4, 0
- bl sub_8183C6C
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_6C
-
- thumb_func_start pokemonanimfunc_6D
-pokemonanimfunc_6D: @ 8183D60
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183D88
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r4, 0x38]
- movs r0, 0x10
- strh r0, [r4, 0x36]
-_08183D88:
- adds r0, r4, 0
- bl sub_8182764
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_6D
-
- thumb_func_start pokemonanimfunc_6E
-pokemonanimfunc_6E: @ 8183D94
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183DBA
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x4
- strh r0, [r4, 0x3A]
- adds r0, 0xFC
- strh r0, [r4, 0x38]
- movs r0, 0x10
- strh r0, [r4, 0x36]
-_08183DBA:
- adds r0, r4, 0
- bl sub_8182764
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_6E
-
- thumb_func_start pokemonanimfunc_6F
-pokemonanimfunc_6F: @ 8183DC8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183DF0
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r4, 0x38]
- movs r0, 0x10
- strh r0, [r4, 0x36]
-_08183DF0:
- adds r0, r4, 0
- bl sub_8182830
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_6F
-
- thumb_func_start pokemonanimfunc_70
-pokemonanimfunc_70: @ 8183DFC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183E22
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- strh r5, [r4, 0x3C]
- movs r1, 0x8
- strh r1, [r4, 0x3A]
- movs r0, 0x80
- lsls r0, 2
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x36]
-_08183E22:
- adds r0, r4, 0
- bl sub_8182830
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_70
-
- thumb_func_start pokemonanimfunc_71
-pokemonanimfunc_71: @ 8183E30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08183E4A
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x5
- strh r0, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
-_08183E4A:
- adds r0, r4, 0
- bl sub_8180828
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_71
-
- thumb_func_start pokemonanimfunc_72
-pokemonanimfunc_72: @ 8183E58
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08183E72
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x3
- strh r0, [r4, 0x3C]
- movs r0, 0x4
- strh r0, [r4, 0x3A]
-_08183E72:
- adds r0, r4, 0
- bl sub_8180828
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_72
-
- thumb_func_start pokemonanimfunc_73
-pokemonanimfunc_73: @ 8183E80
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08183EA2
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x1E
- strh r0, [r5, 0x3A]
- movs r0, 0x3C
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x3C]
-_08183EA2:
- adds r0, r5, 0
- bl sub_81832C8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_73
-
- thumb_func_start pokemonanimfunc_74
-pokemonanimfunc_74: @ 8183EB0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183ED4
- movs r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x2
- strh r0, [r4, 0x36]
- movs r0, 0x14
- strh r0, [r4, 0x3A]
- movs r0, 0x46
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x3C]
-_08183ED4:
- adds r0, r4, 0
- bl sub_81832C8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_74
-
- thumb_func_start pokemonanimfunc_75
-pokemonanimfunc_75: @ 8183EE0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183F06
- movs r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x2
- strh r0, [r4, 0x36]
- movs r0, 0x14
- strh r0, [r4, 0x3A]
- movs r0, 0x46
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x38]
- strh r5, [r4, 0x3C]
-_08183F06:
- adds r0, r4, 0
- bl sub_8183418
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_75
-
- thumb_func_start pokemonanimfunc_76
-pokemonanimfunc_76: @ 8183F14
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08183F38
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x1E
- strh r0, [r5, 0x3A]
- movs r0, 0x3C
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_08183F38:
- adds r0, r5, 0
- bl sub_8183418
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_76
-
- thumb_func_start pokemonanimfunc_77
-pokemonanimfunc_77: @ 8183F44
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08183F6A
- movs r0, 0x1
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x2
- strh r0, [r4, 0x36]
- movs r0, 0x14
- strh r0, [r4, 0x3A]
- movs r0, 0x46
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x38]
- strh r5, [r4, 0x3C]
-_08183F6A:
- adds r0, r4, 0
- bl sub_81837DC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_77
-
- thumb_func_start pokemonanimfunc_78
-pokemonanimfunc_78: @ 8183F78
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0x32
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _08183F9C
- movs r4, 0x1
- strh r4, [r5, 0x32]
- adds r0, r5, 0
- bl sub_817F670
- strh r4, [r5, 0x36]
- movs r0, 0x1E
- strh r0, [r5, 0x3A]
- movs r0, 0x3C
- strh r0, [r5, 0x34]
- strh r6, [r5, 0x38]
- strh r6, [r5, 0x3C]
-_08183F9C:
- adds r0, r5, 0
- bl sub_81837DC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_78
-
- thumb_func_start sub_8183FA8
-sub_8183FA8: @ 8183FA8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _08183FEA
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bgt _08183FD0
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x24]
- strh r0, [r4, 0x26]
- b _0818403E
- .pool
-_08183FD0:
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08183FDC
- adds r0, 0xFF
-_08183FDC:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- strh r0, [r4, 0x3C]
- subs r0, r2, 0x1
- strh r0, [r4, 0x3A]
- b _0818403E
-_08183FEA:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r3, 0x3C
- ldrsh r2, [r4, r3]
- adds r1, r2, 0
- adds r1, 0xC0
- adds r0, r1, 0
- cmp r1, 0
- bge _0818400C
- ldr r3, =0x000001bf
- adds r0, r2, r3
-_0818400C:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _0818402E
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x26]
-_0818402E:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x3C]
- adds r0, r2
- strh r0, [r4, 0x3C]
-_0818403E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8183FA8
-
- thumb_func_start pokemonanimfunc_79
-pokemonanimfunc_79: @ 8184048
- push {lr}
- adds r1, r0, 0
- movs r0, 0x32
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _08184066
- movs r0, 0x1
- strh r0, [r1, 0x32]
- strh r0, [r1, 0x3A]
- strh r2, [r1, 0x3C]
- movs r0, 0xC
- strh r0, [r1, 0x38]
- strh r0, [r1, 0x36]
- movs r0, 0x4
- strh r0, [r1, 0x34]
-_08184066:
- adds r0, r1, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_79
-
- thumb_func_start pokemonanimfunc_7A
-pokemonanimfunc_7A: @ 8184070
- push {lr}
- adds r1, r0, 0
- movs r0, 0x32
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _0818408E
- movs r0, 0x1
- strh r0, [r1, 0x32]
- strh r0, [r1, 0x3A]
- strh r2, [r1, 0x3C]
- movs r0, 0xC
- strh r0, [r1, 0x38]
- strh r0, [r1, 0x36]
- movs r0, 0x6
- strh r0, [r1, 0x34]
-_0818408E:
- adds r0, r1, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7A
-
- thumb_func_start pokemonanimfunc_7B
-pokemonanimfunc_7B: @ 8184098
- push {lr}
- adds r1, r0, 0
- movs r0, 0x32
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _081840B8
- movs r0, 0x1
- strh r0, [r1, 0x32]
- movs r0, 0x2
- strh r0, [r1, 0x3A]
- strh r2, [r1, 0x3C]
- movs r0, 0xC
- strh r0, [r1, 0x38]
- strh r0, [r1, 0x36]
- movs r0, 0x8
- strh r0, [r1, 0x34]
-_081840B8:
- adds r0, r1, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7B
-
- thumb_func_start sub_81840C4
-sub_81840C4: @ 81840C4
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- ble _081840FC
- movs r2, 0x3A
- ldrsh r1, [r5, r2]
- ldrh r2, [r5, 0x36]
- movs r3, 0x36
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bgt _081840EC
- ldr r0, =sub_8184D88
- str r0, [r5, 0x1C]
- b _081840F4
- .pool
-_081840EC:
- adds r0, r2, 0x1
- movs r1, 0
- strh r0, [r5, 0x36]
- strh r1, [r5, 0x3C]
-_081840F4:
- movs r0, 0
- strh r0, [r5, 0x24]
- strh r0, [r5, 0x26]
- b _08184188
-_081840FC:
- cmp r0, 0x9F
- ble _08184126
- cmp r0, r1
- ble _08184106
- strh r1, [r5, 0x3C]
-_08184106:
- movs r0, 0x3C
- ldrsh r1, [r5, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _08184112
- adds r0, 0xFF
-_08184112:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x8
- bl Sin
- negs r0, r0
- b _08184154
-_08184126:
- cmp r0, 0x5F
- ble _0818414A
- movs r0, 0x60
- movs r1, 0x6
- bl Sin
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- subs r0, 0x60
- lsls r0, 17
- asrs r0, 16
- movs r1, 0x4
- bl Sin
- subs r4, r0
- strh r4, [r5, 0x26]
- b _08184156
-_0818414A:
- movs r2, 0x3C
- ldrsh r0, [r5, r2]
- movs r1, 0x6
- bl Sin
-_08184154:
- strh r0, [r5, 0x26]
-_08184156:
- movs r3, 0x3C
- ldrsh r0, [r5, r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x38
- ldrsh r1, [r5, r2]
- bl Sin
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r5, 0x36]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0818417E
- lsls r0, r2, 16
- negs r0, r0
- lsrs r2, r0, 16
-_0818417E:
- strh r2, [r5, 0x24]
- ldrh r0, [r5, 0x34]
- ldrh r3, [r5, 0x3C]
- adds r0, r3
- strh r0, [r5, 0x3C]
-_08184188:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81840C4
-
- thumb_func_start pokemonanimfunc_7C
-pokemonanimfunc_7C: @ 8184190
- push {lr}
- adds r2, r0, 0
- movs r0, 0x32
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _081841B0
- movs r1, 0x1
- strh r1, [r2, 0x32]
- movs r0, 0x2
- strh r0, [r2, 0x3A]
- strh r3, [r2, 0x3C]
- movs r0, 0x10
- strh r0, [r2, 0x38]
- strh r1, [r2, 0x36]
- movs r0, 0x4
- strh r0, [r2, 0x34]
-_081841B0:
- adds r0, r2, 0
- bl sub_81840C4
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7C
-
- thumb_func_start pokemonanimfunc_7D
-pokemonanimfunc_7D: @ 81841BC
- push {lr}
- adds r2, r0, 0
- movs r0, 0x32
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _081841DC
- movs r1, 0x1
- strh r1, [r2, 0x32]
- movs r0, 0x2
- strh r0, [r2, 0x3A]
- strh r3, [r2, 0x3C]
- movs r0, 0x10
- strh r0, [r2, 0x38]
- strh r1, [r2, 0x36]
- movs r0, 0x6
- strh r0, [r2, 0x34]
-_081841DC:
- adds r0, r2, 0
- bl sub_81840C4
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7D
-
- thumb_func_start pokemonanimfunc_7E
-pokemonanimfunc_7E: @ 81841E8
- push {lr}
- adds r2, r0, 0
- movs r0, 0x32
- ldrsh r3, [r2, r0]
- cmp r3, 0
- bne _08184208
- movs r1, 0x1
- strh r1, [r2, 0x32]
- movs r0, 0x3
- strh r0, [r2, 0x3A]
- strh r3, [r2, 0x3C]
- movs r0, 0x10
- strh r0, [r2, 0x38]
- strh r1, [r2, 0x36]
- movs r0, 0x8
- strh r0, [r2, 0x34]
-_08184208:
- adds r0, r2, 0
- bl sub_81840C4
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7E
-
- thumb_func_start pokemonanimfunc_7F
-pokemonanimfunc_7F: @ 8184214
- push {lr}
- adds r2, r0, 0
- movs r0, 0x32
- ldrsh r1, [r2, r0]
- cmp r1, 0
- bne _08184232
- movs r0, 0x1
- strh r0, [r2, 0x32]
- strh r0, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- movs r1, 0x4
- strh r1, [r2, 0x38]
- movs r0, 0x6
- strh r0, [r2, 0x36]
- strh r1, [r2, 0x34]
-_08184232:
- adds r0, r2, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_7F
-
- thumb_func_start pokemonanimfunc_80
-pokemonanimfunc_80: @ 818423C
- push {lr}
- adds r1, r0, 0
- movs r0, 0x32
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _0818425A
- movs r0, 0x1
- strh r0, [r1, 0x32]
- strh r0, [r1, 0x3A]
- strh r2, [r1, 0x3C]
- movs r0, 0x4
- strh r0, [r1, 0x38]
- movs r0, 0x6
- strh r0, [r1, 0x36]
- strh r0, [r1, 0x34]
-_0818425A:
- adds r0, r1, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_80
-
- thumb_func_start pokemonanimfunc_81
-pokemonanimfunc_81: @ 8184264
- push {lr}
- adds r1, r0, 0
- movs r0, 0x32
- ldrsh r2, [r1, r0]
- cmp r2, 0
- bne _08184286
- movs r0, 0x1
- strh r0, [r1, 0x32]
- movs r0, 0x2
- strh r0, [r1, 0x3A]
- strh r2, [r1, 0x3C]
- movs r0, 0x4
- strh r0, [r1, 0x38]
- movs r0, 0x6
- strh r0, [r1, 0x36]
- movs r0, 0x8
- strh r0, [r1, 0x34]
-_08184286:
- adds r0, r1, 0
- bl sub_8183FA8
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_81
-
- thumb_func_start sub_8184290
-sub_8184290: @ 8184290
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsls r0, 7
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r0, r1, 8
- negs r0, r0
- strh r0, [r4, 0x3A]
- movs r0, 0x36
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0
- bl sub_817F3F0
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0x3A]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_817F6D4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8184290
-
- thumb_func_start pokemonanimfunc_82
-pokemonanimfunc_82: @ 81842DC
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08184300
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x3C
- strh r0, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x38]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x2E]
-_08184300:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _0818434C
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r2, 0
- strh r2, [r4, 0x24]
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bgt _08184348
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08184358
- .pool
-_08184348:
- strh r2, [r4, 0x32]
- b _08184352
-_0818434C:
- adds r0, r4, 0
- bl sub_8184290
-_08184352:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08184358:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_82
-
- thumb_func_start pokemonanimfunc_83
-pokemonanimfunc_83: @ 8184360
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08184384
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x5A
- strh r0, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x38]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x2E]
-_08184384:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _081843D0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r2, 0
- strh r2, [r4, 0x24]
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bgt _081843CC
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _081843DC
- .pool
-_081843CC:
- strh r2, [r4, 0x32]
- b _081843D6
-_081843D0:
- adds r0, r4, 0
- bl sub_8184290
-_081843D6:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_081843DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_83
-
- thumb_func_start pokemonanimfunc_84
-pokemonanimfunc_84: @ 81843E4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _08184408
- adds r0, r4, 0
- bl sub_817F670
- movs r0, 0x1E
- strh r0, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x38]
- ldr r0, =0x0000ffe0
- strh r0, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x34]
- strh r5, [r4, 0x2E]
-_08184408:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _08184454
- movs r2, 0x80
- lsls r2, 1
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- movs r2, 0
- strh r2, [r4, 0x24]
- strh r2, [r4, 0x26]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bgt _08184450
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _08184460
- .pool
-_08184450:
- strh r2, [r4, 0x32]
- b _0818445A
-_08184454:
- adds r0, r4, 0
- bl sub_8184290
-_0818445A:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_08184460:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_84
-
- thumb_func_start sub_8184468
-sub_8184468: @ 8184468
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r0, 0x32
- ldrsh r1, [r6, r0]
- movs r2, 0x3C
- ldrsh r0, [r6, r2]
- cmp r1, r0
- ble _0818449C
- movs r0, 0
- strh r0, [r6, 0x26]
- movs r2, 0x80
- lsls r2, 1
- adds r0, r6, 0
- adds r1, r2, 0
- movs r3, 0
- bl sub_817F6D4
- adds r0, r6, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r6, 0x1C]
- b _08184544
- .pool
-_0818449C:
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- movs r2, 0x3A
- ldrsh r4, [r6, r2]
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 16
- adds r1, r4, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _081844BC
- adds r0, 0xFF
-_081844BC:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r0, [r6, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081844F8
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x20
- bl Sin
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1, 0
- adds r0, r5
- strh r0, [r6, 0x36]
- adds r0, r4, 0
- movs r1, 0x20
- bl Sin
- adds r0, r5
- strh r0, [r6, 0x38]
- adds r0, r4, 0
- movs r1, 0x20
- b _0818451E
-_081844F8:
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- movs r2, 0x80
- lsls r2, 1
- adds r5, r2, 0
- adds r0, r5
- strh r0, [r6, 0x36]
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- adds r0, r5
- strh r0, [r6, 0x38]
- adds r0, r4, 0
- movs r1, 0x8
-_0818451E:
- bl Sin
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bge _08184530
- adds r0, 0x7
-_08184530:
- lsrs r0, 3
- strh r0, [r6, 0x26]
- movs r0, 0x36
- ldrsh r1, [r6, r0]
- movs r0, 0x38
- ldrsh r2, [r6, r0]
- adds r0, r6, 0
- movs r3, 0
- bl sub_817F6D4
-_08184544:
- ldrh r0, [r6, 0x32]
- adds r0, 0x1
- strh r0, [r6, 0x32]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8184468
-
- thumb_func_start pokemonanimfunc_85
-pokemonanimfunc_85: @ 8184550
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08184570
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x26]
- adds r0, 0x2
- strh r0, [r4, 0x26]
- movs r0, 0x28
- strh r0, [r4, 0x3A]
- movs r0, 0x50
- strh r0, [r4, 0x3C]
-_08184570:
- adds r0, r4, 0
- bl sub_8184468
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_85
-
- thumb_func_start pokemonanimfunc_86
-pokemonanimfunc_86: @ 818457C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0818459A
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x26]
- adds r0, 0x2
- strh r0, [r4, 0x26]
- movs r0, 0x28
- strh r0, [r4, 0x3A]
- strh r0, [r4, 0x3C]
-_0818459A:
- adds r0, r4, 0
- bl sub_8184468
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_86
-
- thumb_func_start pokemonanimfunc_87
-pokemonanimfunc_87: @ 81845A8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081845C6
- adds r0, r4, 0
- bl sub_817F670
- ldrh r0, [r4, 0x26]
- adds r0, 0x2
- strh r0, [r4, 0x26]
- movs r0, 0x50
- strh r0, [r4, 0x3A]
- strh r0, [r4, 0x3C]
-_081845C6:
- adds r0, r4, 0
- bl sub_8184468
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_87
-
- thumb_func_start sub_81845D4
-sub_81845D4: @ 81845D4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x32]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmn r1, r0
- bgt _081845FE
- ldrh r0, [r4, 0x3A]
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r0, 0x2
- strh r0, [r4, 0x3C]
- ldr r0, =sub_8184610
- str r0, [r4, 0x1C]
-_081845FE:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81845D4
-
- thumb_func_start sub_8184610
-sub_8184610: @ 8184610
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r1, 16
- cmp r1, 0
- blt _0818462E
- ldr r0, =sub_8184640
- str r0, [r4, 0x1C]
-_0818462E:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8184610
-
- thumb_func_start sub_8184640
-sub_8184640: @ 8184640
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x3C]
- ldrh r2, [r4, 0x24]
- adds r1, r0, r2
- strh r1, [r4, 0x24]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x3A]
- movs r3, 0x3A
- ldrsh r0, [r4, r3]
- cmp r1, r0
- ble _08184668
- strh r2, [r4, 0x24]
- ldr r0, =sub_8184678
- str r0, [r4, 0x1C]
-_08184668:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8184640
-
- thumb_func_start sub_8184678
-sub_8184678: @ 8184678
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r2, [r4, 0x34]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _08184698
- ldr r0, =sub_81846B8
- str r0, [r4, 0x1C]
- b _081846AC
- .pool
-_08184698:
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- negs r0, r0
- strh r0, [r4, 0x36]
- adds r0, r2, 0x1
- strh r0, [r4, 0x34]
-_081846AC:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8184678
-
- thumb_func_start sub_81846B8
-sub_81846B8: @ 81846B8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F70C
- ldrh r0, [r4, 0x24]
- subs r0, 0x2
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bgt _081846DA
- movs r0, 0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- bl sub_817F77C
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
-_081846DA:
- adds r0, r4, 0
- bl sub_817F70C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81846B8
-
- thumb_func_start pokemonanimfunc_88
-pokemonanimfunc_88: @ 81846EC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r2, 0
- movs r1, 0x4
- strh r1, [r4, 0x3C]
- movs r0, 0xC
- strh r0, [r4, 0x3A]
- movs r0, 0x10
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x36]
- strh r2, [r4, 0x34]
- movs r0, 0x2
- strh r0, [r4, 0x32]
- ldr r0, =sub_81845D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_88
-
- thumb_func_start pokemonanimfunc_89
-pokemonanimfunc_89: @ 8184718
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r2, 0
- movs r1, 0x2
- strh r1, [r4, 0x3C]
- movs r0, 0x8
- strh r0, [r4, 0x3A]
- movs r0, 0xC
- strh r0, [r4, 0x38]
- strh r1, [r4, 0x36]
- strh r2, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x32]
- ldr r0, =sub_81845D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_89
-
- thumb_func_start pokemonanimfunc_8A
-pokemonanimfunc_8A: @ 8184744
- push {r4,lr}
- adds r4, r0, 0
- bl sub_817F670
- movs r1, 0
- strh r1, [r4, 0x3C]
- movs r0, 0x6
- strh r0, [r4, 0x3A]
- strh r0, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x32]
- ldr r0, =sub_81845D4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end pokemonanimfunc_8A
-
- thumb_func_start sub_8184770
-sub_8184770: @ 8184770
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- strh r0, [r1, 0x24]
- ldrh r2, [r1, 0x2E]
- movs r3, 0x2E
- ldrsh r0, [r1, r3]
- cmp r0, 0x1
- ble _0818478E
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- negs r0, r0
- strh r0, [r1, 0x30]
- movs r0, 0
- b _08184790
-_0818478E:
- adds r0, r2, 0x1
-_08184790:
- strh r0, [r1, 0x2E]
- pop {r0}
- bx r0
- thumb_func_end sub_8184770
-
- thumb_func_start sub_8184798
-sub_8184798: @ 8184798
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r1, =gUnknown_0860AE7C
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl sub_8184770
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- bne _081847D0
- movs r0, 0
- strh r0, [r4, 0x24]
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0818482E
- .pool
-_081847D0:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- bne _08184800
- ldrb r0, [r1]
- cmp r0, 0
- beq _081847F0
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000003ff
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- b _081847FC
- .pool
-_081847F0:
- ldrh r0, [r4, 0x3C]
- ldr r3, =0x000003ff
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
-_081847FC:
- movs r0, 0
- strh r0, [r4, 0x36]
-_08184800:
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08184828
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _0818482E
- .pool
-_08184828:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_0818482E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8184798
-
- thumb_func_start pokemonanimfunc_8B
-pokemonanimfunc_8B: @ 8184834
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08184860
- ldrb r0, [r2, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2, 0x3C]
- strh r3, [r2, 0x3A]
- strh r3, [r2, 0x38]
- strh r3, [r2, 0x36]
- strh r3, [r2, 0x34]
-_08184860:
- adds r0, r2, 0
- bl sub_8184798
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_8B
-
- thumb_func_start pokemonanimfunc_8C
-pokemonanimfunc_8C: @ 818486C
- push {r4,r5,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0x1
- bne _08184898
- ldrb r0, [r2, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r5, 0x80
- lsls r5, 1
- adds r1, r5, 0
- adds r0, r1
- strh r0, [r2, 0x3C]
- strh r3, [r2, 0x3A]
- strh r3, [r2, 0x38]
- strh r3, [r2, 0x36]
- strh r4, [r2, 0x34]
-_08184898:
- adds r0, r2, 0
- bl sub_8184798
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_8C
-
- thumb_func_start pokemonanimfunc_8D
-pokemonanimfunc_8D: @ 81848A4
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081848D2
- ldrb r0, [r2, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4, 0
- adds r0, r1
- strh r0, [r2, 0x3C]
- strh r3, [r2, 0x3A]
- strh r3, [r2, 0x38]
- strh r3, [r2, 0x36]
- movs r0, 0x2
- strh r0, [r2, 0x34]
-_081848D2:
- adds r0, r2, 0
- bl sub_8184798
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_8D
-
- thumb_func_start sub_81848E0
-sub_81848E0: @ 81848E0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7F
- ble _08184904
- ldrh r0, [r4, 0x3C]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0x1F
- bl BlendPalette
- ldr r0, =sub_8184D88
- str r0, [r4, 0x1C]
- b _0818492A
- .pool
-_08184904:
- movs r5, 0x32
- ldrsh r0, [r4, r5]
- movs r1, 0xC
- bl Sin
- adds r2, r0, 0
- strh r2, [r4, 0x3A]
- ldrh r0, [r4, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =gUnknown_0860AE88
- movs r5, 0x30
- ldrsh r1, [r4, r5]
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
-_0818492A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81848E0
-
- thumb_func_start sub_8184934
-sub_8184934: @ 8184934
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _081849CC
- adds r0, r4, 0
- bl sub_817F70C
- movs r3, 0x38
- ldrsh r1, [r4, r3]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _08184970
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0818496C
- strh r2, [r4, 0x38]
-_0818496C:
- strh r2, [r4, 0x24]
- b _081849C6
-_08184970:
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r0, 1
- lsls r0, 1
- subs r1, r0
- lsls r1, 16
- asrs r1, 15
- movs r0, 0x1
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 7
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0
- bge _081849A4
- adds r0, 0xFF
-_081849A4:
- asrs r0, 8
- lsls r0, 8
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x6
- bl Sin
- lsls r1, r5, 24
- asrs r1, 24
- adds r2, r1, 0
- muls r2, r0
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
-_081849C6:
- adds r0, r4, 0
- bl sub_817F70C
-_081849CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8184934
-
- thumb_func_start pokemonanimfunc_8E
-pokemonanimfunc_8E: @ 81849D4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _081849FE
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r2, [r4, 0x30]
-_081849FE:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184A0E
- adds r0, r4, 0
- bl sub_81848E0
-_08184A0E:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184A30
- adds r0, r4, 0
- bl sub_8184934
-_08184A30:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_8E
-
- thumb_func_start pokemonanimfunc_8F
-pokemonanimfunc_8F: @ 8184A3C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184A66
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r2, [r4, 0x30]
-_08184A66:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184A76
- adds r0, r4, 0
- bl sub_81848E0
-_08184A76:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184A98
- adds r0, r4, 0
- bl sub_8184934
-_08184A98:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_8F
-
- thumb_func_start pokemonanimfunc_90
-pokemonanimfunc_90: @ 8184AA4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184ACE
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r2, [r4, 0x30]
-_08184ACE:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184ADE
- adds r0, r4, 0
- bl sub_81848E0
-_08184ADE:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184B00
- adds r0, r4, 0
- bl sub_8184934
-_08184B00:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_90
-
- thumb_func_start pokemonanimfunc_91
-pokemonanimfunc_91: @ 8184B0C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184B38
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x30]
-_08184B38:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184B48
- adds r0, r4, 0
- bl sub_81848E0
-_08184B48:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184B6A
- adds r0, r4, 0
- bl sub_8184934
-_08184B6A:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_91
-
- thumb_func_start pokemonanimfunc_92
-pokemonanimfunc_92: @ 8184B78
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184BA2
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r0, [r4, 0x30]
-_08184BA2:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184BB2
- adds r0, r4, 0
- bl sub_81848E0
-_08184BB2:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184BD4
- adds r0, r4, 0
- bl sub_8184934
-_08184BD4:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_92
-
- thumb_func_start pokemonanimfunc_93
-pokemonanimfunc_93: @ 8184BE0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184C0A
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r0, [r4, 0x30]
-_08184C0A:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184C1A
- adds r0, r4, 0
- bl sub_81848E0
-_08184C1A:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184C3C
- adds r0, r4, 0
- bl sub_8184934
-_08184C3C:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_93
-
- thumb_func_start pokemonanimfunc_94
-pokemonanimfunc_94: @ 8184C48
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184C72
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- strh r0, [r4, 0x30]
-_08184C72:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184C82
- adds r0, r4, 0
- bl sub_81848E0
-_08184C82:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184CA4
- adds r0, r4, 0
- bl sub_8184934
-_08184CA4:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_94
-
- thumb_func_start pokemonanimfunc_95
-pokemonanimfunc_95: @ 8184CB0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184CDC
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_08184CDC:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184CEC
- adds r0, r4, 0
- bl sub_81848E0
-_08184CEC:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184D0E
- adds r0, r4, 0
- bl sub_8184934
-_08184D0E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_95
-
- thumb_func_start pokemonanimfunc_96
-pokemonanimfunc_96: @ 8184D1C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- cmp r2, 0
- bne _08184D48
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x50
- strh r0, [r4, 0x2E]
- strh r2, [r4, 0x38]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r2, [r4, 0x34]
- movs r0, 0x2
- strh r0, [r4, 0x30]
-_08184D48:
- ldrh r0, [r4, 0x32]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08184D58
- adds r0, r4, 0
- bl sub_81848E0
-_08184D58:
- movs r0, 0x32
- ldrsh r2, [r4, r0]
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- muls r1, r0
- movs r0, 0x80
- subs r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r2, r0
- blt _08184D7A
- adds r0, r4, 0
- bl sub_8184934
-_08184D7A:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemonanimfunc_96
-
- thumb_func_start sub_8184D88
-sub_8184D88: @ 8184D88
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08184D9C
- ldr r0, =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_08184D9C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8184D88
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s
index 49b205967..be7d3be49 100644
--- a/asm/pokemon_item_effect.s
+++ b/asm/pokemon_item_effect.s
@@ -100,7 +100,7 @@ _0806BDBC:
lsrs r0, 24
_0806BDC4:
str r0, [sp, 0x34]
- ldr r1, =gStringBank
+ ldr r1, =gStringBattler
ldr r0, =gBankInMenu
ldrb r2, [r0]
strb r2, [r1]
@@ -114,23 +114,23 @@ _0806BDC4:
lsrs r1, r0, 24
cmp r1, 0
beq _0806BE64
- ldr r0, =gActiveBank
+ ldr r0, =gActiveBattler
strb r2, [r0]
ldrb r0, [r0]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
str r1, [sp, 0x1C]
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldr r4, [sp, 0xC]
subs r4, 0xD
ldrb r0, [r0]
cmp r1, r0
bge _0806BE70
- ldr r2, =gBattlePartyID
+ ldr r2, =gBattlerPartyIndexes
lsls r0, r1, 1
adds r0, r2
ldrh r3, [r0]
@@ -148,7 +148,7 @@ _0806BE3C:
ldr r1, [sp, 0x1C]
adds r1, 0x2
str r1, [sp, 0x1C]
- ldr r0, =gNoOfAllBanks
+ ldr r0, =gBattlersCount
ldrb r0, [r0]
cmp r1, r0
bge _0806BE70
@@ -165,7 +165,7 @@ _0806BE3C:
b _0806BE70
.pool
_0806BE64:
- ldr r0, =gActiveBank
+ ldr r0, =gActiveBattler
strb r1, [r0]
movs r3, 0x4
str r3, [sp, 0x38]
@@ -200,7 +200,7 @@ _0806BE9A:
ands r0, r1
cmp r0, 0
beq _0806BECC
- ldr r0, =gActiveBank
+ ldr r0, =gActiveBattler
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
@@ -297,7 +297,7 @@ _0806BF76:
cmp r0, 0
beq _0806BFA4
ldr r1, =gBattleMons
- ldr r0, =gActiveBank
+ ldr r0, =gActiveBattler
ldrb r2, [r0]
movs r0, 0x58
muls r0, r2
@@ -323,7 +323,7 @@ _0806BFA4:
bl _0806CD4C
_0806BFB2:
ldr r6, =gBattleMons
- ldr r5, =gActiveBank
+ ldr r5, =gActiveBattler
ldrb r0, [r5]
movs r4, 0x58
muls r0, r4
@@ -362,7 +362,7 @@ _0806BFFC:
cmp r3, 0
beq _0806C042
ldr r7, =gBattleMons
- ldr r5, =gActiveBank
+ ldr r5, =gActiveBattler
ldrb r0, [r5]
movs r4, 0x58
muls r0, r4
@@ -396,7 +396,7 @@ _0806C042:
bl _0806CD4C
_0806C050:
ldr r6, =gBattleMons
- ldr r5, =gActiveBank
+ ldr r5, =gActiveBattler
ldrb r0, [r5]
movs r4, 0x58
muls r0, r4
@@ -433,7 +433,7 @@ _0806C08C:
cmp r3, 0
beq _0806C0D2
ldr r7, =gBattleMons
- ldr r5, =gActiveBank
+ ldr r5, =gActiveBattler
ldrb r0, [r5]
movs r4, 0x58
muls r0, r4
@@ -467,7 +467,7 @@ _0806C0D2:
bl _0806CD4C
_0806C0E0:
ldr r6, =gBattleMons
- ldr r5, =gActiveBank
+ ldr r5, =gActiveBattler
ldrb r0, [r5]
movs r4, 0x58
muls r0, r4
@@ -506,9 +506,9 @@ _0806C120:
cmp r0, 0
beq _0806C168
ldr r5, =gSideTimers
- ldr r4, =gActiveBank
+ ldr r4, =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -519,7 +519,7 @@ _0806C120:
cmp r0, 0
bne _0806C168
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 1
@@ -965,7 +965,7 @@ _0806C4FC:
ldr r3, [sp, 0x38]
cmp r3, 0x4
beq _0806C55C
- ldr r2, =gAbsentBankFlags
+ ldr r2, =gAbsentBattlerFlags
ldr r1, =gBitTable
lsls r0, r3, 2
adds r0, r1
@@ -973,7 +973,7 @@ _0806C4FC:
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
- ldr r1, =gBattlePartyID
+ ldr r1, =gBattlerPartyIndexes
lsls r0, r3, 1
adds r0, r1
ldrb r0, [r0]
@@ -983,14 +983,14 @@ _0806C4FC:
lsrs r1, 24
ldr r0, [sp, 0x38]
bl CopyPlayerPartyMonToBattleData
- ldr r0, =gActiveBank
+ ldr r0, =gActiveBattler
ldrb r0, [r0]
b _0806C574
.pool
_0806C55C:
- ldr r3, =gAbsentBankFlags
+ ldr r3, =gAbsentBattlerFlags
ldr r1, =gBitTable
- ldr r2, =gActiveBank
+ ldr r2, =gActiveBattler
ldrb r0, [r2]
eors r0, r4
lsls r0, 2
@@ -1001,7 +1001,7 @@ _0806C55C:
strb r0, [r3]
ldrb r0, [r2]
_0806C574:
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0806C5B2
@@ -1135,9 +1135,9 @@ _0806C65E:
ands r0, r3
cmp r0, 0
bne _0806C6EC
- ldr r4, =gActiveBank
+ ldr r4, =gActiveBattler
ldrb r0, [r4]
- bl GetBankSide
+ bl GetBattlerSide
lsls r0, 24
cmp r0, 0
bne _0806C6EC
@@ -1155,9 +1155,9 @@ _0806C6AE:
movs r0, 0
movs r1, 0
movs r2, 0
- bl EmitGetMonData
+ bl BtlController_EmitGetMonData
ldrb r0, [r4]
- bl MarkBufferBankForExecution
+ bl MarkBattlerForControllerExec
strb r5, [r4]
b _0806C6EC
.pool
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index e103ebb5e..2ff444f56 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -406,7 +406,7 @@ _080C7428:
_080C745C:
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
movs r0, 0x4
strh r0, [r5, 0x8]
b _080C756A
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 2817b55b1..a94d69b96 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -2049,7 +2049,7 @@ sub_81C4F24: @ 81C4F24
bl ScriptContext2_Enable
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
ldr r0, =sub_81C4F44
movs r1, 0xA
bl CreateTask
@@ -5756,7 +5756,7 @@ sub_81C6F90: @ 81C6F90
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
- bl AddItemIconObject
+ bl AddItemIconSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 896d9aae0..66ecf71d0 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -44,7 +44,7 @@ sub_81C72A4: @ 81C72A4
bl SetMainCallback2
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
pop {r0}
bx r0
.pool
@@ -7068,7 +7068,7 @@ sub_81CA914: @ 81CA914
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
thumb_func_end sub_81CA914
@@ -7101,7 +7101,7 @@ titlescreen_0: @ 81CA92C
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldr r0, =sub_81CA914
bl c3args_set_0toR1_1to0
ldr r0, =sub_81CA9EC
@@ -7220,7 +7220,7 @@ sub_81CAA3C: @ 81CAA3C
mov r0, sp
movs r6, 0
strh r6, [r0]
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
ldr r0, =0x010000a0
mov r8, r0
mov r0, sp
@@ -15647,7 +15647,7 @@ sub_81CEE44: @ 81CEE44
bl TransferPlttBuffer
adds r0, r4, 0
bl sub_81D2108
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r4}
pop {r0}
bx r0
@@ -22318,7 +22318,7 @@ sub_81D20BC: @ 81D20BC
b _081D20FA
.pool
_081D20D4:
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -22332,7 +22332,7 @@ _081D20E2:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80BA038
+ bl ScanlineEffect_SetParams
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -22366,7 +22366,7 @@ sub_81D2108: @ 81D2108
adds r0, r6, 0
bl sub_81D2634
movs r7, 0
- ldr r5, =gUnknown_02038C28
+ ldr r5, =gScanlineEffectRegBuffers
mov r12, r5
movs r0, 0xF0
lsls r0, 3
@@ -28072,7 +28072,7 @@ sub_81D4E30: @ 81D4E30
ldr r2, =0x00005503
adds r0, r2, 0
strh r0, [r1]
- bl sub_8009734
+ bl OpenLink
movs r0, 0x1
bl sub_800B330
pop {r0}
@@ -28128,11 +28128,11 @@ _081D4EBA:
thumb_func_start sub_81D4EC0
sub_81D4EC0: @ 81D4EC0
push {lr}
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _081D4EDC
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -28186,11 +28186,11 @@ _081D4F20:
.4byte _081D4FEC
.4byte _081D4FF8
_081D4F38:
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _081D4F88
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -28212,7 +28212,7 @@ _081D4F54:
strb r0, [r4]
b _081D500C
_081D4F6C:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -28248,7 +28248,7 @@ _081D4FA0:
movs r0, 0x5
b _081D500E
_081D4FB6:
- bl sub_800B320
+ bl IsLinkConnectionEstablished
lsls r0, 24
cmp r0, 0
beq _081D500C
@@ -28447,7 +28447,7 @@ _081D515C:
beq _081D5166
b _081D52FC
_081D5166:
- bl sub_80097E8
+ bl CloseLink
b _081D525C
_081D516C:
adds r0, r4, 0
@@ -28500,20 +28500,20 @@ _081D51D0:
beq _081D51F4
movs r0, 0x5
bl PlaySE
- bl sub_80097E8
+ bl CloseLink
adds r0, r4, 0
bl sub_81D505C
b _081D535A
.pool
_081D51F4:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _081D5210
adds r0, r4, 0
bl sub_81D505C
- bl sub_80097E8
+ bl CloseLink
movs r0, 0x7
strb r0, [r4, 0x8]
b _081D548A
@@ -28523,7 +28523,7 @@ _081D5210:
beq _081D522E
movs r0, 0x5
bl PlaySE
- bl sub_80097E8
+ bl CloseLink
adds r0, r4, 0
bl sub_81D505C
movs r0, 0x8
@@ -28537,7 +28537,7 @@ _081D522E:
bne _081D523C
b _081D548A
_081D523C:
- bl sub_80097E8
+ bl CloseLink
bl sub_81D4E30
adds r0, r4, 0
bl sub_81D505C
@@ -28654,13 +28654,13 @@ _081D5340:
_081D5350:
movs r0, 0x5
bl PlaySE
- bl sub_80097E8
+ bl CloseLink
_081D535A:
movs r0, 0x17
strb r0, [r4, 0x8]
b _081D548A
_081D5360:
- bl sub_80097E8
+ bl CloseLink
movs r0, 0x15
strb r0, [r4, 0x8]
b _081D548A
@@ -28670,7 +28670,7 @@ _081D536A:
cmp r0, 0
beq _081D537A
_081D5374:
- bl sub_80097E8
+ bl CloseLink
b _081D53C0
_081D537A:
bl GetBlockReceivedStatus
diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s
deleted file mode 100644
index f60b2a252..000000000
--- a/asm/rayquaza_scene.s
+++ /dev/null
@@ -1,5972 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_81D6720
-sub_81D6720: @ 81D6720
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gUnknown_0203CF60
- ldr r0, =0x00002018
- bl AllocZeroed
- str r0, [r6]
- ldr r1, =0x00002006
- adds r0, r1
- strb r4, [r0]
- ldr r0, [r6]
- mov r1, r8
- str r1, [r0]
- ldr r1, =0x00002007
- adds r0, r1
- strb r5, [r0]
- ldr r0, =sub_81D6774
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6720
-
- thumb_func_start sub_81D6774
-sub_81D6774: @ 81D6774
- push {lr}
- bl SetVBlankHBlankCallbacksToNull
- bl clear_scheduled_bg_copies_to_vram
- bl ScanlineEffect_Stop
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- movs r0, 0
- movs r1, 0xF0
- movs r2, 0x20
- bl FillPalette
- ldr r1, =gUnknown_0862A6A0
- ldr r0, =gUnknown_0203CF60
- ldr r0, [r0]
- ldr r2, =0x00002006
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldr r0, =sub_81D67D0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6774
-
- thumb_func_start sub_81D67D0
-sub_81D67D0: @ 81D67D0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_81D67D0
-
- thumb_func_start sub_81D67EC
-sub_81D67EC: @ 81D67EC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81D67EC
-
- thumb_func_start sub_81D6800
-sub_81D6800: @ 81D6800
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081D6830
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r4, =gUnknown_0203CF60
- ldr r0, [r4]
- ldr r0, [r0]
- bl SetMainCallback2
- ldr r0, [r4]
- bl Free
- adds r0, r5, 0
- bl DestroyTask
-_081D6830:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6800
-
- thumb_func_start sub_81D6840
-sub_81D6840: @ 81D6840
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081D68B2
- ldr r2, =gUnknown_0203CF60
- ldr r1, [r2]
- ldr r4, =0x00002007
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081D6888
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81D6800
- b _081D68B0
- .pool
-_081D6888:
- ldr r4, =0x00002006
- adds r1, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, [r2]
- ldr r1, =0x00002004
- adds r0, r2, r1
- strh r5, [r0]
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r3, =gUnknown_0862A6A0
- adds r2, r4
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
-_081D68B0:
- str r0, [r1]
-_081D68B2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6840
-
- thumb_func_start sub_81D68C8
-sub_81D68C8: @ 81D68C8
- push {lr}
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r1, =0x00001888
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, =gPlttBufferUnfaded
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gPlttBufferFaded
- strh r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D68C8
-
- thumb_func_start sub_81D6904
-sub_81D6904: @ 81D6904
- push {lr}
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x3F
- bl SetGpuReg
- pop {r0}
- bx r0
- thumb_func_end sub_81D6904
-
- thumb_func_start sub_81D691C
-sub_81D691C: @ 81D691C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- bl sub_81D750C
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081D697E
- movs r0, 0
- ldrsh r1, [r5, r0]
- cmp r1, 0x40
- bne _081D6954
- bl sub_81D7438
- b _081D6978
- .pool
-_081D6954:
- cmp r1, 0x90
- bne _081D695E
- bl sub_81D7480
- b _081D6978
-_081D695E:
- cmp r1, 0x94
- beq _081D6974
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _081D6978
- adds r0, r4, 0
- movs r1, 0
- bl sub_81D75B4
- b _081D697E
-_081D6974:
- bl sub_81D74C8
-_081D6978:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_081D697E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81D691C
-
- thumb_func_start sub_81D6984
-sub_81D6984: @ 81D6984
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gUnknown_0862A72C
- mov r8, r0
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x3
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gSprites
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, =sub_81D6A20
- str r1, [r0]
- adds r0, r6, 0
- adds r0, 0x2E
- adds r4, r0
- mov r0, r8
- movs r1, 0x38
- movs r2, 0x68
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r0, =gUnknown_0862A750
- movs r1, 0x4B
- movs r2, 0x65
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2]
- ldr r0, =gUnknown_0862A774
- movs r1, 0x6D
- movs r2, 0x72
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D6984
-
- thumb_func_start sub_81D6A20
-sub_81D6A20: @ 81D6A20
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- adds r0, r3
- mov r12, r0
- ldrh r0, [r0, 0xA]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- mov r1, r12
- strh r0, [r1, 0xA]
- cmp r0, 0
- bne _081D6A84
- ldrh r1, [r3, 0x20]
- movs r2, 0x20
- ldrsh r0, [r3, r2]
- cmp r0, 0x48
- beq _081D6A84
- subs r0, r1, 0x1
- strh r0, [r3, 0x20]
- ldr r2, =gSprites
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
-_081D6A84:
- adds r0, r3, 0
- adds r0, 0x2B
- ldrb r3, [r0]
- cmp r3, 0x1
- beq _081D6AE4
- cmp r3, 0x1
- bgt _081D6A9C
- cmp r3, 0
- beq _081D6AA6
- b _081D6B68
- .pool
-_081D6A9C:
- cmp r3, 0x2
- beq _081D6B24
- cmp r3, 0x3
- beq _081D6AE4
- b _081D6B68
-_081D6AA6:
- ldr r2, =gSprites
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- b _081D6B5E
- .pool
-_081D6AE4:
- ldr r2, =gSprites
- mov r0, r12
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- mov r4, r12
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0
- strh r3, [r0, 0x26]
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- b _081D6B58
- .pool
-_081D6B24:
- ldr r2, =gSprites
- mov r3, r12
- movs r4, 0x2
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x1
- strh r3, [r0, 0x26]
- mov r4, r12
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
-_081D6B58:
- strh r1, [r0, 0x24]
- movs r0, 0x4
- ldrsh r1, [r4, r0]
-_081D6B5E:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
-_081D6B68:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6A20
-
- thumb_func_start sub_81D6B7C
-sub_81D6B7C: @ 81D6B7C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r5, =gUnknown_0862A81C
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, =gSprites
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, =sub_81D6D20
- str r1, [r0]
- adds r0, r6, 0
- adds r0, 0x2E
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0xA8
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4]
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r0, r5, 0
- movs r1, 0xA8
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- orrs r0, r1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r1, 0xA8
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x68
- movs r2, 0x80
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x88
- movs r2, 0x80
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x6]
- adds r0, r5, 0
- movs r1, 0xB8
- movs r2, 0x80
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- orrs r0, r1
- strh r0, [r4, 0x6]
- ldr r0, =gUnknown_0862A84C
- movs r1, 0xD0
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x8]
- ldr r0, =gUnknown_0862A864
- movs r1, 0xC8
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- orrs r0, r1
- strh r0, [r4, 0x8]
- ldrh r1, [r4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- ldrh r1, [r4, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x7
- bl StartSpriteAnim
- ldrb r1, [r4, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x8
- bl StartSpriteAnim
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D6B7C
-
- thumb_func_start sub_81D6D20
-sub_81D6D20: @ 81D6D20
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x2E
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r3, 0xA]
- ldr r7, =gSprites
- cmp r0, 0
- bne _081D6E0E
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x98
- beq _081D6E0E
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r4, 0x2E]
- movs r2, 0xFF
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x2]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x4]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x6]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x8]
- ands r2, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
-_081D6E0E:
- adds r6, r7, 0
- movs r5, 0xFF
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _081D6EE0
- cmp r2, 0x1
- bgt _081D6E34
- cmp r2, 0
- beq _081D6E40
- b _081D6FC8
- .pool
-_081D6E34:
- cmp r2, 0x2
- bne _081D6E3A
- b _081D6F68
-_081D6E3A:
- cmp r2, 0x3
- beq _081D6EE0
- b _081D6FC8
-_081D6E40:
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x2]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x4]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x6]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- ands r1, r5
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- b _081D6FC6
-_081D6EE0:
- movs r2, 0x1
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x8]
- b _081D6FBE
-_081D6F68:
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x2]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- ands r1, r5
-_081D6FBE:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
-_081D6FC6:
- strh r2, [r0, 0x26]
-_081D6FC8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D6D20
-
- thumb_func_start sub_81D6FD0
-sub_81D6FD0: @ 81D6FD0
- push {lr}
- bl sub_81D67EC
- bl sub_80BA0A8
- pop {r0}
- bx r0
- thumb_func_end sub_81D6FD0
-
- thumb_func_start sub_81D6FE0
-sub_81D6FE0: @ 81D6FE0
- push {r4,lr}
- bl ResetVramOamAndBgCntRegs
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0862A888
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00000804
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D6FE0
-
- thumb_func_start sub_81D706C
-sub_81D706C: @ 81D706C
- push {r4,lr}
- sub sp, 0x4
- bl reset_temp_tile_data_buffers
- ldr r1, =gRaySceneClouds_Gfx
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
-_081D7082:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _081D7082
- ldr r0, =gRaySceneClouds2_Tilemap
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, =gRaySceneClouds1_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00000804
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneClouds3_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00001004
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneClouds_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- ldr r0, =gUnknown_0862A8C4
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862A8F8
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862A924
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862A9D4
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AA14
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AA34
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862A8CC
- bl LoadCompressedObjectPalette
- ldr r0, =gUnknown_0862A9DC
- bl LoadCompressedObjectPalette
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D706C
-
- thumb_func_start sub_81D7134
-sub_81D7134: @ 81D7134
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, =gTasks + 0x8
- adds r5, r6, r7
- bl dp12_8087EA4
- bl sub_81D6FE0
- bl sub_81D706C
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r1, =gUnknown_02038C28
- ldr r2, =0x010003c0
- add r0, sp, 0x4
- bl CpuFastSet
- ldr r2, =gUnknown_0862A87C
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- ldr r2, [r2, 0x8]
- bl sub_80BA038
- strh r4, [r5]
- ldr r0, =sub_81D7228
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- ldr r0, =gUnknown_0203CF60
- ldr r0, [r0]
- ldr r1, =0x00002006
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081D71CC
- bl sub_81D6984
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x4]
- bl sub_81D6B7C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x6]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =sub_81D691C
- str r1, [r0]
- b _081D71EE
- .pool
-_081D71CC:
- bl sub_81D7664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x4]
- bl sub_81D78BC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x6]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =sub_81D736C
- str r1, [r0]
- bl StopMapMusic
-_081D71EE:
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =sub_81D6FD0
- bl SetVBlankCallback
- movs r0, 0x53
- bl PlaySE
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7134
-
- thumb_func_start sub_81D7228
-sub_81D7228: @ 81D7228
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r3, r1, r0
- movs r1, 0x18
- ldr r7, =gUnknown_0203CF60
- ldr r4, =gUnknown_02038C28
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_081D7244:
- lsls r0, r1, 16
- asrs r1, r0, 16
- adds r6, r0, 0
- cmp r1, 0x2F
- bgt _081D726C
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3]
- b _081D72CA
- .pool
-_081D726C:
- cmp r1, 0x3F
- bgt _081D7280
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3, 0x2]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x2]
- b _081D72CA
-_081D7280:
- cmp r1, 0x4B
- bgt _081D7294
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3, 0x4]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x4]
- b _081D72CA
-_081D7294:
- cmp r1, 0x53
- bgt _081D72A8
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3, 0x6]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x6]
- b _081D72CA
-_081D72A8:
- cmp r1, 0x57
- bgt _081D72BC
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3, 0x8]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x8]
- b _081D72CA
-_081D72BC:
- lsls r1, 1
- adds r2, r1, r4
- ldrh r0, [r3, 0xA]
- lsrs r0, 8
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0xA]
-_081D72CA:
- lsrs r0, 8
- strh r0, [r1]
- movs r1, 0x80
- lsls r1, 9
- adds r0, r6, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x5B
- ble _081D7244
- ldr r0, [r7]
- ldr r1, =0x00002006
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081D7324
- movs r1, 0xE0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3, 0x2]
- adds r0, r1
- strh r0, [r3, 0x2]
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r3, 0x4]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3, 0x6]
- adds r0, r1
- strh r0, [r3, 0x6]
- ldrh r0, [r3, 0x8]
- adds r0, 0xC0
- b _081D735E
- .pool
-_081D7324:
- movs r1, 0xC0
- lsls r1, 2
- adds r0, r1, 0
- ldrh r1, [r3]
- adds r0, r1
- strh r0, [r3]
- movs r1, 0xA0
- lsls r1, 2
- adds r0, r1, 0
- ldrh r1, [r3, 0x2]
- adds r0, r1
- strh r0, [r3, 0x2]
- movs r1, 0x80
- lsls r1, 2
- adds r0, r1, 0
- ldrh r1, [r3, 0x4]
- adds r0, r1
- strh r0, [r3, 0x4]
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3, 0x6]
- adds r0, r1
- strh r0, [r3, 0x6]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r3, 0x8]
- adds r0, r1
-_081D735E:
- strh r0, [r3, 0x8]
- ldrh r0, [r3, 0xA]
- adds r0, 0x80
- strh r0, [r3, 0xA]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D7228
-
- thumb_func_start sub_81D736C
-sub_81D736C: @ 81D736C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r7, =gTasks + 0x8
- adds r4, r0, r7
- bl sub_81D750C
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _081D742E
- movs r0, 0
- ldrsh r1, [r4, r0]
- cmp r1, 0x20
- beq _081D739C
- cmp r1, 0x70
- bne _081D73AC
-_081D739C:
- bl sub_81D7438
- b _081D7428
- .pool
-_081D73AC:
- cmp r1, 0xD8
- bne _081D73B6
- bl sub_81D7480
- b _081D7428
-_081D73B6:
- cmp r1, 0xDC
- bne _081D73C0
- bl sub_81D74C8
- b _081D7428
-_081D73C0:
- movs r0, 0xBE
- lsls r0, 1
- cmp r1, r0
- beq _081D73D8
- adds r0, 0x20
- cmp r1, r0
- bne _081D7428
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_81D75B4
- b _081D742E
-_081D73D8:
- movs r1, 0x91
- lsls r1, 2
- movs r0, 0x50
- bl SetGpuReg
- adds r2, r7, 0
- subs r2, 0x8
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_81D752C
- str r1, [r0]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0x8]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0xC]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x6]
- strh r1, [r0, 0xE]
- bl ScanlineEffect_Stop
-_081D7428:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081D742E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D736C
-
- thumb_func_start sub_81D7438
-sub_81D7438: @ 81D7438
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x57
- bl PlaySE
- ldr r0, =0x00007fff
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- ldr r0, =0xffff0000
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7438
-
- thumb_func_start sub_81D7480
-sub_81D7480: @ 81D7480
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x57
- bl PlaySE
- ldr r0, =0x00007fff
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl sub_80A2C44
- ldr r0, =0xffff0000
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl sub_80A2C44
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7480
-
- thumb_func_start sub_81D74C8
-sub_81D74C8: @ 81D74C8
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =0x00007fff
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0x4
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- ldr r0, =0xffff0000
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0x4
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D74C8
-
- thumb_func_start sub_81D750C
-sub_81D750C: @ 81D750C
- push {lr}
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0x2
- movs r2, 0x1
- bl ChangeBgX
- movs r1, 0x80
- lsls r1, 4
- movs r0, 0x2
- movs r2, 0x2
- bl ChangeBgY
- pop {r0}
- bx r0
- thumb_func_end sub_81D750C
-
- thumb_func_start sub_81D752C
-sub_81D752C: @ 81D752C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl sub_81D7860
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_81D7D14
- movs r0, 0x1
- bl GetBgY
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- bl GetBgY
- cmp r0, 0
- beq _081D757A
- movs r0, 0x80
- lsls r0, 8
- cmp r4, r0
- bls _081D7586
-_081D757A:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0x1
- movs r2, 0x2
- bl ChangeBgY
-_081D7586:
- ldrh r2, [r5]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x10
- beq _081D75A6
- adds r2, 0x1
- strh r2, [r5]
- lsls r1, r2, 8
- movs r0, 0x10
- subs r0, r2
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_081D75A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D752C
-
- thumb_func_start sub_81D75B4
-sub_81D75B4: @ 81D75B4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x54
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- lsls r4, 24
- asrs r4, 24
- movs r1, 0
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81D7600
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D75B4
-
- thumb_func_start sub_81D7600
-sub_81D7600: @ 81D7600
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, =gTasks + 0x8
- adds r5, r6, r7
- bl sub_81D750C
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081D7652
- ldrb r0, [r5, 0x2]
- bl DestroyTask
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0
- bl SetVBlankCallback
- bl ScanlineEffect_Stop
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- strh r4, [r5]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =sub_81D6840
- str r1, [r0]
-_081D7652:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7600
-
- thumb_func_start sub_81D7664
-sub_81D7664: @ 81D7664
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gUnknown_0862A8D4
- mov r8, r0
- movs r1, 0x62
- movs r2, 0x48
- movs r3, 0x3
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, =gSprites
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, =sub_81D7700
- str r1, [r0]
- adds r0, r6, 0
- adds r0, 0x2E
- adds r4, r0
- mov r0, r8
- movs r1, 0x42
- movs r2, 0x68
- movs r3, 0x3
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r0, =gUnknown_0862A900
- movs r1, 0x55
- movs r2, 0x65
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x2]
- ldr r0, =gUnknown_0862A92C
- movs r1, 0x77
- movs r2, 0x72
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D7664
-
- thumb_func_start sub_81D7700
-sub_81D7700: @ 81D7700
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- adds r0, r3
- mov r12, r0
- ldrh r0, [r0, 0xA]
- adds r0, 0x1
- movs r1, 0xF
- ands r0, r1
- mov r1, r12
- strh r0, [r1, 0xA]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- bne _081D7768
- ldrh r1, [r3, 0x20]
- movs r2, 0x20
- ldrsh r0, [r3, r2]
- cmp r0, 0x48
- beq _081D7768
- subs r0, r1, 0x1
- strh r0, [r3, 0x20]
- ldr r2, =gSprites
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
-_081D7768:
- adds r0, r3, 0
- adds r0, 0x2B
- ldrb r3, [r0]
- cmp r3, 0x1
- beq _081D77C8
- cmp r3, 0x1
- bgt _081D7780
- cmp r3, 0
- beq _081D778A
- b _081D784C
- .pool
-_081D7780:
- cmp r3, 0x2
- beq _081D7808
- cmp r3, 0x3
- beq _081D77C8
- b _081D784C
-_081D778A:
- ldr r2, =gSprites
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- mov r0, r12
- movs r4, 0x2
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- mov r0, r12
- movs r4, 0x4
- ldrsh r1, [r0, r4]
- b _081D7842
- .pool
-_081D77C8:
- ldr r2, =gSprites
- mov r0, r12
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- mov r4, r12
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0
- strh r3, [r0, 0x26]
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- negs r1, r1
- b _081D783C
- .pool
-_081D7808:
- ldr r2, =gSprites
- mov r3, r12
- movs r4, 0x2
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x24]
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x1
- strh r3, [r0, 0x26]
- mov r4, r12
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
-_081D783C:
- strh r1, [r0, 0x24]
- movs r0, 0x4
- ldrsh r1, [r4, r0]
-_081D7842:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x26]
-_081D784C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7700
-
- thumb_func_start sub_81D7860
-sub_81D7860: @ 81D7860
- push {r4,lr}
- adds r1, r0, 0
- adds r3, r1, 0
- adds r3, 0x2E
- ldrh r2, [r1, 0x22]
- movs r4, 0x22
- ldrsh r0, [r1, r4]
- cmp r0, 0xA0
- bgt _081D78B0
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r1, 0x22]
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- movs r4, 0x2
- ldrsh r1, [r3, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
-_081D78B0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7860
-
- thumb_func_start sub_81D78BC
-sub_81D78BC: @ 81D78BC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r5, =gUnknown_0862A9E4
- adds r0, r5, 0
- movs r1, 0x7E
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, =gSprites
- lsls r4, r0, 4
- add r4, r8
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x1C
- adds r0, r4, r0
- ldr r1, =sub_81D7A60
- str r1, [r0]
- adds r0, r6, 0
- adds r0, 0x2E
- adds r4, r0
- adds r0, r5, 0
- movs r1, 0x9E
- movs r2, 0x60
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4]
- adds r0, r5, 0
- movs r1, 0x7E
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- adds r0, r5, 0
- movs r1, 0x9E
- movs r2, 0x70
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r1, 0x7E
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- orrs r0, r1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- movs r1, 0x9E
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x5E
- movs r2, 0x80
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x4]
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x7E
- movs r2, 0x80
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x6]
- adds r0, r5, 0
- movs r1, 0xAE
- movs r2, 0x80
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x6]
- orrs r0, r1
- strh r0, [r4, 0x6]
- ldr r0, =gUnknown_0862AA1C
- movs r1, 0xC6
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- lsls r0, 8
- strh r0, [r4, 0x8]
- ldr r0, =gUnknown_0862AA3C
- movs r1, 0xBE
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x8]
- orrs r0, r1
- strh r0, [r4, 0x8]
- ldrh r1, [r4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- ldrb r1, [r4, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x4
- bl StartSpriteAnim
- ldrh r1, [r4, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- bl StartSpriteAnim
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x6
- bl StartSpriteAnim
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x7
- bl StartSpriteAnim
- ldrb r1, [r4, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x8
- bl StartSpriteAnim
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D78BC
-
- thumb_func_start sub_81D7A60
-sub_81D7A60: @ 81D7A60
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x2E
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- movs r1, 0xF
- ands r0, r1
- strh r0, [r3, 0xA]
- movs r1, 0x7
- ands r1, r0
- ldr r7, =gSprites
- cmp r1, 0
- bne _081D7B52
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x98
- beq _081D7B52
- adds r0, r1, 0x1
- strh r0, [r4, 0x20]
- ldrh r1, [r4, 0x2E]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r4, 0x2E]
- movs r2, 0xFF
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x2]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x4]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x6]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
- ldrh r0, [r3, 0x8]
- ands r2, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, 0x1
- strh r1, [r0, 0x20]
-_081D7B52:
- adds r6, r7, 0
- movs r5, 0xFF
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _081D7C24
- cmp r2, 0x1
- bgt _081D7B78
- cmp r2, 0
- beq _081D7B84
- b _081D7D0C
- .pool
-_081D7B78:
- cmp r2, 0x2
- bne _081D7B7E
- b _081D7CAC
-_081D7B7E:
- cmp r2, 0x3
- beq _081D7C24
- b _081D7D0C
-_081D7B84:
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x2]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x4]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x6]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- ands r1, r5
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- b _081D7D0A
-_081D7C24:
- movs r2, 0x1
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrb r1, [r3, 0x8]
- b _081D7D02
-_081D7CAC:
- strh r2, [r4, 0x26]
- ldrh r1, [r3]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x2]
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r1, [r3, 0x8]
- ands r1, r5
-_081D7D02:
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
-_081D7D0A:
- strh r2, [r0, 0x26]
-_081D7D0C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D7A60
-
- thumb_func_start sub_81D7D14
-sub_81D7D14: @ 81D7D14
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- adds r0, r2
- mov r12, r0
- ldrh r1, [r2, 0x22]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0xA0
- bgt _081D7E08
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r2, 0x22]
- ldr r3, =gSprites
- ldrh r1, [r2, 0x2E]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- ldrh r0, [r2, 0x2E]
- movs r2, 0xFF
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r0, r12
- ldrh r1, [r0, 0x2]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r1, r12
- ldrh r0, [r1, 0x2]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r0, r12
- ldrh r1, [r0, 0x4]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r1, r12
- ldrh r0, [r1, 0x4]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r0, r12
- ldrh r1, [r0, 0x6]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r1, r12
- ldrh r0, [r1, 0x6]
- adds r1, r2, 0
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r0, r12
- ldrh r1, [r0, 0x8]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- mov r1, r12
- ldrh r0, [r1, 0x8]
- ands r2, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
-_081D7E08:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7D14
-
- thumb_func_start sub_81D7E10
-sub_81D7E10: @ 81D7E10
- push {r4,lr}
- bl ResetVramOamAndBgCntRegs
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0862AA54
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00000804
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7E10
-
- thumb_func_start sub_81D7E9C
-sub_81D7E9C: @ 81D7E9C
- push {r4,lr}
- sub sp, 0x4
- bl reset_temp_tile_data_buffers
- ldr r1, =gRaySceneClouds_Gfx
- movs r4, 0
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneOvercast_Gfx
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneRayquaza_Gfx
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
-_081D7ED0:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _081D7ED0
- ldr r0, =gRaySceneClouds2_Tilemap
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, =gRaySceneOvercast_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00000804
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneRayquaza_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00001004
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneRayquaza_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- ldr r0, =gUnknown_0862AA90
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AA98
- bl LoadCompressedObjectPalette
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7E9C
-
- thumb_func_start sub_81D7F4C
-sub_81D7F4C: @ 81D7F4C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- movs r0, 0xE8
- lsls r0, 1
- bl PlayNewMapMusic
- bl sub_81D7E10
- bl sub_81D7E9C
- movs r1, 0x94
- lsls r1, 2
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000808
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, =sub_81D67EC
- bl SetVBlankCallback
- ldr r0, =sub_81D81A4
- movs r1, 0
- bl CreateTask
- movs r0, 0
- strh r0, [r6]
- strh r0, [r6, 0x2]
- subs r5, 0x8
- adds r4, r5
- ldr r0, =sub_81D7FC0
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D7F4C
-
- thumb_func_start sub_81D7FC0
-sub_81D7FC0: @ 81D7FC0
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _081D802A
- cmp r5, 0x1
- bgt _081D7FE8
- cmp r5, 0
- beq _081D7FF4
- b _081D815A
- .pool
-_081D7FE8:
- cmp r5, 0x2
- beq _081D80A4
- cmp r5, 0x3
- bne _081D7FF2
- b _081D8124
-_081D7FF2:
- b _081D815A
-_081D7FF4:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _081D8024
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- strh r5, [r4, 0x4]
- movs r0, 0x1E
- strh r0, [r4, 0x6]
- strh r5, [r4, 0x8]
- movs r0, 0x7
- strh r0, [r4, 0xA]
- strh r5, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _081D815A
-_081D8024:
- adds r0, r1, 0x1
- strh r0, [r4, 0x2]
- b _081D815A
-_081D802A:
- ldrh r1, [r4, 0x6]
- ldrh r3, [r4, 0x4]
- adds r0, r1, r3
- strh r0, [r4, 0x4]
- ldrh r2, [r4, 0xA]
- ldrh r3, [r4, 0x8]
- adds r0, r2, r3
- strh r0, [r4, 0x8]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _081D8046
- subs r0, r1, 0x3
- strh r0, [r4, 0x6]
-_081D8046:
- lsls r0, r2, 16
- cmp r0, 0
- beq _081D8050
- subs r0, r2, 0x1
- strh r0, [r4, 0xA]
-_081D8050:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _081D8078
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r4, 0x4]
- movs r1, 0
- strh r1, [r4, 0x6]
- movs r0, 0xC
- strh r0, [r4, 0xC]
- movs r3, 0x1
- negs r3, r3
- adds r0, r3, 0
- strh r0, [r4, 0xE]
- strh r1, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081D8078:
- movs r1, 0xF0
- lsls r1, 7
- movs r2, 0xC0
- lsls r2, 5
- ldrh r0, [r4, 0x8]
- adds r0, 0x20
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x4]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r3, 0x78
- bl SetBgAffine
- b _081D815A
-_081D80A4:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0xF0
- lsls r1, 7
- movs r2, 0xC0
- lsls r2, 5
- ldrh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 18
- adds r0, 0x20
- ldrh r3, [r4, 0x8]
- adds r0, r3
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x4]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x8]
- movs r5, 0
- str r5, [sp, 0xC]
- movs r0, 0x2
- movs r3, 0x78
- bl SetBgAffine
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xC
- beq _081D80F4
- movs r0, 0xC
- negs r0, r0
- cmp r1, r0
- bne _081D815A
-_081D80F4:
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0xE]
- movs r3, 0x2
- ldrsh r1, [r4, r3]
- ldr r0, =0x00000127
- cmp r1, r0
- ble _081D815A
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0x6
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _081D815A
- .pool
-_081D8124:
- ldrh r0, [r4, 0x4]
- adds r0, 0x10
- strh r0, [r4, 0x4]
- movs r1, 0xF0
- lsls r1, 7
- movs r2, 0xC0
- lsls r2, 5
- ldrh r0, [r4, 0x8]
- adds r0, 0x20
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x4]
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r3, 0x78
- bl SetBgAffine
- adds r0, r6, 0
- bl sub_81D8164
-_081D815A:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81D7FC0
-
- thumb_func_start sub_81D8164
-sub_81D8164: @ 81D8164
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081D8192
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81D6840
- str r0, [r1]
-_081D8192:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8164
-
- thumb_func_start sub_81D81A4
-sub_81D81A4: @ 81D81A4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r1, [r4, 0x2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081D8254
- ldr r0, =gUnknown_0862AAA0
- ldr r3, =gUnknown_0862AAB8
- movs r1, 0
- ldrsh r2, [r4, r1]
- lsls r2, 1
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 18
- movs r6, 0xF0
- lsls r6, 15
- adds r1, r6
- asrs r1, 16
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- lsls r2, 24
- asrs r2, 24
- lsls r2, 18
- movs r3, 0xA0
- lsls r3, 15
- adds r2, r3
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r1
- movs r0, 0
- ldrsb r0, [r4, r0]
- strh r0, [r3, 0x2E]
- ldrb r2, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- movs r2, 0x3
- orrs r0, r2
- strb r0, [r3, 0x1]
- ldrb r0, [r3, 0x5]
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r3, 0x5]
- adds r0, r3, 0
- bl InitSpriteAffineAnim
- ldrh r1, [r4]
- movs r6, 0
- ldrsh r0, [r4, r6]
- cmp r0, 0x9
- bne _081D8250
- adds r0, r5, 0
- bl DestroyTask
- b _081D825A
- .pool
-_081D8250:
- adds r0, r1, 0x1
- strh r0, [r4]
-_081D8254:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
-_081D825A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81D81A4
-
- thumb_func_start sub_81D8260
-sub_81D8260: @ 81D8260
- push {lr}
- adds r2, r0, 0
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081D8270
- strh r0, [r2, 0x24]
- b _081D829A
-_081D8270:
- ldr r1, =gUnknown_0862AAB8
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r3, [r2, 0x24]
- adds r0, r3
- strh r0, [r2, 0x24]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r2, 0x26]
- adds r0, r1
-_081D829A:
- strh r0, [r2, 0x26]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- movs r1, 0xF
- ands r0, r1
- strh r0, [r2, 0x30]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8260
-
- thumb_func_start sub_81D82B0
-sub_81D82B0: @ 81D82B0
- push {r4,lr}
- bl ResetVramOamAndBgCntRegs
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0862AACC
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00000804
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001804
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D82B0
-
- thumb_func_start sub_81D8358
-sub_81D8358: @ 81D8358
- push {r4-r7,lr}
- sub sp, 0xC
- bl reset_temp_tile_data_buffers
- ldr r1, =gRaySceneRayquazaLight_Gfx
- movs r4, 0
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneOvercast2_Gfx
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- add r7, sp, 0x8
-_081D8380:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _081D8380
- ldr r0, =gRaySceneRayquazaLight_Tilemap
- ldr r5, =gUnknown_0203CF60
- ldr r1, [r5]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, =gRaySceneOvercast2_Tilemap
- ldr r1, [r5]
- ldr r4, =0x00001804
- adds r1, r4
- bl LZDecompressWram
- str r6, [sp, 0x4]
- ldr r1, [r5]
- ldr r0, =0x00001004
- adds r1, r0
- ldr r2, =0x01000200
- add r0, sp, 0x4
- bl CpuFastSet
- ldr r1, [r5]
- adds r4, r1, r4
- ldr r0, =0x00000804
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- bl CpuFastSet
- str r6, [sp, 0x8]
- ldr r1, [r5]
- ldr r0, =0x00000904
- adds r1, r0
- ldr r2, =0x010000d0
- adds r0, r7, 0
- bl CpuFastSet
- ldr r0, =gRaySceneOvercast2_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- ldr r0, =gPlttBufferUnfaded
- ldr r1, =0x00007fff
- strh r1, [r0]
- ldr r0, =gPlttBufferFaded
- strh r1, [r0]
- ldr r0, =gUnknown_0862AAFC
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AB04
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AB0C
- bl LoadCompressedObjectPalette
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8358
-
- thumb_func_start sub_81D844C
-sub_81D844C: @ 81D844C
- push {r4,r5,lr}
- movs r0, 0x6
- bl GetGpuReg
- lsls r0, 16
- lsrs r2, r0, 16
- adds r1, r2, 0
- subs r1, 0x18
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x6F
- bhi _081D848C
- ldr r0, =gUnknown_0203CF60
- ldr r0, [r0]
- ldr r3, =0x00002008
- adds r0, r3
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bgt _081D848C
- ldr r1, =0x04000052
- ldr r3, =0x00000d08
- b _081D8492
- .pool
-_081D848C:
- ldr r1, =0x04000052
- movs r3, 0x80
- lsls r3, 5
-_081D8492:
- adds r0, r3, 0
- strh r0, [r1]
- cmp r2, 0
- bne _081D84E0
- ldr r0, =gUnknown_0203CF60
- ldr r1, [r0]
- ldr r2, =0x00002008
- adds r3, r1, r2
- ldrh r4, [r3]
- movs r1, 0
- ldrsh r2, [r3, r1]
- ldr r1, =0x00001fff
- adds r5, r0, 0
- cmp r2, r1
- bgt _081D84D4
- cmp r2, 0x27
- bgt _081D84C8
- adds r0, r4, 0x4
- b _081D84D2
- .pool
-_081D84C8:
- cmp r2, 0x4F
- bgt _081D84D0
- adds r0, r4, 0x2
- b _081D84D2
-_081D84D0:
- adds r0, r4, 0x1
-_081D84D2:
- strh r0, [r3]
-_081D84D4:
- ldr r1, [r5]
- ldr r2, =0x0000200a
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_081D84E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D844C
-
- thumb_func_start sub_81D84EC
-sub_81D84EC: @ 81D84EC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, =gTasks + 0x8
- adds r5, r4, r6
- bl sub_81D82B0
- bl sub_81D8358
- ldr r1, =0x00001e41
- movs r0, 0x50
- bl SetGpuRegBits
- movs r0, 0x80
- lsls r0, 5
- mov r8, r0
- movs r0, 0x52
- mov r1, r8
- bl SetGpuReg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, =sub_81D67EC
- bl SetVBlankCallback
- ldr r0, =gUnknown_0203CF60
- ldr r0, [r0]
- ldr r1, =0x00002008
- adds r2, r0, r1
- movs r1, 0
- strh r1, [r2]
- ldr r2, =0x0000200a
- adds r0, r2
- strh r1, [r0]
- strh r1, [r5]
- strh r1, [r5, 0x2]
- strh r1, [r5, 0x4]
- strh r1, [r5, 0x6]
- mov r0, r8
- strh r0, [r5, 0x8]
- subs r6, 0x8
- adds r4, r6
- ldr r0, =sub_81D857C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D84EC
-
- thumb_func_start sub_81D857C
-sub_81D857C: @ 81D857C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x4
- bhi _081D8674
- lsls r0, 2
- ldr r1, =_081D85A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081D85A8:
- .4byte _081D85BC
- .4byte _081D85DC
- .4byte _081D861A
- .4byte _081D863A
- .4byte _081D8656
-_081D85BC:
- ldrh r1, [r5, 0x2]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0x8
- bne _081D8634
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- strh r4, [r5, 0x2]
- b _081D864E
-_081D85DC:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081D8674
- ldrh r2, [r5, 0x2]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r0, 0xA
- bne _081D8614
- strh r1, [r5, 0x2]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- ldr r0, =sub_81D844C
- bl SetHBlankCallback
- movs r0, 0x3
- bl EnableInterrupts
- b _081D8674
- .pool
-_081D8614:
- adds r0, r2, 0x1
- strh r0, [r5, 0x2]
- b _081D8674
-_081D861A:
- ldrh r1, [r5, 0x2]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0x50
- bne _081D8634
- movs r0, 0
- strh r0, [r5, 0x2]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- bl sub_81D86CC
- b _081D8674
-_081D8634:
- adds r0, r1, 0x1
- strh r0, [r5, 0x2]
- b _081D8674
-_081D863A:
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- movs r1, 0xB8
- lsls r1, 17
- cmp r0, r1
- bne _081D8674
- movs r0, 0
- strh r0, [r5, 0x2]
-_081D864E:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _081D8674
-_081D8656:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81D8684
- str r1, [r0]
-_081D8674:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D857C
-
- thumb_func_start sub_81D8684
-sub_81D8684: @ 81D8684
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081D86B8
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81D6840
- str r0, [r1]
-_081D86B8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8684
-
- thumb_func_start sub_81D86CC
-sub_81D86CC: @ 81D86CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gUnknown_0862AB14
- movs r1, 0xA0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- ldr r4, =gSprites + 0x2E
- adds r0, r5, r4
- mov r8, r0
- ldr r0, =gUnknown_0862AB2C
- movs r2, 0x30
- negs r2, r2
- movs r1, 0xB8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- strh r0, [r1]
- adds r3, r4, 0
- subs r3, 0x2E
- subs r4, 0x12
- adds r4, r5, r4
- ldr r0, =sub_81D874C
- str r0, [r4]
- adds r5, r3
- ldrb r0, [r5, 0x5]
- movs r2, 0xC
- orrs r0, r2
- strb r0, [r5, 0x5]
- movs r4, 0
- ldrsh r1, [r1, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x5]
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D86CC
-
- thumb_func_start sub_81D874C
-sub_81D874C: @ 81D874C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x2E
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _081D8764
- movs r0, 0xC
- strh r0, [r4, 0x6]
- movs r0, 0x8
- b _081D87C2
-_081D8764:
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _081D8774
- movs r0, 0x9
- strh r0, [r4, 0x6]
- movs r0, 0x7
- b _081D87C2
-_081D8774:
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- bne _081D8784
- movs r0, 0x8
- strh r0, [r4, 0x6]
- movs r0, 0x6
- b _081D87C2
-_081D8784:
- movs r0, 0x8C
- lsls r0, 1
- cmp r1, r0
- bne _081D8794
- movs r0, 0x7
- strh r0, [r4, 0x6]
- movs r0, 0x5
- b _081D87C2
-_081D8794:
- movs r0, 0x92
- lsls r0, 1
- cmp r1, r0
- bne _081D87A4
- movs r0, 0x6
- strh r0, [r4, 0x6]
- movs r0, 0x4
- b _081D87C2
-_081D87A4:
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bne _081D87B4
- movs r0, 0x5
- strh r0, [r4, 0x6]
- movs r0, 0x3
- b _081D87C2
-_081D87B4:
- movs r0, 0xA0
- lsls r0, 1
- cmp r1, r0
- bne _081D87C4
- movs r0, 0x4
- strh r0, [r4, 0x6]
- movs r0, 0x2
-_081D87C2:
- strh r0, [r4, 0x8]
-_081D87C4:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _081D87EE
- ldrh r0, [r5, 0x24]
- subs r0, 0x1
- strh r0, [r5, 0x24]
- ldr r2, =gSprites
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- subs r1, 0x1
- strh r1, [r0, 0x24]
-_081D87EE:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _081D8818
- ldrh r0, [r5, 0x26]
- adds r0, 0x1
- strh r0, [r5, 0x26]
- ldr r2, =gSprites
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
-_081D8818:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D874C
-
- thumb_func_start sub_81D8828
-sub_81D8828: @ 81D8828
- push {r4,lr}
- bl ResetVramOamAndBgCntRegs
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0862AB44
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00000804
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001804
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0xC1
- lsls r1, 6
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8828
-
- thumb_func_start sub_81D88D0
-sub_81D88D0: @ 81D88D0
- push {r4,lr}
- sub sp, 0x4
- bl reset_temp_tile_data_buffers
- ldr r1, =gRaySceneRayquazaChase_Gfx
- movs r4, 0
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneChaseStreaks_Gfx
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneChaseBg_Gfx
- str r4, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
-_081D8904:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _081D8904
- ldr r0, =gRayChaseRayquazaChase2_Tilemap
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, =gRayChaseRayquazaChase_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00000804
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneChaseStreaks_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00001004
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneChaseBg_Tilemap
- ldr r1, [r4]
- ldr r2, =0x00001804
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneChase_Pal
- movs r1, 0
- movs r2, 0x80
- bl LoadCompressedPalette
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D88D0
-
- thumb_func_start sub_81D8980
-sub_81D8980: @ 81D8980
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- bl sub_81D8828
- bl sub_81D88D0
- bl sub_81D68C8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, =sub_81D67EC
- bl SetVBlankCallback
- movs r0, 0
- strh r0, [r6]
- strh r0, [r6, 0x2]
- ldr r0, =sub_81D8AD8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x4]
- subs r5, 0x8
- adds r4, r5
- ldr r0, =sub_81D89E0
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8980
-
- thumb_func_start sub_81D89E0
-sub_81D89E0: @ 81D89E0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81D8BB4
- ldrh r1, [r4, 0x6]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _081D8A16
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bgt _081D8A16
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x59
- bgt _081D8A16
- movs r0, 0x67
- bl PlaySE
-_081D8A16:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _081D8A5C
- cmp r5, 0x1
- bgt _081D8A34
- cmp r5, 0
- beq _081D8A3E
- b _081D8AC6
- .pool
-_081D8A34:
- cmp r5, 0x2
- beq _081D8A8C
- cmp r5, 0x3
- beq _081D8AA8
- b _081D8AC6
-_081D8A3E:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _081D8AA2
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- strh r5, [r4, 0x2]
- b _081D8A9A
-_081D8A5C:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bne _081D8AA2
- movs r0, 0
- strh r0, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r2, =gTasks
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_81D8B2C
- b _081D8AC4
- .pool
-_081D8A8C:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0xC
- bne _081D8AA2
- movs r0, 0
- strh r0, [r4, 0x2]
-_081D8A9A:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _081D8AC6
-_081D8AA2:
- adds r0, r1, 0x1
- strh r0, [r4, 0x2]
- b _081D8AC6
-_081D8AA8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81D8BEC
-_081D8AC4:
- str r1, [r0]
-_081D8AC6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D89E0
-
- thumb_func_start sub_81D8AD8
-sub_81D8AD8: @ 81D8AD8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r5, r1, r0
- ldrh r1, [r5, 0x1E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081D8B1C
- bl Random
- movs r4, 0x7
- adds r1, r4, 0
- ands r1, r0
- subs r1, 0x4
- lsls r1, 8
- movs r0, 0x1
- movs r2, 0
- bl ChangeBgX
- bl Random
- ands r4, r0
- subs r4, 0x4
- lsls r4, 8
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl ChangeBgY
-_081D8B1C:
- ldrh r0, [r5, 0x1E]
- adds r0, 0x1
- strh r0, [r5, 0x1E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8AD8
-
- thumb_func_start sub_81D8B2C
-sub_81D8B2C: @ 81D8B2C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081D8B70
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0xA
- strh r0, [r4, 0x2]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- b _081D8BAA
- .pool
-_081D8B70:
- cmp r0, 0x1
- bne _081D8BAC
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r1, 8
- movs r0, 0x1
- movs r2, 0x2
- bl ChangeBgX
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r1, 8
- movs r0, 0x1
- movs r2, 0x1
- bl ChangeBgY
- ldrh r0, [r4, 0x4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0xA
- negs r1, r1
- cmp r0, r1
- bne _081D8BAC
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- negs r0, r0
-_081D8BAA:
- strh r0, [r4, 0x4]
-_081D8BAC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81D8B2C
-
- thumb_func_start sub_81D8BB4
-sub_81D8BB4: @ 81D8BB4
- push {r4,lr}
- movs r4, 0x80
- lsls r4, 3
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0x2
- bl ChangeBgX
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0x1
- bl ChangeBgY
- movs r4, 0x80
- lsls r4, 4
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x2
- bl ChangeBgX
- movs r0, 0
- adds r1, r4, 0
- movs r2, 0x1
- bl ChangeBgY
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81D8BB4
-
- thumb_func_start sub_81D8BEC
-sub_81D8BEC: @ 81D8BEC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, =gTasks + 0x8
- adds r4, r5, r6
- bl sub_81D8BB4
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081D8C26
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81D6904
- ldrb r0, [r4, 0x4]
- bl DestroyTask
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, =sub_81D6840
- str r1, [r0]
-_081D8C26:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8BEC
-
- thumb_func_start sub_81D8C38
-sub_81D8C38: @ 81D8C38
- push {r4,lr}
- bl ResetVramOamAndBgCntRegs
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0862AD08
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- adds r1, 0x4
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00000804
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x00001004
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- bl ResetAllBgsCoordinates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0xC1
- lsls r1, 6
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8C38
-
- thumb_func_start sub_81D8CC4
-sub_81D8CC4: @ 81D8CC4
- push {r4,lr}
- sub sp, 0x4
- bl reset_temp_tile_data_buffers
- ldr r1, =gRaySceneHushRing_Gfx
- movs r4, 0
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRaySceneHushBg_Gfx
- str r4, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
-_081D8CEA:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _081D8CEA
- ldr r0, =gRaySceneHushRing_Tilemap
- ldr r4, =gUnknown_0203CF60
- ldr r1, [r4]
- ldr r2, =0x00000804
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneHushBg_Tilemap
- ldr r1, [r4]
- adds r1, 0x4
- bl LZDecompressWram
- ldr r0, =gRaySceneHushRing_Map
- ldr r1, [r4]
- ldr r2, =0x00001004
- adds r1, r2
- bl LZDecompressWram
- ldr r0, =gRaySceneHushBg_Pal
- movs r1, 0
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, =gUnknown_0862AC28
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC30
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC38
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC40
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC48
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC50
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0862AC58
- bl LoadCompressedObjectPalette
- ldr r0, =gUnknown_0862AC60
- bl LoadCompressedObjectPalette
- ldr r0, =gUnknown_0862AC68
- bl LoadCompressedObjectPalette
- ldr r0, =gUnknown_0862AC70
- bl LoadCompressedObjectPalette
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8CC4
-
- thumb_func_start sub_81D8DB4
-sub_81D8DB4: @ 81D8DB4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r6, r4, r5
- bl sub_81D8C38
- bl sub_81D8CC4
- bl sub_81D68C8
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
- ldr r1, =0x00000241
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000e09
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, =sub_81D67EC
- bl SetVBlankCallback
- movs r0, 0
- strh r0, [r6]
- strh r0, [r6, 0x2]
- subs r5, 0x8
- adds r4, r5
- ldr r0, =sub_81D8E80
- str r0, [r4]
- ldr r0, =sub_81D8FB0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x4]
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0
- strh r2, [r0, 0x8]
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0xA]
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0xC]
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x1
- strh r2, [r0, 0xE]
- movs r0, 0x4
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0x10]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8DB4
-
- thumb_func_start sub_81D8E80
-sub_81D8E80: @ 81D8E80
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, =gTasks + 0x8
- mov r8, r0
- adds r4, r7, r0
- movs r1, 0
- ldrsh r5, [r4, r1]
- cmp r5, 0x1
- beq _081D8EDE
- cmp r5, 0x1
- bgt _081D8EB0
- cmp r5, 0
- beq _081D8EBA
- b _081D8FA0
- .pool
-_081D8EB0:
- cmp r5, 0x2
- beq _081D8F1E
- cmp r5, 0x3
- beq _081D8F84
- b _081D8FA0
-_081D8EBA:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- bne _081D8F18
- adds r0, r6, 0
- bl sub_81D90A8
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- strh r5, [r4, 0x2]
- b _081D8F30
-_081D8EDE:
- ldr r2, =gSprites
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, =sub_81D97E0
- cmp r1, r0
- bne _081D8FA0
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- bne _081D8F18
- adds r0, r6, 0
- bl sub_81D94D4
- adds r0, r6, 0
- bl sub_81D93D8
- b _081D8F2C
- .pool
-_081D8F18:
- adds r0, r1, 0x1
- strh r0, [r4, 0x2]
- b _081D8FA0
-_081D8F1E:
- ldrh r2, [r4, 0x2]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r0, 0xE0
- lsls r0, 1
- cmp r1, r0
- bne _081D8F38
-_081D8F2C:
- movs r0, 0
- strh r0, [r4, 0x2]
-_081D8F30:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _081D8FA0
-_081D8F38:
- adds r0, r2, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x90
- bl __modsi3
- lsls r0, 16
- asrs r4, r0, 16
- cmp r4, 0
- bne _081D8FA0
- ldr r0, =0x0000fffe
- ldr r1, =0x0000ffff
- str r1, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- ldr r0, =0xffff0000
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r1, 0x1
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl sub_80A2C44
- b _081D8FA0
- .pool
-_081D8F84:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =sub_81D9034
- str r1, [r0]
-_081D8FA0:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8E80
-
- thumb_func_start sub_81D8FB0
-sub_81D8FB0: @ 81D8FB0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- ldrh r1, [r4]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081D9024
- ldrh r1, [r4, 0x2]
- adds r1, 0xE
- lsls r1, 8
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- ands r1, r0
- ldrh r0, [r4, 0x4]
- adds r0, 0x9
- movs r2, 0xF
- ands r0, r2
- orrs r1, r0
- movs r0, 0x52
- bl SetGpuReg
- ldrh r1, [r4, 0x2]
- ldrh r0, [r4, 0x6]
- subs r1, r0
- strh r1, [r4, 0x2]
- ldrh r0, [r4, 0x8]
- ldrh r2, [r4, 0x4]
- adds r0, r2
- strh r0, [r4, 0x4]
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- beq _081D9008
- cmp r1, 0
- bne _081D9010
-_081D9008:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x6]
-_081D9010:
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- beq _081D901C
- cmp r0, 0
- bne _081D9024
-_081D901C:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x8]
-_081D9024:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D8FB0
-
- thumb_func_start sub_81D9034
-sub_81D9034: @ 81D9034
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, =gTasks + 0x8
- adds r4, r6, r7
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081D90A0
- bl StopMapMusic
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081D9078
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81D6904
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldrb r0, [r4, 0x4]
- bl DestroyTask
-_081D9078:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _081D909C
- strh r5, [r4, 0x2]
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, =sub_81D6840
- str r1, [r0]
- b _081D90A0
- .pool
-_081D909C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x2]
-_081D90A0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D9034
-
- thumb_func_start sub_81D90A8
-sub_81D90A8: @ 81D90A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- ldr r0, =gUnknown_0862AC78
- movs r1, 0x40
- movs r2, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x6]
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites + 0x2E
- mov r10, r1
- adds r7, r0, r1
- ldr r0, =gUnknown_0862AC90
- movs r1, 0x10
- movs r2, 0x82
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r2, 0x2E
- negs r2, r2
- add r2, r10
- mov r8, r2
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- movs r2, 0x4
- mov r9, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0
- ldrsh r0, [r7, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, =gUnknown_0862ACA8
- adds r0, r5, 0
- movs r1, 0xA0
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r7, r0, r1
- adds r0, r5, 0
- movs r1, 0xC0
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- adds r0, r5, 0
- movs r1, 0xE0
- movs r2, 0x80
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x2]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0
- ldrsh r0, [r7, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl StartSpriteAnim
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r0, =gUnknown_0862ACC0
- movs r2, 0x41
- negs r2, r2
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r7, r0, r1
- ldr r0, =gUnknown_0862ACD8
- movs r2, 0x71
- negs r2, r2
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x5]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- ands r6, r1
- orrs r6, r2
- strb r6, [r0, 0x5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D90A8
-
- thumb_func_start sub_81D9274
-sub_81D9274: @ 81D9274
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r0, =gTasks + 0x8
- adds r2, r0
- ldr r3, =gSprites
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r3
- mov r8, r1
- add r0, r8
- ldr r6, =pokemon_alive_on_battle_side
- str r6, [r0]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r4, 0
- strh r4, [r0, 0x36]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x38]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r5, 0x4
- strh r5, [r0, 0x3A]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x3C]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- str r6, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x36]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r4, [r0, 0x38]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r5, [r0, 0x3A]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D9274
-
- thumb_func_start pokemon_alive_on_battle_side
-pokemon_alive_on_battle_side: @ 81D9338
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x36]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _081D93CC
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081D9370
- ldrh r0, [r4, 0x20]
- ldrh r3, [r4, 0x3A]
- subs r0, r3
- strh r0, [r4, 0x20]
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, r3
- b _081D939E
- .pool
-_081D9370:
- ldrh r2, [r4, 0x3A]
- ldrh r1, [r4, 0x20]
- adds r0, r2, r1
- strh r0, [r4, 0x20]
- ldr r3, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x20]
- adds r2, r1
- strh r2, [r0, 0x20]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x3A]
- ldrh r2, [r0, 0x20]
- adds r1, r2
-_081D939E:
- strh r1, [r0, 0x20]
- ldrh r1, [r4, 0x38]
- adds r1, 0x1
- movs r2, 0
- strh r1, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- subs r0, r1
- strh r0, [r4, 0x3A]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3
- bne _081D93CC
- strh r2, [r4, 0x36]
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- b _081D93D2
- .pool
-_081D93CC:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
-_081D93D2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end pokemon_alive_on_battle_side
-
- thumb_func_start sub_81D93D8
-sub_81D93D8: @ 81D93D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r0, =gTasks + 0x8
- adds r2, r0
- ldr r3, =gSprites
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_81D9420
- str r1, [r0]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- bl StartSpriteAnim
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D93D8
-
- thumb_func_start sub_81D9420
-sub_81D9420: @ 81D9420
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081D9488
- cmp r0, 0x1
- bgt _081D9436
- cmp r0, 0
- beq _081D9440
- b _081D94C4
-_081D9436:
- cmp r0, 0x2
- beq _081D9440
- cmp r0, 0x3
- beq _081D9488
- b _081D94C4
-_081D9440:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- ldr r2, =gSprites
- cmp r0, 0
- bne _081D9470
- ldrh r0, [r4, 0x20]
- subs r0, 0x2
- strh r0, [r4, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x2
- strh r1, [r0, 0x20]
-_081D9470:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x26]
- b _081D94C4
- .pool
-_081D9488:
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x26]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r1, 26
- lsrs r1, 26
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081D94C4
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x1
- strh r1, [r0, 0x22]
-_081D94C4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D9420
-
- thumb_func_start sub_81D94D4
-sub_81D94D4: @ 81D94D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, =gSprites + 0x2E
- adds r4, r0, r2
- subs r2, 0x12
- adds r0, r2
- ldr r3, =sub_81D9528
- str r3, [r0]
- movs r0, 0
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- str r3, [r0]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- str r3, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D94D4
-
- thumb_func_start sub_81D9528
-sub_81D9528: @ 81D9528
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldrh r1, [r7, 0x36]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081D9550
- ldrh r1, [r7, 0x24]
- movs r2, 0x24
- ldrsh r0, [r7, r2]
- cmp r0, 0x1
- bne _081D954C
- ldr r0, =0x0000ffff
- b _081D954E
- .pool
-_081D954C:
- movs r0, 0x1
-_081D954E:
- strh r0, [r7, 0x24]
-_081D9550:
- movs r1, 0x38
- ldrsh r0, [r7, r1]
- cmp r0, 0x80
- bne _081D95CE
- ldr r2, =gUnknown_0862ACF0
- mov r8, r2
- mov r0, r8
- movs r1, 0x98
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- ldr r5, =gSprites
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r6, 0x4
- orrs r0, r6
- strb r0, [r1, 0x5]
- mov r0, r8
- movs r1, 0xE0
- movs r2, 0x84
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- movs r2, 0x3C
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x5]
- ands r4, r1
- orrs r4, r6
- strb r4, [r0, 0x5]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrh r0, [r7, 0x38]
- adds r0, 0x1
- strh r0, [r7, 0x38]
-_081D95CE:
- ldrh r1, [r7, 0x38]
- movs r2, 0x38
- ldrsh r0, [r7, r2]
- cmp r0, 0x7F
- ble _081D95F8
- movs r1, 0x26
- ldrsh r0, [r7, r1]
- cmp r0, 0x20
- beq _081D95FC
- ldrh r0, [r7, 0x3A]
- adds r0, 0x1
- strh r0, [r7, 0x3A]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r7, 0x26]
- b _081D95FC
- .pool
-_081D95F8:
- adds r0, r1, 0x1
- strh r0, [r7, 0x38]
-_081D95FC:
- ldrh r0, [r7, 0x36]
- movs r1, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081D960C
- movs r0, 0xA5
- bl PlaySE
-_081D960C:
- ldrh r0, [r7, 0x36]
- adds r0, 0x1
- strh r0, [r7, 0x36]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D9528
-
- thumb_func_start sub_81D961C
-sub_81D961C: @ 81D961C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- cmp r1, 0x40
- bgt _081D968C
- ldrh r0, [r4, 0x26]
- adds r0, 0x2
- strh r0, [r4, 0x26]
- ldr r5, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- adds r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- beq _081D964C
- b _081D979E
-_081D964C:
- movs r3, 0x30
- negs r3, r3
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl sub_81D9868
- movs r2, 0x5
- strh r2, [r4, 0x36]
- ldr r0, =0x0000ffff
- strh r0, [r4, 0x38]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x3
- strh r1, [r0, 0x36]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- b _081D979E
- .pool
-_081D968C:
- cmp r1, 0x6F
- bgt _081D96BE
- adds r0, r4, 0
- bl sub_81D97E0
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081D96A4
- movs r0, 0x68
- bl PlaySE
-_081D96A4:
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _081D979E
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x30
- movs r3, 0x10
- bl sub_81D9868
- b _081D979E
-_081D96BE:
- cmp r1, 0x70
- bne _081D96EC
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x36]
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x38]
- b _081D96F2
- .pool
-_081D96EC:
- ldr r0, =0x00000147
- cmp r1, r0
- bgt _081D9700
-_081D96F2:
- adds r0, r4, 0
- bl sub_81D97E0
- b _081D979E
- .pool
-_081D9700:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _081D974C
- adds r0, r4, 0
- bl sub_81D97E0
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0x30
- movs r3, 0x10
- bl sub_81D9868
- movs r3, 0x1
- strh r3, [r4, 0x24]
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- movs r0, 0xCB
- lsls r0, 1
- movs r1, 0
- bl PlayCry1
- ldr r0, =sub_81D98B4
- movs r1, 0
- bl CreateTask
- b _081D979E
- .pool
-_081D974C:
- movs r0, 0xB0
- lsls r0, 1
- cmp r1, r0
- beq _081D9790
- adds r0, 0x18
- cmp r1, r0
- bne _081D979E
- movs r3, 0
- strh r3, [r4, 0x24]
- ldr r2, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x24]
- adds r0, r4, 0
- bl sub_81D97E0
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0x30
- movs r3, 0x10
- bl sub_81D9868
- ldr r0, =sub_81D97E0
- str r0, [r4, 0x1C]
- b _081D97D2
- .pool
-_081D9790:
- ldr r0, =sub_81D8E80
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl sub_81D9274
-_081D979E:
- ldrh r2, [r4, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- ble _081D97CC
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _081D97CC
- movs r1, 0x24
- ldrsh r2, [r4, r1]
- negs r2, r2
- strh r2, [r4, 0x24]
- ldr r3, =gSprites
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x24]
-_081D97CC:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
-_081D97D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D961C
-
- thumb_func_start sub_81D97E0
-sub_81D97E0: @ 81D97E0
- push {r4-r7,lr}
- adds r3, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =gSprites
- adds r4, r0, r5
- ldrh r1, [r3, 0x3A]
- ldrh r0, [r4, 0x36]
- ands r0, r1
- cmp r0, 0
- bne _081D985C
- ldrh r2, [r3, 0x36]
- ldrh r1, [r3, 0x26]
- adds r0, r2, r1
- strh r0, [r3, 0x26]
- movs r7, 0x2E
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x26]
- adds r2, r1
- strh r2, [r0, 0x26]
- ldrh r0, [r3, 0x38]
- ldrh r2, [r3, 0x36]
- adds r0, r2
- strh r0, [r3, 0x36]
- lsls r0, 16
- asrs r5, r0, 16
- ldrh r6, [r4, 0x38]
- movs r7, 0x38
- ldrsh r2, [r4, r7]
- cmp r5, r2
- bge _081D9836
- movs r0, 0x36
- ldrsh r1, [r3, r0]
- adds r0, r2, 0
- cmn r1, r0
- bgt _081D985C
-_081D9836:
- cmp r5, r2
- ble _081D9844
- strh r6, [r3, 0x36]
- b _081D9854
- .pool
-_081D9844:
- movs r0, 0x36
- ldrsh r1, [r3, r0]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmn r1, r0
- bge _081D9854
- negs r0, r6
- strh r0, [r3, 0x36]
-_081D9854:
- movs r7, 0x38
- ldrsh r0, [r3, r7]
- negs r0, r0
- strh r0, [r3, 0x38]
-_081D985C:
- ldrh r0, [r3, 0x3A]
- adds r0, 0x1
- strh r0, [r3, 0x3A]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D97E0
-
- thumb_func_start sub_81D9868
-sub_81D9868: @ 81D9868
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0x2E
- ldrsh r1, [r0, r4]
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- ldr r1, =gSprites
- adds r4, r1
- lsls r2, 16
- asrs r2, 16
- ldrh r1, [r0, 0x20]
- adds r2, r1
- strh r2, [r4, 0x20]
- lsls r3, 16
- asrs r3, 16
- ldrh r1, [r0, 0x22]
- adds r3, r1
- strh r3, [r4, 0x22]
- ldrh r1, [r0, 0x24]
- strh r1, [r4, 0x24]
- ldrh r1, [r0, 0x26]
- strh r1, [r4, 0x26]
- adds r1, r5, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- adds r1, r5, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D9868
-
- thumb_func_start sub_81D98B4
-sub_81D98B4: @ 81D98B4
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r0, 0
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _081D990C
- cmp r1, 0x1
- bgt _081D98DC
- cmp r1, 0
- beq _081D98E2
- b _081D99B4
- .pool
-_081D98DC:
- cmp r1, 0x2
- beq _081D99A4
- b _081D99B4
-_081D98E2:
- movs r2, 0x80
- lsls r2, 7
- movs r0, 0x40
- str r0, [sp]
- adds r0, 0xC0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- movs r0, 0x2
- adds r1, r2, 0
- movs r3, 0x78
- bl SetBgAffine
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl SetGpuRegBits
- movs r0, 0x10
- strh r0, [r4, 0x8]
- b _081D9922
-_081D990C:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _081D991A
- movs r0, 0x12
- bl PlaySE
-_081D991A:
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- cmp r0, 0x2
- bne _081D992A
-_081D9922:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _081D99B4
-_081D992A:
- ldrh r5, [r4, 0x8]
- ldrh r1, [r4, 0x2]
- adds r0, r5, r1
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _081D9954
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _081D9954
- subs r0, r5, 0x2
- strh r0, [r4, 0x8]
-_081D9954:
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- strh r0, [r4, 0x6]
- movs r2, 0x80
- lsls r2, 7
- movs r0, 0x40
- str r0, [sp]
- ldrh r0, [r4, 0x2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- str r0, [sp, 0x4]
- ldrh r0, [r4, 0x2]
- subs r1, r0
- lsls r1, 16
- asrs r1, 16
- str r1, [sp, 0x8]
- movs r5, 0
- str r5, [sp, 0xC]
- movs r0, 0x2
- adds r1, r2, 0
- movs r3, 0x78
- bl SetBgAffine
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0xFF
- ble _081D99B4
- strh r5, [r4, 0x2]
- strh r5, [r4, 0x6]
- strh r5, [r4, 0xA]
- movs r0, 0x10
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _081D99B4
-_081D99A4:
- movs r1, 0x80
- lsls r1, 3
- movs r0, 0
- bl ClearGpuRegBits
- adds r0, r5, 0
- bl DestroyTask
-_081D99B4:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81D98B4
-
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 799348326..172af60a6 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -765,10 +765,10 @@ _080E73B0:
movs r0, 0x65
b _080E7564
_080E73B8:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r4, r0, 24
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -796,7 +796,7 @@ _080E73EA:
_080E73F8:
bl sub_800AA48
adds r4, r0, 0
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -808,7 +808,7 @@ _080E740C:
strh r4, [r5, 0x20]
lsls r4, 16
asrs r4, 16
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@@ -824,7 +824,7 @@ _080E742A:
_080E7432:
bl sub_800AA48
adds r4, r0, 0
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -868,7 +868,7 @@ _080E746E:
b _080E7564
.pool
_080E7490:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
lsls r0, 24
lsrs r0, 24
movs r1, 0
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
deleted file mode 100644
index ab5e0840c..000000000
--- a/asm/reset_rtc_screen.s
+++ /dev/null
@@ -1,1342 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809E8E8
-sub_809E8E8: @ 809E8E8
- push {lr}
- adds r3, r0, 0
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0809E9FE
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0809E9FE
- lsls r0, 2
- ldr r1, =_0809E920
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809E920:
- .4byte _0809E938
- .4byte _0809E95C
- .4byte _0809E980
- .4byte _0809E9A4
- .4byte _0809E9CE
- .4byte _0809E9F8
-_0809E938:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x35
- b _0809E9C6
-_0809E95C:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x56
- b _0809E9C6
-_0809E980:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x65
- b _0809E9C6
-_0809E9A4:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x74
-_0809E9C6:
- strh r0, [r3, 0x20]
- movs r0, 0x44
- strh r0, [r3, 0x22]
- b _0809E9FE
-_0809E9CE:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x42
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x99
- strh r0, [r3, 0x20]
- movs r0, 0x50
- strh r0, [r3, 0x22]
- b _0809E9FE
-_0809E9F8:
- adds r0, r3, 0
- bl DestroySprite
-_0809E9FE:
- pop {r0}
- bx r0
- thumb_func_end sub_809E8E8
-
- thumb_func_start sub_809EA04
-sub_809EA04: @ 809EA04
- push {lr}
- adds r3, r0, 0
- ldr r2, =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0809EAFE
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0809EAFE
- lsls r0, 2
- ldr r1, =_0809EA3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809EA3C:
- .4byte _0809EA54
- .4byte _0809EA78
- .4byte _0809EA9C
- .4byte _0809EAC0
- .4byte _0809EAEA
- .4byte _0809EAF8
-_0809EA54:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x35
- b _0809EAE2
-_0809EA78:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x56
- b _0809EAE2
-_0809EA9C:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x65
- b _0809EAE2
-_0809EAC0:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x74
-_0809EAE2:
- strh r0, [r3, 0x20]
- movs r0, 0x5C
- strh r0, [r3, 0x22]
- b _0809EAFE
-_0809EAEA:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0809EAFE
-_0809EAF8:
- adds r0, r3, 0
- bl DestroySprite
-_0809EAFE:
- pop {r0}
- bx r0
- thumb_func_end sub_809EA04
-
- thumb_func_start sub_809EB04
-sub_809EB04: @ 809EB04
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_085104C4
- bl LoadSpritePalette
- ldr r0, =gSpriteTemplate_85104F0
- mov r8, r0
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r6, =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r6, 0
- adds r4, 0x1C
- adds r2, r0, r4
- ldr r1, =sub_809E8E8
- str r1, [r2]
- adds r0, r6
- strh r5, [r0, 0x2E]
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x30]
- mov r0, r8
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r4
- ldr r1, =sub_809EA04
- str r1, [r4]
- adds r0, r6
- strh r5, [r0, 0x2E]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EB04
-
- thumb_func_start sub_809EB8C
-sub_809EB8C: @ 809EB8C
- push {lr}
- ldr r0, =gUnknown_085104C4
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EB8C
-
- thumb_func_start sub_809EBA0
-sub_809EBA0: @ 809EBA0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809EBA0
-
- thumb_func_start sub_809EBC4
-sub_809EBC4: @ 809EBC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r10, r0
- adds r0, r1, 0
- mov r9, r2
- adds r1, r3, 0
- ldr r5, [sp, 0x30]
- ldr r6, [sp, 0x34]
- ldr r2, [sp, 0x38]
- mov r8, r2
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, r0, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r7, =gStringVar4
- ldr r4, =gStringVar1
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r1, =gText_Day
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r5, =gText_Colon3
- adds r1, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- ldr r2, =gStringVar4
- mov r0, r9
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r0, r10
- movs r1, 0x1
- ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EBC4
-
- thumb_func_start sub_809ECB4
-sub_809ECB4: @ 809ECB4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r4, r0, 0
- mov r9, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r0, [sp, 0x24]
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0x85
- lsls r2, 2
- adds r0, r4, 0
- movs r1, 0
- movs r3, 0xE
- bl SetWindowBorderStyle
- str r5, [sp]
- str r6, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- mov r3, r9
- bl sub_809EBC4
- ldr r2, =gText_Confirm2
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x7E
- bl PrintTextOnWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809ECB4
-
- thumb_func_start sub_809ED38
-sub_809ED38: @ 809ED38
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r3, 16
- lsrs r3, 16
- adds r1, r3, 0
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0809ED52
- ldrh r0, [r4]
- subs r0, 0x1
- b _0809ED6C
-_0809ED52:
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- beq _0809ED60
- ldrh r0, [r4]
- adds r0, 0x1
- b _0809ED8A
-_0809ED60:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0809ED7A
- ldrh r0, [r4]
- subs r0, 0xA
-_0809ED6C:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r5
- bge _0809ED96
- strh r2, [r4]
- b _0809ED96
-_0809ED7A:
- movs r0, 0x10
- ands r1, r0
- cmp r1, 0
- bne _0809ED86
- movs r0, 0
- b _0809ED98
-_0809ED86:
- ldrh r0, [r4]
- adds r0, 0xA
-_0809ED8A:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r2
- ble _0809ED96
- strh r5, [r4]
-_0809ED96:
- movs r0, 0x1
-_0809ED98:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809ED38
-
- thumb_func_start sub_809EDA0
-sub_809EDA0: @ 809EDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- bx lr
- .pool
- thumb_func_end sub_809EDA0
-
- thumb_func_start sub_809EDB8
-sub_809EDB8: @ 809EDB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r5, =gTasks + 0x8
- adds r0, r4, r5
- ldrb r0, [r0, 0x10]
- bl sub_809EBA0
- bl sub_809EB8C
- subs r5, 0x8
- adds r4, r5
- ldr r0, =sub_809EDA0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EDB8
-
- thumb_func_start sub_809EDE8
-sub_809EDE8: @ 809EDE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, =gTasks + 0x8
- mov r8, r0
- adds r5, r7, r0
- ldrb r4, [r5, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, =gUnknown_08510420 - 0x4
- adds r2, r0, r1
- ldr r1, =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- mov r12, r1
- cmp r0, 0
- beq _0809EE3C
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, =sub_809EDB8
- str r1, [r0]
- movs r0, 0
- strh r0, [r5, 0x2]
- movs r0, 0x6
- b _0809EE5C
- .pool
-_0809EE3C:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0809EE4A
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- bne _0809EE5C
-_0809EE4A:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809EE66
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0809EE66
-_0809EE5C:
- strh r0, [r5, 0x4]
- movs r0, 0x5
- bl PlaySE
- b _0809EEF4
-_0809EE66:
- cmp r4, 0x5
- bne _0809EEB4
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0809EEF4
- ldr r1, =gLocalTime
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strb r0, [r1, 0x2]
- ldrh r0, [r5, 0xA]
- strb r0, [r1, 0x3]
- ldrh r0, [r5, 0xC]
- strb r0, [r1, 0x4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_809EDB8
- str r1, [r0]
- strh r4, [r5, 0x2]
- movs r0, 0x6
- strh r0, [r5, 0x4]
- b _0809EEF4
- .pool
-_0809EEB4:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r1, [r2, 0x2]
- ldrh r2, [r2, 0x4]
- mov r3, r12
- ldrh r4, [r3, 0x30]
- movs r3, 0xC0
- ands r3, r4
- bl sub_809ED38
- cmp r0, 0
- beq _0809EEF4
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r5, 0x10]
- ldrh r3, [r5, 0x6]
- ldrb r1, [r5, 0x8]
- str r1, [sp]
- ldrb r1, [r5, 0xA]
- str r1, [sp, 0x4]
- ldrb r1, [r5, 0xC]
- str r1, [sp, 0x8]
- movs r1, 0
- movs r2, 0x1
- bl sub_809EBC4
- ldrb r0, [r5, 0x10]
- movs r1, 0x2
- bl CopyWindowToVram
-_0809EEF4:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809EDE8
-
- thumb_func_start sub_809EF00
-sub_809EF00: @ 809EF00
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, r0, 2
- add r6, r8
- lsls r6, 3
- ldr r0, =gTasks + 0x8
- mov r9, r0
- adds r5, r6, r0
- movs r0, 0
- strh r0, [r5]
- ldr r1, =gLocalTime
- ldrh r0, [r1]
- strh r0, [r5, 0x6]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- strh r0, [r5, 0x8]
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- strh r0, [r5, 0xA]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- strh r0, [r5, 0xC]
- ldr r0, =gUnknown_08510420
- bl AddWindow
- strh r0, [r5, 0x10]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x6]
- ldrb r2, [r5, 0x8]
- ldrb r3, [r5, 0xA]
- ldrb r4, [r5, 0xC]
- str r4, [sp]
- bl sub_809ECB4
- mov r0, r8
- bl sub_809EB04
- movs r0, 0x2
- strh r0, [r5, 0x4]
- movs r0, 0x8
- negs r0, r0
- add r9, r0
- add r6, r9
- ldr r0, =sub_809EDE8
- str r0, [r6]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EF00
-
- thumb_func_start sub_809EF88
-sub_809EF88: @ 809EF88
- push {r4-r7,lr}
- sub sp, 0x4
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl SetVBlankCallback
- movs r2, 0xA0
- lsls r2, 19
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, =0x040000d4
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- movs r5, 0x80
- lsls r5, 5
- ldr r7, =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0809EFCA:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0809EFCA
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- bl LoadOam
- bl ScanlineEffect_Stop
- bl dp12_8087EA4
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- bl sub_809F048
- ldr r0, =sub_809F0AC
- bl SetVBlankCallback
- ldr r0, =sub_809F090
- bl SetMainCallback2
- ldr r0, =sub_809F200
- movs r1, 0x50
- bl CreateTask
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809EF88
-
- thumb_func_start sub_809F048
-sub_809F048: @ 809F048
- push {lr}
- bl clear_scheduled_bg_copies_to_vram
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08510404
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- ldr r0, =gUnknown_08510408
- bl InitWindows
- bl DeactivateAllTextPrinters
- bl sub_81973A4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809F048
-
- thumb_func_start sub_809F090
-sub_809F090: @ 809F090
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_809F090
-
- thumb_func_start sub_809F0AC
-sub_809F0AC: @ 809F0AC
- push {lr}
- bl ProcessSpriteCopyRequests
- bl LoadOam
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_809F0AC
-
- thumb_func_start sub_809F0C0
-sub_809F0C0: @ 809F0C0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- movs r1, 0
- movs r3, 0xF
- bl sub_8197B1C
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl PrintTextOnWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809F0C0
-
- thumb_func_start sub_809F0F8
-sub_809F0F8: @ 809F0F8
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r0, 0
- ldrsh r5, [r6, r0]
- cmp r5, 0
- beq _0809F11C
- cmp r5, 0x1
- beq _0809F1B2
- b _0809F1F8
- .pool
-_0809F11C:
- movs r2, 0x85
- lsls r2, 2
- movs r0, 0
- movs r1, 0
- movs r3, 0xE
- bl SetWindowBorderStyle
- ldr r2, =gText_PresentTime
- movs r0, 0x1
- str r0, [sp]
- movs r4, 0xFF
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldr r1, =gLocalTime
- ldrh r3, [r1]
- ldrb r0, [r1, 0x2]
- str r0, [sp]
- ldrb r0, [r1, 0x3]
- str r0, [sp, 0x4]
- ldrb r0, [r1, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x11
- bl sub_809EBC4
- ldr r2, =gText_PreviousTime
- movs r0, 0x21
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xA0
- ldrh r3, [r0]
- adds r0, 0x2
- ldrb r0, [r0]
- str r0, [sp]
- adds r0, r1, 0
- adds r0, 0xA3
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0x31
- bl sub_809EBC4
- ldr r0, =gText_ResetRTCConfirmCancel
- bl sub_809F0C0
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
-_0809F1B2:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809F1E4
- adds r0, r7, 0
- bl DestroyTask
- bl DoSoftReset
- b _0809F1F8
- .pool
-_0809F1E4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809F1F8
- movs r0, 0x5
- bl PlaySE
- adds r0, r7, 0
- bl DestroyTask
-_0809F1F8:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809F0F8
-
- thumb_func_start sub_809F200
-sub_809F200: @ 809F200
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x6
- bls _0809F21C
- b _0809F404
-_0809F21C:
- lsls r0, 2
- ldr r1, =_0809F230
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809F230:
- .4byte _0809F24C
- .4byte _0809F268
- .4byte _0809F2B4
- .4byte _0809F310
- .4byte _0809F398
- .4byte _0809F3C8
- .4byte _0809F3EA
-_0809F24C:
- movs r0, 0x1
- negs r0, r0
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strh r0, [r5]
- b _0809F404
- .pool
-_0809F268:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809F276
- b _0809F404
-_0809F276:
- ldr r0, =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _0809F282
- cmp r0, 0x2
- bne _0809F29C
-_0809F282:
- ldr r0, =gText_NoSaveFileCantSetTime
- bl sub_809F0C0
- movs r0, 0x5
- strh r0, [r5]
- b _0809F404
- .pool
-_0809F29C:
- bl RtcCalcLocalTime
- ldr r0, =sub_809F0F8
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- b _0809F334
- .pool
-_0809F2B4:
- ldr r2, =gTasks
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0x1
- bne _0809F2CA
- b _0809F404
-_0809F2CA:
- movs r0, 0
- movs r1, 0
- bl sub_8198070
- ldr r0, =gText_PleaseResetTime
- bl sub_809F0C0
- ldr r2, =gLocalTime
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xA0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, =sub_809EF00
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- movs r0, 0x3
- strh r0, [r5]
- b _0809F404
- .pool
-_0809F310:
- ldr r2, =gTasks
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0809F404
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0809F340
- ldrb r0, [r5, 0x2]
- bl DestroyTask
-_0809F334:
- movs r0, 0x2
- strh r0, [r5]
- b _0809F404
- .pool
-_0809F340:
- ldrb r0, [r5, 0x2]
- bl DestroyTask
- bl RtcReset
- ldr r4, =gLocalTime
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- movs r2, 0x3
- ldrsb r2, [r4, r2]
- movs r3, 0x4
- ldrsb r3, [r4, r3]
- bl RtcCalcLocalTimeOffset
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xA0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, =0x00004040
- ldrh r1, [r4]
- bl VarSet
- bl DisableResetRTC
- ldr r0, =gText_ClockHasBeenReset
- bl sub_809F0C0
- movs r0, 0x4
- strh r0, [r5]
- b _0809F404
- .pool
-_0809F398:
- movs r0, 0
- bl TrySavingData
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809F3B8
- ldr r0, =gText_SaveCompleted
- bl sub_809F0C0
- movs r0, 0x49
- bl PlaySE
- b _0809F3C4
- .pool
-_0809F3B8:
- ldr r0, =gText_SaveFailed
- bl sub_809F0C0
- movs r0, 0x16
- bl PlaySE
-_0809F3C4:
- movs r0, 0x5
- strh r0, [r5]
-_0809F3C8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809F404
- movs r0, 0x1
- negs r0, r0
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x6
- strh r0, [r5]
-_0809F3EA:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809F404
- adds r0, r4, 0
- bl DestroyTask
- bl FreeAllWindowBuffers
- bl DoSoftReset
-_0809F404:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809F200
-
- thumb_func_start sub_809F41C
-sub_809F41C: @ 809F41C
- push {lr}
- ldr r0, =0x00000861
- bl FlagSet
- movs r0, 0x86
- lsls r0, 4
- bl FlagSet
- ldr r0, =0x00000862
- bl FlagSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809F41C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_movement.s b/asm/script_movement.s
index 5f06fd179..8c6a6257c 100644
--- a/asm/script_movement.s
+++ b/asm/script_movement.s
@@ -553,7 +553,7 @@ _080D36DC:
adds r1, r6, 0
bl sub_80D355C
adds r0, r4, 0
- bl sub_8097404
+ bl FreezeMapObject
b _080D370E
.pool
_080D36F8:
diff --git a/asm/shop.s b/asm/shop.s
index eacef5837..97dbd07c8 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -188,7 +188,7 @@ HandleShopMenuBuy: @ 80DFBD0
str r0, [r1]
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
pop {r4}
pop {r0}
bx r0
@@ -216,7 +216,7 @@ HandleShopMenuSell: @ 80DFC0C
str r0, [r1]
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
pop {r4}
pop {r0}
bx r0
@@ -969,7 +969,7 @@ _080E02AE:
ldr r0, =0x0000083e
adds r1, r3, r0
adds r0, r1, 0
- bl AddItemIconObject
+ bl AddItemIconSprite
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
diff --git a/asm/start_menu.s b/asm/start_menu.s
index e7d70faf3..5b6652a6f 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -170,7 +170,7 @@ _0809F926:
b _0809F940
.pool
_0809F930:
- ldr r4, =gUnknown_0203761A
+ ldr r4, =gUnknown_02037619+1
adds r0, r4, 0
movs r1, 0x2
bl PrintStartMenuActions
@@ -449,7 +449,7 @@ _0809FB34:
beq _0809FBA0
movs r0, 0x1
movs r1, 0
- bl fade_screen
+ bl FadeScreen
b _0809FBA0
.pool
_0809FB98:
@@ -1561,7 +1561,7 @@ _080A0490:
bl ResetSpriteData
bl ResetTasks
bl ResetPaletteFade
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
b _080A04FC
_080A04A2:
movs r0, 0
diff --git a/asm/time_events.s b/asm/time_events.s
deleted file mode 100644
index de2d2d165..000000000
--- a/asm/time_events.s
+++ /dev/null
@@ -1,225 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetMirageRnd
-GetMirageRnd: @ 8137890
- push {r4,lr}
- ldr r0, =0x00004024
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004025
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetMirageRnd
-
- thumb_func_start SetMirageRnd
-SetMirageRnd: @ 81378BC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =0x00004024
- lsrs r1, r4, 16
- bl VarSet
- ldr r0, =0x00004025
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetMirageRnd
-
- thumb_func_start InitMirageRnd
-InitMirageRnd: @ 81378E4
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl SetMirageRnd
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end InitMirageRnd
-
- thumb_func_start UpdateMirageRnd
-UpdateMirageRnd: @ 8137904
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetMirageRnd
- adds r1, r0, 0
- cmp r4, 0
- beq _08137928
- ldr r3, =0x41c64e6d
- ldr r2, =0x00003039
-_08137918:
- adds r0, r1, 0
- muls r0, r3
- adds r1, r0, r2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _08137918
-_08137928:
- adds r0, r1, 0
- bl SetMirageRnd
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateMirageRnd
-
- thumb_func_start IsMirageIslandPresent
-IsMirageIslandPresent: @ 813793C
- push {r4-r6,lr}
- bl GetMirageRnd
- lsrs r6, r0, 16
- movs r5, 0
-_08137946:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08137978
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, =0x0000ffff
- ands r1, r0
- cmp r1, r6
- bne _08137978
- movs r0, 0x1
- b _08137980
- .pool
-_08137978:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08137946
- movs r0, 0
-_08137980:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsMirageIslandPresent
-
- thumb_func_start UpdateShoalTideFlag
-UpdateShoalTideFlag: @ 8137988
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- cmp r0, 0
- beq _081379CE
- bl RtcCalcLocalTime
- ldr r1, =gUnknown_085B2B44
- ldr r0, =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081379C8
- ldr r0, =0x0000089a
- bl FlagSet
- b _081379CE
- .pool
-_081379C8:
- ldr r0, =0x0000089a
- bl FlagClear
-_081379CE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateShoalTideFlag
-
- thumb_func_start Task_WaitWeather
-Task_WaitWeather: @ 81379D8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80AC3BC
- lsls r0, 24
- cmp r0, 0
- beq _081379F2
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_081379F2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end Task_WaitWeather
-
- thumb_func_start WaitWeather
-WaitWeather: @ 81379F8
- push {lr}
- ldr r0, =Task_WaitWeather
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end WaitWeather
-
- thumb_func_start InitBirchState
-InitBirchState: @ 8137A0C
- push {lr}
- ldr r0, =0x00004049
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .pool
- thumb_func_end InitBirchState
-
- thumb_func_start UpdateBirchState
-UpdateBirchState: @ 8137A20
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =0x00004049
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x7
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end UpdateBirchState
diff --git a/asm/title_screen.s b/asm/title_screen.s
deleted file mode 100644
index 54c1b5353..000000000
--- a/asm/title_screen.s
+++ /dev/null
@@ -1,1321 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80AA40C
-sub_80AA40C: @ 80AA40C
- push {lr}
- adds r3, r0, 0
- ldr r2, =gTasks
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080AA43C
- ldrb r0, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x42
- strh r0, [r3, 0x22]
- b _080AA46A
- .pool
-_080AA43C:
- ldrh r1, [r3, 0x22]
- movs r2, 0x22
- ldrsh r0, [r3, r2]
- cmp r0, 0x42
- beq _080AA44A
- adds r0, r1, 0x1
- strh r0, [r3, 0x22]
-_080AA44A:
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _080AA458
- subs r0, r1, 0x1
- strh r0, [r3, 0x2E]
-_080AA458:
- ldr r0, =gUnknown_0853FF70
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- movs r0, 0x52
- bl SetGpuReg
-_080AA46A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80AA40C
-
- thumb_func_start sub_80AA474
-sub_80AA474: @ 80AA474
- push {lr}
- adds r3, r0, 0
- ldr r2, =gTasks
- movs r0, 0x30
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080AA4A0
- ldrb r0, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x42
- b _080AA4AC
- .pool
-_080AA4A0:
- ldrh r1, [r3, 0x22]
- movs r2, 0x22
- ldrsh r0, [r3, r2]
- cmp r0, 0x42
- beq _080AA4AE
- adds r0, r1, 0x1
-_080AA4AC:
- strh r0, [r3, 0x22]
-_080AA4AE:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA474
-
- thumb_func_start sub_80AA4B4
-sub_80AA4B4: @ 80AA4B4
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _080AA4DC
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080AA4DC
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _080AA4E8
-_080AA4DC:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_080AA4E8:
- pop {r0}
- bx r0
- thumb_func_end sub_80AA4B4
-
- thumb_func_start sub_80AA4EC
-sub_80AA4EC: @ 80AA4EC
- push {r4-r7,lr}
- lsls r0, 16
- ldr r2, =0xffc00000
- adds r0, r2
- lsrs r0, 16
- movs r6, 0
- lsls r7, r1, 16
-_080AA4FA:
- lsls r5, r0, 16
- asrs r5, 16
- ldr r0, =gUnknown_085400D8
- adds r1, r5, 0
- asrs r2, r7, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, =gSprites
- adds r4, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, 0x20
- lsls r5, 16
- lsrs r0, r5, 16
- cmp r6, 0x4
- bls _080AA4FA
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80AA4EC
-
- thumb_func_start sub_80AA548
-sub_80AA548: @ 80AA548
- push {r4-r6,lr}
- lsls r0, 16
- ldr r2, =0xffc00000
- adds r0, r2
- lsrs r0, 16
- movs r5, 0
- lsls r6, r1, 16
-_080AA556:
- lsls r4, r0, 16
- asrs r4, 16
- ldr r0, =gUnknown_085400D8
- adds r1, r4, 0
- asrs r2, r6, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r1, r5, 0x5
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x20
- lsls r4, 16
- lsrs r0, r4, 16
- cmp r5, 0x4
- bls _080AA556
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80AA548
-
- thumb_func_start title_screen_logo_shine_obj_callback_type1
-@ void title_screen_logo_shine_obj_callback_type1(struct obj *obj)
-title_screen_logo_shine_obj_callback_type1: @ 80AA5A4
- push {r4,lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x20]
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- ldr r0, =0x0000010f
- cmp r1, r0
- bgt _080AA63C
- movs r4, 0x2E
- ldrsh r0, [r3, r4]
- adds r4, r2, 0
- cmp r0, 0
- beq _080AA630
- cmp r1, 0x77
- bgt _080AA5E0
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1E
- bgt _080AA5F8
- adds r1, 0x1
- strh r1, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1E
- bgt _080AA5F8
- adds r0, r1, 0x1
- b _080AA5F6
- .pool
-_080AA5E0:
- ldrh r1, [r3, 0x30]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _080AA5F8
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- beq _080AA5F8
- subs r0, r1, 0x2
-_080AA5F6:
- strh r0, [r3, 0x30]
-_080AA5F8:
- ldrh r1, [r3, 0x30]
- movs r0, 0x1F
- ands r0, r1
- lsls r2, r0, 10
- lsls r1, r0, 5
- adds r2, r1
- orrs r2, r0
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- ldrh r4, [r3, 0x20]
- cmp r0, 0x84
- beq _080AA61C
- cmp r0, 0x88
- beq _080AA61C
- cmp r0, 0x8C
- beq _080AA61C
- cmp r0, 0x90
- bne _080AA62C
-_080AA61C:
- ldr r1, =gPlttBufferFaded
- ldr r0, =0x000033f8
- strh r0, [r1]
- b _080AA630
- .pool
-_080AA62C:
- ldr r0, =gPlttBufferFaded
- strh r2, [r0]
-_080AA630:
- adds r0, r4, 0x4
- strh r0, [r3, 0x20]
- b _080AA648
- .pool
-_080AA63C:
- ldr r1, =gPlttBufferFaded
- movs r0, 0
- strh r0, [r1]
- adds r0, r3, 0
- bl DestroySprite
-_080AA648:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end title_screen_logo_shine_obj_callback_type1
-
- thumb_func_start title_screen_logo_shine_obj_callback_type2
-@ void title_screen_logo_shine_obj_callback_type2(struct obj *obj)
-title_screen_logo_shine_obj_callback_type2: @ 80AA654
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x20]
- movs r0, 0x20
- ldrsh r1, [r2, r0]
- ldr r0, =0x0000010f
- cmp r1, r0
- bgt _080AA670
- adds r0, r3, 0
- adds r0, 0x8
- strh r0, [r2, 0x20]
- b _080AA676
- .pool
-_080AA670:
- adds r0, r2, 0
- bl DestroySprite
-_080AA676:
- pop {r0}
- bx r0
- thumb_func_end title_screen_logo_shine_obj_callback_type2
-
- thumb_func_start title_screen_add_logo_shine_obj
-@ void title_screen_add_logo_shine_obj(int a1)
-title_screen_add_logo_shine_obj: @ 80AA67C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- beq _080AA6D0
- cmp r5, 0x1
- bgt _080AA698
- cmp r5, 0
- beq _080AA69C
- b _080AA766
-_080AA698:
- cmp r5, 0x2
- bne _080AA766
-_080AA69C:
- ldr r0, =gUnknown_08540124
- movs r1, 0
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- strh r5, [r0, 0x2E]
- b _080AA766
- .pool
-_080AA6D0:
- ldr r0, =gUnknown_08540124
- mov r9, r0
- movs r1, 0
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r6, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x8
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x1]
- strh r5, [r1, 0x2E]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- mov r0, r9
- movs r1, 0
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r0, r1, r5
- ldr r2, =title_screen_logo_shine_obj_callback_type2
- mov r10, r2
- str r2, [r0]
- adds r1, r6
- ldrb r2, [r1, 0x1]
- adds r0, r4, 0
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x1]
- movs r1, 0x50
- negs r1, r1
- mov r0, r9
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r5
- mov r1, r10
- str r1, [r5]
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r4, r1
- mov r2, r8
- orrs r4, r2
- strb r4, [r0, 0x1]
-_080AA766:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end title_screen_add_logo_shine_obj
-
- thumb_func_start title_screen_vblank_callback
-@ void title_screen_vblank_callback()
-title_screen_vblank_callback: @ 80AA780
- push {lr}
- bl sub_80BA0A8
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end title_screen_vblank_callback
-
- thumb_func_start c2_title_screen_1
-@ void c2_title_screen_1()
-c2_title_screen_1: @ 80AA7A4
- push {r4,lr}
- sub sp, 0x14
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _080AA7E0
- lsls r0, 2
- ldr r1, =_080AA7C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080AA7C8:
- .4byte _080AA7E0
- .4byte _080AA8C4
- .4byte _080AA998
- .4byte _080AA9E0
- .4byte _080AAA14
- .4byte _080AAAF0
-_080AA7E0:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, =0x00007fff
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xC
- movs r1, 0
- bl SetGpuReg
- movs r0, 0xA
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x8
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- add r1, sp, 0xC
- movs r0, 0
- strh r0, [r1]
- ldr r1, =0x040000d4
- add r0, sp, 0xC
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x10]
- add r0, sp, 0x10
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- strh r2, [r0]
- str r0, [r1]
- ldr r0, =0x05000002
- str r0, [r1, 0x4]
- ldr r0, =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _080AAB1E
- .pool
-_080AA8C4:
- ldr r0, =gTitleScreenPokemonLogoGfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, =gUnknown_08DE0644
- ldr r1, =0x06004800
- bl LZ77UnCompVram
- ldr r0, =gTitleScreenBgPalettes
- movs r2, 0xF0
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- ldr r0, =gTitleScreenRayquazaGfx
- ldr r1, =0x06008000
- bl LZ77UnCompVram
- ldr r0, =gTitleScreenRayquazaTilemap
- ldr r1, =0x0600d000
- bl LZ77UnCompVram
- ldr r0, =gTitleScreenCloudsGfx
- ldr r1, =0x0600c000
- bl LZ77UnCompVram
- ldr r0, =gUnknown_08DDE458
- ldr r1, =0x0600d800
- bl LZ77UnCompVram
- bl ScanlineEffect_Stop
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, =gReservedSpritePaletteCount
- movs r0, 0x9
- strb r0, [r1]
- ldr r0, =gUnknown_08540048
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_085400F0
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0854013C
- bl LoadCompressedObjectPic
- ldr r0, =gTitleScreenEmeraldVersionPal
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_08540100
- bl LoadSpritePalette
- ldr r0, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- b _080AAB1E
- .pool
-_080AA998:
- ldr r0, =task_title_screen_1
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, =0x0000fff0
- strh r0, [r1, 0xC]
- subs r0, 0x10
- strh r0, [r1, 0xE]
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- b _080AAB1E
- .pool
-_080AA9E0:
- movs r0, 0x1
- negs r0, r0
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =title_screen_vblank_callback
- bl SetVBlankCallback
- ldr r0, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- movs r1, 0x4
- strb r1, [r0]
- b _080AAB1E
- .pool
-_080AAA14:
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x78
- movs r1, 0x50
- movs r3, 0
- bl sub_816F2A8
- movs r1, 0xE3
- lsls r1, 8
- movs r0, 0x28
- bl SetGpuReg
- ldr r4, =0x0000ffff
- movs r0, 0x2A
- adds r1, r4, 0
- bl SetGpuReg
- movs r1, 0xE0
- lsls r1, 8
- movs r0, 0x2C
- bl SetGpuReg
- movs r0, 0x2E
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- ldr r1, =0x00001f1f
- movs r0, 0x48
- bl SetGpuReg
- ldr r1, =0x00003f1f
- movs r0, 0x4A
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0x84
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0xC
- bl SetGpuReg
- ldr r1, =0x00001a0b
- movs r0, 0x8
- bl SetGpuReg
- ldr r1, =0x00001b0e
- movs r0, 0xA
- bl SetGpuReg
- ldr r1, =0x00004981
- movs r0, 0xC
- bl SetGpuReg
- movs r0, 0x1
- bl EnableInterrupts
- ldr r1, =0x0000b441
- movs r0, 0
- bl SetGpuReg
- ldr r0, =0x0000019d
- bl m4aSongNumStart
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _080AAB1E
- .pool
-_080AAAF0:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080AAB1E
- movs r0, 0
- bl title_screen_add_logo_shine_obj
- str r4, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0x4
- bl sub_80BA384
- ldr r0, =c2_title_screen_2
- bl SetMainCallback2
-_080AAB1E:
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_title_screen_1
-
- thumb_func_start c2_title_screen_2
-@ void c2_title_screen_2()
-c2_title_screen_2: @ 80AAB2C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end c2_title_screen_2
-
- thumb_func_start task_title_screen_1
-@ void task_title_screen_1(int task_id)
-task_title_screen_1: @ 80AAB44
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r6, =gTasks
- cmp r0, 0
- bne _080AAB6A
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r6
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- adds r4, r0, 0
- cmp r1, 0
- beq _080AAB7C
-_080AAB6A:
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r4, r3, 0
-_080AAB7C:
- adds r0, r4, r5
- lsls r0, 3
- adds r6, r0, r6
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080AABC0
- ldrh r0, [r6, 0x8]
- cmp r0, 0xB0
- bne _080AABA0
- movs r0, 0x1
- bl title_screen_add_logo_shine_obj
- b _080AABAA
- .pool
-_080AABA0:
- cmp r0, 0x40
- bne _080AABAA
- movs r0, 0x2
- bl title_screen_add_logo_shine_obj
-_080AABAA:
- ldr r0, =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- b _080AAC32
- .pool
-_080AABC0:
- ldr r1, =0x00001441
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, =0x00003f50
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r0, =gUnknown_08540018
- movs r1, 0x62
- movs r2, 0x2
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x40
- strh r0, [r1, 0x2E]
- strh r5, [r1, 0x30]
- ldr r0, =gUnknown_08540030
- movs r1, 0xA2
- movs r2, 0x2
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- strh r5, [r1, 0x30]
- movs r0, 0x90
- strh r0, [r6, 0x8]
- ldr r0, =task_title_screen_2
- str r0, [r6]
-_080AAC32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_title_screen_1
-
- thumb_func_start task_title_screen_2
-@ void task_title_screen_2(int task_id)
-task_title_screen_2: @ 80AAC50
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r2, =gTasks
- cmp r0, 0
- bne _080AAC76
- lsls r0, r4, 2
- adds r1, r0, r4
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- adds r6, r0, 0
- cmp r1, 0
- beq _080AAC88
-_080AAC76:
- lsls r3, r4, 2
- adds r0, r3, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r6, r3, 0
-_080AAC88:
- ldr r1, =gTasks
- adds r0, r6, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- movs r1, 0x8
- ldrsh r7, [r5, r1]
- cmp r7, 0
- beq _080AACA8
- subs r0, 0x1
- strh r0, [r5, 0x8]
- b _080AACE2
- .pool
-_080AACA8:
- movs r0, 0x1
- strh r0, [r5, 0xA]
- ldr r1, =0x00002142
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000f06
- movs r0, 0x52
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- ldr r1, =0x00001741
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x80
- movs r1, 0x6C
- bl sub_80AA4EC
- movs r0, 0x80
- movs r1, 0x94
- bl sub_80AA548
- strh r7, [r5, 0x10]
- ldr r0, =task_title_screen_3
- str r0, [r5]
-_080AACE2:
- ldr r2, =gTasks
- adds r0, r6, r4
- lsls r0, 3
- adds r3, r0, r2
- ldrh r1, [r3, 0x8]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080AAD02
- ldrh r1, [r3, 0xC]
- movs r5, 0xC
- ldrsh r0, [r3, r5]
- cmp r0, 0
- beq _080AAD02
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
-_080AAD02:
- adds r0, r6, r4
- lsls r0, 3
- adds r3, r0, r2
- ldrh r1, [r3, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AAD20
- ldrh r1, [r3, 0xE]
- movs r5, 0xE
- ldrsh r0, [r3, r5]
- cmp r0, 0
- beq _080AAD20
- adds r0, r1, 0x1
- strh r0, [r3, 0xE]
-_080AAD20:
- adds r4, r6, r4
- lsls r4, 3
- adds r4, r2
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r5, r1, 8
- lsls r1, 24
- lsrs r1, 16
- movs r0, 0x2C
- bl SetGpuReg
- lsrs r5, 16
- movs r0, 0x2E
- adds r1, r5, 0
- bl SetGpuReg
- movs r0, 0xF
- strh r0, [r4, 0x12]
- movs r0, 0x6
- strh r0, [r4, 0x14]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_title_screen_2
-
- thumb_func_start task_title_screen_3
-@ void task_title_screen_3(int task_id)
-task_title_screen_3: @ 80AAD64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080AAD84
- movs r0, 0x8
- ands r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080AADB0
-_080AAD84:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =Cb2_GoToMainMenu
- bl SetMainCallback2
- b _080AAE98
- .pool
-_080AADB0:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x46
- ands r0, r1
- cmp r0, 0x46
- bne _080AADC8
- ldr r0, =c2_clear_save_data_screen_1
- bl SetMainCallback2
- b _080AAE98
- .pool
-_080AADC8:
- movs r0, 0x26
- ands r0, r1
- cmp r0, 0x26
- bne _080AADFC
- bl CanResetRTC
- cmp r0, 0x1
- bne _080AADFC
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =c2_reset_rtc_screen_1
- bl SetMainCallback2
- b _080AAE98
- .pool
-_080AADFC:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x6
- bne _080AAE30
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =c2_berry_program_update_screen_1
- bl SetMainCallback2
- b _080AAE98
- .pool
-_080AAE30:
- movs r0, 0x2C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x2E
- movs r1, 0
- bl SetGpuReg
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080AAE72
- ldrh r0, [r3, 0x10]
- adds r0, 0x1
- strh r0, [r3, 0x10]
- ldr r2, =gBattle_BG1_Y
- movs r1, 0x10
- ldrsh r0, [r3, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r2]
- ldr r1, =gBattle_BG1_X
- movs r0, 0
- strh r0, [r1]
-_080AAE72:
- ldrb r0, [r3, 0x8]
- bl title_screen_update_rayquaza_ring_palette
- ldr r0, =gMPlayInfo_BGM
- ldr r1, =0x0000ffff
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _080AAE98
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =c2_show_copyright_and_intro_again_1
- bl SetMainCallback2
-_080AAE98:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_title_screen_3
-
- thumb_func_start Cb2_GoToMainMenu
-Cb2_GoToMainMenu: @ 80AAEB8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080AAECA
- ldr r0, =CB2_InitMainMenu
- bl SetMainCallback2
-_080AAECA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end Cb2_GoToMainMenu
-
- thumb_func_start c2_show_copyright_and_intro_again_1
-c2_show_copyright_and_intro_again_1: @ 80AAED4
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080AAEE6
- ldr r0, =c2_show_copyright_and_intro_again_2
- bl SetMainCallback2
-_080AAEE6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_show_copyright_and_intro_again_1
-
- thumb_func_start c2_clear_save_data_screen_1
-c2_clear_save_data_screen_1: @ 80AAEF0
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080AAF02
- ldr r0, =CB2_InitClearSaveDataScreen
- bl SetMainCallback2
-_080AAF02:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_clear_save_data_screen_1
-
- thumb_func_start c2_reset_rtc_screen_1
-c2_reset_rtc_screen_1: @ 80AAF0C
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080AAF1E
- ldr r0, =sub_809EF88
- bl SetMainCallback2
-_080AAF1E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_reset_rtc_screen_1
-
- thumb_func_start c2_berry_program_update_screen_1
-c2_berry_program_update_screen_1: @ 80AAF28
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080AAF3E
- bl m4aMPlayAllStop
- ldr r0, =InitBerryFixProgram
- bl SetMainCallback2
-_080AAF3E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_berry_program_update_screen_1
-
- thumb_func_start title_screen_update_rayquaza_ring_palette
-@ void title_screen_update_rayquaza_ring_palette(u8 a1)
-title_screen_update_rayquaza_ring_palette: @ 80AAF48
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080AAF9C
- adds r0, r1, 0
- movs r1, 0x80
- bl Cos
- lsls r0, 16
- asrs r0, 16
- adds r2, r0, 0
- adds r2, 0x80
- lsls r0, r2, 5
- subs r0, r2
- cmp r0, 0
- bge _080AAF72
- adds r0, 0xFF
-_080AAF72:
- asrs r0, 8
- movs r3, 0x1F
- subs r1, r3, r0
- movs r0, 0x16
- muls r0, r2
- cmp r0, 0
- bge _080AAF82
- adds r0, 0xFF
-_080AAF82:
- asrs r0, 8
- subs r0, r3, r0
- lsls r0, 5
- orrs r1, r0
- movs r0, 0xC0
- lsls r0, 6
- orrs r1, r0
- mov r0, sp
- strh r1, [r0]
- movs r1, 0xEF
- movs r2, 0x2
- bl LoadPalette
-_080AAF9C:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end title_screen_update_rayquaza_ring_palette
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index dd0477560..0126baa6a 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -416,12 +416,12 @@ _080774B2:
cmp r0, 0
beq _08077528
bl sub_800B488
- bl sub_8009734
+ bl OpenLink
bl sub_8011BA4
b _08077B46
.pool
_08077528:
- bl sub_8009734
+ bl OpenLink
ldr r0, =gMain
movs r7, 0x87
lsls r7, 3
@@ -466,7 +466,7 @@ _0807757A:
b _08077B22
.pool
_0807758C:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
adds r4, r0, 0
bl sub_800AA48
lsls r4, 24
@@ -475,7 +475,7 @@ _0807758C:
bcs _080775A0
b _08077B46
_080775A0:
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
cmp r0, 0
beq _080775D8
@@ -7026,7 +7026,7 @@ _0807AC92:
lsls r0, 1
cmp r1, r0
bls _0807ACC4
- bl sub_80097E8
+ bl CloseLink
ldr r0, =c2_800ACD4
bl SetMainCallback2
ldr r1, [r4]
@@ -7264,7 +7264,7 @@ _0807AEAC:
ldr r2, =0x00001144
adds r0, r2, 0
strh r0, [r1]
- bl sub_80097E8
+ bl CloseLink
_0807AEC0:
ldr r4, =gUnknown_020322A0
movs r5, 0x80
@@ -7332,7 +7332,7 @@ _0807AF58:
adds r0, 0xFA
movs r1, 0x1
strb r1, [r0]
- bl sub_8009734
+ bl OpenLink
ldr r1, =gMain
movs r2, 0x87
lsls r2, 3
@@ -7369,13 +7369,13 @@ _0807AFAC:
b _0807B0E4
.pool
_0807AFBC:
- bl sub_800ABBC
+ bl IsLinkMaster
lsls r0, 24
cmp r0, 0
bne _0807AFC8
b _0807B0DC
_0807AFC8:
- bl sub_800ABAC
+ bl GetLinkPlayerCount_2
adds r4, r0, 0
bl sub_800AA48
lsls r4, 24
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 1adb35370..4ccd04e98 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -18,7 +18,7 @@ sub_80C2690: @ 80C2690
cmp r0, 0
beq _080C26C0
ldr r1, =0x040000d4
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
str r0, [r1]
movs r2, 0xF0
lsls r2, 3
@@ -40,7 +40,7 @@ sub_80C26D4: @ 80C26D4
ldrh r3, [r4]
movs r0, 0
strh r0, [r4]
- ldr r1, =gUnknown_02038C28
+ ldr r1, =gScanlineEffectRegBuffers
ldr r0, =0x04000006
ldrh r2, [r0]
movs r0, 0xFF
@@ -3977,9 +3977,9 @@ sub_80C4998: @ 80C4998
movs r0, 0x3
bl HideBg
bl ScanlineEffect_Stop
- bl dp12_8087EA4
+ bl ScanlineEffect_Clear
movs r1, 0
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
movs r2, 0
movs r3, 0xF0
lsls r3, 3
@@ -4066,7 +4066,7 @@ _080C4A0E:
movs r2, 0
cmp r2, r7
bcs _080C4A78
- ldr r3, =gUnknown_02038C28
+ ldr r3, =gScanlineEffectRegBuffers
_080C4A60:
lsls r0, r2, 16
asrs r0, 16
@@ -4091,7 +4091,7 @@ _080C4A78:
lsrs r7, r4, 16
cmp r1, r0
bge _080C4AB0
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_080C4A92:
@@ -4116,7 +4116,7 @@ _080C4AB0:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080C4ACE
- ldr r2, =gUnknown_02038C28
+ ldr r2, =gScanlineEffectRegBuffers
_080C4ABC:
asrs r0, r1, 16
lsls r1, r0, 1
@@ -4392,7 +4392,7 @@ _080C4CB6:
movs r2, 0
cmp r2, r7
bcs _080C4D20
- ldr r3, =gUnknown_02038C28
+ ldr r3, =gScanlineEffectRegBuffers
_080C4D08:
lsls r0, r2, 16
asrs r0, 16
@@ -4417,7 +4417,7 @@ _080C4D20:
lsrs r7, r4, 16
cmp r1, r0
bge _080C4D56
- ldr r0, =gUnknown_02038C28
+ ldr r0, =gScanlineEffectRegBuffers
mov r12, r0
adds r4, r3, 0
_080C4D3A:
@@ -4441,7 +4441,7 @@ _080C4D56:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080C4D74
- ldr r2, =gUnknown_02038C28
+ ldr r2, =gScanlineEffectRegBuffers
_080C4D62:
asrs r0, r1, 16
lsls r1, r0, 1
diff --git a/asm/unknown_task.s b/asm/unknown_task.s
deleted file mode 100644
index a8672ac8f..000000000
--- a/asm/unknown_task.s
+++ /dev/null
@@ -1,593 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ScanlineEffect_Stop
-ScanlineEffect_Stop: @ 80B9FB8
- push {r4,lr}
- ldr r4, =gUnknown_02039B28
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x18]
- cmp r0, 0xFF
- beq _080B9FE2
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r4, 0x18]
-_080B9FE2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ScanlineEffect_Stop
-
- thumb_func_start dp12_8087EA4
-dp12_8087EA4: @ 80B9FF8
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- movs r4, 0
- strh r4, [r0]
- ldr r1, =gUnknown_02038C28
- ldr r2, =0x01000780
- bl CpuSet
- ldr r0, =gUnknown_02039B28
- movs r1, 0
- str r1, [r0]
- str r1, [r0, 0x4]
- str r1, [r0, 0x8]
- str r1, [r0, 0xC]
- strb r4, [r0, 0x14]
- strb r4, [r0, 0x15]
- strb r4, [r0, 0x16]
- strb r4, [r0, 0x17]
- movs r1, 0xFF
- strb r1, [r0, 0x18]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp12_8087EA4
-
- thumb_func_start sub_80BA038
-sub_80BA038: @ 80BA038
- push {lr}
- sub sp, 0xC
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r0, =0xa2600001
- cmp r1, r0
- bne _080BA06C
- ldr r0, =gUnknown_02039B28
- ldr r1, =gUnknown_02038C2A
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, =sub_80BA134
- b _080BA07C
- .pool
-_080BA06C:
- ldr r0, =gUnknown_02039B28
- ldr r1, =gUnknown_02038C2C
- str r1, [r0]
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- str r1, [r0, 0x4]
- ldr r1, =sub_80BA154
-_080BA07C:
- str r1, [r0, 0x10]
- adds r1, r0, 0
- ldr r0, [sp, 0x4]
- str r0, [r1, 0xC]
- ldr r0, [sp]
- str r0, [r1, 0x8]
- mov r0, sp
- ldrb r0, [r0, 0x8]
- strb r0, [r1, 0x15]
- mov r0, sp
- ldrb r0, [r0, 0x9]
- strb r0, [r1, 0x16]
- strb r0, [r1, 0x17]
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80BA038
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {r4,lr}
- ldr r4, =gUnknown_02039B28
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _080BA122
- cmp r0, 0x3
- bne _080BA0EC
- movs r0, 0
- strb r0, [r4, 0x15]
- ldr r1, =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r1, =gUnknown_02039B44
- movs r0, 0x1
- strb r0, [r1]
- b _080BA122
- .pool
-_080BA0EC:
- ldr r1, =0x040000b0
- ldrh r2, [r1, 0xA]
- ldr r0, =0x0000c5ff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, =0x00007fff
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldrb r0, [r4, 0x14]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r4, 0x8]
- str r0, [r1, 0x4]
- ldr r0, [r4, 0xC]
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r0, [r4, 0x10]
- bl _call_via_r0
- ldrb r0, [r4, 0x14]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4, 0x14]
-_080BA122:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA134
-sub_80BA134: @ 80BA134
- ldr r0, =gUnknown_02039B28
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, =gUnknown_02038C28
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_80BA134
-
- thumb_func_start sub_80BA154
-sub_80BA154: @ 80BA154
- ldr r0, =gUnknown_02039B28
- ldr r2, [r0, 0x8]
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- ldr r1, =gUnknown_02038C28
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_80BA154
-
- thumb_func_start task00_for_dp12
-task00_for_dp12: @ 80BA174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r6, 0
- ldr r0, =gUnknown_02039B44
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA1A4
- mov r0, r12
- bl DestroyTask
- ldr r1, =gUnknown_02039B28
- movs r0, 0xFF
- strb r0, [r1, 0x18]
- b _080BA324
- .pool
-_080BA1A4:
- ldr r1, =gTasks
- mov r0, r12
- lsls r2, r0, 2
- adds r0, r2, r0
- lsls r0, 3
- adds r3, r0, r1
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- mov r10, r1
- mov r9, r2
- cmp r0, 0
- beq _080BA250
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- cmp r0, 0xE
- bhi _080BA250
- lsls r0, 2
- ldr r1, =_080BA1D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080BA1D8:
- .4byte _080BA214
- .4byte _080BA250
- .4byte _080BA21C
- .4byte _080BA250
- .4byte _080BA224
- .4byte _080BA250
- .4byte _080BA22C
- .4byte _080BA250
- .4byte _080BA234
- .4byte _080BA250
- .4byte _080BA23C
- .4byte _080BA250
- .4byte _080BA244
- .4byte _080BA250
- .4byte _080BA24C
-_080BA214:
- ldr r0, =gBattle_BG0_X
- b _080BA24E
- .pool
-_080BA21C:
- ldr r0, =gBattle_BG0_Y
- b _080BA24E
- .pool
-_080BA224:
- ldr r0, =gBattle_BG1_X
- b _080BA24E
- .pool
-_080BA22C:
- ldr r0, =gBattle_BG1_Y
- b _080BA24E
- .pool
-_080BA234:
- ldr r0, =gBattle_BG2_X
- b _080BA24E
- .pool
-_080BA23C:
- ldr r0, =gBattle_BG2_Y
- b _080BA24E
- .pool
-_080BA244:
- ldr r0, =gBattle_BG3_X
- b _080BA24E
- .pool
-_080BA24C:
- ldr r0, =gBattle_BG3_Y
-_080BA24E:
- ldrh r6, [r0]
-_080BA250:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r2, r10
- adds r1, r0, r2
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _080BA2BC
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- movs r4, 0xE
- ldrsh r0, [r1, r4]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080BA324
- ldr r5, =gUnknown_02038C28
- ldr r0, =gUnknown_02039B28
- mov r8, r0
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
-_080BA28A:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080BA28A
- b _080BA324
- .pool
-_080BA2BC:
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x10]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- movs r3, 0xA0
- lsls r3, 1
- adds r2, r0, r3
- movs r4, 0x8
- ldrsh r3, [r1, r4]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r3, r0
- bge _080BA304
- ldr r5, =gUnknown_02038C28
- adds r7, r1, 0
- lsls r0, r2, 1
- adds r4, r0, r5
- ldr r0, =gUnknown_02039B28
- mov r8, r0
-_080BA2E2:
- lsls r2, r3, 1
- mov r0, r8
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- adds r2, r5
- ldrh r0, [r4]
- adds r0, r6
- strh r0, [r2]
- adds r4, 0x2
- adds r3, 0x1
- movs r1, 0xA
- ldrsh r0, [r7, r1]
- cmp r3, r0
- blt _080BA2E2
-_080BA304:
- mov r0, r9
- add r0, r12
- lsls r0, 3
- mov r3, r10
- adds r2, r0, r3
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- asrs r0, 16
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bne _080BA324
- movs r0, 0
- strh r0, [r2, 0xE]
-_080BA324:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task00_for_dp12
-
- thumb_func_start sub_80BA33C
-sub_80BA33C: @ 80BA33C
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r1, 0
- movs r2, 0
- ldr r0, =gSineTable
- mov r12, r0
-_080BA350:
- lsls r0, r1, 1
- adds r3, r0, r6
- lsls r0, r2, 1
- add r0, r12
- movs r7, 0
- ldrsh r0, [r0, r7]
- muls r0, r4
- cmp r0, 0
- bge _080BA364
- adds r0, 0xFF
-_080BA364:
- asrs r0, 8
- strh r0, [r3]
- adds r0, r2, r5
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _080BA350
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80BA33C
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r5, r0, 0
- str r1, [sp, 0x10]
- ldr r0, [sp, 0x40]
- mov r8, r0
- ldr r1, [sp, 0x44]
- mov r9, r1
- ldr r0, [sp, 0x48]
- mov r10, r0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, [sp, 0x10]
- lsls r1, 24
- str r1, [sp, 0x14]
- lsrs r0, r1, 24
- str r0, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x18]
- lsls r2, r3, 24
- lsrs r2, 24
- str r2, [sp, 0x1C]
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r3, r9
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl dp12_8087EA4
- ldr r0, =0x04000010
- add r0, r9
- str r0, [sp]
- ldr r0, =0xa2600001
- str r0, [sp, 0x4]
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80BA038
- ldr r0, =task00_for_dp12
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gTasks
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r5, [r4, 0x8]
- mov r3, sp
- ldrh r3, [r3, 0xC]
- strh r3, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- ldr r1, [sp, 0x18]
- bl __divsi3
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4, 0xE]
- mov r1, r8
- strh r1, [r4, 0x10]
- strh r1, [r4, 0x12]
- mov r3, r9
- strh r3, [r4, 0x14]
- mov r0, r10
- strh r0, [r4, 0x16]
- ldr r0, =gUnknown_02039B28
- strb r7, [r0, 0x18]
- ldr r0, =gUnknown_02039B44
- movs r1, 0
- strb r1, [r0]
- ldr r4, =gUnknown_02038EA8
- ldr r3, [sp, 0xC]
- subs r6, r3, r5
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r4, 0
- ldr r1, [sp, 0x18]
- ldr r2, [sp, 0x1C]
- bl sub_80BA33C
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _080BA47E
- ldr r1, =0xfffffd80
- adds r2, r4, r1
- lsls r1, r5, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r1, r3
- adds r3, r0, r2
- adds r1, r2
- adds r2, r4, 0
- adds r5, r6, 0
-_080BA46A:
- ldrh r0, [r2]
- strh r0, [r1]
- ldrh r0, [r2]
- strh r0, [r3]
- adds r2, 0x2
- adds r3, 0x2
- adds r1, 0x2
- subs r5, 0x1
- cmp r5, 0
- bne _080BA46A
-_080BA47E:
- adds r0, r7, 0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80BA384
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
index 60c11524a..5047ec65e 100644
--- a/asm/use_pokeblock.s
+++ b/asm/use_pokeblock.s
@@ -732,10 +732,10 @@ _08166C28:
b _08166D18
.pool
_08166C40:
- ldr r1, =gUnknown_02039B28
+ ldr r1, =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
- bl sub_80BA0A8
+ bl ScanlineEffect_InitHBlankDmaTransfer
_08166C4A:
ldr r1, [r4]
adds r1, 0x50
diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc
index 7309d68cd..0a5dd1094 100644
--- a/constants/battle_constants.inc
+++ b/constants/battle_constants.inc
@@ -45,21 +45,21 @@
.set OPPONENT_TELEPORTED, 0xA
@ identities
- .set IDENTITY_PLAYER_MON1, 0
- .set IDENTITY_OPPONENT_MON1, 1
- .set IDENTITY_PLAYER_MON2, 2
- .set IDENTITY_OPPONENT_MON2, 3
+ .set B_POSITION_PLAYER_LEFT, 0
+ .set B_POSITION_OPPONENT_LEFT, 1
+ .set B_POSITION_PLAYER_RIGHT, 2
+ .set B_POSITION_OPPONENT_RIGHT, 3
@ status 1
- .set STATUS_SLEEP, 0x7
- .set STATUS_POISON, 0x8
- .set STATUS_BURN, 0x10
- .set STATUS_FREEZE, 0x20
- .set STATUS_PARALYSIS, 0x40
- .set STATUS_TOXIC_POISON, 0x80
- .set STATUS_TOXIC_COUNTER, 0xF00
+ .set STATUS1_SLEEP, 0x7
+ .set STATUS1_POISON, 0x8
+ .set STATUS1_BURN, 0x10
+ .set STATUS1_FREEZE, 0x20
+ .set STATUS1_PARALYSIS, 0x40
+ .set STATUS1_TOXIC_POISON, 0x80
+ .set STATUS1_TOXIC_COUNTER, 0xF00
- .set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON
+ .set STATUS1_ANY, STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON
@ status 2
.set STATUS2_CONFUSION, 0x00000007
@@ -160,11 +160,12 @@
.set HITMARKER_x8000000, 0x08000000
@ move flags
- .set MOVESTATUS_MISSED, 0x1
- .set MOVESTATUS_SUPEREFFECTIVE, 0x2
- .set MOVESTATUS_NOTVERYEFFECTIVE, 0x4
- .set MOVESTATUS_NOTAFFECTED, 0x8
- .set MOVESTATUS_ONEHITKO, 0x10
- .set MOVESTATUS_FAILED, 0x20
- .set MOVESTATUS_ENDURED, 0x40
- .set MOVESTATUS_HUNGON, 0x80
+ .set MOVE_RESULT_MISSED, 0x1
+ .set MOVE_RESULT_SUPER_EFFECTIVE, 0x2
+ .set MOVE_RESULT_NOT_VERY_EFFECTIVE, 0x4
+ .set MOVE_RESULT_DOESNT_AFFECT_FOE, 0x8
+ .set MOVE_RESULT_ONE_HIT_KO, 0x10
+ .set MOVE_RESULT_FAILED, 0x20
+ .set MOVE_RESULT_FOE_ENDURED, 0x40
+ .set MOVE_RESULT_FOE_HUNG_ON, 0x80
+ .set MOVE_RESULT_NO_EFFECT, (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s
index 2b9b6864b..afe365231 100644
--- a/data/battle_ai_scripts.s
+++ b/data/battle_ai_scripts.s
@@ -218,7 +218,7 @@ BattleAIScript_82DC2D4:
get_ability AI_TARGET
if_equal ABILITY_INSOMNIA, Score_Minus10
if_equal ABILITY_VITAL_SPIRIT, Score_Minus10
- if_status AI_TARGET, STATUS_ANY, Score_Minus10
+ if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end
@@ -237,11 +237,11 @@ BattleAIScript_82DC31A:
BattleAIScript_82DC31B:
if_status2 AI_TARGET, STATUS2_NIGHTMARE, Score_Minus10
- if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8
+ if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8
end
BattleAIScript_82DC330:
- if_not_status AI_TARGET, STATUS_SLEEP, Score_Minus8
+ if_not_status AI_TARGET, STATUS1_SLEEP, Score_Minus8
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
end
@@ -350,7 +350,7 @@ BattleAIScript_82DC48C:
if_equal TYPE_POISON, Score_Minus10
get_ability AI_TARGET
if_equal ABILITY_IMMUNITY, Score_Minus10
- if_status AI_TARGET, STATUS_ANY, Score_Minus10
+ if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end
@@ -402,7 +402,7 @@ BattleAIScript_82DC545:
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
get_ability AI_TARGET
if_equal ABILITY_LIMBER, Score_Minus10
- if_status AI_TARGET, STATUS_ANY, Score_Minus10
+ if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_side_affecting AI_TARGET, SIDE_STATUS_SAFEGUARD, Score_Minus10
end
@@ -428,7 +428,7 @@ BattleAIScript_82DC59D:
end
BattleAIScript_82DC5A5:
- if_not_status AI_USER, STATUS_SLEEP, Score_Minus8
+ if_not_status AI_USER, STATUS1_SLEEP, Score_Minus8
end
BattleAIScript_82DC5B0:
@@ -536,7 +536,7 @@ BattleAIScript_82DC6A9:
BattleAIScript_82DC6B4:
get_ability AI_TARGET
if_equal ABILITY_WATER_VEIL, Score_Minus10
- if_status AI_TARGET, STATUS_ANY, Score_Minus10
+ if_status AI_TARGET, STATUS1_ANY, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0_5, Score_Minus10
if_type_effectiveness AI_EFFECTIVENESS_x0_25, Score_Minus10
@@ -566,7 +566,7 @@ BattleAIScript_82DC708:
end
BattleAIScript_82DC713:
- if_not_status AI_USER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, Score_Minus10
+ if_not_status AI_USER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, Score_Minus10
end
BattleAIScript_82DC71E:
@@ -1076,7 +1076,7 @@ BattleAIScript_82DCD3D:
score -1
BattleAIScript_82DCD4D:
- if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCD6C
+ if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCD6C
if_hp_more_than AI_USER, 50, BattleAIScript_82DCD64
if_random_less_than 80, BattleAIScript_82DCD6C
@@ -1263,7 +1263,7 @@ BattleAIScript_82DCF22:
score -2
BattleAIScript_82DCF32:
- if_not_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DCF44
+ if_not_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DCF44
if_random_less_than 70, BattleAIScript_82DCF44
score +2
@@ -1520,7 +1520,7 @@ BattleAIScript_82DD228:
end
BattleAIScript_82DD229:
- if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD256
+ if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD256
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD256
if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD256
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD256
@@ -1673,7 +1673,7 @@ BattleAIScript_82DD381:
goto BattleAIScript_82DD3E9
BattleAIScript_82DD3B9:
- if_not_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD3E1
+ if_not_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD3E1
goto BattleAIScript_82DD3E9
BattleAIScript_82DD3C8:
@@ -1722,7 +1722,7 @@ BattleAIScript_82DD430:
end
BattleAIScript_82DD431:
- if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD4D6
+ if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD4D6
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD4D6
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD4D6
if_hp_more_than AI_USER, 30, BattleAIScript_82DD45E
@@ -1901,7 +1901,7 @@ BattleAIScript_82DD582:
end
BattleAIScript_82DD583:
- if_status AI_USER, STATUS_SLEEP, Score_Plus10
+ if_status AI_USER, STATUS1_SLEEP, Score_Plus10
score -5
end
@@ -1952,8 +1952,8 @@ BattleAIScript_82DD60A:
end
BattleAIScript_82DD60B:
- if_status AI_TARGET, STATUS_ANY, BattleAIScript_82DD621
- if_status_in_party AI_TARGET, STATUS_ANY, BattleAIScript_82DD621
+ if_status AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621
+ if_status_in_party AI_TARGET, STATUS1_ANY, BattleAIScript_82DD621
score -5
BattleAIScript_82DD621:
@@ -2012,7 +2012,7 @@ BattleAIScript_82DD693:
BattleAIScript_82DD694:
get_protect_count AI_USER
if_more_than 1, BattleAIScript_82DD75A
- if_status AI_USER, STATUS_TOXIC_POISON, BattleAIScript_82DD751
+ if_status AI_USER, STATUS1_TOXIC_POISON, BattleAIScript_82DD751
if_status2 AI_USER, STATUS2_CURSED, BattleAIScript_82DD751
if_status3 AI_USER, STATUS3_PERISH_SONG, BattleAIScript_82DD751
if_status2 AI_USER, STATUS2_INFATUATION, BattleAIScript_82DD751
@@ -2020,7 +2020,7 @@ BattleAIScript_82DD694:
if_status3 AI_USER, STATUS3_YAWN, BattleAIScript_82DD751
if_has_move_with_effect AI_TARGET, EFFECT_RESTORE_HP, BattleAIScript_82DD751
if_has_move_with_effect AI_TARGET, EFFECT_DEFENSE_CURL, BattleAIScript_82DD751
- if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DD730
+ if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DD730
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DD730
if_status3 AI_TARGET, STATUS3_PERISH_SONG, BattleAIScript_82DD730
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD730
@@ -2238,7 +2238,7 @@ BattleAIScript_82DD959:
end
BattleAIScript_82DD95A:
- if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DD9FF
+ if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DD9FF
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DD9FF
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DD9FF
if_hp_more_than AI_USER, 30, BattleAIScript_82DD987
@@ -2323,7 +2323,7 @@ BattleAIScript_82DDA2F:
goto BattleAIScript_82DDAB4
BattleAIScript_82DDA3D:
- if_status AI_TARGET, STATUS_TOXIC_POISON, BattleAIScript_82DDAAC
+ if_status AI_TARGET, STATUS1_TOXIC_POISON, BattleAIScript_82DDAAC
if_status2 AI_TARGET, STATUS2_CURSED, BattleAIScript_82DDAAC
if_status3 AI_TARGET, STATUS3_LEECHSEED, BattleAIScript_82DDAAC
get_weather
@@ -2396,7 +2396,7 @@ BattleAIScript_82DDAF5:
end
BattleAIScript_82DDAF6:
- if_not_status AI_TARGET, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleAIScript_82DDB02
+ if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleAIScript_82DDB02
score +1
BattleAIScript_82DDB02:
@@ -2405,7 +2405,7 @@ BattleAIScript_82DDB02:
BattleAIScript_82DDB03:
if_type_effectiveness AI_EFFECTIVENESS_x0_25, BattleAIScript_82DDB42
if_type_effectiveness AI_EFFECTIVENESS_x0_5, BattleAIScript_82DDB42
- if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDB59
+ if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDB59
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDB49
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDB49
is_first_turn_for AI_USER
@@ -2429,7 +2429,7 @@ BattleAIScript_82DDB5B:
end
BattleAIScript_82DDB5C:
- if_status AI_TARGET, STATUS_PARALYSIS, BattleAIScript_82DDB6B
+ if_status AI_TARGET, STATUS1_PARALYSIS, BattleAIScript_82DDB6B
goto BattleAIScript_82DDB6D
BattleAIScript_82DDB6B:
@@ -2571,7 +2571,7 @@ sItemsTable_82DDC6E:
.byte -1
BattleAIScript_82DDC72:
- if_status AI_TARGET, STATUS_SLEEP, BattleAIScript_82DDC9D
+ if_status AI_TARGET, STATUS1_SLEEP, BattleAIScript_82DDC9D
if_status2 AI_TARGET, STATUS2_INFATUATION, BattleAIScript_82DDC9D
if_status2 AI_TARGET, STATUS2_CONFUSION, BattleAIScript_82DDC9D
if_random_less_than 180, BattleAIScript_82DDC9D
@@ -2960,7 +2960,7 @@ BattleAIScript_82DDFED:
end
BattleAIScript_82DDFF5:
- if_status AI_USER, STATUS_ANY, BattleAIScript_82DE000
+ if_status AI_USER, STATUS1_ANY, BattleAIScript_82DE000
end
BattleAIScript_82DE000:
@@ -3060,7 +3060,7 @@ BattleAIScript_82DE14A:
BattleAIScript_82DE14F:
get_ability AI_TARGET
if_not_equal ABILITY_GUTS, Score_Minus30_
- if_status AI_TARGET, STATUS_ANY, Score_Minus30_
+ if_status AI_TARGET, STATUS1_ANY, Score_Minus30_
if_hp_less_than AI_USER, 91, Score_Minus30_
goto Score_Plus5
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index a0c3b39d2..878b48ccb 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -1,6 +1,7 @@
+#include "constants/rgb.h"
+#include "constants/songs.h"
.include "asm/macros/battle_anim_script.inc"
.include "include/constants/battle_anim.h"
- .include "include/constants/songs.h"
.section script_data, "aw", %progbits
@@ -684,7 +685,7 @@ Move_FLAME_WHEEL:
createsprite gUnknown_0857FE70, 0x2, 0, 24, 0, 0, 6
delay 0x4
createvisualtask sub_80D51AC, 0x2, 1, 5, 0, 8, 1
- createvisualtask sub_80A7B98, 0x3, 1, 31, 12, 1, 1
+ createvisualtask sub_80A7B98, 0x3, 1, RGB_RED, 12, 1, 1
playsewithpan SE_W172B, +63
call AnimScript_82D2D18
delay 0x7
@@ -789,7 +790,7 @@ Move_DOUBLE_EDGE:
waitplaysewithpan SE_W207, -64, 0x8
createvisualtask sub_80D5830, 0x2, 0, 18, 6, 2, 4
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 0, 16, 16, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 1, 0, 16, 16, RGB_WHITE
createsprite gUnknown_0857FE70, 0x2, 0, 20, 0, 0, 4
delay 0x3
waitforvisualfinish
@@ -801,7 +802,7 @@ Move_DOUBLE_EDGE:
createvisualtask sub_80D6134, 0x2, 8, -256, 1, 0
createvisualtask sub_80D5484, 0x2, 0, 4, 0, 12, 1
createvisualtask sub_80D5484, 0x2, 1, 4, 0, 12, 1
- createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_WHITE
waitforvisualfinish
createvisualtask sub_80D6134, 0x2, 8, -256, 0, 1
createvisualtask sub_80D6134, 0x2, 8, -256, 1, 1
@@ -942,7 +943,7 @@ Move_MEGA_PUNCH:
loadspritegfx 0x279F
monbg ANIM_TARGET
delay 0x2
- createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, RGB_BLACK
setalpha 0x80C
playsewithpan SE_W025, +63
createsprite gUnknown_08595F48, 0x3, 0, 0, 0, 50
@@ -990,7 +991,7 @@ Move_MEGA_KICK:
loadspritegfx 0x279F
monbg ANIM_TARGET
delay 0x2
- createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 0, 0, 16, RGB_BLACK
setalpha 0x80C
playsewithpan SE_W025, +63
createsprite gUnknown_08595F48, 0x3, 0, 0, 1, 50
@@ -1232,7 +1233,7 @@ Move_HIDDEN_POWER:
createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0
waitforvisualfinish
delay 0x1E
- createvisualtask sub_80A7B98, 0x5, 0, 20479, 12, 5, 1
+ createvisualtask sub_80A7B98, 0x5, 0, RGB(31, 31, 19), 12, 5, 1
delay 0x4
createvisualtask sub_80D6064, 0x5, -7, -7, 11, 0, 0
playsewithpan SE_W179, -64
@@ -1705,7 +1706,7 @@ Move_PROTECT:
Move_DETECT:
loadspritegfx 0x2757
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 9, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 9, RGB_BLACK
waitforvisualfinish
createvisualtask sub_8116620, 0xA, 2, 1, 0, 9, 0x7FFF
delay 0x12
@@ -1713,7 +1714,7 @@ Move_DETECT:
createsprite gUnknown_0853EE84, 0xD, 20, -20
waitforvisualfinish
delay 0xA
- createsprite gUnknown_08597274, 0x2, 1, 2, 9, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 9, 0, RGB_BLACK
createvisualtask sub_8116620, 0xA, 2, 2, 9, 0, 0x7FFF
waitforvisualfinish
end
@@ -2118,12 +2119,12 @@ Move_MEAN_LOOK:
loadspritegfx 0x27CB
monbg ANIM_DEF_PARTNER
playsewithpan SE_W060, -64
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, RGB_BLACK
loopsewithpan SE_W109, +63, 0xF, 0x4
waitplaysewithpan SE_W043, +63, 0x55
createsprite gUnknown_085CE104, 0x2
delay 0x78
- createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_BLACK
delay 0x1E
clearmonbg ANIM_DEF_PARTNER
waitforvisualfinish
@@ -2792,7 +2793,7 @@ Move_RAGE:
loadspritegfx 0x2767
monbg ANIM_TARGET
setalpha 0x80C
- createvisualtask sub_80A7B98, 0x3, 0, 31, 10, 0, 2
+ createvisualtask sub_80A7B98, 0x3, 0, RGB_RED, 10, 0, 2
createsprite gUnknown_0859368C, 0x2, 0, -20, -28
playsewithpan SE_W207B, -64
delay 0x14
@@ -3068,7 +3069,7 @@ Move_SUPER_FANG:
playsewithpan SE_W082, -64
waitforvisualfinish
createvisualtask sub_80D5484, 0x2, 0, 3, 0, 48, 1
- createvisualtask sub_80A7B98, 0x2, 0, 1247, 12, 4, 1
+ createvisualtask sub_80A7B98, 0x2, 0, RGB(31, 6, 1), 12, 4, 1
waitforvisualfinish
delay 0x14
createsprite gUnknown_0857FE28, 0x2, 4, 4
@@ -3137,7 +3138,7 @@ Move_NIGHTMARE:
end
AnimScript_82CD4CF:
- createvisualtask sub_80A7B98, 0x2, 0, 0x7FFF, 10, 2, 1
+ createvisualtask sub_80A7B98, 0x2, 0, RGB_WHITE, 10, 2, 1
createvisualtask sub_80D51AC, 0x2, 0, 3, 0, 32, 1
playsewithpan SE_W171, +63
waitforvisualfinish
@@ -3220,7 +3221,7 @@ Move_FORESIGHT:
delay 0x18
playsewithpan SE_W166, +63
delay 0xA
- createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 2, 1
+ createvisualtask sub_80A7B98, 0x5, 1, RGB_WHITE, 12, 2, 1
playsewithpan SE_W197, +63
waitforvisualfinish
blendoff
@@ -3418,7 +3419,7 @@ Move_MOONLIGHT:
loadspritegfx 0x27D3
loadspritegfx 0x272F
setalpha 0x1000
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 16, RGB_BLACK
waitforvisualfinish
createsprite gUnknown_08592EBC, 0x2, 120, 56
createvisualtask sub_80A7A74, 0x3, 0, 16, 16, 0, 1
@@ -3517,7 +3518,7 @@ Move_UPROAR:
Move_HEAT_WAVE:
loadspritegfx 0x2815
- createvisualtask sub_8116848, 0x5, 10261, 0, 6, 6, 31
+ createvisualtask sub_8116848, 0x5, 10261, 0, 6, 6, RGB_RED
createvisualtask sub_8110BCC, 0x5, 1
createvisualtask sub_810A060, 0x6, 6, 31
panse_1B SE_W257, -64, +63, +2, 0x0
@@ -3555,7 +3556,7 @@ Move_TORMENT:
loadspritegfx 0x27E1
createvisualtask sub_815AFF0, 0x2
waitforvisualfinish
- createvisualtask sub_80A7B98, 0x2, 1, 31, 10, 1, 1
+ createvisualtask sub_80A7B98, 0x2, 1, RGB_RED, 10, 1, 1
createsprite gUnknown_0859368C, 0x82, 1, -20, -28
playsewithpan SE_W207B, +63
delay 0x14
@@ -3625,7 +3626,7 @@ Move_CHARGE:
loadspritegfx 0x27E5
monbg ANIM_ATTACKER
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK
waitforvisualfinish
createvisualtask sub_810AAFC, 0x2, 0, 60, 2, 12
playsewithpan SE_W268, -64
@@ -3649,7 +3650,7 @@ Move_CHARGE:
createsprite gUnknown_0859598C, 0x2, 0, -16, -16
playsewithpan SE_W085B, -64
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB_BLACK
clearmonbg ANIM_ATTACKER
blendoff
end
@@ -3688,7 +3689,7 @@ Move_HELPING_HAND:
delay 0x14
playsewithpan SE_W227, 0
createvisualtask sub_80D52D0, 0x2, 2, 3, 0, 10, 1
- createvisualtask sub_80A7B98, 0x2, 2, 1023, 12, 1, 1
+ createvisualtask sub_80A7B98, 0x2, 2, RGB_YELLOW, 12, 1, 1
end
Move_ASSIST:
@@ -3750,7 +3751,7 @@ Move_RECYCLE:
createsprite gUnknown_085CE9B0, 0x2
loopsewithpan SE_W036, -64, 0x18, 0x3
waitforvisualfinish
- createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 2, 1
+ createvisualtask sub_80A7B98, 0x5, 0, RGB_WHITE, 12, 2, 1
playsewithpan SE_W036, -64
waitforvisualfinish
blendoff
@@ -3780,13 +3781,13 @@ AnimScript_82CE0A7:
playsewithpan SE_W233, +63
delay 0x14
createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, RGB_BLACK
delay 0x25
createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1
createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0
playsewithpan SE_W233B, +63
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_TARGET
end
@@ -3807,7 +3808,7 @@ AnimScript_82CE154:
playsewithpan SE_W233, +63
delay 0x14
createvisualtask sub_80D5C50, 0x2, 0, -24, 0, 24, 10, 24, 3
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 6, RGB_BLACK
delay 0x25
createsprite gUnknown_08597358, 0x3, 0, 0, 1, 1
createsprite gUnknown_08595E98, 0x4, 0, 0, 10, 1, 0
@@ -3819,7 +3820,7 @@ AnimScript_82CE154:
createsprite gUnknown_08595FA8, 0x2, 1, 3, 8, 12
playsewithpan SE_W280, +63
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 6, 0, RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_TARGET
end
@@ -3845,7 +3846,7 @@ Move_ENDEAVOR:
loadspritegfx 0x2797
createvisualtask sub_815DCA4, 0x2, 0, 2
loopsewithpan SE_W039, -64, 0x18, 0x2
- createvisualtask sub_80A7B98, 0x5, 0, 703, 12, 1, 2
+ createvisualtask sub_80A7B98, 0x5, 0, RGB(31, 21, 0), 12, 1, 2
delay 0x6
createvisualtask sub_80D6388, 0x5, 0, 1, 8, 1, 0
createsprite gUnknown_08597358, 0x82, 12, -12, 1, 2
@@ -3858,7 +3859,7 @@ Move_ENDEAVOR:
Move_ERUPTION:
loadspritegfx 0x27D9
- createsprite gUnknown_08597274, 0x2, 31, 2, 0, 4, 31
+ createsprite gUnknown_08597274, 0x2, 31, 2, 0, 4, RGB_RED
waitforvisualfinish
createvisualtask sub_8109460, 0x2
waitplaysewithpan SE_W153, -64, 0x3C
@@ -3878,18 +3879,18 @@ Move_ERUPTION:
createvisualtask sub_81152DC, 0x5, 4, 8, 60
loopsewithpan SE_W088, +63, 0x10, 0xC
delay 0x50
- createsprite gUnknown_08597274, 0x28, 31, 4, 4, 0, 31
+ createsprite gUnknown_08597274, 0x28, 31, 4, 4, 0, RGB_RED
end
Move_SKILL_SWAP:
loadspritegfx 0x280B
call AnimScript_82D7CD1
createvisualtask sub_810FBF0, 0x3, 1
- createvisualtask sub_80A7B98, 0x5, 1, 0x7FFF, 12, 3, 1
+ createvisualtask sub_80A7B98, 0x5, 1, RGB_WHITE, 12, 3, 1
loopsewithpan SE_W179, -64, 0x18, 0x3
delay 0x10
createvisualtask sub_810FBF0, 0x3, 0
- createvisualtask sub_80A7B98, 0x5, 0, 0x7FFF, 12, 3, 1
+ createvisualtask sub_80A7B98, 0x5, 0, RGB_WHITE, 12, 3, 1
waitforvisualfinish
call AnimScript_82D7CDD
end
@@ -3951,13 +3952,13 @@ Move_TAIL_GLOW:
loadspritegfx 0x27E4
monbg ANIM_ATTACKER
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK
waitforvisualfinish
createsprite gUnknown_08596AC8, 0x42, 0
delay 0x12
loopsewithpan SE_W234, -64, 0x10, 0x6
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB_BLACK
clearmonbg ANIM_ATTACKER
blendoff
delay 0x1
@@ -4193,7 +4194,7 @@ Move_AROMATHERAPY:
loadspritegfx 0x27AF
loadspritegfx 0x27DB
loadspritegfx 0x2741
- createsprite gUnknown_08597274, 0x0, 1, 0, 0, 7, 13293
+ createsprite gUnknown_08597274, 0x0, 1, 0, 0, 7, RGB(13, 31, 12)
delay 0x1
monbg ANIM_ATTACKER
delay 0x1
@@ -4211,7 +4212,7 @@ Move_AROMATHERAPY:
waitforvisualfinish
clearmonbg ANIM_ATTACKER
delay 0x1
- createsprite gUnknown_08597274, 0x0, 1, 0, 7, 0, 13293
+ createsprite gUnknown_08597274, 0x0, 1, 0, 7, 0, RGB(13, 31, 12)
delay 0x1
playsewithpan SE_W287, -64
createvisualtask sub_815DFCC, 0x2, 1
@@ -4222,7 +4223,7 @@ Move_AROMATHERAPY:
createsprite gUnknown_08592B94, 0x10, 12, -5, 0, 0, 32, 60, 1
waitforvisualfinish
playsewithpan SE_REAPOKE, -64
- createsprite gUnknown_08597274, 0x0, 43, 3, 10, 0, 13293
+ createsprite gUnknown_08597274, 0x0, 43, 3, 10, 0, RGB(13, 31, 12)
createsprite gUnknown_08593868, 0x10, 0, 0, 0, 1
waitforvisualfinish
end
@@ -4231,7 +4232,7 @@ Move_FAKE_TEARS:
loadspritegfx 0x27AB
loadspritegfx 0x27E1
loadspritegfx 0x2758
- createvisualtask sub_8116848, 0x5, 10155, 0, 4, 4, 32108
+ createvisualtask sub_8116848, 0x5, 10155, 0, 4, 4, RGB(12, 11, 31)
waitforvisualfinish
createvisualtask sub_815C478, 0x5, 0, 2, 1
loopsewithpan SE_W039, -64, 0xC, 0x4
@@ -4289,7 +4290,7 @@ Move_ODOR_SLEUTH:
Move_GRASS_WHISTLE:
loadspritegfx 0x2758
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 13298
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB(18, 31, 12)
waitforvisualfinish
createvisualtask sub_8102BE8, 0x2
waitforvisualfinish
@@ -4320,19 +4321,19 @@ Move_GRASS_WHISTLE:
delay 0x4
waitforvisualfinish
createvisualtask sub_8102CA0, 0x2
- createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, 13298
+ createsprite gUnknown_08597274, 0x2, 1, 4, 4, 0, RGB(18, 31, 12)
waitforvisualfinish
end
Move_TICKLE:
loadspritegfx 0x27EA
- createsprite gUnknown_08597274, 0x2, 2, 0, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 2, 0, 0, 16, RGB_BLACK
waitforvisualfinish
createsprite gUnknown_08593A84, 0x0, -16, -8
createsprite gUnknown_08593A84, 0x0, 16, -8
playsewithpan SE_W197, -64
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 2, 0, 16, 0, 0
+ createsprite gUnknown_08597274, 0x2, 2, 0, 16, 0, RGB_BLACK
waitforvisualfinish
delay 0x14
createvisualtask sub_80D5EB8, 0x3, 0, 6, 1280, 3, 0
@@ -4384,11 +4385,11 @@ Move_EXTRASENSORY:
call AnimScript_82D7CD1
monbg ANIM_DEF_PARTNER
setalpha 0x80C
- createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1
+ createvisualtask sub_80A7B98, 0x5, 0, RGB(27, 27, 0), 12, 1, 1
createvisualtask sub_810FE14, 0x5, 0
playsewithpan SE_W020, +63
waitforvisualfinish
- createvisualtask sub_80A7B98, 0x5, 0, 891, 12, 1, 1
+ createvisualtask sub_80A7B98, 0x5, 0, RGB(27, 27, 0), 12, 1, 1
createvisualtask sub_810FE14, 0x5, 1
playsewithpan SE_W020, +63
waitforvisualfinish
@@ -4607,7 +4608,7 @@ Move_SHOCK_WAVE:
loadspritegfx 0x2735
monbg ANIM_ATTACKER
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 4, RGB_BLACK
waitforvisualfinish
createvisualtask sub_810AAFC, 0x2, 0, 20, 0, 2
playsewithpan SE_W268, -64
@@ -4725,7 +4726,7 @@ Move_ICE_PUNCH:
loadspritegfx 0x279D
loadspritegfx 0x2797
loadspritegfx 0x279F
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, RGB_BLACK
createvisualtask sub_8116620, 0xA, 4, 2, 0, 9, 32588
delay 0x14
playsewithpan SE_W081, +63
@@ -4750,7 +4751,7 @@ Move_ICE_PUNCH:
delay 0x5
createvisualtask sub_8116620, 0xA, 4, 2, 9, 0, 32588
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
@@ -4829,7 +4830,7 @@ Move_THUNDER:
waitbgfadeout
createvisualtask sub_8117660, 0x5, -256, 0, 1, -1
waitbgfadein
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, RGB_BLACK
delay 0x10
createvisualtask sub_8115F10, 0x2, 257, 257, 257
playsewithpan SE_W086, +63
@@ -4873,7 +4874,7 @@ Move_THUNDER:
delay 0x2
createvisualtask sub_8115F10, 0x2, 257, 257, 257
delay 0x1
- createsprite gUnknown_08597274, 0x82, 1, 2, 16, 0, 0
+ createsprite gUnknown_08597274, 0x82, 1, 2, 16, 0, RGB_BLACK
waitforvisualfinish
restorebg
waitbgfadeout
@@ -4887,7 +4888,7 @@ Move_THUNDER_PUNCH:
loadspritegfx 0x2735
monbg ANIM_TARGET
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 0, 16, RGB_BLACK
waitforvisualfinish
playsewithpan SE_W004, +63
createsprite gUnknown_08595E98, 0x84, 0, 0, 8, 1, 0
@@ -4907,7 +4908,7 @@ Move_THUNDER_PUNCH:
createvisualtask sub_80D51AC, 0x2, 1, 0, 3, 15, 1
createsprite gUnknown_08597358, 0x3, 0, 0, 1, 2
delay 0x1
- createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 2, 16, 0, RGB_BLACK
delay 0x14
waitforvisualfinish
clearmonbg ANIM_TARGET
@@ -5413,7 +5414,7 @@ Move_ICE_BEAM:
monbgprio_28 ANIM_TARGET
setalpha 0x80C
loadspritegfx 0x279D
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, 0
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 7, RGB_BLACK
waitforvisualfinish
createsoundtask sub_8158C58, 183, -64, 63, 4, 4, 0, 10
createsprite gUnknown_08595B2C, 0x2, 20, 12, 0, 12, 20
@@ -5422,7 +5423,7 @@ Move_ICE_BEAM:
call AnimScript_82D07C1
call AnimScript_82D07C1
call AnimScript_82D07C1
- createsprite gUnknown_08597274, 0x2, 4, -31, 0, 7, 32384
+ createsprite gUnknown_08597274, 0x2, 4, -31, 0, 7, RGB(0, 20, 31)
createvisualtask sub_80D52D0, 0x2, 1, 2, 0, 25, 1
call AnimScript_82D07C1
call AnimScript_82D07C1
@@ -5438,9 +5439,9 @@ Move_ICE_BEAM:
waitforvisualfinish
delay 0x14
call AnimScript_82D7720
- createsprite gUnknown_08597274, 0x2, 4, 5, 7, 0, 32384
+ createsprite gUnknown_08597274, 0x2, 4, 5, 7, 0, RGB(0, 20, 31)
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, 0
+ createsprite gUnknown_08597274, 0x2, 1, 0, 7, 0, RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_TARGET
blendoff
@@ -5648,7 +5649,7 @@ AnimScript_82D0CB2:
Move_POWDER_SNOW:
loadspritegfx 0x279D
monbg ANIM_DEF_PARTNER
- createsprite gUnknown_08597274, 0x2, 31, 1, 0, 3, 0
+ createsprite gUnknown_08597274, 0x2, 31, 1, 0, 3, RGB_BLACK
waitforvisualfinish
panse_1B SE_W016, -64, +63, +2, 0x0
call AnimScript_82D0D03
@@ -5660,7 +5661,7 @@ Move_POWDER_SNOW:
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
delay 0x14
- createsprite gUnknown_08597274, 0x2, 31, 1, 3, 0, 0
+ createsprite gUnknown_08597274, 0x2, 31, 1, 3, 0, RGB_BLACK
end
AnimScript_82D0D03:
@@ -5778,7 +5779,7 @@ Move_ABSORB:
monbg ANIM_DEF_PARTNER
monbgprio_2A ANIM_TARGET
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, RGB(13, 31, 12)
waitforvisualfinish
playsewithpan SE_W071, +63
createsprite gUnknown_08597358, 0x2, 0, 0, 1, 2
@@ -5791,7 +5792,7 @@ Move_ABSORB:
delay 0xF
call AnimScript_82D79DF
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, RGB(13, 31, 12)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
@@ -5831,7 +5832,7 @@ Move_MEGA_DRAIN:
monbg ANIM_DEF_PARTNER
monbgprio_2A ANIM_TARGET
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 8, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 8, RGB(13, 31, 12)
waitforvisualfinish
playsewithpan SE_W071, +63
createsprite gUnknown_08597358, 0x2, 0, 0, 1, 1
@@ -5844,7 +5845,7 @@ Move_MEGA_DRAIN:
delay 0xF
call AnimScript_82D79DF
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 1, 8, 0, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 8, 0, RGB(13, 31, 12)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
@@ -5892,7 +5893,7 @@ Move_GIGA_DRAIN:
monbg ANIM_DEF_PARTNER
monbgprio_2A ANIM_TARGET
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 12, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 12, RGB(13, 31, 12)
waitforvisualfinish
playsewithpan SE_W071, +63
createsprite gUnknown_08597358, 0x2, 0, 0, 1, 0
@@ -5905,7 +5906,7 @@ Move_GIGA_DRAIN:
delay 0xF
call AnimScript_82D79DF
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 1, 12, 0, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 12, 0, RGB(13, 31, 12)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
@@ -6446,14 +6447,14 @@ Move_WHIRLPOOL:
monbgprio_28 ANIM_TARGET
setalpha 0x80C
delay 0x0
- createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968
+ createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(0, 13, 23)
playsewithpan SE_W250, +63
createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 50, 1
call AnimScript_82D1F5B
call AnimScript_82D1F5B
call AnimScript_82D1F5B
delay 0xC
- createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968
+ createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(0, 13, 23)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
end
@@ -7354,7 +7355,7 @@ Move_POISON_TAIL:
loadspritegfx 0x2797
loadspritegfx 0x27A6
loopsewithpan SE_W231, -64, 0x1C, 0x2
- createvisualtask sub_81144F8, 0x5, 1, 1, 23768
+ createvisualtask sub_81144F8, 0x5, 1, 1, RGB(24, 6, 23)
waitforvisualfinish
monbg ANIM_TARGET
setalpha 0x80C
@@ -7783,7 +7784,7 @@ Move_SOFT_BOILED:
delay 0x78
delay 0x7
playsewithpan SE_W030, -64
- createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500
+ createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, RGB(12, 24, 30)
createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1
delay 0x8
createsprite gUnknown_0859381C, 0x3, 31, 16, 0, 1
@@ -7855,7 +7856,7 @@ Move_FAKE_OUT:
createvisualtask sub_80D52D0, 0x2, 1, 4, 0, 5, 1
createvisualtask sub_8106020, 0x3
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, RGB_WHITE
end
Move_SCARY_FACE:
@@ -8270,7 +8271,7 @@ Move_STOCKPILE:
call AnimScript_82D4972
call AnimScript_82D4972
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 2, 0, 12, 0, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 2, 0, 12, 0, RGB_WHITE
end
AnimScript_82D4972:
@@ -8585,7 +8586,7 @@ Move_REFRESH:
call AnimScript_82D79B4
waitforvisualfinish
playsewithpan SE_REAPOKE, -64
- createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, 31500
+ createsprite gUnknown_08597274, 0x2, 31, 3, 10, 0, RGB(12, 24, 30)
createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0
end
@@ -8622,7 +8623,7 @@ Move_HYPER_VOICE:
end
AnimScript_82D50FA:
- createsprite gUnknown_08597274, 0x2, 31, 3, 8, 0, 1023
+ createsprite gUnknown_08597274, 0x2, 31, 3, 8, 0, RGB_YELLOW
createvisualtask sub_80D6064, 0x5, -5, -5, 5, 0, 0
createsprite gUnknown_08593880, 0x0, 45, 0, 0, 0, 0, 0, 1
createvisualtask sub_80D52D0, 0x2, 1, 1, 0, 6, 1
@@ -8633,14 +8634,14 @@ AnimScript_82D50FA:
Move_SAND_TOMB:
loadspritegfx 0x275A
- createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563
+ createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(19, 17, 0)
createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 43, 1
playsewithpan SE_W328, +63
call AnimScript_82D51B7
call AnimScript_82D51B7
call AnimScript_82D51B7
delay 0x16
- createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563
+ createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(19, 17, 0)
waitforvisualfinish
end
@@ -9422,7 +9423,7 @@ Move_OVERHEAT:
loadspritegfx 0x2797
monbg ANIM_DEF_PARTNER
setalpha 0x120C
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 5, 28
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 5, RGB(28, 0, 0)
waitforvisualfinish
createvisualtask sub_8117C44, 0x5
waitforvisualfinish
@@ -9433,7 +9434,7 @@ Move_OVERHEAT:
playsewithpan SE_W082, -64
createvisualtask sub_8117CA0, 0x5, 1, 0
delay 0x1
- createsprite gUnknown_08597274, 0x2, 2, 1, 0, 13, 28
+ createsprite gUnknown_08597274, 0x2, 2, 1, 0, 13, RGB(28, 0, 0)
createvisualtask sub_80D51AC, 0x5, 0, 2, 0, 15, 1
waitforvisualfinish
playsewithpan SE_W172B, -64
@@ -9479,12 +9480,12 @@ Move_OVERHEAT:
playsewithpan SE_W007, +63
createvisualtask sub_8117DD8, 0x5, 1
delay 0x1
- createsprite gUnknown_08597274, 0x2, 2, -1, 0, 13, 19026
+ createsprite gUnknown_08597274, 0x2, 2, -1, 0, 13, RGB(18, 18, 18)
createvisualtask sub_80D51AC, 0x5, 0, 3, 0, 15, 1
waitforvisualfinish
createvisualtask sub_8117D3C, 0x5, 0, 1
delay 0x1
- createsprite gUnknown_08597274, 0x2, 1, 1, 5, 0, 28
+ createsprite gUnknown_08597274, 0x2, 1, 1, 5, 0, RGB(28, 0, 0)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
@@ -9492,7 +9493,7 @@ Move_OVERHEAT:
delay 0xF
createvisualtask sub_8117D3C, 0x5, 1, 0
delay 0x1
- createsprite gUnknown_08597274, 0x2, 2, 0, 13, 0, 19026
+ createsprite gUnknown_08597274, 0x2, 2, 0, 13, 0, RGB(18, 18, 18)
waitforvisualfinish
createvisualtask sub_8117C70, 0x5
waitforvisualfinish
@@ -9643,7 +9644,7 @@ Move_WATER_PULSE:
monbg ANIM_TARGET
monbgprio_28 ANIM_TARGET
playsewithpan SE_W145C, -64
- createsprite gUnknown_08597274, 0x2, 1, 0, 0, 7, 29472
+ createsprite gUnknown_08597274, 0x2, 1, 0, 0, 7, RGB(0, 25, 28)
delay 0xA
createsprite gUnknown_085952F8, 0x42, 100, 100, 8, 1, 20, 40, 0
createsprite gUnknown_085952F8, 0x42, 20, 100, 16, 2, 10, 35, 1
@@ -9663,7 +9664,7 @@ Move_WATER_PULSE:
delay 0xD
createvisualtask sub_80D51AC, 0x2, 1, 0, 8, 18, 1
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, 29472
+ createsprite gUnknown_08597274, 0x2, 1, 1, 7, 0, RGB(0, 25, 28)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
end
@@ -10560,13 +10561,13 @@ AnimScript_82D800E:
monbgprio_28 ANIM_TARGET
setalpha 0x80C
delay 0x0
- createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 23968
+ createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(0, 13, 23)
playsewithpan SE_W250, +63
createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1
call AnimScript_82D1F5B
call AnimScript_82D1F5B
delay 0xC
- createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 23968
+ createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(0, 13, 23)
waitforvisualfinish
stopsound
clearmonbg ANIM_DEF_PARTNER
@@ -10591,13 +10592,13 @@ AnimScript_82D8062:
AnimScript_82D80BF:
loadspritegfx 0x275A
- createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, 563
+ createsprite gUnknown_08597274, 0x0, 4, 2, 0, 7, RGB(19, 17, 0)
createvisualtask sub_80D51AC, 0x5, 1, 0, 2, 30, 1
playsewithpan SE_W328, +63
call AnimScript_82D51B7
call AnimScript_82D51B7
delay 0x16
- createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, 563
+ createsprite gUnknown_08597274, 0x0, 4, 2, 7, 0, RGB(19, 17, 0)
waitforvisualfinish
stopsound
end
@@ -10619,7 +10620,7 @@ Anim_ItemEffect:
call AnimScript_82D79B4
waitforvisualfinish
playsewithpan SE_REAPOKE, -64
- createsprite gUnknown_08597274, 0x2, 2, 3, 7, 0, 26609
+ createsprite gUnknown_08597274, 0x2, 2, 3, 7, 0, RGB(17, 31, 25)
createsprite gUnknown_0859381C, 0x3, 0, 0, 0, 0
waitforvisualfinish
end
@@ -10663,11 +10664,11 @@ Anim_SmokeBallEscape:
end
Anim_HangedOn:
- createsprite gUnknown_08597274, 0x0, 2, 7, 0, 9, 31
+ createsprite gUnknown_08597274, 0x0, 2, 7, 0, 9, RGB_RED
playsewithpan SE_W082, -64
createvisualtask sub_815DB90, 0x5, 30, 128, 0, 1, 2, 0, 1
waitforvisualfinish
- createsprite gUnknown_08597274, 0x0, 2, 4, 9, 0, 31
+ createsprite gUnknown_08597274, 0x0, 2, 4, 9, 0, RGB_RED
waitforvisualfinish
delay 0x6
createsprite gUnknown_0857FE58, 0x0, 0, 0, 15
@@ -10769,7 +10770,7 @@ Anim_FutureSightHit:
Anim_DoomDesireHit:
createvisualtask sub_8117F10, 0x2
loadspritegfx 0x27D6
- createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 1, 3, 0, 16, RGB_WHITE
waitforvisualfinish
delay 0xA
createvisualtask sub_815C0A4, 0x5
@@ -10796,7 +10797,7 @@ Anim_DoomDesireHit:
playsewithpan SE_W120, +63
createsprite gUnknown_0859371C, 0x3, 16, 16, 1, 1
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, 0x7FFF
+ createsprite gUnknown_08597274, 0x2, 1, 3, 16, 0, RGB_WHITE
waitforvisualfinish
end
@@ -10818,7 +10819,7 @@ Status_Ingrain:
loadspritegfx 0x272F
monbg ANIM_DEF_PARTNER
setalpha 0x80C
- createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 0, 4, RGB(13, 31, 12)
waitforvisualfinish
delay 0x3
call AnimScript_82D1009
@@ -10826,7 +10827,7 @@ Status_Ingrain:
delay 0xF
call AnimScript_82D79DF
waitforvisualfinish
- createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, 13293
+ createsprite gUnknown_08597274, 0x2, 1, 1, 4, 0, RGB(13, 31, 12)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 27aff5f19..4d8b22186 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -286,7 +286,7 @@ BattleScript_MoveEnd::
end
BattleScript_MakeMoveMissed::
- orbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_PrintMoveMissed::
attackstring
ppreduce
@@ -303,9 +303,9 @@ BattleScript_EffectSleep::
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep
+ jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_AlreadyAsleep
jumpifcantmakeasleep BattleScript_CantMakeAsleep
- jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
+ jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
@@ -397,7 +397,7 @@ BattleScript_EffectExplosion::
faintifabilitynotdamp
setatkhptozero
waitstate
- jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94
+ jumpifbyte NO_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_MISSED, BattleScript_82D8B94
call BattleScript_82D8BEA
goto BattleScript_82D8B96
BattleScript_82D8B94::
@@ -436,16 +436,16 @@ BattleScript_82D8BCF::
end
BattleScript_82D8BEA::
- bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
attackanimation
waitanimation
- orbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
return
BattleScript_EffectDreamEater::
attackcanceler
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E
- jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18
+ jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_82D8C18
BattleScript_82D8C0E::
attackstring
ppreduce
@@ -487,7 +487,7 @@ BattleScript_EffectMirrorMove::
pause 0x40
trymirrormove
ppreduce
- orbyte gBattleMoveFlags, MOVESTATUS_FAILED
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_MIRRORMOVEFAILED
waitmessage 0x40
goto BattleScript_MoveEnd
@@ -633,7 +633,7 @@ BattleScript_MultiHitLoop::
jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd
jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit
- jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_MultiHitPrintStrings
+ jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_MultiHitPrintStrings
BattleScript_DoMultiHit::
movevaluescleanup
copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT
@@ -656,7 +656,7 @@ BattleScript_DoMultiHit::
addbyte sMULTIHIT_STRING + 4, 0x1
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
- jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings
+ jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings
decrementmultihit BattleScript_MultiHitLoop
goto BattleScript_MultiHitPrintStrings
BattleScript_MultiHitNoMoreHits::
@@ -712,9 +712,9 @@ BattleScript_EffectToxic::
ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned
- jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned
- jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
+ jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
@@ -735,7 +735,7 @@ BattleScript_AlreadyPoisoned::
goto BattleScript_MoveEnd
BattleScript_ImmunityProtected::
- copybyte gEffectBank, gBankTarget
+ copybyte gEffectBank, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PSNPrevention
goto BattleScript_MoveEnd
@@ -759,7 +759,7 @@ BattleScript_EffectRest::
attackcanceler
attackstring
ppreduce
- jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep
+ jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_RestIsAlreadyAsleep
jumpifcantmakeasleep BattleScript_RestCantSleep
trysetrest BattleScript_AlreadyAtFullHp
pause 0x20
@@ -835,7 +835,7 @@ BattleScript_EffectSuperFang::
attackstring
ppreduce
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
damagetohalftargethp
goto BattleScript_HitFromAtkAnimation
@@ -845,7 +845,7 @@ BattleScript_EffectDragonRage::
attackstring
ppreduce
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 40
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -879,19 +879,19 @@ BattleScript_MoveMissedDoDamage::
pause 0x40
resultmessage
waitmessage 0x40
- jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd
+ jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd
printstring STRINGID_PKMNCRASHED
waitmessage 0x40
damagecalc
typecalc
adjustnormaldamage
manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP
- bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
tryfaintmon ATTACKER, FALSE, NULL
- orbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ orbyte gMoveResultFlags, MOVE_RESULT_MISSED
goto BattleScript_MoveEnd
BattleScript_EffectMist::
@@ -1012,11 +1012,11 @@ BattleScript_EffectPoison::
ppreduce
jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned
- jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus TARGET, STATUS1_POISON, BattleScript_AlreadyPoisoned
+ jumpifstatus TARGET, STATUS1_TOXIC_POISON, BattleScript_AlreadyPoisoned
jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected
jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected
- jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
+ jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
@@ -1035,8 +1035,8 @@ BattleScript_EffectParalyze::
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
typecalc
jumpifmovehadnoeffect BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed
- jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
+ jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_AlreadyParalyzed
+ jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
@@ -1055,7 +1055,7 @@ BattleScript_AlreadyParalyzed::
goto BattleScript_MoveEnd
BattleScript_LimberProtected::
- copybyte gEffectBank, gBankTarget
+ copybyte gEffectBank, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_PRLZPrevention
goto BattleScript_MoveEnd
@@ -1221,7 +1221,7 @@ BattleScript_EffectLevelDamage::
attackstring
ppreduce
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
dmgtolevel
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -1232,7 +1232,7 @@ BattleScript_EffectPsywave::
attackstring
ppreduce
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
psywavedamageeffect
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -1279,7 +1279,7 @@ BattleScript_EffectPainSplit::
BattleScript_EffectSnore::
attackcanceler
- jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep
+ jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SnoreIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
@@ -1333,7 +1333,7 @@ BattleScript_EffectSketch::
BattleScript_EffectSleepTalk::
attackcanceler
- jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep
+ jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_SleepTalkIsAsleep
attackstring
ppreduce
goto BattleScript_ButItFailed
@@ -1415,7 +1415,7 @@ BattleScript_TripleKickLoop::
jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd
jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits
jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack
- jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits
+ jumpifstatus ATTACKER, STATUS1_SLEEP, BattleScript_TripleKickNoMoreHits
BattleScript_DoTripleKickAttack::
accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE
movevaluescleanup
@@ -1440,18 +1440,18 @@ BattleScript_DoTripleKickAttack::
waitmessage 0x1
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
- jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings
+ jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
decrementmultihit BattleScript_TripleKickLoop
goto BattleScript_TripleKickPrintStrings
BattleScript_TripleKickNoMoreHits::
pause 0x20
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings
- bicbyte gBattleMoveFlags, MOVESTATUS_MISSED
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
BattleScript_TripleKickPrintStrings::
resultmessage
waitmessage 0x40
jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd
- jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd
+ jumpifbyte COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TripleKickEnd
copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6
printstring STRINGID_HITXTIMES
waitmessage 0x40
@@ -1487,7 +1487,7 @@ BattleScript_EffectNightmare::
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked
+ jumpifstatus TARGET, STATUS1_SLEEP, BattleScript_NightmareWorked
goto BattleScript_ButItFailed
BattleScript_NightmareWorked::
attackanimation
@@ -1513,7 +1513,7 @@ BattleScript_EffectCurse::
jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed
jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed
BattleScript_CurseTrySpeed::
- copybyte gBankTarget, gBankAttacker
+ copybyte gBattlerTarget, gBattlerAttacker
setbyte sANIM_TURN, 0x1
attackanimation
waitanimation
@@ -1534,7 +1534,7 @@ BattleScript_CurseTryDefence::
BattleScript_CurseEnd::
goto BattleScript_MoveEnd
BattleScript_GhostCurse::
- jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse
+ jumpifbytenotequal gBattlerAttacker, gBattlerTarget, BattleScript_DoGhostCurse
getmovetarget ATTACKER
BattleScript_DoGhostCurse::
attackcanceler
@@ -1603,7 +1603,7 @@ BattleScript_PerishSongLoop::
jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected
BattleScript_PerishSongLoopIncrement::
addbyte sBANK, 0x1
- jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop
+ jumpifbytenotequal sBANK, gBattlersCount, BattleScript_PerishSongLoop
goto BattleScript_MoveEnd
BattleScript_PerishSongNotAffected::
@@ -1748,7 +1748,7 @@ BattleScript_EffectSonicboom::
attackstring
ppreduce
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
setword gBattleMoveDamage, 20
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -2085,14 +2085,14 @@ BattleScript_ButItFailedPpReduce::
ppreduce
BattleScript_ButItFailed::
pause 0x20
- orbyte gBattleMoveFlags, MOVESTATUS_FAILED
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
BattleScript_NotAffected::
pause 0x20
- orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
resultmessage
waitmessage 0x40
goto BattleScript_MoveEnd
@@ -2204,10 +2204,10 @@ BattleScript_EffectWillOWisp::
attackstring
ppreduce
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed
- jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned
+ jumpifstatus TARGET, STATUS1_BURN, BattleScript_AlreadyBurned
jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected
jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents
- jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed
+ jumpifstatus TARGET, STATUS1_ANY, BattleScript_ButItFailed
accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE
jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected
attackanimation
@@ -2217,7 +2217,7 @@ BattleScript_EffectWillOWisp::
goto BattleScript_MoveEnd
BattleScript_WaterVeilPrevents::
- copybyte gEffectBank, gBankTarget
+ copybyte gEffectBank, gBattlerTarget
setbyte cMULTISTRING_CHOOSER, 0x0
call BattleScript_BRNPrevention
goto BattleScript_MoveEnd
@@ -2275,7 +2275,7 @@ BattleScript_82DA15A::
goto BattleScript_MoveEnd
BattleScript_EffectFacade::
- jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg
+ jumpifstatus ATTACKER, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, BattleScript_FacadeDoubleDmg
goto BattleScript_EffectHit
BattleScript_FacadeDoubleDmg::
@@ -2293,7 +2293,7 @@ BattleScript_EffectFocusPunch::
BattleScript_EffectSmellingsalt::
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit
setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN
- jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_SmellingsaltDoubleDmg
+ jumpifstatus TARGET, STATUS1_PARALYSIS, BattleScript_SmellingsaltDoubleDmg
goto BattleScript_EffectHit
BattleScript_SmellingsaltDoubleDmg::
@@ -2452,7 +2452,7 @@ BattleScript_EffectBrickBreak::
typecalc
adjustnormaldamage
jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim
- bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED
+ bicbyte gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE
BattleScript_BrickBreakAnim::
attackanimation
waitanimation
@@ -2511,7 +2511,7 @@ BattleScript_EffectEndeavor::
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
typecalc
jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, gHpDealt
adjustsetdamage
goto BattleScript_HitFromAtkAnimation
@@ -2598,11 +2598,11 @@ BattleScript_EffectTeeterDance::
attackcanceler
attackstring
ppreduce
- setbyte gBankTarget, 0x0
+ setbyte gBattlerTarget, 0x0
BattleScript_TeeterDanceLoop::
movevaluescleanup
setmoveeffect EFFECT_CONFUSION
- jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceLoopIncrement
+ jumpifbyteequal gBattlerAttacker, gBattlerTarget, BattleScript_TeeterDanceLoopIncrement
jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents
jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents
jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused
@@ -2618,8 +2618,8 @@ BattleScript_TeeterDanceDoMoveEndIncrement::
setbyte sMOVEEND_STATE, 0x0
moveend 0x2, 0x10
BattleScript_TeeterDanceLoopIncrement::
- addbyte gBankTarget, 0x1
- jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop
+ addbyte gBattlerTarget, 0x1
+ jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
end
BattleScript_TeeterDanceOwnTempoPrevents::
@@ -2706,7 +2706,7 @@ BattleScript_TickleEnd::
BattleScript_CantLowerMultipleStats::
pause 0x20
- orbyte gBattleMoveFlags, MOVESTATUS_FAILED
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTDECREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
@@ -2792,7 +2792,7 @@ BattleScript_CalmMindEnd::
BattleScript_CantRaiseMultipleStats::
pause 0x20
- orbyte gBattleMoveFlags, MOVESTATUS_FAILED
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
printstring STRINGID_STATSWONTINCREASE2
waitmessage 0x40
goto BattleScript_MoveEnd
@@ -2935,7 +2935,7 @@ BattleScript_82DA908::
switchinanim GBANK_1, FALSE
waitstate
switchineffects 5
- jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908
+ jumpifbytenotequal gBank1, gBattlersCount, BattleScript_82DA908
BattleScript_82DA92C::
end2
@@ -2950,7 +2950,7 @@ BattleScript_LocalBattleWonLoseTexts::
waitstate
printstring STRINGID_TRAINER1LOSETEXT
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward
- trainerslideout IDENTITY_OPPONENT_MON1
+ trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
trainerslidein GBANK_1
waitstate
@@ -2991,7 +2991,7 @@ BattleScript_LocalBattleLostPrintTrainersWinText::
jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_
BattleScript_LocalBattleLostDoTrainer2WinText::
- trainerslideout IDENTITY_OPPONENT_MON1
+ trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
trainerslidein GBANK_1
waitstate
@@ -3007,7 +3007,7 @@ BattleScript_82DAA0B::
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1WINTEXT
- trainerslideout IDENTITY_OPPONENT_MON1
+ trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
trainerslidein GBANK_1
waitstate
@@ -3035,7 +3035,7 @@ BattleScript_82DAA5C::
trainerslidein ATTACKER
waitstate
printstring STRINGID_TRAINER1LOSETEXT
- trainerslideout IDENTITY_OPPONENT_MON1
+ trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
trainerslidein GBANK_1
waitstate
@@ -3058,7 +3058,7 @@ BattleScript_82DAAAE::
waitstate
printstring STRINGID_TRAINER1LOSETEXT
jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB
- trainerslideout IDENTITY_OPPONENT_MON1
+ trainerslideout B_POSITION_OPPONENT_LEFT
waitstate
trainerslidein GBANK_1
waitstate
@@ -3228,7 +3228,7 @@ BattleScript_DamagingWeatherContinues::
playanimation2 ATTACKER, sANIM_ARG1, NULL
setbyte gBattleCommunication, 0x0
BattleScript_DamagingWeatherLoop::
- copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1
+ copyarraywithindex gBattlerAttacker, gBattleTurnOrder, gBattleCommunication, 0x1
weatherdamage
jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement
printfromtable gSandStormHailDmgStringIds
@@ -3243,7 +3243,7 @@ BattleScript_DamagingWeatherLoop::
BattleScript_DamagingWeatherLoopIncrement::
jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd
addbyte gBattleCommunication, 0x1
- jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop
+ jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamagingWeatherLoop
BattleScript_DamagingWeatherContinuesEnd::
bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE
end2
@@ -3322,7 +3322,7 @@ BattleScript_BideAttack::
waitmessage 0x40
accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE
typecalc
- bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE
+ bicbyte gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE
copyword gBattleMoveDamage, sBIDE_DMG
adjustsetdamage
setbyte sANIM_TURN, 0x1
@@ -3521,7 +3521,7 @@ BattleScript_RapidSpinAway::
BattleScript_WrapFree::
printstring STRINGID_PKMNGOTFREE
waitmessage 0x40
- copybyte gBankTarget, sBANK
+ copybyte gBattlerTarget, sBANK
return
BattleScript_LeechSeedFree::
@@ -3564,16 +3564,16 @@ BattleScript_FutureAttackEnd::
moveend 0x1, 0x0
setbyte sMOVEEND_STATE, 0xB
moveend 0x2, 0xE
- setbyte gBattleMoveFlags, 0
+ setbyte gMoveResultFlags, 0
end2
BattleScript_FutureAttackMiss::
pause 0x20
- setbyte gBattleMoveFlags, 0
- orbyte gBattleMoveFlags, MOVESTATUS_FAILED
+ setbyte gMoveResultFlags, 0
+ orbyte gMoveResultFlags, MOVE_RESULT_FAILED
resultmessage
waitmessage 0x40
- setbyte gBattleMoveFlags, 0
+ setbyte gMoveResultFlags, 0
end2
BattleScript_NoMovesLeft::
@@ -4032,7 +4032,7 @@ BattleScript_WeatherFormChanges::
BattleScript_WeatherFormChangesLoop::
trycastformdatachange
addbyte sBANK, 0x1
- jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop
+ jumpifbytenotequal sBANK, gBattlersCount, BattleScript_WeatherFormChangesLoop
return
BattleScript_CastformChange::
@@ -4053,7 +4053,7 @@ BattleScript_82DB4B8::
BattleScript_82DB4BE::
pause 0x20
BattleScript_82DB4C1::
- setbyte gBankTarget, 0x0
+ setbyte gBattlerTarget, 0x0
setstatchanger ATK, 1, TRUE
BattleScript_82DB4CD::
trygetintimidatetarget BattleScript_82DB51B
@@ -4068,7 +4068,7 @@ BattleScript_82DB4CD::
printstring STRINGID_PKMNCUTSATTACKWITH
waitmessage 0x40
BattleScript_82DB510::
- addbyte gBankTarget, 0x1
+ addbyte gBattlerTarget, 0x1
goto BattleScript_82DB4CD
BattleScript_82DB51B::
return
@@ -4117,7 +4117,7 @@ BattleScript_MoveHPDrain::
datahpupdate TARGET
printstring STRINGID_PKMNRESTOREDHPUSING
waitmessage 0x40
- orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_MonMadeMoveUseless_PPLoss::
@@ -4127,7 +4127,7 @@ BattleScript_MonMadeMoveUseless::
pause 0x20
printstring STRINGID_PKMNSXMADEYUSELESS
waitmessage 0x40
- orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED
+ orbyte gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE
goto BattleScript_MoveEnd
BattleScript_FlashFireBoost_PPLoss::
@@ -4474,7 +4474,7 @@ BattleScript_82DB887::
waitmessage 0x40
BattleScript_82DB89D::
addbyte gBattleCommunication + 1, 0x1
- jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887
+ jumpifbytenotequal gBattleCommunication + 1, gBattlersCount, BattleScript_82DB887
setbyte gBattleCommunication, 0x0
setbyte gBattleCommunication + 1, 0x0
end2
diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s
deleted file mode 100644
index cacc023b4..000000000
--- a/data/berry_tag_screen.s
+++ /dev/null
@@ -1,34 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_085EFCF0:: @ 85EFCF0
- .4byte 0x000001f0, 0x000011e1, 0x000021d2, 0x000031c3
-
- .align 2
-gUnknown_085EFD00:: @ 85EFD00
- .incbin "graphics/interface/berry_tag_screen.gbapal"
-
- .align 2
-gUnknown_085EFD20:: @ 85EFD20
- .byte 0x00, 0x02, 0x03
-
- .byte 0x0F, 0x0E, 0x0D
-
- .align 2
-gUnknown_085EFD28:: @ 85EFD28
- window_template 0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045
- window_template 0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055
- window_template 0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d
- window_template 0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101
- null_window_template
-
- .align 2
-gBerryFirmnessStringPointers:: @ 85EFD50
- .4byte gBerryFirmnessString_VerySoft
- .4byte gBerryFirmnessString_Soft
- .4byte gBerryFirmnessString_Hard
- .4byte gBerryFirmnessString_VeryHard
- .4byte gBerryFirmnessString_SuperHard
diff --git a/data/coord_event_weather.s b/data/coord_event_weather.s
deleted file mode 100644
index c7b995912..000000000
--- a/data/coord_event_weather.s
+++ /dev/null
@@ -1,21 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_085102E0:: @ 85102E0
- .4byte 0x00000001, sub_809D7BC
- .4byte 0x00000002, sub_809D7C8
- .4byte 0x00000003, sub_809D7D4
- .4byte 0x00000004, sub_809D7E0
- .4byte 0x00000005, sub_809D7EC
- .4byte 0x00000006, sub_809D7F8
- .4byte 0x00000007, sub_809D804
- .4byte 0x00000008, sub_809D810
- .4byte 0x00000009, sub_809D81C
- .4byte 0x0000000a, sub_809D828
- .4byte 0x0000000b, sub_809D834
- .4byte 0x00000014, sub_809D840
- .4byte 0x00000015, sub_809D84C
-
diff --git a/data/graphics/berries/berry_graphics.inc b/data/graphics/berries/berry_graphics.inc
index 01a7c776d..358cc8fc1 100644
--- a/data/graphics/berries/berry_graphics.inc
+++ b/data/graphics/berries/berry_graphics.inc
@@ -1,343 +1,343 @@
.align 2
gBerryPic_Cheri:: @ 8D9C3A8
- .incbin "graphics/berries/pics/cheri.4bpp.lz"
+ .incbin "graphics/berries/cheri.4bpp.lz"
.align 2
gBerryPic_Oran:: @ 8D9C4FC
- .incbin "graphics/berries/pics/oran.4bpp.lz"
+ .incbin "graphics/berries/oran.4bpp.lz"
.align 2
gBerryPic_Pecha:: @ 8D9C670
- .incbin "graphics/berries/pics/pecha.4bpp.lz"
+ .incbin "graphics/berries/pecha.4bpp.lz"
.align 2
gBerryPic_Rawst:: @ 8D9C7E4
- .incbin "graphics/berries/pics/rawst.4bpp.lz"
+ .incbin "graphics/berries/rawst.4bpp.lz"
.align 2
gBerryPic_Aspear:: @ 8D9C97C
- .incbin "graphics/berries/pics/aspear.4bpp.lz"
+ .incbin "graphics/berries/aspear.4bpp.lz"
.align 2
gBerryPic_Leppa:: @ 8D9CB24
- .incbin "graphics/berries/pics/leppa.4bpp.lz"
+ .incbin "graphics/berries/leppa.4bpp.lz"
.align 2
gBerryPic_Chesto:: @ 8D9CC94
- .incbin "graphics/berries/pics/chesto.4bpp.lz"
+ .incbin "graphics/berries/chesto.4bpp.lz"
.align 2
gBerryPic_Persim:: @ 8D9CE78
- .incbin "graphics/berries/pics/persim.4bpp.lz"
+ .incbin "graphics/berries/persim.4bpp.lz"
.align 2
gBerryPic_Lum:: @ 8D9CFC8
- .incbin "graphics/berries/pics/lum.4bpp.lz"
+ .incbin "graphics/berries/lum.4bpp.lz"
.align 2
gBerryPic_Sitrus:: @ 8D9D0E4
- .incbin "graphics/berries/pics/sitrus.4bpp.lz"
+ .incbin "graphics/berries/sitrus.4bpp.lz"
.align 2
gBerryPic_Figy:: @ 8D9D288
- .incbin "graphics/berries/pics/figy.4bpp.lz"
+ .incbin "graphics/berries/figy.4bpp.lz"
.align 2
gBerryPic_Wiki:: @ 8D9D434
- .incbin "graphics/berries/pics/wiki.4bpp.lz"
+ .incbin "graphics/berries/wiki.4bpp.lz"
.align 2
gBerryPic_Mago:: @ 8D9D628
- .incbin "graphics/berries/pics/mago.4bpp.lz"
+ .incbin "graphics/berries/mago.4bpp.lz"
.align 2
gBerryPic_Aguav:: @ 8D9D7DC
- .incbin "graphics/berries/pics/aguav.4bpp.lz"
+ .incbin "graphics/berries/aguav.4bpp.lz"
.align 2
gBerryPic_Iapapa:: @ 8D9D950
- .incbin "graphics/berries/pics/iapapa.4bpp.lz"
+ .incbin "graphics/berries/iapapa.4bpp.lz"
.align 2
gBerryPic_Razz:: @ 8D9DC08
- .incbin "graphics/berries/pics/razz.4bpp.lz"
+ .incbin "graphics/berries/razz.4bpp.lz"
.align 2
gBerryPic_Bluk:: @ 8D9DE38
- .incbin "graphics/berries/pics/bluk.4bpp.lz"
+ .incbin "graphics/berries/bluk.4bpp.lz"
.align 2
gBerryPic_Nanab:: @ 8D9E020
- .incbin "graphics/berries/pics/nanab.4bpp.lz"
+ .incbin "graphics/berries/nanab.4bpp.lz"
.align 2
gBerryPic_Wepear:: @ 8D9E194
- .incbin "graphics/berries/pics/wepear.4bpp.lz"
+ .incbin "graphics/berries/wepear.4bpp.lz"
.align 2
gBerryPic_Pinap:: @ 8D9E35C
- .incbin "graphics/berries/pics/pinap.4bpp.lz"
+ .incbin "graphics/berries/pinap.4bpp.lz"
.align 2
gBerryPic_Pomeg:: @ 8D9E570
- .incbin "graphics/berries/pics/pomeg.4bpp.lz"
+ .incbin "graphics/berries/pomeg.4bpp.lz"
.align 2
gBerryPic_Kelpsy:: @ 8D9E718
- .incbin "graphics/berries/pics/kelpsy.4bpp.lz"
+ .incbin "graphics/berries/kelpsy.4bpp.lz"
.align 2
gBerryPic_Qualot:: @ 8D9E8C0
- .incbin "graphics/berries/pics/qualot.4bpp.lz"
+ .incbin "graphics/berries/qualot.4bpp.lz"
.align 2
gBerryPic_Hondew:: @ 8D9EA8C
- .incbin "graphics/berries/pics/hondew.4bpp.lz"
+ .incbin "graphics/berries/hondew.4bpp.lz"
.align 2
gBerryPic_Grepa:: @ 8D9ECE4
- .incbin "graphics/berries/pics/grepa.4bpp.lz"
+ .incbin "graphics/berries/grepa.4bpp.lz"
.align 2
gBerryPic_Tamato:: @ 8D9EE74
- .incbin "graphics/berries/pics/tamato.4bpp.lz"
+ .incbin "graphics/berries/tamato.4bpp.lz"
.align 2
gBerryPic_Cornn:: @ 8D9F138
- .incbin "graphics/berries/pics/cornn.4bpp.lz"
+ .incbin "graphics/berries/cornn.4bpp.lz"
.align 2
gBerryPic_Magost:: @ 8D9F33C
- .incbin "graphics/berries/pics/magost.4bpp.lz"
+ .incbin "graphics/berries/magost.4bpp.lz"
.align 2
gBerryPic_Rabuta:: @ 8D9F4E0
- .incbin "graphics/berries/pics/rabuta.4bpp.lz"
+ .incbin "graphics/berries/rabuta.4bpp.lz"
.align 2
gBerryPic_Nomel:: @ 8D9F7D4
- .incbin "graphics/berries/pics/nomel.4bpp.lz"
+ .incbin "graphics/berries/nomel.4bpp.lz"
.align 2
gBerryPic_Spelon:: @ 8D9F9B0
- .incbin "graphics/berries/pics/spelon.4bpp.lz"
+ .incbin "graphics/berries/spelon.4bpp.lz"
.align 2
gBerryPic_Pamtre:: @ 8D9FBA0
- .incbin "graphics/berries/pics/pamtre.4bpp.lz"
+ .incbin "graphics/berries/pamtre.4bpp.lz"
.align 2
gBerryPic_Watmel:: @ 8D9FDF0
- .incbin "graphics/berries/pics/watmel.4bpp.lz"
+ .incbin "graphics/berries/watmel.4bpp.lz"
.align 2
gBerryPic_Durin:: @ 8DA00D4
- .incbin "graphics/berries/pics/durin.4bpp.lz"
+ .incbin "graphics/berries/durin.4bpp.lz"
.align 2
gBerryPic_Belue:: @ 8DA04A0
- .incbin "graphics/berries/pics/belue.4bpp.lz"
+ .incbin "graphics/berries/belue.4bpp.lz"
.align 2
gBerryPic_Liechi:: @ 8DA0778
- .incbin "graphics/berries/pics/liechi.4bpp.lz"
+ .incbin "graphics/berries/liechi.4bpp.lz"
.align 2
gBerryPic_Ganlon:: @ 8DA09D0
- .incbin "graphics/berries/pics/ganlon.4bpp.lz"
+ .incbin "graphics/berries/ganlon.4bpp.lz"
.align 2
gBerryPic_Salac:: @ 8DA0B68
- .incbin "graphics/berries/pics/salac.4bpp.lz"
+ .incbin "graphics/berries/salac.4bpp.lz"
.align 2
gBerryPic_Petaya:: @ 8DA0DAC
- .incbin "graphics/berries/pics/petaya.4bpp.lz"
+ .incbin "graphics/berries/petaya.4bpp.lz"
.align 2
gBerryPic_Apicot:: @ 8DA1054
- .incbin "graphics/berries/pics/apicot.4bpp.lz"
+ .incbin "graphics/berries/apicot.4bpp.lz"
.align 2
gBerryPic_Lansat:: @ 8DA11E4
- .incbin "graphics/berries/pics/lansat.4bpp.lz"
+ .incbin "graphics/berries/lansat.4bpp.lz"
.align 2
gBerryPic_Starf:: @ 8DA13D8
- .incbin "graphics/berries/pics/starf.4bpp.lz"
+ .incbin "graphics/berries/starf.4bpp.lz"
.align 2
gBerryPic_Enigma:: @ 8DA15A8
- .incbin "graphics/berries/pics/enigma.4bpp.lz"
+ .incbin "graphics/berries/enigma.4bpp.lz"
.align 2
gBerryPalette_Cheri:: @ 8DA17C0
- .incbin "graphics/berries/palettes/cheri.gbapal.lz"
+ .incbin "graphics/berries/cheri.gbapal.lz"
.align 2
gBerryPalette_Oran:: @ 8DA17E8
- .incbin "graphics/berries/palettes/oran.gbapal.lz"
+ .incbin "graphics/berries/oran.gbapal.lz"
.align 2
gBerryPalette_Pecha:: @ 8DA1810
- .incbin "graphics/berries/palettes/pecha.gbapal.lz"
+ .incbin "graphics/berries/pecha.gbapal.lz"
.align 2
gBerryPalette_Rawst:: @ 8DA1838
- .incbin "graphics/berries/palettes/rawst.gbapal.lz"
+ .incbin "graphics/berries/rawst.gbapal.lz"
.align 2
gBerryPalette_Aspear:: @ 8DA1860
- .incbin "graphics/berries/palettes/aspear.gbapal.lz"
+ .incbin "graphics/berries/aspear.gbapal.lz"
.align 2
gBerryPalette_Leppa:: @ 8DA1888
- .incbin "graphics/berries/palettes/leppa.gbapal.lz"
+ .incbin "graphics/berries/leppa.gbapal.lz"
.align 2
gBerryPalette_Chesto:: @ 8DA18B0
- .incbin "graphics/berries/palettes/chesto.gbapal.lz"
+ .incbin "graphics/berries/chesto.gbapal.lz"
.align 2
gBerryPalette_Persim:: @ 8DA18D8
- .incbin "graphics/berries/palettes/persim.gbapal.lz"
+ .incbin "graphics/berries/persim.gbapal.lz"
.align 2
gBerryPalette_Lum:: @ 8DA1900
- .incbin "graphics/berries/palettes/lum.gbapal.lz"
+ .incbin "graphics/berries/lum.gbapal.lz"
.align 2
gBerryPalette_Sitrus:: @ 8DA1928
- .incbin "graphics/berries/palettes/sitrus.gbapal.lz"
+ .incbin "graphics/berries/sitrus.gbapal.lz"
.align 2
gBerryPalette_Figy:: @ 8DA1950
- .incbin "graphics/berries/palettes/figy.gbapal.lz"
+ .incbin "graphics/berries/figy.gbapal.lz"
.align 2
gBerryPalette_Wiki:: @ 8DA1978
- .incbin "graphics/berries/palettes/wiki.gbapal.lz"
+ .incbin "graphics/berries/wiki.gbapal.lz"
.align 2
gBerryPalette_Mago:: @ 8DA19A0
- .incbin "graphics/berries/palettes/mago.gbapal.lz"
+ .incbin "graphics/berries/mago.gbapal.lz"
.align 2
gBerryPalette_Aguav:: @ 8DA19C8
- .incbin "graphics/berries/palettes/aguav.gbapal.lz"
+ .incbin "graphics/berries/aguav.gbapal.lz"
.align 2
gBerryPalette_Iapapa:: @ 8DA19F0
- .incbin "graphics/berries/palettes/iapapa.gbapal.lz"
+ .incbin "graphics/berries/iapapa.gbapal.lz"
.align 2
gBerryPalette_Razz:: @ 8DA1A18
- .incbin "graphics/berries/palettes/razz.gbapal.lz"
+ .incbin "graphics/berries/razz.gbapal.lz"
.align 2
gBerryPalette_Bluk:: @ 8DA1A40
- .incbin "graphics/berries/palettes/bluk.gbapal.lz"
+ .incbin "graphics/berries/bluk.gbapal.lz"
.align 2
gBerryPalette_Nanab:: @ 8DA1A68
- .incbin "graphics/berries/palettes/nanab.gbapal.lz"
+ .incbin "graphics/berries/nanab.gbapal.lz"
.align 2
gBerryPalette_Wepear:: @ 8DA1A90
- .incbin "graphics/berries/palettes/wepear.gbapal.lz"
+ .incbin "graphics/berries/wepear.gbapal.lz"
.align 2
gBerryPalette_Pinap:: @ 8DA1AB8
- .incbin "graphics/berries/palettes/pinap.gbapal.lz"
+ .incbin "graphics/berries/pinap.gbapal.lz"
.align 2
gBerryPalette_Pomeg:: @ 8DA1AE0
- .incbin "graphics/berries/palettes/pomeg.gbapal.lz"
+ .incbin "graphics/berries/pomeg.gbapal.lz"
.align 2
gBerryPalette_Kelpsy:: @ 8DA1B08
- .incbin "graphics/berries/palettes/kelpsy.gbapal.lz"
+ .incbin "graphics/berries/kelpsy.gbapal.lz"
.align 2
gBerryPalette_Qualot:: @ 8DA1B30
- .incbin "graphics/berries/palettes/qualot.gbapal.lz"
+ .incbin "graphics/berries/qualot.gbapal.lz"
.align 2
gBerryPalette_Hondew:: @ 8DA1B58
- .incbin "graphics/berries/palettes/hondew.gbapal.lz"
+ .incbin "graphics/berries/hondew.gbapal.lz"
.align 2
gBerryPalette_Grepa:: @ 8DA1B80
- .incbin "graphics/berries/palettes/grepa.gbapal.lz"
+ .incbin "graphics/berries/grepa.gbapal.lz"
.align 2
gBerryPalette_Tamato:: @ 8DA1BA8
- .incbin "graphics/berries/palettes/tamato.gbapal.lz"
+ .incbin "graphics/berries/tamato.gbapal.lz"
.align 2
gBerryPalette_Cornn:: @ 8DA1BD0
- .incbin "graphics/berries/palettes/cornn.gbapal.lz"
+ .incbin "graphics/berries/cornn.gbapal.lz"
.align 2
gBerryPalette_Magost:: @ 8DA1BF8
- .incbin "graphics/berries/palettes/magost.gbapal.lz"
+ .incbin "graphics/berries/magost.gbapal.lz"
.align 2
gBerryPalette_Rabuta:: @ 8DA1C20
- .incbin "graphics/berries/palettes/rabuta.gbapal.lz"
+ .incbin "graphics/berries/rabuta.gbapal.lz"
.align 2
gBerryPalette_Nomel:: @ 8DA1C48
- .incbin "graphics/berries/palettes/nomel.gbapal.lz"
+ .incbin "graphics/berries/nomel.gbapal.lz"
.align 2
gBerryPalette_Spelon:: @ 8DA1C70
- .incbin "graphics/berries/palettes/spelon.gbapal.lz"
+ .incbin "graphics/berries/spelon.gbapal.lz"
.align 2
gBerryPalette_Pamtre:: @ 8DA1C98
- .incbin "graphics/berries/palettes/pamtre.gbapal.lz"
+ .incbin "graphics/berries/pamtre.gbapal.lz"
.align 2
gBerryPalette_Watmel:: @ 8DA1CC0
- .incbin "graphics/berries/palettes/watmel.gbapal.lz"
+ .incbin "graphics/berries/watmel.gbapal.lz"
.align 2
gBerryPalette_Durin:: @ 8DA1CE8
- .incbin "graphics/berries/palettes/durin.gbapal.lz"
+ .incbin "graphics/berries/durin.gbapal.lz"
.align 2
gBerryPalette_Belue:: @ 8DA1D10
- .incbin "graphics/berries/palettes/belue.gbapal.lz"
+ .incbin "graphics/berries/belue.gbapal.lz"
.align 2
gBerryPalette_Liechi:: @ 8DA1D38
- .incbin "graphics/berries/palettes/liechi.gbapal.lz"
+ .incbin "graphics/berries/liechi.gbapal.lz"
.align 2
gBerryPalette_Ganlon:: @ 8DA1D60
- .incbin "graphics/berries/palettes/ganlon.gbapal.lz"
+ .incbin "graphics/berries/ganlon.gbapal.lz"
.align 2
gBerryPalette_Salac:: @ 8DA1D88
- .incbin "graphics/berries/palettes/salac.gbapal.lz"
+ .incbin "graphics/berries/salac.gbapal.lz"
.align 2
gBerryPalette_Petaya:: @ 8DA1DB0
- .incbin "graphics/berries/palettes/petaya.gbapal.lz"
+ .incbin "graphics/berries/petaya.gbapal.lz"
.align 2
gBerryPalette_Apicot:: @ 8DA1DD8
- .incbin "graphics/berries/palettes/apicot.gbapal.lz"
+ .incbin "graphics/berries/apicot.gbapal.lz"
.align 2
gBerryPalette_Lansat:: @ 8DA1E00
- .incbin "graphics/berries/palettes/lansat.gbapal.lz"
+ .incbin "graphics/berries/lansat.gbapal.lz"
.align 2
gBerryPalette_Starf:: @ 8DA1E28
- .incbin "graphics/berries/palettes/starf.gbapal.lz"
+ .incbin "graphics/berries/starf.gbapal.lz"
.align 2
gBerryPalette_Enigma:: @ 8DA1E50
- .incbin "graphics/berries/palettes/enigma.gbapal.lz"
+ .incbin "graphics/berries/enigma.gbapal.lz"
diff --git a/data/item_icon.s b/data/item_icon.s
index 41fb7d9a1..6fd94d0a0 100644
--- a/data/item_icon.s
+++ b/data/item_icon.s
@@ -6,18 +6,3 @@
@ 8614410
.include "data/graphics/items/item_icon_table.inc"
-gUnknown_08614FE0:: @ 8614FE0
- .2byte 0
- .2byte 0x8000
- .2byte 0x2400
- .2byte 0
-
-gUnknown_08614FE8:: @ 8614FE8
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
-gUnknown_08614FF0:: @ 8614FF0
- .4byte gUnknown_08614FE8
-
-gUnknown_08614FF4:: @ 8614FF4
- spr_template 0, 0, gUnknown_08614FE0, gUnknown_08614FF0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/mystery_event_menu.s b/data/mystery_event_menu.s
deleted file mode 100644
index bb8330497..000000000
--- a/data/mystery_event_menu.s
+++ /dev/null
@@ -1,12 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_085EFD64:: @ 85EFD64
- .4byte 0x1F8
-
-gUnknown_085EFD68:: @ 85EFD68
- window_template 0, 4, 15, 22, 4, 14, 20
- window_template 0, 7, 6, 16, 4, 14, 0x6C
- null_window_template
diff --git a/data/pokemon_animation.s b/data/pokemon_animation.s
deleted file mode 100644
index 535c91b2d..000000000
--- a/data/pokemon_animation.s
+++ /dev/null
@@ -1,240 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_0860A8C8:: @ 860A8C8
- .byte 0x00, 0x13, 0x02, 0x08, 0x12, 0x15, 0x17, 0x12, 0x12, 0x19, 0x02, 0x13, 0x11, 0x02, 0x13, 0x01, 0x0f, 0x15, 0x0f, 0x0a, 0x0a, 0x0f, 0x15, 0x0f, 0x09, 0x16, 0x16, 0x12, 0x10, 0x12, 0x15, 0x09
- .byte 0x12, 0x15, 0x09, 0x13, 0x13, 0x10, 0x01, 0x13, 0x06, 0x11, 0x09, 0x02, 0x02, 0x14, 0x02, 0x08, 0x0a, 0x11, 0x09, 0x09, 0x10, 0x0f, 0x02, 0x14, 0x10, 0x10, 0x15, 0x15, 0x12, 0x09, 0x0e, 0x14
- .byte 0x14, 0x0d, 0x15, 0x09, 0x09, 0x0b, 0x0b, 0x0b, 0x02, 0x02, 0x0e, 0x08, 0x08, 0x17, 0x15, 0x02, 0x13, 0x0f, 0x0f, 0x02, 0x0f, 0x15, 0x13, 0x02, 0x0b, 0x0c, 0x13, 0x0f, 0x01, 0x01, 0x14, 0x09
- .byte 0x13, 0x14, 0x0a, 0x09, 0x15, 0x15, 0x02, 0x10, 0x15, 0x10, 0x02, 0x0f, 0x02, 0x06, 0x06, 0x0e, 0x0e, 0x12, 0x0b, 0x12, 0x13, 0x11, 0x11, 0x11, 0x13, 0x19, 0x14, 0x0f, 0x13, 0x16, 0x17, 0x0e
- .byte 0x0e, 0x10, 0x09, 0x19, 0x05, 0x12, 0x19, 0x16, 0x17, 0x01, 0x13, 0x13, 0x13, 0x15, 0x15, 0x13, 0x19, 0x16, 0x17, 0x02, 0x0f, 0x09, 0x0d, 0x12, 0x12, 0x02, 0x09, 0x12, 0x15, 0x17, 0x15, 0x15
- .byte 0x09, 0x12, 0x10, 0x11, 0x0f, 0x0a, 0x11, 0x0a, 0x02, 0x0f, 0x0b, 0x16, 0x12, 0x13, 0x13, 0x13, 0x11, 0x12, 0x14, 0x12, 0x13, 0x16, 0x11, 0x12, 0x13, 0x02, 0x10, 0x11, 0x11, 0x11, 0x10, 0x13
- .byte 0x02, 0x11, 0x0b, 0x02, 0x14, 0x14, 0x12, 0x13, 0x01, 0x14, 0x0b, 0x14, 0x08, 0x09, 0x0f, 0x05, 0x09, 0x15, 0x09, 0x0d, 0x15, 0x13, 0x15, 0x0f, 0x13, 0x09, 0x17, 0x17, 0x0a, 0x08, 0x02, 0x02
- .byte 0x05, 0x0f, 0x02, 0x15, 0x09, 0x09, 0x19, 0x15, 0x0e, 0x01, 0x13, 0x02, 0x0f, 0x07, 0x02, 0x08, 0x17, 0x02, 0x13, 0x16, 0x17, 0x19, 0x0e, 0x09, 0x0e, 0x19, 0x17, 0x18, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x15, 0x09, 0x12, 0x10, 0x17, 0x02, 0x12, 0x19, 0x12, 0x08
- .byte 0x0f, 0x15, 0x0b, 0x08, 0x11, 0x08, 0x0f, 0x02, 0x10, 0x10, 0x13, 0x09, 0x14, 0x0a, 0x01, 0x14, 0x12, 0x15, 0x13, 0x15, 0x07, 0x11, 0x11, 0x03, 0x11, 0x19, 0x19, 0x13, 0x12, 0x01, 0x13, 0x14
- .byte 0x0e, 0x17, 0x01, 0x0b, 0x09, 0x04, 0x0f, 0x15, 0x03, 0x19, 0x04, 0x15, 0x13, 0x01, 0x0f, 0x0e, 0x0e, 0x15, 0x09, 0x0e, 0x17, 0x13, 0x09, 0x09, 0x0a, 0x08, 0x0f, 0x0f, 0x13, 0x13, 0x10, 0x10
- .byte 0x14, 0x12, 0x12, 0x09, 0x14, 0x14, 0x11, 0x11, 0x12, 0x01, 0x01, 0x18, 0x02, 0x10, 0x08, 0x0b, 0x0b, 0x0e, 0x13, 0x09, 0x0d, 0x13, 0x11, 0x11, 0x14, 0x01, 0x01, 0x0b, 0x15, 0x02, 0x15, 0x09
- .byte 0x0e, 0x11, 0x11, 0x11, 0x0c, 0x0b, 0x0f, 0x09, 0x14, 0x14, 0x14, 0x09, 0x09, 0x08, 0x0f, 0x15, 0x09, 0x09, 0x09, 0x09, 0x19, 0x17, 0x0d, 0x01, 0x01, 0x11, 0x14, 0x11
-
-gUnknown_0860AA64:: @ 860AA64
- .byte 0x00, 0x05, 0x01, 0x01, 0x00, 0x0f, 0x01, 0x04, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x01, 0x02, 0x00, 0x02, 0x00, 0xff
-
-gUnknown_0860AA80:: @ 860AA80
- .byte 0x06, 0x1e, 0xfe, 0x0f, 0x06, 0x1e, 0xff, 0x00
-
- .align 2
-gUnknown_0860AA88:: @ 860AA88
- .4byte pokemonanimfunc_00
- .4byte pokemonanimfunc_01
- .4byte pokemonanimfunc_02
- .4byte pokemonanimfunc_03
- .4byte pokemonanimfunc_04
- .4byte pokemonanimfunc_05
- .4byte pokemonanimfunc_06
- .4byte pokemonanimfunc_07
- .4byte pokemonanimfunc_08
- .4byte pokemonanimfunc_09
- .4byte pokemonanimfunc_0A
- .4byte pokemonanimfunc_0B
- .4byte pokemonanimfunc_0C
- .4byte pokemonanimfunc_0D
- .4byte pokemonanimfunc_0E
- .4byte pokemonanimfunc_0F
- .4byte pokemonanimfunc_10
- .4byte pokemonanimfunc_11
- .4byte pokemonanimfunc_12
- .4byte pokemonanimfunc_13
- .4byte pokemonanimfunc_14
- .4byte pokemonanimfunc_15
- .4byte pokemonanimfunc_16
- .4byte pokemonanimfunc_17
- .4byte pokemonanimfunc_18
- .4byte pokemonanimfunc_19
- .4byte pokemonanimfunc_1A
- .4byte pokemonanimfunc_1B
- .4byte pokemonanimfunc_1C
- .4byte pokemonanimfunc_1D
- .4byte pokemonanimfunc_1E
- .4byte pokemonanimfunc_1F
- .4byte pokemonanimfunc_20
- .4byte pokemonanimfunc_21
- .4byte pokemonanimfunc_22
- .4byte pokemonanimfunc_23
- .4byte pokemonanimfunc_24
- .4byte pokemonanimfunc_25
- .4byte pokemonanimfunc_26
- .4byte pokemonanimfunc_27
- .4byte pokemonanimfunc_28
- .4byte pokemonanimfunc_29
- .4byte pokemonanimfunc_2A
- .4byte pokemonanimfunc_2B
- .4byte pokemonanimfunc_2C
- .4byte pokemonanimfunc_2D
- .4byte pokemonanimfunc_2E
- .4byte pokemonanimfunc_2F
- .4byte pokemonanimfunc_30
- .4byte pokemonanimfunc_31
- .4byte pokemonanimfunc_32
- .4byte pokemonanimfunc_33
- .4byte pokemonanimfunc_34
- .4byte pokemonanimfunc_35
- .4byte pokemonanimfunc_36
- .4byte pokemonanimfunc_37
- .4byte pokemonanimfunc_38
- .4byte pokemonanimfunc_39
- .4byte pokemonanimfunc_3A
- .4byte pokemonanimfunc_3B
- .4byte pokemonanimfunc_3C
- .4byte pokemonanimfunc_3D
- .4byte pokemonanimfunc_3E
- .4byte pokemonanimfunc_3F
- .4byte pokemonanimfunc_40
- .4byte pokemonanimfunc_41
- .4byte pokemonanimfunc_42
- .4byte pokemonanimfunc_43
- .4byte pokemonanimfunc_44
- .4byte pokemonanimfunc_45
- .4byte pokemonanimfunc_46
- .4byte pokemonanimfunc_47
- .4byte pokemonanimfunc_48
- .4byte pokemonanimfunc_49
- .4byte pokemonanimfunc_4A
- .4byte pokemonanimfunc_4B
- .4byte pokemonanimfunc_4C
- .4byte pokemonanimfunc_4D
- .4byte pokemonanimfunc_4E
- .4byte pokemonanimfunc_4F
- .4byte pokemonanimfunc_50
- .4byte pokemonanimfunc_51
- .4byte pokemonanimfunc_52
- .4byte pokemonanimfunc_53
- .4byte pokemonanimfunc_54
- .4byte pokemonanimfunc_55
- .4byte pokemonanimfunc_56
- .4byte pokemonanimfunc_57
- .4byte pokemonanimfunc_58
- .4byte pokemonanimfunc_59
- .4byte pokemonanimfunc_5A
- .4byte pokemonanimfunc_5B
- .4byte pokemonanimfunc_5C
- .4byte pokemonanimfunc_5D
- .4byte pokemonanimfunc_5E
- .4byte pokemonanimfunc_5F
- .4byte pokemonanimfunc_60
- .4byte pokemonanimfunc_61
- .4byte pokemonanimfunc_62
- .4byte pokemonanimfunc_63
- .4byte pokemonanimfunc_64
- .4byte pokemonanimfunc_65
- .4byte pokemonanimfunc_66
- .4byte pokemonanimfunc_67
- .4byte pokemonanimfunc_68
- .4byte pokemonanimfunc_69
- .4byte pokemonanimfunc_6A
- .4byte pokemonanimfunc_6B
- .4byte pokemonanimfunc_6C
- .4byte pokemonanimfunc_6D
- .4byte pokemonanimfunc_6E
- .4byte pokemonanimfunc_6F
- .4byte pokemonanimfunc_70
- .4byte pokemonanimfunc_71
- .4byte pokemonanimfunc_72
- .4byte pokemonanimfunc_73
- .4byte pokemonanimfunc_74
- .4byte pokemonanimfunc_75
- .4byte pokemonanimfunc_76
- .4byte pokemonanimfunc_77
- .4byte pokemonanimfunc_78
- .4byte pokemonanimfunc_79
- .4byte pokemonanimfunc_7A
- .4byte pokemonanimfunc_7B
- .4byte pokemonanimfunc_7C
- .4byte pokemonanimfunc_7D
- .4byte pokemonanimfunc_7E
- .4byte pokemonanimfunc_7F
- .4byte pokemonanimfunc_80
- .4byte pokemonanimfunc_81
- .4byte pokemonanimfunc_82
- .4byte pokemonanimfunc_83
- .4byte pokemonanimfunc_84
- .4byte pokemonanimfunc_85
- .4byte pokemonanimfunc_86
- .4byte pokemonanimfunc_87
- .4byte pokemonanimfunc_88
- .4byte pokemonanimfunc_89
- .4byte pokemonanimfunc_8A
- .4byte pokemonanimfunc_8B
- .4byte pokemonanimfunc_8C
- .4byte pokemonanimfunc_8D
- .4byte pokemonanimfunc_8E
- .4byte pokemonanimfunc_8F
- .4byte pokemonanimfunc_90
- .4byte pokemonanimfunc_91
- .4byte pokemonanimfunc_92
- .4byte pokemonanimfunc_93
- .4byte pokemonanimfunc_94
- .4byte pokemonanimfunc_95
- .4byte pokemonanimfunc_96
-
-gUnknown_0860ACE4:: @ 860ACE4
- .byte 0x60, 0x5f, 0x02, 0x5e, 0x03, 0x46, 0x6d, 0x3e, 0x6e, 0x6f, 0x70, 0x3f, 0x71, 0x13, 0x72, 0x6c, 0x6b, 0x3a, 0x64, 0x14, 0x4f, 0x5d, 0x0f, 0x4c, 0x61, 0x57, 0x58, 0x67, 0x66, 0x59, 0x74, 0x73
- .byte 0x5a, 0x75, 0x76, 0x5b, 0x77, 0x78, 0x65, 0x63, 0x5c, 0x62, 0x6a, 0x69, 0x68, 0x7b, 0x7a, 0x79, 0x7e, 0x7d, 0x7c, 0x81, 0x80, 0x7f, 0x84, 0x82, 0x83, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b
- .byte 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96
-
-gUnknown_0860AD2F:: @ 860AD2F
- .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x02, 0x01, 0x02, 0x01
-
- .align 2
-gSpriteAffineAnim_860AD48:: @ 860AD48
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_860AD58:: @ 860AD58
- obj_rot_scal_anim_frame -0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_860AD68:: @ 860AD68
- .4byte gSpriteAffineAnim_860AD48
- .4byte gSpriteAffineAnim_860AD58
-
-gUnknown_0860AD70:: @ 860AD70
- .byte 0xff, 0xff, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xfe, 0xfe, 0x06, 0x02, 0x00, 0x06, 0xfe, 0x02, 0x06, 0x02, 0x00, 0x06, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00
-
-gUnknown_0860AD8E:: @ 860AD8E
- .byte 0x00, 0x08, 0x08, 0x08, 0xf8, 0x0c, 0xf8, 0x08, 0x0c, 0x08, 0xf8, 0x0c, 0xf8, 0x08, 0x0c, 0x08, 0xf8, 0x0c, 0xf8, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x08, 0xf8, 0x18, 0xf8, 0x08
- .byte 0x18, 0x08, 0xf8, 0x18, 0xf8, 0x08, 0x18, 0x08, 0xf8, 0x18, 0xf8, 0x00, 0x18, 0x00, 0x00, 0x00
-
-gUnknown_0860ADBE:: @ 860ADBE
- .byte 0x01, 0x01, 0x0c, 0xfe, 0x00, 0x0c, 0x01, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00
-
-gUnknown_0860ADCC:: @ 860ADCC
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00
-
-gUnknown_0860AE1C:: @ 860AE1C
- .byte 0x00, 0x05, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00
- .byte 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .byte 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00
- .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00
-
-gUnknown_0860AE54:: @ 860AE54
- .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00
- .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00
-
- .align 2
-gUnknown_0860AE7C:: @ 860AE7C
- .4byte gUnknown_0860ADCC
- .4byte gUnknown_0860AE1C
- .4byte gUnknown_0860AE54
-
- .align 1
-gUnknown_0860AE88:: @ 860AE88
- .2byte 0x001f, 0x03e0, 0x7c00, 0x0000
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s
deleted file mode 100644
index 6d3964da8..000000000
--- a/data/reset_rtc_screen.s
+++ /dev/null
@@ -1,78 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_08510404:: @ 8510404 struct BgTemplate
- .4byte 0x000001f0
-
- .align 2
-gUnknown_08510408:: @ 8510408
- window_template 0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155
- window_template 0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9
- null_window_template
-
- .align 2
-gUnknown_08510420:: @ 8510420
- window_template 0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf
-
- .align 2
-gUnknown_08510428:: @ 8510428
- .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0
- .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0
- .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0
- .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0
- .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0
-
- .align 2
-gOamData_08510464:: @ 8510464
- .2byte 0x0000
- .2byte 0x0000
- .2byte 0x0000
-
- .align 2
-gResetRtcScreen_DownArrowGfx:: @ 851046C
- .incbin "graphics/misc/reset_rtc_screen_downarrow.4bpp"
-
- .align 2
-gResetRtcScreen_RightArrowGfx:: @ 851048C
- .incbin "graphics/misc/reset_rtc_screen_rightarrow.4bpp"
-
- .align 2
-gResetRtcScreen_ArrowPal: @ 85104AC
- .incbin "graphics/misc/reset_rtc_screen_arrow.gbapal"
-
- .align 2
-gSpriteImageTable_85104B4:: @ 85104B4
- obj_frame_tiles gResetRtcScreen_DownArrowGfx, 0x20
- obj_frame_tiles gResetRtcScreen_RightArrowGfx, 0x20
-
- .align 2
-gUnknown_085104C4:: @ 85104C4
- obj_pal gResetRtcScreen_ArrowPal, 0x1000
-
- .align 2
-gSpriteAnim_85104CC:: @ 85104CC
- obj_image_anim_frame 0, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85104D4: @ 85104D4
- obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85104DC:: @ 85104DC
- obj_image_anim_frame 1, 30
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_85104E4:: @ 85104E4
- .4byte gSpriteAnim_85104CC
- .4byte gSpriteAnim_85104D4
- .4byte gSpriteAnim_85104DC
-
- .align 2
-gSpriteTemplate_85104F0:: @ 85104F0
- spr_template 0xFFFF, 0x1000, gOamData_08510464, gSpriteAnimTable_85104E4, gSpriteImageTable_85104B4, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/data/save.s b/data/save.s
deleted file mode 100644
index 23a8d3928..000000000
--- a/data/save.s
+++ /dev/null
@@ -1,20 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gSaveSectionOffsets:: @ 85CDC00
- .2byte 0, 0xF2C
- .2byte 0, 0xF80
- .2byte 0xF80, 0xF80
- .2byte 0x1F00, 0xF80
- .2byte 0x2E80, 0xF08
- .2byte 0, 0xF80
- .2byte 0xF80, 0xF80
- .2byte 0x1F00, 0xF80
- .2byte 0x2E80, 0xF80
- .2byte 0x3E00, 0xF80
- .2byte 0x4D80, 0xF80
- .2byte 0x5D00, 0xF80
- .2byte 0x6C80, 0xF80
- .2byte 0x7C00, 0x7D0
diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc
index bcd92d1c2..b8aef7c3d 100644
--- a/data/scripts/cable_club.inc
+++ b/data/scripts/cable_club.inc
@@ -231,7 +231,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276C9D:: @ 8276C9D
end
OldaleTown_PokemonCenter_2F_EventScript_276CB5:: @ 8276CB5
- special sub_80097E8
+ special CloseLink
setvar VAR_0x4087, 0
compare VAR_0x8007, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
@@ -254,7 +254,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276CE7:: @ 8276CE7
end
OldaleTown_PokemonCenter_2F_EventScript_276CFF:: @ 8276CFF
- special sub_80097E8
+ special CloseLink
setvar VAR_0x4087, 0
compare VAR_0x8007, 0
goto_eq OldaleTown_PokemonCenter_2F_EventScript_276DD5
@@ -276,7 +276,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276D2C:: @ 8276D2C
end
OldaleTown_PokemonCenter_2F_EventScript_276D44:: @ 8276D44
- special sub_80097E8
+ special CloseLink
setvar VAR_0x4087, 0
applymovement 255, OldaleTown_PokemonCenter_2F_Movement_27734F
waitmovement 0
@@ -501,25 +501,25 @@ OldaleTown_PokemonCenter_2F_EventScript_277046:: @ 8277046
end
OldaleTown_PokemonCenter_2F_EventScript_277072:: @ 8277072
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_27833D, 4
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
end
OldaleTown_PokemonCenter_2F_EventScript_277083:: @ 8277083
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278307, 4
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
end
OldaleTown_PokemonCenter_2F_EventScript_277094:: @ 8277094
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_2782D1, 4
goto OldaleTown_PokemonCenter_2F_EventScript_2770A5
end
OldaleTown_PokemonCenter_2F_EventScript_2770A5:: @ 82770A5
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278372, 4
release
end
@@ -658,45 +658,45 @@ OldaleTown_PokemonCenter_2F_EventScript_27724C:: @ 827724C
end
OldaleTown_PokemonCenter_2F_EventScript_2772AB:: @ 82772AB
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278565, 4
release
end
OldaleTown_PokemonCenter_2F_EventScript_2772B8:: @ 82772B8
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_2785C9, 4
release
end
BattleFrontier_BattleTowerLobby_EventScript_2772C5:: @ 82772C5
OldaleTown_PokemonCenter_2F_EventScript_2772C5:: @ 82772C5
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_27821C, 4
release
end
BattleFrontier_BattleTowerLobby_EventScript_2772D2:: @ 82772D2
OldaleTown_PokemonCenter_2F_EventScript_2772D2:: @ 82772D2
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_2781C7, 4
release
end
OldaleTown_PokemonCenter_2F_EventScript_2772DF:: @ 82772DF
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278255, 4
release
end
OldaleTown_PokemonCenter_2F_EventScript_2772EC:: @ 82772EC
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278291, 4
release
end
MossdeepCity_GameCorner_1F_EventScript_2772F9:: @ 82772F9
- special sub_80097E8
+ special CloseLink
msgbox MossdeepCity_GameCorner_1F_Text_278D51, 4
release
end
@@ -708,19 +708,19 @@ OldaleTown_PokemonCenter_2F_EventScript_277306:: @ 8277306
end
OldaleTown_PokemonCenter_2F_EventScript_27730E:: @ 827730E
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_2782A8, 4
release
end
OldaleTown_PokemonCenter_2F_EventScript_27731B:: @ 827731B
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_2785E9, 4
release
end
OldaleTown_PokemonCenter_2F_EventScript_277328:: @ 8277328
- special sub_80097E8
+ special CloseLink
msgbox OldaleTown_PokemonCenter_2F_Text_278651, 4
release
end
diff --git a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
index 7c0762417..def3dd122 100644
--- a/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
+++ b/data/scripts/maps/BattleFrontier_BattleTowerLobby.inc
@@ -725,7 +725,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F0E3:: @ 823F0E3
special copy_player_party_from_sav1
BattleFrontier_BattleTowerLobby_EventScript_23F0E6:: @ 823F0E6
- special sub_80097E8
+ special CloseLink
msgbox BattleFrontier_BattleTowerLobby_Text_23FD07, 4
BattleFrontier_BattleTowerLobby_EventScript_23F0F1:: @ 823F0F1
@@ -951,7 +951,7 @@ BattleFrontier_BattleTowerLobby_EventScript_23F2C5:: @ 823F2C5
end
BattleFrontier_BattleTowerLobby_EventScript_23F327:: @ 823F327
- special sub_80097E8
+ special CloseLink
compare VAR_0x8005, 3
goto_eq BattleFrontier_BattleTowerLobby_EventScript_23F33F
msgbox BattleFrontier_BattleTowerLobby_Text_278255, 4
@@ -966,13 +966,13 @@ BattleFrontier_BattleTowerLobby_EventScript_23F33F:: @ 823F33F
BattleFrontier_BattleTowerLobby_EventScript_23F351:: @ 823F351
msgbox BattleFrontier_BattleTowerLobby_Text_241240, 4
- special sub_80097E8
+ special CloseLink
msgbox BattleFrontier_BattleTowerLobby_Text_2782A8, 4
release
end
BattleFrontier_BattleTowerLobby_EventScript_23F366:: @ 823F366
- special sub_80097E8
+ special CloseLink
compare VAR_0x8005, 0
call_if 1, BattleFrontier_BattleTowerLobby_EventScript_23F394
compare VAR_0x8005, 1
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.inc b/data/scripts/maps/LilycoveCity_ContestLobby.inc
index 3b7d6a2f2..beb96e171 100644
--- a/data/scripts/maps/LilycoveCity_ContestLobby.inc
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc
@@ -709,7 +709,7 @@ LilycoveCity_ContestLobby_EventScript_21A971:: @ 821A971
end
LilycoveCity_ContestLobby_EventScript_21A97F:: @ 821A97F
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_27BD4F, 4
release
end
@@ -811,13 +811,13 @@ LilycoveCity_ContestLobby_EventScript_21AAE1:: @ 821AAE1
end
LilycoveCity_ContestLobby_EventScript_21AAEF:: @ 821AAEF
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_27821C, 4
release
end
LilycoveCity_ContestLobby_EventScript_21AAFC:: @ 821AAFC
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_27C879, 4
release
end
diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc
index 0f705c841..39cca8244 100644
--- a/data/scripts/pokeblocks.inc
+++ b/data/scripts/pokeblocks.inc
@@ -655,25 +655,25 @@ LilycoveCity_ContestLobby_EventScript_29416C:: @ 829416C
end
LilycoveCity_ContestLobby_EventScript_294176:: @ 8294176
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_2781C7, 4
releaseall
end
LilycoveCity_ContestLobby_EventScript_294183:: @ 8294183
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_278255, 4
releaseall
end
LilycoveCity_ContestLobby_EventScript_294190:: @ 8294190
- special sub_80097E8
+ special CloseLink
msgbox gUnknown_08272D9C, 4
releaseall
end
LilycoveCity_ContestLobby_EventScript_29419D:: @ 829419D
- special sub_80097E8
+ special CloseLink
msgbox LilycoveCity_ContestLobby_Text_27821C, 4
releaseall
end
diff --git a/data/specials.inc b/data/specials.inc
index 332c58bca..ac4a47b69 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -40,7 +40,7 @@ gSpecials:: @ 81DBA64
def_special sub_80B2E4C
def_special sub_80B2E74
def_special sub_80B2EA8
- def_special sub_80097E8
+ def_special CloseLink
def_special sub_80B3968
def_special sub_80B3924
def_special nullsub_37
diff --git a/data/time_events.s b/data/time_events.s
deleted file mode 100644
index 7a543fff5..000000000
--- a/data/time_events.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_085B2B44:: @ 85B2B44
- .byte 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01
diff --git a/data/title_screen.s b/data/title_screen.s
deleted file mode 100644
index b07464ce9..000000000
--- a/data/title_screen.s
+++ /dev/null
@@ -1,163 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
- .incbin "graphics/title_screen/unk_853EF78.gbapal"
-
- .align 2
-gTitleScreenRayquazaGfx:: @ 853F058
- .incbin "graphics/title_screen/rayquaza.4bpp.lz"
-
- .align 2
-gTitleScreenRayquazaTilemap:: @ 853F83C
- .incbin "graphics/title_screen/rayquaza.bin.lz"
-
- .align 2
-gTitleScreenLogoShineGfx:: @ 853FB3C
- .incbin "graphics/title_screen/logo_shine.4bpp.lz"
-
- .align 2
-gTitleScreenCloudsGfx:: @ 853FC8C
- .incbin "graphics/title_screen/clouds.4bpp.lz"
-
- .align 2
-gUnknown_0853FF70:: @ 853FF70
- .2byte 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710
- .2byte 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10
- .2byte 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008
- .2byte 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000
- .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000
- .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000
- .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000
- .2byte 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000
-
- .align 2
-gUnknown_0853FFF0:: @ 853FFF0
- .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0853FFF8:: @ 853FFF8
- .byte 0xa0, 0x60, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08540000:: @ 8540000
- .2byte 0x0000, 0x001e, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540008:: @ 8540008
- .2byte 0x0040, 0x001e, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540010:: @ 8540010
- .4byte gUnknown_08540000
-
- .align 2
-gUnknown_08540014:: @ 8540014
- .4byte gUnknown_08540008
-
- .align 2
-gUnknown_08540018:: @ 8540018
- spr_template 0x03e8, 0x03e8, gUnknown_0853FFF0, gUnknown_08540010, NULL, gDummySpriteAffineAnimTable, sub_80AA40C
-
- .align 2
-gUnknown_08540030:: @ 8540030
- spr_template 0x03e8, 0x03e8, gUnknown_0853FFF8, gUnknown_08540014, NULL, gDummySpriteAffineAnimTable, sub_80AA474
-
- .align 2
-gUnknown_08540048:: @ 8540048
- obj_tiles gTitleScreenEmeraldVersionGfx, 0x1000, 0x03e8
- null_obj_tiles
-
- .align 2
-gUnknown_08540058:: @ 8540058
- .byte 0xa0, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08540060:: @ 8540060
- .2byte 0x0001, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540068:: @ 8540068
- .2byte 0x0005, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540070:: @ 8540070
- .2byte 0x0009, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540078:: @ 8540078
- .2byte 0x000d, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540080:: @ 8540080
- .2byte 0x0011, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540088:: @ 8540088
- .2byte 0x0015, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540090:: @ 8540090
- .2byte 0x0019, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540098:: @ 8540098
- .2byte 0x001d, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085400A0:: @ 85400A0
- .2byte 0x0021, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085400A8:: @ 85400A8
- .2byte 0x0025, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_085400B0:: @ 85400B0
- .4byte gUnknown_08540060
- .4byte gUnknown_08540068
- .4byte gUnknown_08540070
- .4byte gUnknown_08540078
- .4byte gUnknown_08540080
- .4byte gUnknown_08540088
- .4byte gUnknown_08540090
- .4byte gUnknown_08540098
- .4byte gUnknown_085400A0
- .4byte gUnknown_085400A8
-
- .align 2
-gUnknown_085400D8:: @ 85400D8
- spr_template 0x03e9, 0x03e9, gUnknown_08540058, gUnknown_085400B0, NULL, gDummySpriteAffineAnimTable, sub_80AA4B4
-
- .align 2
-gUnknown_085400F0:: @ 85400F0
- obj_tiles gTitleScreenPressStartGfx, 0x0520, 0x03e9
- null_obj_tiles
-
- .align 2
-gUnknown_08540100:: @ 8540100
- obj_pal gTitleScreenPressStartPal, 0x03e9
- null_obj_pal
-
- .align 2
-gUnknown_08540110:: @ 8540110
- .byte 0xa0, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08540118:: @ 8540118
- .2byte 0x0000, 0x0004, 0xffff, 0x0000
-
- .align 2
-gUnknown_08540120:: @ 8540120
- .4byte gUnknown_08540118
-
- .align 2
-gUnknown_08540124:: @ 8540124
- spr_template 0x03ea, 0x03e9, gUnknown_08540110, gUnknown_08540120, NULL, gDummySpriteAffineAnimTable, title_screen_logo_shine_obj_callback_type1
-
- .align 2
-gUnknown_0854013C:: @ 854013C
- obj_tiles gTitleScreenLogoShineGfx, 0x0800, 0x03ea
- null_obj_tiles
diff --git a/graphics/battle_anims/sprites/smokescreen_impact.pal b/graphics/battle_anims/sprites/smokescreen_impact.pal
deleted file mode 100644
index 64367bdc9..000000000
--- a/graphics/battle_anims/sprites/smokescreen_impact.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 148 49
-57 98 197
-0 0 0
-0 0 0
-0 0 0
-164 156 106
-197 197 148
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/battle_interface/ball_display.pal b/graphics/battle_interface/ball_display.pal
deleted file mode 100644
index ea646bb82..000000000
--- a/graphics/battle_interface/ball_display.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-57 57 57
-255 255 255
-213 205 189
-131 131 139
-74 65 90
-82 106 90
-255 180 123
-246 148 115
-222 106 90
-115 255 172
-90 213 131
-255 230 57
-205 172 8
-255 90 57
-172 65 74
diff --git a/graphics/battle_interface/ball_status_bar.pal b/graphics/battle_interface/ball_status_bar.pal
deleted file mode 100644
index bc8e8f2bc..000000000
--- a/graphics/battle_interface/ball_status_bar.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-65 65 65
-255 255 222
-222 213 180
-197 189 115
-123 148 131
-82 106 98
-32 57 0
-57 82 65
-255 230 0
-255 156 148
-65 205 255
-0 0 255
-0 255 0
-255 0 0
-106 148 255
diff --git a/graphics/battle_interface/unk_battlebox.pal b/graphics/battle_interface/unk_battlebox.pal
deleted file mode 100644
index 862165f3f..000000000
--- a/graphics/battle_interface/unk_battlebox.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 255 255
-255 255 255
-106 90 115
-0 0 0
-213 230 255
-189 205 238
-238 238 255
-106 172 197
-90 139 180
-123 197 205
-0 0 0
-0 0 0
-123 197 255
-0 0 139
-255 131 131
-164 0 0
diff --git a/graphics/battle_interface/unused_window.pal b/graphics/battle_interface/unused_window.pal
deleted file mode 100644
index a5c40e694..000000000
--- a/graphics/battle_interface/unused_window.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-82 106 98
-180 197 213
-148 139 139
-106 98 90
-255 189 57
-230 148 65
-255 255 255
-115 255 172
-74 205 123
-32 164 82
-0 123 41
-255 255 213
-131 205 238
-213 230 230
-82 139 189
diff --git a/graphics/berries/pics/aguav.png b/graphics/berries/aguav.png
index 0661fe8d3..0661fe8d3 100644
--- a/graphics/berries/pics/aguav.png
+++ b/graphics/berries/aguav.png
Binary files differ
diff --git a/graphics/berries/pics/apicot.png b/graphics/berries/apicot.png
index b7098fc90..b7098fc90 100644
--- a/graphics/berries/pics/apicot.png
+++ b/graphics/berries/apicot.png
Binary files differ
diff --git a/graphics/berries/pics/aspear.png b/graphics/berries/aspear.png
index b5e2c5061..b5e2c5061 100644
--- a/graphics/berries/pics/aspear.png
+++ b/graphics/berries/aspear.png
Binary files differ
diff --git a/graphics/berries/pics/belue.png b/graphics/berries/belue.png
index 81ddaa9bb..81ddaa9bb 100644
--- a/graphics/berries/pics/belue.png
+++ b/graphics/berries/belue.png
Binary files differ
diff --git a/graphics/berries/pics/bluk.png b/graphics/berries/bluk.png
index fc7e6c128..fc7e6c128 100644
--- a/graphics/berries/pics/bluk.png
+++ b/graphics/berries/bluk.png
Binary files differ
diff --git a/graphics/berries/pics/cheri.png b/graphics/berries/cheri.png
index f70a1ad74..f70a1ad74 100644
--- a/graphics/berries/pics/cheri.png
+++ b/graphics/berries/cheri.png
Binary files differ
diff --git a/graphics/berries/pics/chesto.png b/graphics/berries/chesto.png
index db1fe9e73..db1fe9e73 100644
--- a/graphics/berries/pics/chesto.png
+++ b/graphics/berries/chesto.png
Binary files differ
diff --git a/graphics/berries/pics/cornn.png b/graphics/berries/cornn.png
index e124fc599..e124fc599 100644
--- a/graphics/berries/pics/cornn.png
+++ b/graphics/berries/cornn.png
Binary files differ
diff --git a/graphics/berries/pics/durin.png b/graphics/berries/durin.png
index 5bbb97e1f..5bbb97e1f 100644
--- a/graphics/berries/pics/durin.png
+++ b/graphics/berries/durin.png
Binary files differ
diff --git a/graphics/berries/pics/enigma.png b/graphics/berries/enigma.png
index af369550a..af369550a 100644
--- a/graphics/berries/pics/enigma.png
+++ b/graphics/berries/enigma.png
Binary files differ
diff --git a/graphics/berries/pics/figy.png b/graphics/berries/figy.png
index 9ec8425d5..9ec8425d5 100644
--- a/graphics/berries/pics/figy.png
+++ b/graphics/berries/figy.png
Binary files differ
diff --git a/graphics/berries/pics/ganlon.png b/graphics/berries/ganlon.png
index ec5e38319..ec5e38319 100644
--- a/graphics/berries/pics/ganlon.png
+++ b/graphics/berries/ganlon.png
Binary files differ
diff --git a/graphics/berries/pics/grepa.png b/graphics/berries/grepa.png
index 136a86df2..136a86df2 100644
--- a/graphics/berries/pics/grepa.png
+++ b/graphics/berries/grepa.png
Binary files differ
diff --git a/graphics/berries/pics/hondew.png b/graphics/berries/hondew.png
index ab1add813..ab1add813 100644
--- a/graphics/berries/pics/hondew.png
+++ b/graphics/berries/hondew.png
Binary files differ
diff --git a/graphics/berries/pics/iapapa.png b/graphics/berries/iapapa.png
index 243e23d29..243e23d29 100644
--- a/graphics/berries/pics/iapapa.png
+++ b/graphics/berries/iapapa.png
Binary files differ
diff --git a/graphics/berries/pics/kelpsy.png b/graphics/berries/kelpsy.png
index 17b509c04..17b509c04 100644
--- a/graphics/berries/pics/kelpsy.png
+++ b/graphics/berries/kelpsy.png
Binary files differ
diff --git a/graphics/berries/pics/lansat.png b/graphics/berries/lansat.png
index c63a590ec..c63a590ec 100644
--- a/graphics/berries/pics/lansat.png
+++ b/graphics/berries/lansat.png
Binary files differ
diff --git a/graphics/berries/pics/leppa.png b/graphics/berries/leppa.png
index 228bc9c3a..228bc9c3a 100644
--- a/graphics/berries/pics/leppa.png
+++ b/graphics/berries/leppa.png
Binary files differ
diff --git a/graphics/berries/pics/liechi.png b/graphics/berries/liechi.png
index dbfea58ca..dbfea58ca 100644
--- a/graphics/berries/pics/liechi.png
+++ b/graphics/berries/liechi.png
Binary files differ
diff --git a/graphics/berries/pics/lum.png b/graphics/berries/lum.png
index 52a97fe4b..52a97fe4b 100644
--- a/graphics/berries/pics/lum.png
+++ b/graphics/berries/lum.png
Binary files differ
diff --git a/graphics/berries/pics/mago.png b/graphics/berries/mago.png
index b83c4cc3e..b83c4cc3e 100644
--- a/graphics/berries/pics/mago.png
+++ b/graphics/berries/mago.png
Binary files differ
diff --git a/graphics/berries/pics/magost.png b/graphics/berries/magost.png
index d3332bc26..d3332bc26 100644
--- a/graphics/berries/pics/magost.png
+++ b/graphics/berries/magost.png
Binary files differ
diff --git a/graphics/berries/pics/nanab.png b/graphics/berries/nanab.png
index 88fa1368e..88fa1368e 100644
--- a/graphics/berries/pics/nanab.png
+++ b/graphics/berries/nanab.png
Binary files differ
diff --git a/graphics/berries/pics/nomel.png b/graphics/berries/nomel.png
index 828674f62..828674f62 100644
--- a/graphics/berries/pics/nomel.png
+++ b/graphics/berries/nomel.png
Binary files differ
diff --git a/graphics/berries/pics/oran.png b/graphics/berries/oran.png
index bc9517fac..bc9517fac 100644
--- a/graphics/berries/pics/oran.png
+++ b/graphics/berries/oran.png
Binary files differ
diff --git a/graphics/berries/palettes/aguav.pal b/graphics/berries/palettes/aguav.pal
deleted file mode 100644
index fa20daf24..000000000
--- a/graphics/berries/palettes/aguav.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-74 148 41
-57 115 32
-41 82 24
-255 238 189
-222 197 148
-189 164 106
-156 131 74
-197 197 139
-148 172 98
-90 139 82
diff --git a/graphics/berries/palettes/apicot.pal b/graphics/berries/palettes/apicot.pal
deleted file mode 100644
index 82cb76d5a..000000000
--- a/graphics/berries/palettes/apicot.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-238 238 255
-189 205 238
-148 180 230
-106 148 222
-65 123 213
-65 98 148
-222 255 131
-197 230 123
-172 213 115
-148 189 106
-123 172 98
-90 131 82
-57 164 156
-255 230 98
-205 164 98
diff --git a/graphics/berries/palettes/aspear.pal b/graphics/berries/palettes/aspear.pal
deleted file mode 100644
index 52842fd55..000000000
--- a/graphics/berries/palettes/aspear.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-246 238 222
-246 238 189
-246 238 156
-246 238 123
-230 213 115
-213 197 106
-197 180 98
-180 156 90
-164 139 82
-148 123 74
-180 189 148
-156 164 131
-131 139 123
-106 123 115
-0 0 0
diff --git a/graphics/berries/palettes/belue.pal b/graphics/berries/palettes/belue.pal
deleted file mode 100644
index 0d348b27e..000000000
--- a/graphics/berries/palettes/belue.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-164 172 197
-148 148 180
-131 123 172
-123 98 156
-106 74 148
-98 57 139
-82 41 82
-255 213 164
-230 189 148
-205 164 131
-180 139 123
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/bluk.pal b/graphics/berries/palettes/bluk.pal
deleted file mode 100644
index 88586d6b5..000000000
--- a/graphics/berries/palettes/bluk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-189 205 213
-164 156 197
-139 115 180
-115 74 172
-98 57 139
-90 49 106
-82 41 82
-180 139 123
-148 106 82
-115 74 41
-0 0 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/cheri.pal b/graphics/berries/palettes/cheri.pal
deleted file mode 100644
index 01acf52c9..000000000
--- a/graphics/berries/palettes/cheri.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 49 41
-180 57 32
-148 65 24
-115 82 24
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/chesto.pal b/graphics/berries/palettes/chesto.pal
deleted file mode 100644
index 3a4e0964f..000000000
--- a/graphics/berries/palettes/chesto.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-148 205 255
-123 172 238
-98 148 222
-82 123 213
-65 98 180
-57 74 148
-230 197 164
-213 172 148
-197 156 131
-180 131 115
-164 115 98
-148 98 82
-156 205 115
-74 106 197
-90 139 82
diff --git a/graphics/berries/palettes/cornn.pal b/graphics/berries/palettes/cornn.pal
deleted file mode 100644
index 5096389e0..000000000
--- a/graphics/berries/palettes/cornn.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-189 205 213
-164 156 197
-139 115 180
-115 74 172
-98 57 139
-90 49 106
-82 41 82
-180 139 123
-180 189 123
-115 74 41
-49 90 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/durin.pal b/graphics/berries/palettes/durin.pal
deleted file mode 100644
index 8b636135d..000000000
--- a/graphics/berries/palettes/durin.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 246
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-98 164 57
-98 139 57
-255 246 197
-255 222 148
-139 98 49
-222 172 98
-189 148 98
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/enigma.pal b/graphics/berries/palettes/enigma.pal
deleted file mode 100644
index 349ecc7f4..000000000
--- a/graphics/berries/palettes/enigma.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 246 246
-148 131 123
-115 98 98
-82 74 74
-57 49 49
-24 24 24
-0 0 0
-246 238 222
-222 205 197
-205 180 172
-180 156 156
-164 131 131
-148 106 115
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/figy.pal b/graphics/berries/palettes/figy.pal
deleted file mode 100644
index e427ea1e9..000000000
--- a/graphics/berries/palettes/figy.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 197 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 41 49
-180 41 49
-255 246 205
-230 213 172
-205 189 139
-180 164 115
-123 106 74
-197 123 90
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/ganlon.pal b/graphics/berries/palettes/ganlon.pal
deleted file mode 100644
index 381974125..000000000
--- a/graphics/berries/palettes/ganlon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-222 255 255
-189 230 255
-164 197 238
-139 172 222
-115 148 213
-90 123 197
-65 98 189
-65 65 123
-246 238 164
-222 205 139
-205 180 123
-180 156 106
-164 131 90
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/grepa.pal b/graphics/berries/palettes/grepa.pal
deleted file mode 100644
index 42ff8830f..000000000
--- a/graphics/berries/palettes/grepa.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-246 238 222
-246 230 180
-246 230 148
-246 222 106
-255 222 74
-222 197 65
-197 172 65
-172 148 65
-148 123 65
-123 98 65
-172 255 74
-131 213 65
-90 180 65
-49 148 65
-238 205 65
diff --git a/graphics/berries/palettes/hondew.pal b/graphics/berries/palettes/hondew.pal
deleted file mode 100644
index db2739961..000000000
--- a/graphics/berries/palettes/hondew.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 246
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-98 164 57
-98 139 57
-255 246 197
-255 222 148
-255 197 98
-222 172 98
-189 148 98
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/iapapa.pal b/graphics/berries/palettes/iapapa.pal
deleted file mode 100644
index 31fac9dde..000000000
--- a/graphics/berries/palettes/iapapa.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 197 197
-246 238 222
-246 238 172
-238 213 148
-230 197 131
-222 180 115
-213 164 98
-205 148 82
-139 90 57
-230 164 90
-238 123 74
-255 90 57
-222 90 57
-197 90 57
-172 90 57
-90 139 82
diff --git a/graphics/berries/palettes/kelpsy.pal b/graphics/berries/palettes/kelpsy.pal
deleted file mode 100644
index 67ad7a21c..000000000
--- a/graphics/berries/palettes/kelpsy.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-189 205 213
-164 156 197
-139 115 180
-115 74 172
-98 57 139
-90 49 106
-82 41 82
-180 139 123
-148 106 82
-115 74 41
-0 0 0
-189 222 255
-156 197 230
-131 172 205
-106 148 189
diff --git a/graphics/berries/palettes/lansat.pal b/graphics/berries/palettes/lansat.pal
deleted file mode 100644
index 66621677d..000000000
--- a/graphics/berries/palettes/lansat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 246 246
-189 222 148
-148 197 123
-115 180 106
-82 164 90
-49 148 74
-255 222 164
-246 180 139
-238 148 115
-230 106 90
-222 74 65
-213 41 49
-189 41 49
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/leppa.pal b/graphics/berries/palettes/leppa.pal
deleted file mode 100644
index 4fab82d6c..000000000
--- a/graphics/berries/palettes/leppa.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 41 49
-180 41 49
-148 41 49
-197 148 98
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/liechi.pal b/graphics/berries/palettes/liechi.pal
deleted file mode 100644
index c12737deb..000000000
--- a/graphics/berries/palettes/liechi.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 41 49
-180 41 49
-255 255 255
-238 230 213
-222 205 172
-205 180 131
-197 164 90
-255 205 131
-238 164 98
-222 123 65
-213 90 32
diff --git a/graphics/berries/palettes/lum.pal b/graphics/berries/palettes/lum.pal
deleted file mode 100644
index 237ef0dc4..000000000
--- a/graphics/berries/palettes/lum.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 246 246
-255 255 222
-238 255 189
-230 255 156
-197 230 131
-172 205 115
-148 180 90
-123 156 74
-115 115 74
-106 82 74
-0 0 0
-0 0 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/mago.pal b/graphics/berries/palettes/mago.pal
deleted file mode 100644
index 4441e4564..000000000
--- a/graphics/berries/palettes/mago.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-197 106 106
-148 74 74
-98 41 49
-255 246 197
-230 205 148
-213 164 106
-197 131 65
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/magost.pal b/graphics/berries/palettes/magost.pal
deleted file mode 100644
index 2393be3d6..000000000
--- a/graphics/berries/palettes/magost.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-222 123 123
-197 106 106
-180 90 90
-255 246 197
-230 131 131
-246 148 148
-197 131 65
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/nanab.pal b/graphics/berries/palettes/nanab.pal
deleted file mode 100644
index 4441e4564..000000000
--- a/graphics/berries/palettes/nanab.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-197 106 106
-148 74 74
-98 41 49
-255 246 197
-230 205 148
-213 164 106
-197 131 65
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/nomel.pal b/graphics/berries/palettes/nomel.pal
deleted file mode 100644
index 6844ddcc3..000000000
--- a/graphics/berries/palettes/nomel.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-246 238 222
-246 230 180
-246 230 148
-246 222 106
-255 222 74
-238 197 65
-222 180 65
-205 156 65
-189 139 65
-123 98 65
-172 255 74
-131 213 65
-90 180 65
-246 205 65
-238 205 65
diff --git a/graphics/berries/palettes/oran.pal b/graphics/berries/palettes/oran.pal
deleted file mode 100644
index ac06d0224..000000000
--- a/graphics/berries/palettes/oran.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-189 205 213
-156 172 213
-123 148 213
-90 123 213
-65 98 213
-65 82 180
-65 65 148
-74 49 115
-148 106 82
-115 74 41
-0 0 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/pamtre.pal b/graphics/berries/palettes/pamtre.pal
deleted file mode 100644
index fa2cb87a7..000000000
--- a/graphics/berries/palettes/pamtre.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-189 205 213
-172 180 205
-156 148 189
-131 106 180
-115 74 172
-98 57 139
-90 49 106
-82 41 82
-238 189 213
-205 164 172
-180 139 139
-156 115 106
-131 90 74
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/pecha.pal b/graphics/berries/palettes/pecha.pal
deleted file mode 100644
index b0743cc64..000000000
--- a/graphics/berries/palettes/pecha.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 255
-255 222 197
-255 197 148
-222 172 123
-197 148 106
-172 123 90
-148 98 74
-0 0 0
-255 205 172
-238 180 131
-123 246 0
-90 213 0
-57 180 0
-24 148 0
-0 0 0
diff --git a/graphics/berries/palettes/persim.pal b/graphics/berries/palettes/persim.pal
deleted file mode 100644
index 389fac638..000000000
--- a/graphics/berries/palettes/persim.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-197 106 106
-148 74 74
-98 41 49
-0 0 0
-0 0 0
-0 0 0
-90 98 82
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/petaya.pal b/graphics/berries/palettes/petaya.pal
deleted file mode 100644
index c6eefb076..000000000
--- a/graphics/berries/palettes/petaya.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 246 246
-255 197 205
-246 164 180
-246 131 156
-246 106 139
-189 74 90
-139 41 49
-230 197 148
-205 172 123
-189 148 98
-172 123 74
-156 98 49
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/pinap.pal b/graphics/berries/palettes/pinap.pal
deleted file mode 100644
index e62f61e20..000000000
--- a/graphics/berries/palettes/pinap.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-246 238 222
-246 238 189
-246 238 156
-246 238 123
-222 205 106
-197 180 98
-172 156 90
-148 123 74
-123 98 65
-106 74 57
-148 255 172
-115 213 148
-82 180 123
-49 148 98
-0 0 0
diff --git a/graphics/berries/palettes/pomeg.pal b/graphics/berries/palettes/pomeg.pal
deleted file mode 100644
index 01acf52c9..000000000
--- a/graphics/berries/palettes/pomeg.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 49 41
-180 57 32
-148 65 24
-115 82 24
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/qualot.pal b/graphics/berries/palettes/qualot.pal
deleted file mode 100644
index 4441e4564..000000000
--- a/graphics/berries/palettes/qualot.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-197 106 106
-148 74 74
-98 41 49
-255 246 197
-230 205 148
-213 164 106
-197 131 65
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/rabuta.pal b/graphics/berries/palettes/rabuta.pal
deleted file mode 100644
index 251beeb2d..000000000
--- a/graphics/berries/palettes/rabuta.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 246
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-98 164 57
-98 139 57
-255 246 197
-230 213 172
-205 189 156
-180 164 131
-156 139 115
-139 115 98
-90 106 57
-90 139 82
diff --git a/graphics/berries/palettes/rawst.pal b/graphics/berries/palettes/rawst.pal
deleted file mode 100644
index a7a4576b5..000000000
--- a/graphics/berries/palettes/rawst.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 98 246
-255 255 255
-213 230 222
-172 205 189
-131 189 156
-90 164 123
-49 148 98
-49 131 82
-57 115 74
-65 98 65
-74 82 57
-98 197 0
-49 148 0
-0 98 0
-148 205 0
-0 0 0
diff --git a/graphics/berries/palettes/razz.pal b/graphics/berries/palettes/razz.pal
deleted file mode 100644
index 01acf52c9..000000000
--- a/graphics/berries/palettes/razz.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 49 41
-180 57 32
-148 65 24
-115 82 24
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/salac.pal b/graphics/berries/palettes/salac.pal
deleted file mode 100644
index c0849c6bc..000000000
--- a/graphics/berries/palettes/salac.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 255 255
-255 255 255
-246 255 222
-238 255 189
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-90 156 41
-82 123 24
-74 98 8
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/sitrus.pal b/graphics/berries/palettes/sitrus.pal
deleted file mode 100644
index b80481ae1..000000000
--- a/graphics/berries/palettes/sitrus.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 246 246
-246 238 222
-246 238 172
-246 238 123
-222 213 106
-197 189 90
-172 164 82
-148 139 65
-123 115 57
-246 197 90
-246 172 32
-189 131 32
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/spelon.pal b/graphics/berries/palettes/spelon.pal
deleted file mode 100644
index 01acf52c9..000000000
--- a/graphics/berries/palettes/spelon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 49 41
-180 57 32
-148 65 24
-115 82 24
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/starf.pal b/graphics/berries/palettes/starf.pal
deleted file mode 100644
index 68525b6a6..000000000
--- a/graphics/berries/palettes/starf.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 238 246
-246 139 90
-230 255 213
-205 255 180
-180 255 139
-156 255 106
-131 205 106
-106 164 106
-90 123 106
-246 41 41
-156 106 106
-255 156 156
-98 123 205
-164 213 41
-255 205 8
-0 0 0
diff --git a/graphics/berries/palettes/tamato.pal b/graphics/berries/palettes/tamato.pal
deleted file mode 100644
index 01acf52c9..000000000
--- a/graphics/berries/palettes/tamato.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 255 123
-246 180 98
-246 106 74
-246 41 49
-213 49 41
-180 57 32
-148 65 24
-115 82 24
-189 238 131
-156 205 115
-123 172 98
-90 139 82
-115 90 74
-82 90 49
-57 98 32
diff --git a/graphics/berries/palettes/watmel.pal b/graphics/berries/palettes/watmel.pal
deleted file mode 100644
index 786c0a848..000000000
--- a/graphics/berries/palettes/watmel.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 246 246
-255 222 205
-246 189 180
-246 164 156
-246 139 139
-213 115 115
-180 90 90
-148 74 74
-255 246 197
-230 205 148
-238 255 180
-213 246 156
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/wepear.pal b/graphics/berries/palettes/wepear.pal
deleted file mode 100644
index dac1511ff..000000000
--- a/graphics/berries/palettes/wepear.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 255 255
-230 255 156
-197 238 131
-164 222 106
-131 205 82
-98 189 57
-98 156 57
-98 123 57
-98 90 57
-0 0 0
-180 230 115
-0 0 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/palettes/wiki.pal b/graphics/berries/palettes/wiki.pal
deleted file mode 100644
index 88586d6b5..000000000
--- a/graphics/berries/palettes/wiki.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-197 197 197
-189 205 213
-164 156 197
-139 115 180
-115 74 172
-98 57 139
-90 49 106
-82 41 82
-180 139 123
-148 106 82
-115 74 41
-0 0 0
-189 238 131
-156 205 115
-123 172 98
-90 139 82
diff --git a/graphics/berries/pics/pamtre.png b/graphics/berries/pamtre.png
index d066ab74c..d066ab74c 100644
--- a/graphics/berries/pics/pamtre.png
+++ b/graphics/berries/pamtre.png
Binary files differ
diff --git a/graphics/berries/pics/pecha.png b/graphics/berries/pecha.png
index 76543a044..76543a044 100644
--- a/graphics/berries/pics/pecha.png
+++ b/graphics/berries/pecha.png
Binary files differ
diff --git a/graphics/berries/pics/persim.png b/graphics/berries/persim.png
index 6c0ba368a..6c0ba368a 100644
--- a/graphics/berries/pics/persim.png
+++ b/graphics/berries/persim.png
Binary files differ
diff --git a/graphics/berries/pics/petaya.png b/graphics/berries/petaya.png
index 04198ba39..04198ba39 100644
--- a/graphics/berries/pics/petaya.png
+++ b/graphics/berries/petaya.png
Binary files differ
diff --git a/graphics/berries/pics/pinap.png b/graphics/berries/pinap.png
index 71144554a..71144554a 100644
--- a/graphics/berries/pics/pinap.png
+++ b/graphics/berries/pinap.png
Binary files differ
diff --git a/graphics/berries/pics/pomeg.png b/graphics/berries/pomeg.png
index 394f8558a..394f8558a 100644
--- a/graphics/berries/pics/pomeg.png
+++ b/graphics/berries/pomeg.png
Binary files differ
diff --git a/graphics/berries/pics/qualot.png b/graphics/berries/qualot.png
index 15f51d4d8..15f51d4d8 100644
--- a/graphics/berries/pics/qualot.png
+++ b/graphics/berries/qualot.png
Binary files differ
diff --git a/graphics/berries/pics/rabuta.png b/graphics/berries/rabuta.png
index cf620f906..cf620f906 100644
--- a/graphics/berries/pics/rabuta.png
+++ b/graphics/berries/rabuta.png
Binary files differ
diff --git a/graphics/berries/pics/rawst.png b/graphics/berries/rawst.png
index c0e3e23a6..c0e3e23a6 100644
--- a/graphics/berries/pics/rawst.png
+++ b/graphics/berries/rawst.png
Binary files differ
diff --git a/graphics/berries/pics/razz.png b/graphics/berries/razz.png
index 5c415012d..5c415012d 100644
--- a/graphics/berries/pics/razz.png
+++ b/graphics/berries/razz.png
Binary files differ
diff --git a/graphics/berries/pics/salac.png b/graphics/berries/salac.png
index 557ab1742..557ab1742 100644
--- a/graphics/berries/pics/salac.png
+++ b/graphics/berries/salac.png
Binary files differ
diff --git a/graphics/berries/pics/sitrus.png b/graphics/berries/sitrus.png
index d98327ae1..d98327ae1 100644
--- a/graphics/berries/pics/sitrus.png
+++ b/graphics/berries/sitrus.png
Binary files differ
diff --git a/graphics/berries/pics/spelon.png b/graphics/berries/spelon.png
index 996f743db..996f743db 100644
--- a/graphics/berries/pics/spelon.png
+++ b/graphics/berries/spelon.png
Binary files differ
diff --git a/graphics/berries/pics/starf.png b/graphics/berries/starf.png
index 8cca44ee2..8cca44ee2 100644
--- a/graphics/berries/pics/starf.png
+++ b/graphics/berries/starf.png
Binary files differ
diff --git a/graphics/berries/pics/tamato.png b/graphics/berries/tamato.png
index 9f2c14d4a..9f2c14d4a 100644
--- a/graphics/berries/pics/tamato.png
+++ b/graphics/berries/tamato.png
Binary files differ
diff --git a/graphics/berries/pics/watmel.png b/graphics/berries/watmel.png
index 6da099327..6da099327 100644
--- a/graphics/berries/pics/watmel.png
+++ b/graphics/berries/watmel.png
Binary files differ
diff --git a/graphics/berries/pics/wepear.png b/graphics/berries/wepear.png
index 468231651..468231651 100644
--- a/graphics/berries/pics/wepear.png
+++ b/graphics/berries/wepear.png
Binary files differ
diff --git a/graphics/berries/pics/wiki.png b/graphics/berries/wiki.png
index d13c76f5b..d13c76f5b 100644
--- a/graphics/berries/pics/wiki.png
+++ b/graphics/berries/wiki.png
Binary files differ
diff --git a/graphics/berry_blender/arrow.pal b/graphics/berry_blender/arrow.pal
deleted file mode 100644
index 4c975292d..000000000
--- a/graphics/berry_blender/arrow.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-213 222 238
-180 197 230
-148 172 222
-115 148 205
-82 123 197
-49 98 189
-255 180 205
-255 115 98
-255 49 0
-205 65 65
-189 24 24
-148 16 16
-74 57 139
-8 0 82
diff --git a/graphics/berry_blender/center.pal b/graphics/berry_blender/center.pal
deleted file mode 100644
index 606c527a3..000000000
--- a/graphics/berry_blender/center.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-205 197 255
-172 164 222
-139 139 189
-106 106 156
-74 82 123
-41 57 90
-213 222 189
-180 189 156
-148 156 123
-115 123 90
-255 172 123
-246 115 82
-238 57 41
-156 24 0
diff --git a/graphics/berry_blender/outer.pal b/graphics/berry_blender/outer.pal
deleted file mode 100644
index c3b83cf16..000000000
--- a/graphics/berry_blender/outer.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-213 222 238
-180 197 230
-148 172 222
-115 148 205
-82 123 197
-49 98 189
-255 180 205
-255 115 98
-255 49 0
-205 65 65
-189 24 24
-148 123 197
-74 57 139
-8 0 82
diff --git a/graphics/birch_speech/birch.pal b/graphics/birch_speech/birch.pal
deleted file mode 100644
index b89a5861a..000000000
--- a/graphics/birch_speech/birch.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-115 197 164
-255 230 205
-222 189 148
-197 148 115
-106 74 65
-98 98 115
-41 57 65
-180 115 82
-115 74 57
-205 205 222
-148 148 148
-189 156 90
-139 115 57
-74 49 24
-255 255 255
-0 0 24
diff --git a/graphics/decorations/decor_attract_mat.pal b/graphics/decorations/decor_attract_mat.pal
deleted file mode 100644
index 6f188b725..000000000
--- a/graphics/decorations/decor_attract_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-255 230 222
-255 197 197
-246 156 156
-213 115 172
-197 189 131
-246 148 205
-123 82 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_big_plant.pal b/graphics/decorations/decor_big_plant.pal
deleted file mode 100644
index 6e5a869f3..000000000
--- a/graphics/decorations/decor_big_plant.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-189 230 106
-123 172 74
-90 139 65
-57 98 41
-213 180 106
-180 139 82
-139 98 49
-82 57 32
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_blastoise_doll.pal b/graphics/decorations/decor_blastoise_doll.pal
deleted file mode 100644
index a4ad56936..000000000
--- a/graphics/decorations/decor_blastoise_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-197 222 255
-131 189 255
-90 139 213
-57 90 131
-213 156 90
-230 189 131
-156 131 90
-98 82 41
-139 90 74
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_blue_brick.pal b/graphics/decorations/decor_blue_brick.pal
deleted file mode 100644
index e8720d82f..000000000
--- a/graphics/decorations/decor_blue_brick.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-156 180 246
-82 131 230
-57 98 189
-24 65 131
-106 106 106
-74 74 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_blue_tent.pal b/graphics/decorations/decor_blue_tent.pal
deleted file mode 100644
index e38cb56af..000000000
--- a/graphics/decorations/decor_blue_tent.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-148 172 255
-115 139 238
-65 90 189
-49 57 123
-0 0 0
-197 205 230
-164 164 164
-131 131 131
-90 82 74
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_breakable_door.pal b/graphics/decorations/decor_breakable_door.pal
deleted file mode 100644
index 85ece26dc..000000000
--- a/graphics/decorations/decor_breakable_door.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-139 189 255
-106 156 213
-213 189 115
-156 131 41
-123 98 8
-90 74 57
-189 164 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-197 197 197
diff --git a/graphics/decorations/decor_brick_desk.pal b/graphics/decorations/decor_brick_desk.pal
deleted file mode 100644
index 16b581470..000000000
--- a/graphics/decorations/decor_brick_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-255 180 82
-230 139 49
-189 90 16
-0 0 0
-0 0 0
-0 0 0
-197 197 197
-148 148 156
-106 106 98
-74 74 74
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_camp_desk.pal b/graphics/decorations/decor_camp_desk.pal
deleted file mode 100644
index 0ac362c8a..000000000
--- a/graphics/decorations/decor_camp_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-205 189 123
-172 156 90
-148 131 65
-123 98 32
-82 57 41
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_charizard_doll.pal b/graphics/decorations/decor_charizard_doll.pal
deleted file mode 100644
index 3e3e6bb79..000000000
--- a/graphics/decorations/decor_charizard_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-238 172 98
-255 205 74
-222 156 41
-115 74 24
-164 98 24
-0 0 0
-230 82 65
-180 49 32
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-255 238 197
diff --git a/graphics/decorations/decor_colorful_plant.pal b/graphics/decorations/decor_colorful_plant.pal
deleted file mode 100644
index 996b183d2..000000000
--- a/graphics/decorations/decor_colorful_plant.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-205 180 115
-180 139 98
-131 90 57
-156 222 90
-139 189 139
-98 148 98
-41 90 57
-106 189 255
-255 123 172
-255 213 74
-0 0 0
-238 238 238
-0 0 0
diff --git a/graphics/decorations/decor_comfort_desk.pal b/graphics/decorations/decor_comfort_desk.pal
deleted file mode 100644
index f686f4b5c..000000000
--- a/graphics/decorations/decor_comfort_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-180 222 139
-139 189 139
-90 139 90
-41 90 41
-115 164 115
-0 0 0
-164 131 65
-115 82 57
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_fire_blast_mat.pal b/graphics/decorations/decor_fire_blast_mat.pal
deleted file mode 100644
index ea2301df2..000000000
--- a/graphics/decorations/decor_fire_blast_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-255 180 82
-238 148 41
-213 98 24
-139 65 41
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_fissure_mat.pal b/graphics/decorations/decor_fissure_mat.pal
deleted file mode 100644
index d2a4efb6d..000000000
--- a/graphics/decorations/decor_fissure_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-205 189 131
-189 172 106
-156 139 74
-123 106 41
-98 74 32
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_glass_ornament.pal b/graphics/decorations/decor_glass_ornament.pal
deleted file mode 100644
index 1027a9501..000000000
--- a/graphics/decorations/decor_glass_ornament.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-189 230 255
-156 197 255
-115 164 238
-82 139 189
-57 98 131
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-238 246 246
-0 0 0
diff --git a/graphics/decorations/decor_gorgeous_plant.pal b/graphics/decorations/decor_gorgeous_plant.pal
deleted file mode 100644
index 782b82eef..000000000
--- a/graphics/decorations/decor_gorgeous_plant.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-180 222 139
-139 180 139
-90 139 106
-49 82 41
-0 0 0
-148 115 82
-115 82 24
-0 0 0
-230 230 230
-164 164 164
-106 106 106
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_hard_desk.pal b/graphics/decorations/decor_hard_desk.pal
deleted file mode 100644
index 7aa8154ab..000000000
--- a/graphics/decorations/decor_hard_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-197 197 197
-156 156 156
-115 115 115
-98 98 98
-74 74 74
-139 139 139
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_heavy_desk.pal b/graphics/decorations/decor_heavy_desk.pal
deleted file mode 100644
index c0ec71f09..000000000
--- a/graphics/decorations/decor_heavy_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-180 180 197
-148 148 156
-90 90 90
-255 180 82
-230 139 49
-197 90 8
-90 41 8
-0 0 0
-123 123 123
-65 65 65
-106 106 115
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_lapras_doll.pal b/graphics/decorations/decor_lapras_doll.pal
deleted file mode 100644
index c7d2fe61a..000000000
--- a/graphics/decorations/decor_lapras_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-189 230 255
-115 180 246
-74 139 189
-32 90 139
-0 0 0
-0 0 0
-246 197 131
-222 156 98
-197 156 123
-106 74 41
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_powder_snow_mat.pal b/graphics/decorations/decor_powder_snow_mat.pal
deleted file mode 100644
index 9f365a3da..000000000
--- a/graphics/decorations/decor_powder_snow_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-238 238 246
-180 205 255
-131 164 205
-197 222 255
-213 238 255
-98 131 172
-148 180 222
-49 82 123
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_pretty_desk.pal b/graphics/decorations/decor_pretty_desk.pal
deleted file mode 100644
index 7681a17cc..000000000
--- a/graphics/decorations/decor_pretty_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-189 222 255
-156 197 255
-0 0 0
-131 164 246
-49 82 123
-0 0 0
-0 0 0
-0 0 0
-180 180 180
-131 131 131
-90 90 90
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_pretty_flowers.pal b/graphics/decorations/decor_pretty_flowers.pal
deleted file mode 100644
index c3b0ffce9..000000000
--- a/graphics/decorations/decor_pretty_flowers.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-205 180 74
-156 139 32
-90 74 49
-123 106 41
-115 180 98
-74 123 57
-41 82 32
-255 205 180
-123 74 49
-238 156 139
-246 246 246
-222 197 197
diff --git a/graphics/decorations/decor_ragged_desk.pal b/graphics/decorations/decor_ragged_desk.pal
deleted file mode 100644
index bac2a7372..000000000
--- a/graphics/decorations/decor_ragged_desk.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 205 98
-49 49 49
-238 222 172
-213 197 139
-180 164 106
-148 131 74
-123 98 49
-82 65 32
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_red_brick.pal b/graphics/decorations/decor_red_brick.pal
deleted file mode 100644
index f9d647dda..000000000
--- a/graphics/decorations/decor_red_brick.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-238 123 123
-189 74 65
-148 32 32
-123 16 16
-106 106 106
-74 74 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_red_plant.pal b/graphics/decorations/decor_red_plant.pal
deleted file mode 100644
index c3021eee5..000000000
--- a/graphics/decorations/decor_red_plant.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-222 115 123
-189 74 82
-139 32 32
-82 32 16
-0 0 0
-115 164 106
-65 123 57
-24 82 41
-0 0 0
-205 172 98
-156 123 82
-106 82 57
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_red_tent.pal b/graphics/decorations/decor_red_tent.pal
deleted file mode 100644
index 61951623b..000000000
--- a/graphics/decorations/decor_red_tent.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-246 123 123
-222 90 90
-180 49 49
-115 49 57
-0 0 0
-197 205 230
-164 164 164
-131 131 131
-90 82 74
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_regice_doll.pal b/graphics/decorations/decor_regice_doll.pal
deleted file mode 100644
index 39404f681..000000000
--- a/graphics/decorations/decor_regice_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-238 238 255
-180 189 205
-139 148 172
-82 98 115
-115 123 139
-0 0 0
-0 0 0
-246 180 65
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_regirock_doll.pal b/graphics/decorations/decor_regirock_doll.pal
deleted file mode 100644
index 5c39edb2f..000000000
--- a/graphics/decorations/decor_regirock_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-180 164 98
-123 115 49
-82 74 49
-0 0 0
-205 115 82
-148 65 82
-0 0 0
-189 74 24
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_registeel_doll.pal b/graphics/decorations/decor_registeel_doll.pal
deleted file mode 100644
index 328f35a4f..000000000
--- a/graphics/decorations/decor_registeel_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-238 238 238
-197 197 197
-164 164 164
-123 123 131
-82 82 90
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-172 82 65
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_rhydon_doll.pal b/graphics/decorations/decor_rhydon_doll.pal
deleted file mode 100644
index 432dae5a9..000000000
--- a/graphics/decorations/decor_rhydon_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-222 222 222
-164 164 164
-189 189 189
-139 139 139
-106 106 106
-82 82 82
-230 197 115
-189 148 74
-131 98 74
-0 0 0
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_sand_ornament.pal b/graphics/decorations/decor_sand_ornament.pal
deleted file mode 100644
index e2fca6e31..000000000
--- a/graphics/decorations/decor_sand_ornament.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-213 197 156
-189 164 90
-148 123 49
-90 74 24
-131 106 32
-172 148 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_slide.pal b/graphics/decorations/decor_slide.pal
deleted file mode 100644
index 395694fa3..000000000
--- a/graphics/decorations/decor_slide.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-148 189 238
-106 148 205
-65 115 172
-180 222 255
-0 0 0
-0 0 0
-0 0 0
-213 213 213
-189 189 189
-156 156 156
-106 106 106
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_snorlax_doll.pal b/graphics/decorations/decor_snorlax_doll.pal
deleted file mode 100644
index 21026b10d..000000000
--- a/graphics/decorations/decor_snorlax_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-131 139 164
-82 90 115
-0 0 0
-255 238 222
-255 197 148
-222 156 90
-139 90 49
-172 106 49
-230 172 123
-0 0 0
-238 238 238
-189 189 197
diff --git a/graphics/decorations/decor_solid_board.pal b/graphics/decorations/decor_solid_board.pal
deleted file mode 100644
index 9995483b4..000000000
--- a/graphics/decorations/decor_solid_board.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-189 164 98
-156 131 65
-123 90 41
-106 90 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_spikes_mat.pal b/graphics/decorations/decor_spikes_mat.pal
deleted file mode 100644
index ec37e1fe0..000000000
--- a/graphics/decorations/decor_spikes_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 213 98
-49 49 49
-0 0 0
-148 197 148
-106 172 115
-82 148 90
-139 156 98
-222 205 139
-180 164 98
-205 189 131
-49 98 57
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_stand.pal b/graphics/decorations/decor_stand.pal
deleted file mode 100644
index a85f0b7b2..000000000
--- a/graphics/decorations/decor_stand.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-255 180 156
-238 115 106
-197 65 65
-0 0 0
-0 0 0
-0 0 0
-197 197 197
-172 172 172
-131 131 131
-106 106 106
-0 0 0
-0 0 0
-246 246 246
-0 0 0
diff --git a/graphics/decorations/decor_surf_mat.pal b/graphics/decorations/decor_surf_mat.pal
deleted file mode 100644
index 17be591b7..000000000
--- a/graphics/decorations/decor_surf_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-205 238 255
-164 205 255
-148 180 255
-115 148 222
-57 90 156
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-246 246 255
-0 0 0
diff --git a/graphics/decorations/decor_thunder_mat.pal b/graphics/decorations/decor_thunder_mat.pal
deleted file mode 100644
index fbe488860..000000000
--- a/graphics/decorations/decor_thunder_mat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-189 222 255
-172 205 238
-139 172 205
-139 156 164
-255 230 123
-90 106 115
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-238 246 255
-0 0 0
diff --git a/graphics/decorations/decor_tire.pal b/graphics/decorations/decor_tire.pal
deleted file mode 100644
index 18a3279fc..000000000
--- a/graphics/decorations/decor_tire.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-0 0 0
-238 238 238
-189 189 189
-164 164 164
-131 131 131
-98 98 98
-74 74 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_tropical_plant.pal b/graphics/decorations/decor_tropical_plant.pal
deleted file mode 100644
index 4057e7cb2..000000000
--- a/graphics/decorations/decor_tropical_plant.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-197 172 82
-164 139 49
-131 106 16
-82 65 16
-0 0 0
-0 0 0
-148 222 90
-106 180 49
-74 131 24
-32 90 24
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/decorations/decor_venusaur_doll.pal b/graphics/decorations/decor_venusaur_doll.pal
deleted file mode 100644
index dcd11bea2..000000000
--- a/graphics/decorations/decor_venusaur_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-197 255 222
-123 189 57
-82 148 24
-74 115 24
-41 82 32
-238 156 139
-213 98 90
-164 74 74
-115 57 65
-230 189 65
-131 98 24
-82 32 41
-246 246 246
diff --git a/graphics/decorations/decor_wailmer_doll.pal b/graphics/decorations/decor_wailmer_doll.pal
deleted file mode 100644
index 99347748e..000000000
--- a/graphics/decorations/decor_wailmer_doll.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-0 0 0
-0 0 0
-106 148 172
-74 115 148
-57 98 123
-57 65 106
-230 180 106
-205 148 82
-180 139 57
-115 74 41
-0 0 0
-213 213 213
-246 246 246
-164 164 164
diff --git a/graphics/decorations/decor_yellow_brick.pal b/graphics/decorations/decor_yellow_brick.pal
deleted file mode 100644
index cfdd874ad..000000000
--- a/graphics/decorations/decor_yellow_brick.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 197 98
-49 49 49
-255 230 106
-222 197 49
-180 156 8
-148 123 0
-106 106 106
-74 74 74
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/interface/ball/ultra.pal b/graphics/interface/ball/ultra.pal
deleted file mode 100644
index 3b7021097..000000000
--- a/graphics/interface/ball/ultra.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 255 255
-180 139 16
-205 172 32
-230 205 49
-255 238 65
-255 255 255
-148 148 148
-65 65 65
-24 24 24
-255 255 255
-255 255 255
-255 255 255
-255 255 255
-255 255 255
-255 255 255
-255 255 255
diff --git a/graphics/interface/link_test_digits.pal b/graphics/interface/link_test_digits.pal
deleted file mode 100644
index 5362e8d6d..000000000
--- a/graphics/interface/link_test_digits.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 255 255
diff --git a/graphics/interface/unk_textbox_border.pal b/graphics/interface/unk_textbox_border.pal
deleted file mode 100644
index efa37f0a1..000000000
--- a/graphics/interface/unk_textbox_border.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-148 148 148
-148 189 255
-156 230 255
-205 255 255
-98 106 246
-164 180 172
-197 205 197
-222 230 222
-255 255 255
-0 0 0
-0 0 0
-0 0 0
-98 98 98
-148 148 148
-197 197 197
-0 0 0
diff --git a/graphics/interface/wireless_link_display.pal b/graphics/interface/wireless_link_display.pal
deleted file mode 100644
index e880353cf..000000000
--- a/graphics/interface/wireless_link_display.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-255 90 0
-246 139 74
-255 205 164
-238 246 246
-180 222 255
-57 90 123
-115 189 255
-222 222 246
-131 246 180
-106 115 131
-189 197 213
-156 164 180
-74 74 90
-0 0 0
diff --git a/graphics/interface/wireless_link_icon.pal b/graphics/interface/wireless_link_icon.pal
deleted file mode 100644
index 4a225886c..000000000
--- a/graphics/interface/wireless_link_icon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-172 180 255
-131 148 164
-238 246 246
-180 180 189
-74 90 106
-255 0 0
-255 180 131
-255 255 255
-0 0 0
-238 246 246
-238 246 246
-238 246 246
-238 246 246
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/copyright.pal b/graphics/intro/copyright.pal
deleted file mode 100644
index 4219d4394..000000000
--- a/graphics/intro/copyright.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 32 32
-24 57 57
-49 82 82
-82 106 106
-106 131 131
-139 156 156
-164 180 180
-197 205 205
-222 230 230
-255 255 255
diff --git a/graphics/intro/intro1_flygon.pal b/graphics/intro/intro1_flygon.pal
deleted file mode 100644
index dcfc242a5..000000000
--- a/graphics/intro/intro1_flygon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-74 74 82
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro2_bgclouds.pal b/graphics/intro/intro2_bgclouds.pal
deleted file mode 100644
index 6b312a16c..000000000
--- a/graphics/intro/intro2_bgclouds.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-230 246 255
-205 238 255
-180 230 255
-164 222 255
-139 213 255
-115 205 255
-98 197 255
-230 230 255
-246 255 255
-213 222 255
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro2_bgnight.pal b/graphics/intro/intro2_bgnight.pal
deleted file mode 100644
index 765aad45a..000000000
--- a/graphics/intro/intro2_bgnight.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-0 0 0
-82 90 148
-148 131 164
-57 74 123
-131 106 156
-98 90 123
-156 164 197
-139 148 172
-90 131 139
-189 197 213
-90 115 164
-230 230 82
-131 131 164
-246 246 123
diff --git a/graphics/intro/intro2_bgtrees.pal b/graphics/intro/intro2_bgtrees.pal
deleted file mode 100644
index 5c506481a..000000000
--- a/graphics/intro/intro2_bgtrees.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-156 189 246
-172 205 246
-197 230 255
-213 246 255
-238 255 255
-156 180 172
-197 197 156
-172 189 164
-98 139 98
-98 156 57
-123 164 131
-156 213 82
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro2_brendan.pal b/graphics/intro/intro2_brendan.pal
deleted file mode 100644
index a948fb920..000000000
--- a/graphics/intro/intro2_brendan.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-230 49 0
-246 148 0
-0 0 0
-255 213 148
-222 164 139
-0 0 0
-246 57 131
-189 57 115
-131 255 131
-82 197 90
-131 164 65
diff --git a/graphics/intro/intro2_bubbles.pal b/graphics/intro/intro2_bubbles.pal
deleted file mode 100644
index 85c483666..000000000
--- a/graphics/intro/intro2_bubbles.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-106 148 98
-0 41 82
-255 255 255
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-139 172 255
-106 148 222
-82 123 189
-49 98 156
-24 74 123
-0 49 98
-180 0 0
diff --git a/graphics/intro/intro2_flygon.pal b/graphics/intro/intro2_flygon.pal
deleted file mode 100644
index 09607ac17..000000000
--- a/graphics/intro/intro2_flygon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-164 98 106
-238 57 115
-255 106 139
-255 197 180
-246 255 139
-213 238 106
-172 213 65
-164 222 139
-123 197 115
-90 148 82
-0 0 0
diff --git a/graphics/intro/intro2_grass.pal b/graphics/intro/intro2_grass.pal
deleted file mode 100644
index 389977abf..000000000
--- a/graphics/intro/intro2_grass.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-74 82 82
-90 123 123
-205 205 197
-255 255 255
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-106 164 98
-115 197 98
-164 230 90
diff --git a/graphics/intro/intro2_latias.pal b/graphics/intro/intro2_latias.pal
deleted file mode 100644
index 0af96be29..000000000
--- a/graphics/intro/intro2_latias.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-123 106 106
-115 131 164
-222 213 238
-255 255 255
-213 65 57
-238 106 32
-172 74 65
-255 90 65
-180 172 197
-189 139 57
-189 98 41
-90 115 180
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro2_latios.pal b/graphics/intro/intro2_latios.pal
deleted file mode 100644
index bb51c0a7d..000000000
--- a/graphics/intro/intro2_latios.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-123 106 106
-115 131 164
-222 213 238
-255 255 255
-106 131 230
-139 197 255
-90 115 180
-139 156 230
-180 172 197
-238 82 32
-238 41 24
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro2_manectric.pal b/graphics/intro/intro2_manectric.pal
deleted file mode 100644
index c6bf97aa3..000000000
--- a/graphics/intro/intro2_manectric.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-230 49 0
-246 148 0
-0 0 0
-255 255 180
-246 246 90
-205 213 49
-148 123 8
-131 164 255
-106 106 255
-41 74 213
-0 0 0
diff --git a/graphics/intro/intro2_may.pal b/graphics/intro/intro2_may.pal
deleted file mode 100644
index 1ff2ecd1d..000000000
--- a/graphics/intro/intro2_may.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-82 197 0
-148 246 98
-98 98 131
-255 213 148
-222 164 139
-180 172 115
-246 90 90
-189 57 115
-131 255 65
-82 197 90
-131 164 65
diff --git a/graphics/intro/intro2_torchic.pal b/graphics/intro/intro2_torchic.pal
deleted file mode 100644
index 860b76b60..000000000
--- a/graphics/intro/intro2_torchic.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-131 98 41
-230 98 32
-238 148 74
-246 197 115
-255 255 148
-255 213 0
-205 189 49
-255 246 205
-255 213 148
-222 180 115
-0 0 0
diff --git a/graphics/intro/intro2_volbeat.pal b/graphics/intro/intro2_volbeat.pal
deleted file mode 100644
index 8d2464800..000000000
--- a/graphics/intro/intro2_volbeat.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-82 74 74
-139 139 123
-197 189 222
-255 255 255
-131 98 41
-230 98 32
-238 148 74
-246 197 115
-255 255 148
-255 213 0
-205 189 49
-238 156 255
-197 115 230
-156 82 213
-0 0 0
diff --git a/graphics/intro/intro3_lightning.pal b/graphics/intro/intro3_lightning.pal
deleted file mode 100644
index 16aae4be3..000000000
--- a/graphics/intro/intro3_lightning.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-74 189 172
-255 255 148
-255 213 0
-205 189 49
-255 255 255
-82 74 74
-115 106 82
-148 139 98
-180 180 115
-213 213 131
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro3_pokeball.pal b/graphics/intro/intro3_pokeball.pal
deleted file mode 100644
index d520a5e82..000000000
--- a/graphics/intro/intro3_pokeball.pal
+++ /dev/null
@@ -1,259 +0,0 @@
-JASC-PAL
-0100
-256
-255 255 255
-0 0 0
-49 41 24
-106 90 57
-164 139 90
-222 98 57
-131 131 189
-255 255 255
-74 32 16
-148 65 32
-41 41 57
-82 82 123
-82 82 82
-164 164 164
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/intro/intro3_streaks.pal b/graphics/intro/intro3_streaks.pal
deleted file mode 100644
index 21ae1e434..000000000
--- a/graphics/intro/intro3_streaks.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 255 255
-0 0 0
-255 230 74
-255 230 98
-255 238 123
-255 238 148
-255 246 172
-255 255 197
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-255 255 255
diff --git a/graphics/link/minigame_digits.pal b/graphics/link/minigame_digits.pal
deleted file mode 100644
index e27640830..000000000
--- a/graphics/link/minigame_digits.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-205 205 205
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/link_games/berrycrush_grinder_base.pal b/graphics/link_games/berrycrush_grinder_base.pal
deleted file mode 100644
index 23b7036da..000000000
--- a/graphics/link_games/berrycrush_grinder_base.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 189 189
-148 131 82
-180 164 115
-205 189 148
-213 205 172
-230 222 189
-246 238 205
-255 255 238
-98 106 115
-115 123 131
-0 0 0
-0 90 16
-255 0 0
-49 82 205
-172 164 131
-65 74 90
diff --git a/graphics/link_games/berrycrush_timerdigits.pal b/graphics/link_games/berrycrush_timerdigits.pal
deleted file mode 100644
index 956db48b1..000000000
--- a/graphics/link_games/berrycrush_timerdigits.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-148 222 164
-164 230 172
-180 238 189
-197 246 205
-213 255 222
-238 255 238
-205 106 255
-172 82 222
-148 148 148
-123 123 123
-255 0 255
-255 0 255
-255 0 255
-180 189 189
-255 255 255
diff --git a/graphics/link_games/dodrioberry_berrysprites.pal b/graphics/link_games/dodrioberry_berrysprites.pal
deleted file mode 100644
index 98266fb46..000000000
--- a/graphics/link_games/dodrioberry_berrysprites.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-230 255 255
-65 65 65
-156 156 230
-115 115 189
-139 246 213
-98 213 172
-255 213 57
-246 172 57
-238 238 238
-0 148 213
-230 131 49
-0 156 189
-255 148 139
-0 230 255
-213 98 90
-0 238 255
diff --git a/graphics/link_games/dodrioberry_pkmn.pal b/graphics/link_games/dodrioberry_pkmn.pal
deleted file mode 100644
index ed27897b7..000000000
--- a/graphics/link_games/dodrioberry_pkmn.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-238 255 238
-41 41 41
-255 197 115
-230 164 74
-115 90 65
-246 131 164
-172 74 74
-255 238 189
-213 197 148
-115 106 82
-148 148 148
-106 98 90
-255 205 230
-180 139 90
-0 0 0
-255 255 255
diff --git a/graphics/link_games/dodrioberry_platform.pal b/graphics/link_games/dodrioberry_platform.pal
deleted file mode 100644
index fc1f6a7e8..000000000
--- a/graphics/link_games/dodrioberry_platform.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-230 246 255
-255 255 255
-238 255 255
-246 255 255
-230 230 246
-222 238 246
-222 246 246
-238 238 255
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/link_games/dodrioberry_status.pal b/graphics/link_games/dodrioberry_status.pal
deleted file mode 100644
index 028e4e20a..000000000
--- a/graphics/link_games/dodrioberry_status.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-230 255 255
-65 65 65
-255 255 189
-255 238 115
-255 197 0
-197 197 213
-164 164 180
-131 131 148
-255 197 197
-255 139 139
-255 49 49
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-255 49 0
diff --git a/graphics/link_games/pkmnjump_321start1.pal b/graphics/link_games/pkmnjump_321start1.pal
deleted file mode 100644
index 9fa1875d3..000000000
--- a/graphics/link_games/pkmnjump_321start1.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-156 213 230
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-32 32 32
-131 49 49
-230 65 41
-156 65 65
-255 90 74
-172 115 57
-255 189 74
-255 255 255
diff --git a/graphics/link_games/pkmnjump_321start2.pal b/graphics/link_games/pkmnjump_321start2.pal
deleted file mode 100644
index 9fa1875d3..000000000
--- a/graphics/link_games/pkmnjump_321start2.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-156 213 230
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-32 32 32
-131 49 49
-230 65 41
-156 65 65
-255 90 74
-172 115 57
-255 189 74
-255 255 255
diff --git a/graphics/link_games/pkmnjump_bg.pal b/graphics/link_games/pkmnjump_bg.pal
deleted file mode 100644
index aed4bcc8b..000000000
--- a/graphics/link_games/pkmnjump_bg.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-156 156 197
-106 222 156
-106 230 230
-139 230 255
-156 238 255
-197 246 255
-189 213 131
-230 213 115
-238 230 131
-246 246 156
-222 222 172
-106 230 172
-255 0 255
-255 0 255
-255 0 255
-255 0 255
diff --git a/graphics/link_games/pkmnjump_results.pal b/graphics/link_games/pkmnjump_results.pal
deleted file mode 100644
index aca961de3..000000000
--- a/graphics/link_games/pkmnjump_results.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-156 156 197
-148 197 115
-172 222 123
-213 180 57
-238 205 65
-230 164 131
-246 189 172
-98 98 82
-164 148 90
-205 189 82
-255 238 74
-156 164 230
-90 90 106
-172 148 106
-230 205 123
-180 189 246
diff --git a/graphics/link_games/pkmnjump_venusaur.pal b/graphics/link_games/pkmnjump_venusaur.pal
deleted file mode 100644
index a3514b004..000000000
--- a/graphics/link_games/pkmnjump_venusaur.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-213 213 213
-32 98 49
-98 156 115
-90 205 148
-139 238 189
-139 57 0
-189 106 49
-16 16 16
-230 74 65
-255 131 115
-156 246 139
-222 205 49
-255 238 82
-65 164 24
-106 205 65
-255 255 255
diff --git a/graphics/misc/cable_car.pal b/graphics/misc/cable_car.pal
deleted file mode 100644
index 64985f6da..000000000
--- a/graphics/misc/cable_car.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 255 255
-164 222 222
-98 139 139
-139 180 180
-131 131 139
-98 98 123
-65 74 106
-41 49 90
-139 205 246
-98 172 238
-255 255 148
-238 213 82
-213 172 16
-180 106 0
-139 65 0
diff --git a/graphics/misc/clock_small.pal b/graphics/misc/clock_small.pal
deleted file mode 100644
index 3398fcbe3..000000000
--- a/graphics/misc/clock_small.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-98 139 90
-0 0 0
-57 57 57
-123 123 123
-189 189 189
-255 255 255
-255 65 41
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
diff --git a/graphics/misc/evo_sparkle.pal b/graphics/misc/evo_sparkle.pal
deleted file mode 100644
index 7ccbffd1d..000000000
--- a/graphics/misc/evo_sparkle.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-49 82 82
-82 106 106
-106 131 131
-139 156 156
-164 180 180
-197 205 205
-222 230 230
-255 255 255
diff --git a/graphics/misc/japanese_hof.pal b/graphics/misc/japanese_hof.pal
deleted file mode 100644
index f50aa5341..000000000
--- a/graphics/misc/japanese_hof.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-0 0 0
-131 238 197
-255 32 32
-115 222 180
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-0 0 0
-65 65 65
-255 255 255
diff --git a/graphics/pokenav/brendan_icon.pal b/graphics/pokenav/brendan_icon.pal
deleted file mode 100644
index a83ed903f..000000000
--- a/graphics/pokenav/brendan_icon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-115 197 164
-255 213 180
-255 197 148
-222 148 115
-123 65 65
-57 74 123
-41 57 98
-24 41 82
-16 32 57
-222 230 238
-115 205 115
-74 148 82
-255 98 90
-197 65 65
-255 255 255
-0 0 0
diff --git a/graphics/pokenav/fly_target_icons.pal b/graphics/pokenav/fly_target_icons.pal
deleted file mode 100644
index c0f2cc4e9..000000000
--- a/graphics/pokenav/fly_target_icons.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-0 0 0
-255 0 0
-0 0 0
-0 0 0
-205 205 205
-0 0 0
-0 0 0
-255 213 222
-255 164 197
-197 98 115
-131 131 123
-98 90 90
-49 49 65
-0 0 0
-0 0 0
-255 255 255
diff --git a/graphics/pokenav/may_icon.pal b/graphics/pokenav/may_icon.pal
deleted file mode 100644
index 2833b2613..000000000
--- a/graphics/pokenav/may_icon.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-115 197 164
-255 222 205
-222 164 148
-205 131 115
-123 90 82
-98 98 115
-41 57 65
-164 106 82
-74 49 57
-205 205 222
-106 213 65
-65 172 32
-255 98 90
-197 65 65
-255 255 255
-0 0 0
diff --git a/graphics/title_screen/emerald_version.pal b/graphics/title_screen/emerald_version.pal
deleted file mode 100644
index c5ed9a582..000000000
--- a/graphics/title_screen/emerald_version.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 74 238
-156 156 156
-90 90 90
-222 222 222
-24 16 24
-74 74 74
-238 238 238
-41 41 41
-172 172 172
-106 106 106
-189 189 189
-139 139 139
-205 205 205
-123 123 123
-65 57 57
-255 255 255
diff --git a/graphics/title_screen/press_start.pal b/graphics/title_screen/press_start.pal
deleted file mode 100644
index 561ab8f8f..000000000
--- a/graphics/title_screen/press_start.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-115 156 98
-0 0 0
-148 156 164
-180 189 189
-222 222 238
-255 255 255
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
-255 0 0
diff --git a/graphics/unused/old_charmap.pal b/graphics/unused/old_charmap.pal
deleted file mode 100644
index cbcd5de4d..000000000
--- a/graphics/unused/old_charmap.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-255 255 255
-24 0 0
-41 0 0
-255 255 255
-0 0 0
-255 255 255
-255 65 0
-0 0 0
-255 0 0
-255 24 0
-255 65 0
-255 98 0
-255 131 0
-255 180 0
-255 222 0
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_1.pal b/graphics/wonder_transfers/wonder_card_1.pal
deleted file mode 100644
index 9c5ef9b26..000000000
--- a/graphics/wonder_transfers/wonder_card_1.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-213 213 213
-74 74 74
-98 106 106
-213 189 74
-238 213 82
-246 246 213
-255 255 255
-230 230 213
-238 238 213
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
diff --git a/graphics/wonder_transfers/wonder_card_2.pal b/graphics/wonder_transfers/wonder_card_2.pal
deleted file mode 100644
index 18c2be3fd..000000000
--- a/graphics/wonder_transfers/wonder_card_2.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-82 82 106
-131 131 139
-197 189 213
-205 230 255
-115 139 197
-49 74 82
-0 0 0
-0 0 0
-222 255 246
-197 255 222
-222 238 255
-156 180 222
-156 106 115
-172 139 164
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_3.pal b/graphics/wonder_transfers/wonder_card_3.pal
deleted file mode 100644
index db02d5d4b..000000000
--- a/graphics/wonder_transfers/wonder_card_3.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-82 82 106
-131 131 139
-164 156 172
-197 189 213
-246 238 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 230 230
-255 197 197
-255 164 164
-246 139 139
-238 90 90
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_4.pal b/graphics/wonder_transfers/wonder_card_4.pal
deleted file mode 100644
index bfbf036a5..000000000
--- a/graphics/wonder_transfers/wonder_card_4.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-82 82 106
-131 131 139
-164 156 172
-197 189 213
-246 238 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-238 255 230
-213 255 189
-189 230 156
-164 213 131
-148 197 106
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_5.pal b/graphics/wonder_transfers/wonder_card_5.pal
deleted file mode 100644
index fa41ee3b0..000000000
--- a/graphics/wonder_transfers/wonder_card_5.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-82 82 106
-131 131 139
-164 156 172
-197 189 213
-246 238 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-238 246 255
-205 238 246
-180 222 246
-156 197 238
-115 156 197
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_6.pal b/graphics/wonder_transfers/wonder_card_6.pal
deleted file mode 100644
index 8a71f5846..000000000
--- a/graphics/wonder_transfers/wonder_card_6.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-82 82 106
-131 131 139
-164 156 172
-197 189 213
-246 238 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-238 238 197
-230 230 139
-222 222 115
-213 213 90
-189 189 57
-255 255 255
diff --git a/graphics/wonder_transfers/wonder_card_7.pal b/graphics/wonder_transfers/wonder_card_7.pal
deleted file mode 100644
index 01832b5e2..000000000
--- a/graphics/wonder_transfers/wonder_card_7.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-189 123 148
-213 213 213
-74 74 74
-115 123 123
-164 156 90
-164 148 90
-197 197 90
-213 205 90
-222 213 90
-213 213 106
-238 246 98
-230 222 98
-213 205 98
-197 180 98
-238 230 98
-246 238 106
diff --git a/graphics/wonder_transfers/wonder_card_8.pal b/graphics/wonder_transfers/wonder_card_8.pal
deleted file mode 100644
index 28a498b57..000000000
--- a/graphics/wonder_transfers/wonder_card_8.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-189 123 148
-213 213 213
-74 74 74
-115 123 123
-156 156 156
-139 139 148
-180 180 197
-197 189 205
-205 205 222
-189 189 189
-197 230 222
-189 213 213
-180 197 197
-156 164 172
-222 222 230
-230 230 238
diff --git a/graphics/wonder_transfers/wonder_news_1.pal b/graphics/wonder_transfers/wonder_news_1.pal
deleted file mode 100644
index 970736bbb..000000000
--- a/graphics/wonder_transfers/wonder_news_1.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-90 197 148
-213 213 213
-74 74 74
-98 106 106
-213 189 74
-238 213 82
-246 246 213
-255 255 255
-230 230 213
-238 238 213
-246 246 238
-255 0 255
-255 0 255
-255 0 255
-255 0 255
-255 0 255
diff --git a/graphics/wonder_transfers/wonder_news_7.pal b/graphics/wonder_transfers/wonder_news_7.pal
deleted file mode 100644
index 01832b5e2..000000000
--- a/graphics/wonder_transfers/wonder_news_7.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-189 123 148
-213 213 213
-74 74 74
-115 123 123
-164 156 90
-164 148 90
-197 197 90
-213 205 90
-222 213 90
-213 213 106
-238 246 98
-230 222 98
-213 205 98
-197 180 98
-238 230 98
-246 238 106
diff --git a/graphics/wonder_transfers/wonder_news_8.pal b/graphics/wonder_transfers/wonder_news_8.pal
deleted file mode 100644
index 28a498b57..000000000
--- a/graphics/wonder_transfers/wonder_news_8.pal
+++ /dev/null
@@ -1,19 +0,0 @@
-JASC-PAL
-0100
-16
-189 123 148
-213 213 213
-74 74 74
-115 123 123
-156 156 156
-139 139 148
-180 180 197
-197 189 205
-205 205 222
-189 189 189
-197 230 222
-189 213 213
-180 197 197
-156 164 172
-222 222 230
-230 230 238
diff --git a/include/battle.h b/include/battle.h
index 4fd252676..81c1d341d 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -4,35 +4,59 @@
// should they be included here or included individually by every file?
#include "battle_util.h"
#include "battle_script_commands.h"
-#include "battle_2.h"
+#include "battle_main.h"
#include "battle_ai_switch_items.h"
#include "battle_gfx_sfx_util.h"
#include "battle_util2.h"
#include "battle_bg.h"
/*
- Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
- Each bank has a value consisting of two bits.
- 0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side.
- 0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
-*/
-
-#define BATTLE_BANKS_COUNT 4
-
-#define IDENTITY_PLAYER_MON1 0
-#define IDENTITY_OPPONENT_MON1 1
-#define IDENTITY_PLAYER_MON2 2
-#define IDENTITY_OPPONENT_MON2 3
-
-#define SIDE_PLAYER 0x0
-#define SIDE_OPPONENT 0x1
-
-#define BIT_SIDE 0x1
-#define BIT_MON 0x2
-
-#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
-#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
-#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
+ * A battler may be in one of four positions on the field. The first bit determines
+ * what side the battler is on, either the player's side or the opponent's side.
+ * The second bit determines what flank the battler is on, either the left or right.
+ * Note that the opponent's flanks are drawn corresponding to their perspective, so
+ * their right mon appears on the left, and their left mon appears on the right.
+ * The battler ID is usually the same as the position, except in the case of link battles.
+ *
+ * + ------------------------- +
+ * | Opponent's side |
+ * | Right Left |
+ * | 3 1 |
+ * | |
+ * | Player's side |
+ * | Left Right |
+ * | 0 2 |
+ * ----------------------------+
+ * | |
+ * | |
+ * +---------------------------+
+ */
+
+#define MAX_BATTLERS_COUNT 4
+
+#define B_POSITION_PLAYER_LEFT 0
+#define B_POSITION_OPPONENT_LEFT 1
+#define B_POSITION_PLAYER_RIGHT 2
+#define B_POSITION_OPPONENT_RIGHT 3
+
+// These macros can be used with either battler ID or positions to get the partner or the opposite mon
+#define BATTLE_OPPOSITE(id) ((id) ^ 1)
+#define BATTLE_PARTNER(id) ((id) ^ 2)
+
+#define B_SIDE_PLAYER 0
+#define B_SIDE_OPPONENT 1
+
+#define B_FLANK_LEFT 0
+#define B_FLANK_RIGHT 1
+
+#define BIT_SIDE 1
+#define BIT_FLANK 2
+
+#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler])
+#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
+#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE)
+
+// Battle Type Flags
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
@@ -66,6 +90,10 @@
#define BATTLE_TYPE_KYOGRE 0x20000000
#define BATTLE_TYPE_RAYQUAZA 0x40000000
#define BATTLE_TYPE_x80000000 0x80000000
+#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
+#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
+
+extern u32 gBattleTypeFlags;
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
@@ -73,56 +101,58 @@
#define STEVEN_PARTNER_ID 0xC03
#define SECRET_BASE_OPPONENT 0x400
-#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
-#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
+#define B_OUTCOME_WON 0x1
+#define B_OUTCOME_LOST 0x2
+#define B_OUTCOME_DREW 0x3
+#define B_OUTCOME_RAN 0x4
+#define B_OUTCOME_PLAYER_TELEPORTED 0x5
+#define B_OUTCOME_POKE_FLED 0x6
+#define B_OUTCOME_CAUGHT_POKE 0x7
+#define B_OUTCOME_NO_SAFARI_BALLS 0x8
+#define B_OUTCOME_FORFEITED 0x9
+#define B_OUTCOME_POKE_TELEPORTED 0xA
+#define B_OUTCOME_LINK_BATTLE_RAN 0x80
-#define BATTLE_WON 0x1
-#define BATTLE_LOST 0x2
-#define BATTLE_DREW 0x3
-#define BATTLE_RAN 0x4
-#define BATTLE_PLAYER_TELEPORTED 0x5
-#define BATTLE_POKE_FLED 0x6
-#define BATTLE_CAUGHT 0x7
-#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
-#define BATTLE_FORFEITED 0x9
-#define BATTLE_OPPONENT_TELEPORTED 0xA
-
-#define OUTCOME_LINK_BATTLE_RUN 0x80
-
-#define STATUS_NONE 0x0
-#define STATUS_SLEEP 0x7
-#define STATUS_POISON 0x8
-#define STATUS_BURN 0x10
-#define STATUS_FREEZE 0x20
-#define STATUS_PARALYSIS 0x40
-#define STATUS_TOXIC_POISON 0x80
-#define STATUS_TOXIC_COUNTER 0xF00
-
-#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
-#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
-
-#define STATUS2_CONFUSION 0x00000007
-#define STATUS2_FLINCHED 0x00000008
-#define STATUS2_UPROAR 0x00000070
-#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
-#define STATUS2_LOCK_CONFUSE 0x00000C00
-#define STATUS2_MULTIPLETURNS 0x00001000
-#define STATUS2_WRAPPED 0x0000E000
-#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank
-#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16))
-#define STATUS2_FOCUS_ENERGY 0x00100000
-#define STATUS2_TRANSFORMED 0x00200000
-#define STATUS2_RECHARGE 0x00400000
-#define STATUS2_RAGE 0x00800000
-#define STATUS2_SUBSTITUTE 0x01000000
-#define STATUS2_DESTINY_BOND 0x02000000
-#define STATUS2_ESCAPE_PREVENTION 0x04000000
-#define STATUS2_NIGHTMARE 0x08000000
-#define STATUS2_CURSED 0x10000000
-#define STATUS2_FORESIGHT 0x20000000
-#define STATUS2_DEFENSE_CURL 0x40000000
-#define STATUS2_TORMENT 0x80000000
+extern u8 gBattleOutcome;
+// Non-volatile status conditions
+// These persist remain outside of battle and after switching out
+#define STATUS1_NONE 0x0
+#define STATUS1_SLEEP 0x7
+#define STATUS1_POISON 0x8
+#define STATUS1_BURN 0x10
+#define STATUS1_FREEZE 0x20
+#define STATUS1_PARALYSIS 0x40
+#define STATUS1_TOXIC_POISON 0x80
+#define STATUS1_TOXIC_COUNTER 0xF00
+#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
+#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
+
+// Volatile status ailments
+// These are removed after exiting the battle or switching out
+#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_FLINCHED 0x00000008
+#define STATUS2_UPROAR 0x00000070
+#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
+#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_MULTIPLETURNS 0x00001000
+#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
+#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
+#define STATUS2_FOCUS_ENERGY 0x00100000
+#define STATUS2_TRANSFORMED 0x00200000
+#define STATUS2_RECHARGE 0x00400000
+#define STATUS2_RAGE 0x00800000
+#define STATUS2_SUBSTITUTE 0x01000000
+#define STATUS2_DESTINY_BOND 0x02000000
+#define STATUS2_ESCAPE_PREVENTION 0x04000000
+#define STATUS2_NIGHTMARE 0x08000000
+#define STATUS2_CURSED 0x10000000
+#define STATUS2_FORESIGHT 0x20000000
+#define STATUS2_DEFENSE_CURL 0x40000000
+#define STATUS2_TORMENT 0x80000000
+
+// Seems like per-battler statuses. Not quite sure how to categorize these
#define STATUS3_LEECHSEED_BANK 0x3
#define STATUS3_LEECHSEED 0x4
#define STATUS3_ALWAYS_HITS 0x18 // two bits
@@ -141,8 +171,11 @@
#define STATUS3_UNDERWATER 0x40000
#define STATUS3_INTIMIDATE_POKES 0x80000
#define STATUS3_TRACE 0x100000
+#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
+
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
-#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
+// Not really sure what a "hitmarker" is.
#define HITMARKER_x10 0x00000010
#define HITMARKER_x20 0x00000020
@@ -168,8 +201,12 @@
#define HITMARKER_OBEYS 0x02000000
#define HITMARKER_x4000000 0x04000000
#define HITMARKER_x8000000 0x08000000
-#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
-#define HITMARKER_UNK(bank) ((0x10000000 << bank))
+#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
+#define HITMARKER_UNK(battler) (0x10000000 << battler)
+
+extern u32 gHitMarker;
+
+// Per-side statuses that affect an entire party
#define SIDE_STATUS_REFLECT (1 << 0)
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
@@ -180,49 +217,57 @@
#define SIDE_STATUS_MIST (1 << 8)
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
-#define ACTION_USE_MOVE 0
-#define ACTION_USE_ITEM 1
-#define ACTION_SWITCH 2
-#define ACTION_RUN 3
-#define ACTION_WATCHES_CAREFULLY 4
-#define ACTION_SAFARI_ZONE_BALL 5
-#define ACTION_POKEBLOCK_CASE 6
-#define ACTION_GO_NEAR 7
-#define ACTION_SAFARI_ZONE_RUN 8
-#define ACTION_9 9
-#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
-#define ACTION_CANCEL_PARTNER 12 // when choosing an action
-#define ACTION_FINISHED 12 // when executing an action
-#define ACTION_NOTHING_FAINTED 13 // when choosing an action
-#define ACTION_INIT_VALUE 0xFF
-
-#define MOVESTATUS_MISSED (1 << 0)
-#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
-#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
-#define MOVESTATUS_NOTAFFECTED (1 << 3)
-#define MOVESTATUS_ONEHITKO (1 << 4)
-#define MOVESTATUS_FAILED (1 << 5)
-#define MOVESTATUS_ENDURED (1 << 6)
-#define MOVESTATUS_HUNGON (1 << 7)
-
-#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
+extern u16 gSideStatuses[2];
+
+// Battle Actions
+// These determine what each battler will do in a turn
+#define B_ACTION_USE_MOVE 0
+#define B_ACTION_USE_ITEM 1
+#define B_ACTION_SWITCH 2
+#define B_ACTION_RUN 3
+#define B_ACTION_SAFARI_WATCH_CAREFULLY 4
+#define B_ACTION_SAFARI_BALL 5
+#define B_ACTION_SAFARI_POKEBLOCK 6
+#define B_ACTION_SAFARI_GO_NEAR 7
+#define B_ACTION_SAFARI_RUN 8
+// The exact purposes of these are unclear
+#define B_ACTION_UNKNOWN9 9
+#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
+#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
+#define B_ACTION_FINISHED 12 // when executing an action
+#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
+#define B_ACTION_NONE 0xFF
+
+#define MOVE_RESULT_MISSED (1 << 0)
+#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1)
+#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2)
+#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3)
+#define MOVE_RESULT_ONE_HIT_KO (1 << 4)
+#define MOVE_RESULT_FAILED (1 << 5)
+#define MOVE_RESULT_FOE_ENDURED (1 << 6)
+#define MOVE_RESULT_FOE_HUNG_ON (1 << 7)
+#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
#define MAX_TRAINER_ITEMS 4
#define MAX_MON_MOVES 4
+// Battle Weather flags
+
#define WEATHER_RAIN_TEMPORARY (1 << 0)
-#define WEATHER_RAIN_DOWNPOUR (1 << 1)
+#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
#define WEATHER_RAIN_PERMANENT (1 << 2)
-#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
+#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
-#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
+#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
#define WEATHER_SUN_TEMPORARY (1 << 5)
#define WEATHER_SUN_PERMANENT (1 << 6)
-#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
+#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
#define WEATHER_HAIL (1 << 7)
-#define WEATHER_HAIL_ANY ((WEATHER_HAIL))
-#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY))
+#define WEATHER_HAIL_ANY (WEATHER_HAIL)
+#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
+
+extern u16 gBattleWeather;
#define BATTLE_TERRAIN_GRASS 0
#define BATTLE_TERRAIN_LONG_GRASS 1
@@ -235,6 +280,8 @@
#define BATTLE_TERRAIN_BUILDING 8
#define BATTLE_TERRAIN_PLAIN 9
+extern u8 gBattleTerrain;
+
// array entries for battle communication
#define MULTIUSE_STATE 0x0
#define CURSOR_POSITION 0x1
@@ -299,7 +346,7 @@ struct TrainerMonNoItemDefaultMoves
u16 species;
};
-u8 GetBankSide(u8 bank);
+u8 GetBattlerSide(u8 battler);
struct TrainerMonItemDefaultMoves
{
@@ -382,8 +429,8 @@ struct DisableStruct
/*0x12*/ u8 chargeTimer2 : 4;
/*0x13*/ u8 tauntTimer1:4;
/*0x13*/ u8 tauntTimer2:4;
- /*0x14*/ u8 bankPreventingEscape;
- /*0x15*/ u8 bankWithSureHit;
+ /*0x14*/ u8 battlerPreventingEscape;
+ /*0x15*/ u8 battlerWithSureHit;
/*0x16*/ u8 isFirstTurn;
/*0x17*/ u8 unk17;
/*0x18*/ u8 truantCounter : 1;
@@ -394,7 +441,7 @@ struct DisableStruct
/*0x1A*/ u8 unk1A[2];
};
-extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT];
+extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
struct ProtectStruct
{
@@ -434,7 +481,7 @@ struct ProtectStruct
/* field_E */ u16 fieldE;
};
-extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT];
+extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
struct SpecialStatus
{
@@ -456,7 +503,7 @@ struct SpecialStatus
u8 field13;
};
-extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT];
+extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT];
struct SideTimer
{
@@ -478,12 +525,12 @@ extern struct SideTimer gSideTimers[];
struct WishFutureKnock
{
- u8 futureSightCounter[BATTLE_BANKS_COUNT];
- u8 futureSightAttacker[BATTLE_BANKS_COUNT];
- s32 futureSightDmg[BATTLE_BANKS_COUNT];
- u16 futureSightMove[BATTLE_BANKS_COUNT];
- u8 wishCounter[BATTLE_BANKS_COUNT];
- u8 wishUserID[BATTLE_BANKS_COUNT];
+ u8 futureSightCounter[MAX_BATTLERS_COUNT];
+ u8 futureSightAttacker[MAX_BATTLERS_COUNT];
+ s32 futureSightDmg[MAX_BATTLERS_COUNT];
+ u16 futureSightMove[MAX_BATTLERS_COUNT];
+ u8 wishCounter[MAX_BATTLERS_COUNT];
+ u8 wishUserID[MAX_BATTLERS_COUNT];
u8 weatherDuration;
u8 knockedOffPokes[2];
};
@@ -506,16 +553,16 @@ struct AI_ThinkingStruct
struct UsedMoves
{
- u16 moves[BATTLE_BANKS_COUNT];
- u16 unknown[BATTLE_BANKS_COUNT];
+ u16 moves[MAX_BATTLERS_COUNT];
+ u16 unknown[MAX_BATTLERS_COUNT];
};
struct BattleHistory
{
- struct UsedMoves usedMoves[BATTLE_BANKS_COUNT];
- u8 abilities[BATTLE_BANKS_COUNT];
- u8 itemEffects[BATTLE_BANKS_COUNT];
- u16 trainerItems[BATTLE_BANKS_COUNT];
+ struct UsedMoves usedMoves[MAX_BATTLERS_COUNT];
+ u8 abilities[MAX_BATTLERS_COUNT];
+ u8 itemEffects[MAX_BATTLERS_COUNT];
+ u16 trainerItems[MAX_BATTLERS_COUNT];
u8 itemsNo;
};
@@ -555,10 +602,6 @@ struct BattleResources
extern struct BattleResources* gBattleResources;
-#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
-#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
-#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
-
struct BattleResults
{
u8 playerFaintCounter; // 0x0
@@ -621,9 +664,9 @@ struct BattleStruct
u16 expValue;
u8 field_52;
u8 sentInPokes;
- bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
+ bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
u8 field_58[4];
- u8 monToSwitchIntoId[BATTLE_BANKS_COUNT];
+ u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_60[4][3];
u8 runTries;
u8 caughtMonNick[11];
@@ -635,8 +678,8 @@ struct BattleStruct
u8 field_7D;
u8 field_7E;
u8 formToChangeInto;
- u8 chosenMovePositions[BATTLE_BANKS_COUNT];
- u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT];
+ u8 chosenMovePositions[MAX_BATTLERS_COUNT];
+ u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT];
u8 field_88;
u8 field_89;
u8 field_8A;
@@ -669,12 +712,12 @@ struct BattleStruct
u8 synchronizeMoveEffect;
u8 field_B3;
void (*savedCallback)(void);
- u16 usedHeldItems[BATTLE_BANKS_COUNT];
+ u16 usedHeldItems[MAX_BATTLERS_COUNT];
u8 chosenItem[4]; // why is this an u8?
u8 AI_itemType[2];
u8 AI_itemFlags[2];
- u16 choicedMove[BATTLE_BANKS_COUNT];
- u16 changedItems[BATTLE_BANKS_COUNT];
+ u16 choicedMove[MAX_BATTLERS_COUNT];
+ u16 changedItems[MAX_BATTLERS_COUNT];
u8 intimidateBank;
u8 switchInItemsCounter;
u8 field_DA;
@@ -682,7 +725,7 @@ struct BattleStruct
u8 fillerDC[0xDF-0xDC];
u8 field_DF;
u8 mirrorMoveArrays[32];
- u16 castformPalette[BATTLE_BANKS_COUNT][16];
+ u16 castformPalette[MAX_BATTLERS_COUNT][16];
u8 field_180;
u8 field_181;
u8 field_182;
@@ -695,7 +738,7 @@ struct BattleStruct
u8 field_1A4[96];
u8 field_204[104];
u8 field_26C[40];
- u8 AI_monToSwitchIntoId[BATTLE_BANKS_COUNT];
+ u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
u8 field_298[8];
u8 field_2A0;
u8 field_2A1;
@@ -797,9 +840,9 @@ struct BattleScripting
u8 animArg2;
u16 tripleKickPower;
u8 atk49_state;
- u8 bankWithAbility;
+ u8 battlerWithAbility;
u8 multihitMoveEffect;
- u8 bank;
+ u8 battler;
u8 animTurn;
u8 animTargetsHit;
u8 statChanger;
@@ -831,9 +874,9 @@ enum
};
// rom_80A5C6C
-u8 GetBankSide(u8 bank);
-u8 GetBankIdentity(u8 bank);
-u8 GetBankByIdentity(u8 bank);
+u8 GetBattlerSide(u8 bank);
+u8 GetBattlerPosition(u8 bank);
+u8 GetBattlerAtPosition(u8 bank);
struct BattleSpriteInfo
{
@@ -907,7 +950,7 @@ struct BattleBarInfo
struct BattleSpriteData
{
- struct BattleSpriteInfo *bankData;
+ struct BattleSpriteInfo *battlerData;
struct BattleHealthboxInfo *healthBoxesData;
struct BattleAnimationInfo *animationData;
struct BattleBarInfo *battleBars;
diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h
index 5fb422b41..316f76de6 100644
--- a/include/battle_ai_script_commands.h
+++ b/include/battle_ai_script_commands.h
@@ -4,9 +4,9 @@
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);
-void ClearBankMoveHistory(u8 bank);
+void ClearBattlerMoveHistory(u8 bank);
void RecordAbilityBattle(u8 bank, u8 abilityId);
-void ClearBankAbilityHistory(u8 bank);
+void ClearBattlerAbilityHistory(u8 bank);
void RecordItemEffectBattle(u8 bank, u8 itemEffect);
void ClearBankItemEffectHistory(u8 bank);
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 4046f7051..cc864b024 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -45,9 +45,9 @@ extern u8 gAnimFriendship;
extern u16 gWeatherMoveAnim;
extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
extern u8 gAnimMoveTurn;
-extern u8 gAnimBankAttacker;
-extern u8 gAnimBankTarget;
-extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gBattleAnimAttacker;
+extern u8 gBattleAnimTarget;
+extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT];
extern u8 gUnknown_02038440;
void ClearBattleAnimationVars(void);
@@ -56,7 +56,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
void DestroyAnimSprite(struct Sprite *sprite);
void DestroyAnimVisualTask(u8 taskId);
void DestroyAnimSoundTask(u8 taskId);
-bool8 IsAnimBankSpriteVisible(u8 bank);
+bool8 IsBattlerSpriteVisible(u8 bank);
void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
bool8 IsContest(void);
s8 BattleAnimAdjustPanning(s8 pan);
@@ -85,17 +85,17 @@ enum
BANK_Y_POS,
};
-u8 GetBankPosition(u8 bank, u8 attributeId);
+u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId);
-bool8 IsBankSpritePresent(u8 bank);
+bool8 IsBattlerSpritePresent(u8 bank);
void sub_80A6C68(u8 arg0);
-u8 GetAnimBankSpriteId(u8 wantedBank);
+u8 GetAnimBattlerSpriteId(u8 wantedBank);
bool8 IsDoubleBattle(void);
u8 sub_80A6D94(void);
u8 sub_80A8364(u8);
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
-u8 GetBankSpriteDefault_Y(u8 bank);
+u8 GetBattlerSpriteDefault_Y(u8 bank);
u8 sub_80A82E4(u8 bank);
u8 GetSubstituteSpriteDefault_Y(u8 bank);
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index c69cb1017..a0fc41b52 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -181,62 +181,62 @@ void sub_8033648(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
// emitters
-void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
-void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
-void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
-void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
-void EmitLoadMonSprite(u8 bufferId);
-void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
-void EmitReturnMonToBall(u8 bufferId, u8 arg1);
-void EmitDrawTrainerPic(u8 bufferId);
-void EmitTrainerSlide(u8 bufferId);
-void EmitTrainerSlideBack(u8 bufferId);
-void EmitFaintAnimation(u8 bufferId);
-void EmitPaletteFade(u8 bufferId); // unused
-void EmitSuccessBallThrowAnim(u8 bufferId); // unused
-void EmitBallThrowAnim(u8 bufferId, u8 caseId);
-void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
-void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
-void EmitPrintString(u8 bufferId, u16 stringId);
-void EmitPrintSelectionString(u8 bufferId, u16 stringId);
-void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
-void EmitUnknownYesNoBox(u8 bufferId);
-void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
-void EmitChooseItem(u8 bufferId, u8* arg1);
-void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
-void EmitCmd23(u8 bufferId); // unused
-void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
-void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
-void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
-void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
-void EmitStatusXor(u8 bufferId, u8 b); // unused
-void EmitDataTransfer(u8 bufferId, u16 size, void *data);
-void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
-void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
-void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
-void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
-void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
-void EmitOneReturnValue(u8 bufferId, u16 arg1);
-void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
-void EmitCmd37(u8 bufferId); // unused
-void EmitCmd38(u8 bufferId, u8 b); // unused
-void EmitCmd39(u8 bufferId); // unused
-void EmitCmd40(u8 bufferId); // unused
-void EmitHitAnimation(u8 bufferId);
-void EmitCmd42(u8 bufferId);
-void EmitPlaySE(u8 bufferId, u16 songId);
-void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
-void EmitFaintingCry(u8 bufferId);
-void EmitIntroSlide(u8 bufferId, u8 terrainId);
-void EmitIntroTrainerBallThrow(u8 bufferId);
-void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
-void EmitCmd49(u8 bufferId);
-void EmitCmd50(u8 bufferId);
-void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
-void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
-void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
-void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
-void EmitCmd55(u8 bufferId, u8 arg1);
+void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
+void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
+void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
+void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
+void BtlController_EmitLoadMonSprite(u8 bufferId);
+void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
+void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1);
+void BtlController_EmitDrawTrainerPic(u8 bufferId);
+void BtlController_EmitTrainerSlide(u8 bufferId);
+void BtlController_EmitTrainerSlideBack(u8 bufferId);
+void BtlController_EmitFaintAnimation(u8 bufferId);
+void BtlController_EmitPaletteFade(u8 bufferId); // unused
+void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused
+void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
+void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused
+void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
+void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
+void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
+void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
+void BtlController_EmitUnknownYesNoBox(u8 bufferId);
+void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
+void BtlController_EmitChooseItem(u8 bufferId, u8* arg1);
+void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
+void BtlController_EmitCmd23(u8 bufferId); // unused
+void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
+void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
+void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
+void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
+void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused
+void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
+void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
+void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
+void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused
+void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
+void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
+void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
+void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
+void BtlController_EmitCmd37(u8 bufferId); // unused
+void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused
+void BtlController_EmitCmd39(u8 bufferId); // unused
+void BtlController_EmitCmd40(u8 bufferId); // unused
+void BtlController_EmitHitAnimation(u8 bufferId);
+void BtlController_EmitCmd42(u8 bufferId);
+void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
+void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
+void BtlController_EmitFaintingCry(u8 bufferId);
+void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
+void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
+void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
+void BtlController_EmitCmd49(u8 bufferId);
+void BtlController_EmitCmd50(u8 bufferId);
+void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
+void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
+void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
+void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
+void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
// player controller
void SetControllerToPlayer(void);
diff --git a/include/battle_frontier_1.h b/include/battle_frontier_1.h
new file mode 100644
index 000000000..5483b28ef
--- /dev/null
+++ b/include/battle_frontier_1.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_FRONTIER_1_H
+#define GUARD_BATTLE_FRONTIER_1_H
+
+bool32 sub_8196094(void);
+void sub_8196080(const u8 *str);
+
+#endif // GUARD_BATTLE_FRONTIER_1_H
diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h
index 313a29811..75bc3e003 100644
--- a/include/battle_gfx_sfx_util.h
+++ b/include/battle_gfx_sfx_util.h
@@ -39,8 +39,8 @@ void sub_805EAE8(void);
void sub_805EB9C(u8 affineMode);
void LoadAndCreateEnemyShadowSprites(void);
void SpriteCB_SetInvisible(struct Sprite *sprite);
-void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
-void EnemyShadowCallbackToSetInvisible(u8 bank);
+void SetBattlerShadowSpriteCallback(u8 bank, u16 species);
+void HideBattlerShadowSprite(u8 bank);
void sub_805EF14(void);
void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
void AllocateMonSpritesGfx(void);
diff --git a/include/battle_interface.h b/include/battle_interface.h
index b2d3b1b97..fe8c03f70 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -54,7 +54,7 @@ enum
HEALTHBOX_SAFARI_BALLS_TEXT
};
-u8 CreateBankHealthboxSprites(u8 bank);
+u8 CreateBattlerHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
@@ -62,7 +62,7 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
void DestoryHealthboxSprite(u8 healthboxSpriteId);
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
void UpdateOamPriorityInAllHealthboxes(u8 priority);
-void SetBankHealthboxSpritePos(u8 bank);
+void InitBattlerHealthboxCoords(u8 bank);
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
void SwapHpBarsWithHpText(void);
u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
diff --git a/include/battle_link_817C95C.h b/include/battle_link_817C95C.h
index 815c1f058..cb2cb0b27 100644
--- a/include/battle_link_817C95C.h
+++ b/include/battle_link_817C95C.h
@@ -6,6 +6,6 @@ void sub_817E0FC(u16 move, u16 weatherFlags, struct DisableStruct *disableStruct
void sub_817E32C(u8 animationId);
void sub_817E3F4(void);
void sub_817F2A8(void);
-u8 GetBankMoveSlotId(u8 bank, u16 move);
+u8 GetBattlerMoveSlotId(u8 bank, u16 move);
#endif // GUARD_BATTLE_LINK_817C95C_H
diff --git a/include/battle_2.h b/include/battle_main.h
index ee61efd9b..54b5e7da6 100644
--- a/include/battle_2.h
+++ b/include/battle_main.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_BATTLE_2_H
-#define GUARD_BATTLE_2_H
+#ifndef GUARD_BATTLE_MAIN_H
+#define GUARD_BATTLE_MAIN_H
void CB2_InitBattle(void);
void BattleMainCB2(void);
@@ -52,4 +52,4 @@ extern const u8 gStatusConditionString_LoveJpn[8];
extern const u8 * const gStatusConditionStringsTable[7][2];
-#endif // GUARD_BATTLE_2_H
+#endif // GUARD_BATTLE_MAIN_H
diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h
index 80fabaa64..26659ff20 100644
--- a/include/battle_script_commands.h
+++ b/include/battle_script_commands.h
@@ -52,7 +52,7 @@
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
-u8 BankGetTurnOrder(u8 bank);
+u8 GetBattlerTurnOrderNum(u8 bank);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
diff --git a/include/battle_util.h b/include/battle_util.h
index 81eb85dc7..56628c11d 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -48,8 +48,8 @@ u8 GetBattleBank(u8 caseId);
void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move);
void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
void PressurePPLoseOnUsingImprision(u8 bankAtk);
-void MarkAllBufferBanksForExecution(void); // unused
-void MarkBufferBankForExecution(u8 bank);
+void MarkAllBattlersForControllerExec(void); // unused
+void MarkBattlerForControllerExec(u8 bank);
void sub_803F850(u8 arg0);
void CancelMultiTurnMoves(u8 bank);
bool8 WasUnableToUseMove(u8 bank);
diff --git a/include/berry_fix_program.h b/include/berry_fix_program.h
new file mode 100644
index 000000000..6c31a0c8b
--- /dev/null
+++ b/include/berry_fix_program.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_FIX_PROGRAM_H
+#define GUARD_BERRY_FIX_PROGRAM_H
+
+void CB2_InitBerryFixProgram(void);
+
+#endif // GUARD_BERRY_FIX_PROGRAM_H
diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h
new file mode 100644
index 000000000..26664bea6
--- /dev/null
+++ b/include/berry_tag_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BERRY_TAG_SCREEN_H
+#define GUARD_BERRY_TAG_SCREEN_H
+
+void DoBerryTagScreen(void);
+
+#endif // GUARD_BERRY_TAG_SCREEN_H
diff --git a/include/blend_palette.h b/include/blend_palette.h
index 1db3f4eb0..a00847bc3 100644
--- a/include/blend_palette.h
+++ b/include/blend_palette.h
@@ -1,12 +1,6 @@
#ifndef GUARD_BLEND_PALETTE_H
#define GUARD_BLEND_PALETTE_H
-// Exported type declarations
+void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor);
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void BlendPalette(u16, u16, u8, u16);
-
-#endif //GUARD_BLEND_PALETTE_H
+#endif // GUARD_BLEND_PALETTE_H
diff --git a/include/clear_save_data_menu.h b/include/clear_save_data_menu.h
new file mode 100644
index 000000000..86ba99849
--- /dev/null
+++ b/include/clear_save_data_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_CLEAR_SAVE_DATA_MENU_H
+#define GUARD_CLEAR_SAVE_DATA_MENU_H
+
+void CB2_InitClearSaveDataScreen(void);
+
+#endif // GUARD_CLEAR_SAVE_DATA_MENU_H
diff --git a/include/constants/items.h b/include/constants/items.h
index 6135b8d6f..41d63c4a3 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -383,6 +383,9 @@
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
+#define ITEM_LAST_ID 376
+#define ITEM_FIELD_ARROW ITEM_LAST_ID + 1
+
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
diff --git a/include/constants/rgb.h b/include/constants/rgb.h
new file mode 100644
index 000000000..8b323799f
--- /dev/null
+++ b/include/constants/rgb.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_RGB_H
+#define GUARD_RGB_H
+
+#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
+#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
+
+#define RGB_BLACK RGB(0, 0, 0)
+#define RGB_WHITE RGB(31, 31, 31)
+#define RGB_RED RGB(31, 0, 0)
+#define RGB_GREEN RGB(0, 31, 0)
+#define RGB_BLUE RGB(0, 0, 31)
+#define RGB_YELLOW RGB(31, 31, 0)
+#define RGB_MAGENTA RGB(31, 0, 31)
+#define RGB_CYAN RGB(0, 31, 31)
+
+#endif // GUARD_RGB_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
new file mode 100644
index 000000000..953cc2753
--- /dev/null
+++ b/include/constants/weather.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_CONSTANTS_WEATHER_H
+#define GUARD_CONSTANTS_WEATHER_H
+
+#define WEATHER_NONE 0
+#define WEATHER_CLOUDS 1
+#define WEATHER_SUNNY 2
+#define WEATHER_RAIN_LIGHT 3
+#define WEATHER_SNOW 4
+#define WEATHER_RAIN_MED 5
+#define WEATHER_FOG_1 6
+#define WEATHER_ASH 7
+#define WEATHER_SANDSTORM 8
+#define WEATHER_FOG_2 9
+#define WEATHER_FOG_3 10
+#define WEATHER_SHADE 11
+#define WEATHER_DROUGHT 12
+#define WEATHER_RAIN_HEAVY 13
+#define WEATHER_BUBBLES 14
+#define WEATHER_ROUTE119_CYCLE 20
+#define WEATHER_ROUTE123_CYCLE 21
+
+// These are used in maps' coord_weather_event entries.
+// They are not a one-to-one mapping with the engine's
+// internal weather constants above.
+#define COORD_EVENT_WEATHER_CLOUDS 1
+#define COORD_EVENT_WEATHER_SUNNY 2
+#define COORD_EVENT_WEATHER_RAIN_LIGHT 3
+#define COORD_EVENT_WEATHER_SNOW 4
+#define COORD_EVENT_WEATHER_RAIN_MED 5
+#define COORD_EVENT_WEATHER_FOG_1 6
+#define COORD_EVENT_WEATHER_FOG_2 7
+#define COORD_EVENT_WEATHER_ASH 8
+#define COORD_EVENT_WEATHER_SANDSTORM 9
+#define COORD_EVENT_WEATHER_SHADE 10
+#define COORD_EVENT_WEATHER_DROUGHT 11
+#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
+#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
+
+#endif // GUARD_CONSTANTS_WEATHER_H
diff --git a/include/coord_event_weather.h b/include/coord_event_weather.h
new file mode 100644
index 000000000..86fb48793
--- /dev/null
+++ b/include/coord_event_weather.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_COORD_EVENT_WEATHER_H
+#define GUARD_COORD_EVENT_WEATHER_H
+
+void DoCoordEventWeather(u8);
+
+#endif // GUARD_COORD_EVENT_WEATHER_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
index ba797ec98..031c7a8ab 100644
--- a/include/field_map_obj_helpers.h
+++ b/include/field_map_obj_helpers.h
@@ -1,7 +1,31 @@
-#ifndef GUARD_FIELDMAPOBJHELP_H
-#define GUARD_FIELDMAPOBJHELP_H
+#ifndef GUARD_FIELD_MAP_OBJ_HELPERS_H
+#define GUARD_FIELD_MAP_OBJ_HELPERS_H
+// Exported type declarations
+
+// Exported RAM declarations
+extern u8 *gUnknown_020375B8;
+
+// Exported ROM declarations
+void sub_8097AC8(struct Sprite *);
+void npc_sync_anim_pause_bits(struct MapObject *);
+void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+u8 sub_8097F78(struct MapObject *);
+bool8 obj_npc_ministep(struct Sprite *sprite);
+bool8 sub_80976EC(struct Sprite *sprite);
+void sub_80976DC(struct Sprite *, u8);
+void sub_809783C(struct Sprite *, u8, u8, u8);
+void DoShadowFieldEffect(struct MapObject *);
+u8 sub_809785C(struct Sprite *);
+u8 sub_80978E4(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
+bool8 sub_80979BC(struct Sprite *);
+void sub_8097750(struct Sprite *);
+bool8 sub_8097758(struct Sprite *);
+void sub_8097FA4(struct MapObject *);
+void sub_8098044(u8);
void UnfreezeMapObjects(void);
+void FreezeMapObjectsExceptOne(u8 mapObjectId);
void sub_8097B78(u8, u8);
-#endif
+#endif //GUARD_FIELD_MAP_OBJ_HELPERS_H
diff --git a/include/field_weather.h b/include/field_weather.h
index e12107e70..7ad8d21e7 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -1,12 +1,177 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
-void fade_screen(u8, s8);
+#include "sprite.h"
+// Controls how the weather should be changing the screen palettes.
+enum {
+ WEATHER_PAL_STATE_CHANGING_WEATHER,
+ WEATHER_PAL_STATE_SCREEN_FADING_IN,
+ WEATHER_PAL_STATE_SCREEN_FADING_OUT,
+ WEATHER_PAL_STATE_IDLE,
+};
+
+struct Weather
+{
+ union
+ {
+ struct
+ {
+ struct Sprite *rainSprites[24];
+ struct Sprite *snowflakeSprites[101];
+ struct Sprite *cloudSprites[3];
+ } s1;
+ struct
+ {
+ u8 filler0[0xA0];
+ struct Sprite *fog1Sprites[20];
+ struct Sprite *ashSprites[20];
+ struct Sprite *fog2Sprites[20];
+ struct Sprite *sandstormSprites1[20];
+ struct Sprite *sandstormSprites2[5];
+ } s2;
+ } sprites;
+ u8 gammaShifts[19][32];
+ u8 altGammaShifts[19][32];
+ s8 gammaIndex;
+ s8 gammaTargetIndex;
+ u8 gammaStepDelay;
+ u8 gammaStepFrameCounter;
+ u16 fadeDestColor;
+ u8 palProcessingState;
+ u8 fadeScreenCounter;
+ bool8 readyForInit;
+ u8 taskId;
+ u8 unknown_6CA;
+ u8 unknown_6CB;
+ u16 initStep;
+ u16 finishStep;
+ u8 currWeather;
+ u8 nextWeather;
+ u8 weatherGfxLoaded;
+ bool8 weatherChangeComplete;
+ u8 weatherPicSpritePalIndex;
+ u8 altGammaSpritePalIndex;
+ u16 unknown_6D6;
+ u8 unknown_6D8;
+ u8 unknown_6D9;
+ u8 rainSpriteCount;
+ u8 unknown_6DB;
+ u8 unknown_6DC;
+ u8 rainStrength;
+ /*0x6DE*/ u8 cloudSpritesCreated;
+ u8 filler_6DF[1];
+ u16 unknown_6E0;
+ u16 unknown_6E2;
+ u8 snowflakeSpriteCount;
+ u8 unknown_6E5;
+ u16 unknown_6E6;
+ u16 thunderCounter;
+ u8 unknown_6EA;
+ u8 unknown_6EB;
+ u8 unknown_6EC;
+ u8 unknown_6ED;
+ u16 fog1ScrollPosX;
+ u16 unknown_6F0;
+ u16 unknown_6F2;
+ u8 lightenedFogSpritePals[6];
+ u8 lightenedFogSpritePalsCount;
+ u8 fog1SpritesCreated;
+ u16 unknown_6FC;
+ u16 unknown_6FE;
+ u8 ashSpritesCreated;
+ u8 filler_701[3];
+ u32 unknown_704;
+ u32 unknown_708;
+ u8 filler_70C[2];
+ u16 unknown_70E;
+ u16 unknown_710;
+ u16 unknown_712;
+ u16 unknown_714;
+ u8 sandstormSprites1Created;
+ u8 sandstormSprites2Created;
+ u16 unknown_718;
+ u16 unknown_71A;
+ u16 unknown_71C;
+ u16 unknown_71E;
+ u16 unknown_720;
+ u16 unknown_722;
+ u8 fog2SpritesCreated;
+ u8 filler_725[1];
+ u16 unknown_726;
+ u16 unknown_728;
+ u16 unknown_72A;
+ u16 unknown_72C;
+ u8 unknown_72E;
+ u8 filler_72F;
+ u16 currBlendEVA;
+ u16 currBlendEVB;
+ u16 targetBlendEVA;
+ u16 targetBlendEVB;
+ u8 blendUpdateCounter;
+ u8 blendFrameCounter;
+ u8 blendDelay;
+ u8 filler_73B[0x3C-0x3B];
+ s16 unknown_73C;
+ s16 unknown_73E;
+ s16 unknown_740;
+ s16 unknown_742;
+ u8 filler_744[0xD-4];
+ s8 loadDroughtPalsIndex;
+ u8 loadDroughtPalsOffset;
+};
+
+void StartWeather(void);
+void ChangeWeather(u8 weather);
+void sub_807C988(u8 effect);
+void sub_807C9B4(u8 effect);
+void Task_WeatherInit(u8);
+void Task_WeatherMain(u8);
+void sub_807CAE8(void);
+void nullsub_38(void);
+void SetWeatherScreenFadeOut(void);
+
+enum
+{
+ FADE_FROM_BLACK,
+ FADE_TO_BLACK,
+ FADE_FROM_WHITE,
+ FADE_TO_WHITE,
+};
+
+void FadeScreen(u8, s8);
+// ...
+void UpdateSpritePaletteWithWeather(u8 tag);
+void ApplyWeatherGammaShiftToPal(u8);
+// ...
+void Weather_SetBlendCoeffs(u8, u8);
+// ...
+void PlayRainSoundEffect(void);
+// ...
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
void sub_80AEDBC(void);
+void SetSav1WeatherFromCurrMapHeader(void);
+// ...
void DoCurrentWeather(void);
+void sub_8080750();
+
+bool8 IsWeatherNotFadingIn(void);
+bool8 IsWeatherChangeComplete(void);
+void SetWeather(u32);
+void UpdateWeatherPerDay(u16);
+void PreservePaletteInWeather(u8 index);
+void ResetPreservedPalettesInWeather(void);
+extern void ResetDroughtWeatherPaletteLoading(void);
+void ResetDroughtWeatherPaletteLoading(void);
+bool8 LoadDroughtWeatherPalettes(void);
+u8 GetCurrentWeather(void);
+void LoadCustomWeatherSpritePalette(const u16 *palette);
+
+
+extern struct Weather gWeather;
+
+extern struct Weather *const gWeatherPtr;
#endif // GUARD_WEATHER_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 6925864a2..1eed6303d 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -63,11 +63,6 @@
#define TOTAL_OBJ_TILE_COUNT 1024
-#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
-
-#define RGB_BLACK RGB(0, 0, 0)
-#define RGB_WHITE RGB(31, 31, 31)
-
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#endif // GUARD_GBA_DEFINES
diff --git a/include/global.h b/include/global.h
index 21e468515..0e5615eb0 100644
--- a/include/global.h
+++ b/include/global.h
@@ -34,9 +34,14 @@
// Converts a number to Q4.12 fixed-point format
#define Q_4_12(n) ((s16)((n) * 4096))
+#define PARTY_SIZE 6
+
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
+#define min(a, b) ((a) < (b) ? (a) : (b))
+#define max(a, b) ((a) >= (b) ? (a) : (b))
+
#define HEAP_SIZE 0x1C000
extern u8 gStringVar1[];
@@ -292,6 +297,16 @@ struct SaveBlock2
extern struct SaveBlock2 *gSaveBlock2Ptr;
+struct SecretBaseParty
+{
+ u32 personality[PARTY_SIZE];
+ u16 moves[PARTY_SIZE * 4];
+ u16 species[PARTY_SIZE];
+ u16 heldItems[PARTY_SIZE];
+ u8 levels[PARTY_SIZE];
+ u8 EVs[PARTY_SIZE];
+};
+
struct SecretBaseRecord
{
/*0x1A9C*/ u8 secretBaseId;
@@ -307,12 +322,7 @@ struct SecretBaseRecord
/*0x1AAD*/ u8 sbr_field_11;
/*0x1AAE*/ u8 decorations[16];
/*0x1ABE*/ u8 decorationPos[16];
- /*0x1AD0*/ u32 partyPersonality[6];
- /*0x1AE8*/ u16 partyMoves[6 * 4];
- /*0x1B18*/ u16 partySpecies[6];
- /*0x1B24*/ u16 partyHeldItems[6];
- /*0x1B2E*/ u8 partyLevels[6];
- /*0x1B34*/ u8 partyEVs[6];
+ /*0x1AD0*/ struct SecretBaseParty party;
};
#include "constants/game_stat.h"
diff --git a/include/graphics.h b/include/graphics.h
index bebf1724b..39662c8c1 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2654,6 +2654,12 @@ extern const u8 gBattleTerrainPalette_StadiumWallace[];
extern const u8 gPokedexMenu2_Gfx[];
extern const u8 gPokedexText_Pal[];
+// berry tag screen
+extern const u8 gUnknown_08D9BB44[];
+extern const u8 gUnknown_08D9BF98[];
+extern const u8 gUnknown_08D9C13C[];
+extern const u8 gUnknown_08D9BEF0[];
+
// rayquaza scene gfx
extern const u8 gRaySceneGroudon_Gfx[];
extern const u8 gRaySceneGroudon2_Gfx[];
@@ -2673,11 +2679,39 @@ extern const u8 gRaySceneGroudonTail_Gfx[];
extern const u8 gRaySceneKyogreRight_Gfx[];
extern const u8 gRaySceneRayquazaHover_Gfx[];
extern const u8 gRaySceneRayquazaFlyIn_Gfx[];
+extern const u8 gRaySceneOvercast_Gfx[];
+extern const u8 gRaySceneOvercast_Tilemap[];
+extern const u8 gRaySceneRayquaza_Gfx[];
+extern const u8 gRaySceneRayquaza_Tilemap[];
extern const u8 gRaySceneSplash_Gfx[];
extern const u8 gRaySceneGroudonLeft_Pal[];
extern const u8 gRaySceneKyogreRight_Pal[];
extern const u8 gRaySceneRayquazaHover_Pal[];
extern const u8 gRaySceneSplash_Pal[];
+extern const u8 gRaySceneClouds_Gfx[];
+extern const u8 gRaySceneClouds_Pal[];
+extern const u8 gRaySceneClouds2_Tilemap[];
+extern const u8 gRaySceneClouds1_Tilemap[];
+extern const u8 gRaySceneClouds3_Tilemap[];
+extern const u8 gRaySceneRayquazaLight_Gfx[];
+extern const u8 gRaySceneRayquazaLight_Tilemap[];
+extern const u8 gRaySceneOvercast2_Gfx[];
+extern const u8 gRaySceneOvercast2_Tilemap[];
+extern const u8 gRaySceneOvercast2_Pal[];
+extern const u8 gRaySceneRayquazaChase_Gfx[];
+extern const u8 gRaySceneChaseStreaks_Gfx[];
+extern const u8 gRaySceneChaseBg_Gfx[];
+extern const u8 gRayChaseRayquazaChase2_Tilemap[];
+extern const u8 gRayChaseRayquazaChase_Tilemap[];
+extern const u8 gRaySceneChaseStreaks_Tilemap[];
+extern const u8 gRaySceneChaseBg_Tilemap[];
+extern const u8 gRaySceneChase_Pal[];
+extern const u8 gRaySceneHushRing_Tilemap[];
+extern const u8 gRaySceneHushBg_Tilemap[];
+extern const u8 gRaySceneHushRing_Map[];
+extern const u8 gRaySceneHushBg_Pal[];
+extern const u8 gRaySceneHushBg_Gfx[];
+extern const u8 gRaySceneHushRing_Gfx[];
//menu graphics
extern const u16 gFireRedMenuElements1_Pal[16];
diff --git a/include/intro.h b/include/intro.h
new file mode 100644
index 000000000..53a446418
--- /dev/null
+++ b/include/intro.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_INTRO_H
+#define GUARD_INTRO_H
+
+void CB2_InitCopyrightScreenAfterBootup(void);
+void CB2_InitCopyrightScreenAfterTitleScreen(void);
+void sub_816F2A8(u16, u16, u16, u16);
+
+#endif // GUARD_INTRO_H
diff --git a/include/item.h b/include/item.h
index a136f03ec..06eb08046 100644
--- a/include/item.h
+++ b/include/item.h
@@ -60,5 +60,6 @@ u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
+u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
#endif // ITEM_H
diff --git a/include/item_icon.h b/include/item_icon.h
index a43b72f39..b702b2045 100644
--- a/include/item_icon.h
+++ b/include/item_icon.h
@@ -1,17 +1,16 @@
-//
-// Created by scott on 10/20/2017.
-//
-
#ifndef GUARD_ITEM_ICON_H
#define GUARD_ITEM_ICON_H
-extern EWRAM_DATA void *gUnknown_0203CEBC;
-extern EWRAM_DATA void *gUnknown_0203CEC0;
+extern void *gItemIconDecompressionBuffer;
+extern void *gItemIcon4x4Buffer;
-extern const struct SpriteTemplate gUnknown_08614FF4;
+extern const struct SpriteTemplate gItemIconSpriteTemplate;
bool8 AllocItemIconTemporaryBuffers(void);
-void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
void FreeItemIconTemporaryBuffers(void);
+void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
+u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId);
+u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
+const void *GetItemIconPicOrPalette(u16 itemId, u8 which);
#endif //GUARD_ITEM_ICON_H
diff --git a/include/item_menu.h b/include/item_menu.h
index 85655e9d5..0ddd6766b 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -2,11 +2,24 @@
#define GUARD_item_menu_H
// Exported type declarations
+struct BagStruct
+{
+ void *func;
+ u8 unk4;
+ u8 pocket;
+ u8 unk6[2];
+ u16 unk8[5];
+ u16 unk12[5];
+ void *unk1C;
+};
+
+extern struct BagStruct gUnknown_0203CE58;
// Exported RAM declarations
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
+void bag_menu_mail_related(void);
#endif //GUARD_item_menu_H
diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h
index 553e7c262..c3932390c 100644
--- a/include/item_menu_icons.h
+++ b/include/item_menu_icons.h
@@ -1,6 +1,12 @@
#ifndef GUARD_ITEM_MENU_ICONS
#define GUARD_ITEM_MENU_ICONS
+extern const struct CompressedSpriteSheet gUnknown_0857FDEC;
+extern const struct CompressedSpritePalette gUnknown_0857FDF4;
+
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
+u8 CreateBerryTagSprite(u8 id, s16 x, s16 y);
+void FreeBerryTagSpritePalette(void);
+u8 CreateBerryFlavorCircleSprite(s16 x);
#endif // GUARD_ITEM_MENU_ICONS
diff --git a/include/item_use.h b/include/item_use.h
new file mode 100644
index 000000000..ee7939824
--- /dev/null
+++ b/include/item_use.h
@@ -0,0 +1,54 @@
+#ifndef GUARD_ITEM_USE_H
+#define GUARD_ITEM_USE_H
+
+extern u16 gSpecialVar_ItemId;
+
+void ItemUseOutOfBattle_Mail(u8);
+void ItemUseOutOfBattle_Bike(u8);
+void ItemUseOnFieldCB_Bike(u8);
+void ItemUseOutOfBattle_Rod(u8);
+void ItemUseOnFieldCB_Rod(u8);
+void ItemUseOutOfBattle_Itemfinder(u8);
+void ItemUseOnFieldCB_Itemfinder(u8);
+void RunItemfinderResults(u8);
+void ExitItemfinder(u8);
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8);
+void sub_80C9720(u8);
+void sub_80C9838(u8, s16, s16);
+u8 GetPlayerDirectionTowardsHiddenItem(s16, s16);
+void SetPlayerDirectionTowardsItem(u8);
+void DisplayItemRespondingMessageAndExitItemfinder(u8);
+void RotatePlayerAndExitItemfinder(u8);
+void ItemUseOutOfBattle_PokeblockCase(u8);
+void ItemUseOutOfBattle_CoinCase(u8);
+void ItemUseOutOfBattle_SSTicket(u8);
+void sub_80C9D00(u8);
+void ItemUseOutOfBattle_WailmerPail(u8);
+void sub_80C9D74(u8);
+void ItemUseOutOfBattle_Medicine(u8);
+void ItemUseOutOfBattle_SacredAsh(u8);
+void ItemUseOutOfBattle_PPRecovery(u8);
+void ItemUseOutOfBattle_PPUp(u8);
+void ItemUseOutOfBattle_RareCandy(u8);
+void ItemUseOutOfBattle_TMHM(u8);
+void sub_80C9EE4(u8);
+void sub_80C9F10(u8);
+void sub_80C9F80(u8);
+void sub_80C9FC0(u8);
+void ItemUseOutOfBattle_Repel(u8);
+void ItemUseOutOfBattle_BlackWhiteFlute(u8);
+void task08_080A1C44(u8);
+u8 CanUseEscapeRopeOnCurrMap(void);
+void ItemUseOutOfBattle_EscapeRope(u8);
+void ItemUseOutOfBattle_EvolutionStone(u8);
+void ItemUseInBattle_PokeBall(u8);
+void ItemUseInBattle_StatIncrease(u8);
+void ItemUseInBattle_Medicine(u8);
+void ItemUseInBattle_PPRecovery(u8);
+void ItemUseInBattle_Escape(u8);
+void ItemUseOutOfBattle_EnigmaBerry(u8);
+void ItemUseInBattle_EnigmaBerry(u8);
+void ItemUseOutOfBattle_CannotUse(u8);
+u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
+
+#endif // GUARD_ITEM_USE_H
diff --git a/include/link.h b/include/link.h
index fe5429497..1c9795d29 100644
--- a/include/link.h
+++ b/include/link.h
@@ -143,8 +143,9 @@ extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkVSyncDisabled;
+extern u32 gLinkStatus;
-void Task_DestroySelf(u8);
+void Task_DestroySelf(u8 taskId);
void OpenLink(void);
void CloseLink(void);
u16 LinkMain2(u16 *);
@@ -188,11 +189,10 @@ bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
void sub_800ADF8(void);
void sub_800B488(void);
-void sub_8009734(void);
+void OpenLink(void);
void sub_800A620(void);
void sub_8011BD0(void);
-u8 sub_800ABAC(void);
-u8 sub_800ABBC(void);
void sub_800AC34(void);
+u8 sub_800A0C8(s32, s32);
#endif // GUARD_LINK_H
diff --git a/include/main_menu.h b/include/main_menu.h
new file mode 100644
index 000000000..08cd913dc
--- /dev/null
+++ b/include/main_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MAIN_MENU_H
+#define GUARD_MAIN_MENU_H
+
+void CB2_InitMainMenu(void);
+
+#endif // GUARD_MAIN_MENU_H
diff --git a/include/map_obj_8097404.h b/include/map_obj_8097404.h
deleted file mode 100644
index 0800b15b0..000000000
--- a/include/map_obj_8097404.h
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Created by scott on 9/7/2017.
-//
-
-#ifndef GUARD_MAP_OBJ_8097404_H
-#define GUARD_MAP_OBJ_8097404_H
-
-// Exported type declarations
-
-// Exported RAM declarations
-extern void *gUnknown_020375B8;
-
-// Exported ROM declarations
-void sub_8097AC8(struct Sprite *);
-void npc_sync_anim_pause_bits(struct MapObject *);
-void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
-u8 sub_8097F78(struct MapObject *);
-bool8 obj_npc_ministep(struct Sprite *sprite);
-bool8 sub_80976EC(struct Sprite *sprite);
-void sub_80976DC(struct Sprite *, u8);
-void sub_809783C(struct Sprite *, u8, u8, u8);
-void DoShadowFieldEffect(struct MapObject *);
-u8 sub_809785C(struct Sprite *);
-u8 sub_80978E4(struct Sprite *);
-void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
-bool8 sub_80979BC(struct Sprite *);
-void sub_8097750(struct Sprite *);
-bool8 sub_8097758(struct Sprite *);
-void sub_8097FA4(struct MapObject *);
-void sub_8098044(u8);
-void UnfreezeMapObjects(void);
-void sub_80974D0(u8 mapObjectId);
-
-#endif //GUARD_MAP_OBJ_8097404_H
diff --git a/include/menu.h b/include/menu.h
index 98b323e42..2046f7d2b 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -19,6 +19,7 @@ struct MenuAction
void sub_81971D0(void);
void sub_8197200(void);
+u16 sub_8197224(void);
void sub_81973A4(void);
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
@@ -57,5 +58,6 @@ void sub_8197DF8(u8 windowId, bool8 copyToVram);
u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
void *malloc_and_decompress(const void *src, int *sizeOut);
u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 7fae43e9c..048a4aa43 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -19,6 +19,7 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_81221EC(void);
void ResetVramOamAndBgCntRegs(void);
void SetVBlankHBlankCallbacksToNull(void);
void ResetAllBgsCoordinates(void);
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
new file mode 100644
index 000000000..8801789d9
--- /dev/null
+++ b/include/mystery_event_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_MYSTERY_EVENT_MENU_H
+#define GUARD_MYSTERY_EVENT_MENU_H
+
+void CB2_InitMysteryEventMenu(void);
+
+#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/overworld.h b/include/overworld.h
index 597a160ed..974f8f091 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -70,6 +70,8 @@ void warp1_set_2(s8 mapGroup, s8 mapNum, s8 warpNum);
void c2_load_new_map(void);
void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused);
void mapldr_default(void);
+u8 get_map_light_from_warp0(void);
+bool8 is_light_level_1_2_3_5_or_6(u8 a1);
void IncrementGameStat(u8);
u32 GetGameStat(u8);
diff --git a/include/palette.h b/include/palette.h
index cb03699a6..41cef4048 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -67,5 +67,6 @@ void BeginFastPaletteFade(u8);
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
void BlendPalettes(u32, u8, u16);
void BlendPalettesUnfaded(u32, u8, u16);
+void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
#endif // GUARD_PALETTE_H
diff --git a/include/pokemon.h b/include/pokemon.h
index cdab96687..f5d1683a2 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -128,7 +128,6 @@
#define NUMBER_OF_MON_TYPES 0x12
-#define PARTY_SIZE 6
#define MAX_TOTAL_EVS 510
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
@@ -631,7 +630,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
bool8 IsTradedMon(struct Pokemon *mon);
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
-s32 GetBankMultiplayerId(u16 a1);
+s32 GetBattlerMultiplayerId(u16 a1);
bool16 sub_806D82C(u8 id);
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
void sub_8068AA4(void); // sets stats for deoxys
diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h
index 42fc10809..c1ab8d817 100644
--- a/include/pokemon_animation.h
+++ b/include/pokemon_animation.h
@@ -1,7 +1,10 @@
#ifndef GUARD_POKEMON_ANIMATION_H
#define GUARD_POKEMON_ANIMATION_H
-void LaunchAnimationTaskForFrontSprite(struct Sprite* sprite, u8 frontAnimId);
-void LaunchAnimationTaskForBackSprite(struct Sprite* sprite, u8 backAnimId);
+u8 GetSpeciesBackAnimSet(u16 species);
+void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId);
+void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId);
+void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet);
+void SetSpriteCB_MonAnimDummy(struct Sprite *sprite);
#endif // GUARD_POKEMON_ANIMATION_H
diff --git a/include/rayquaza_scene.h b/include/rayquaza_scene.h
new file mode 100644
index 000000000..fe66b3df0
--- /dev/null
+++ b/include/rayquaza_scene.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_RAYQUAZA_SCENE_H
+#define GUARD_RAYQUAZA_SCENE_H
+
+void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void));
+
+enum
+{
+ RAY_ANIM_DUO_FIGHT_PRE,
+ RAY_ANIM_DUO_FIGHT,
+ RAY_ANIM_TAKES_FLIGHT,
+ RAY_ANIM_DESCENDS,
+ RAY_ANIM_CHARGES,
+ RAY_ANIM_CHACES_AWAY,
+ RAY_ANIM_END
+};
+
+#endif // GUARD_RAYQUAZA_SCENE_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index adc4c6c85..296245a24 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -7,9 +7,9 @@ extern u8 gUnknown_0203C7B4;
void sub_8184DA4(u8 arg0);
void sub_8184E58(void);
-void RecordedBattle_SetBankAction(u8 bank, u8 action);
-void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear);
-u8 RecordedBattle_ReadBankAction(u8 bank);
+void RecordedBattle_SetBattlerAction(u8 bank, u8 action);
+void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear);
+u8 RecordedBattle_GetBattlerAction(u8 bank);
u8 sub_81850D0(void);
u8 sub_81850DC(u8 *arg0);
void sub_81851A8(u8 *arg0);
diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h
new file mode 100644
index 000000000..5807dec99
--- /dev/null
+++ b/include/reset_rtc_screen.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_RESET_RTC_SCREEN_H
+#define GUARD_RESET_RTC_SCREEN_H
+
+void CB2_InitResetRtcScreen(void);
+
+#endif // GUARD_RESET_RTC_SCREEN_H
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
new file mode 100644
index 000000000..eb837e7e2
--- /dev/null
+++ b/include/scanline_effect.h
@@ -0,0 +1,47 @@
+#ifndef GUARD_SCANLINE_EFFECT_H
+#define GUARD_SCANLINE_EFFECT_H
+
+// DMA control value to transfer a single 16-bit value at HBlank
+#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+
+#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1HOFS (REG_ADDR_BG1HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG1VOFS (REG_ADDR_BG1VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2HOFS (REG_ADDR_BG2HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG2VOFS (REG_ADDR_BG2VOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3HOFS (REG_ADDR_BG3HOFS - REG_ADDR_BG0HOFS)
+#define SCANLINE_EFFECT_REG_BG3VOFS (REG_ADDR_BG3VOFS - REG_ADDR_BG0HOFS)
+
+struct ScanlineEffectParams
+{
+ volatile void *dmaDest;
+ u32 dmaControl;
+ u8 initState;
+ u8 unused9;
+};
+
+struct ScanlineEffect
+{
+ void *dmaSrcBuffers[2];
+ volatile void *dmaDest;
+ u32 dmaControl;
+ void (*setFirstScanlineReg)(void);
+ u8 srcBuffer;
+ u8 state;
+ u8 unused16;
+ u8 unused17;
+ u8 waveTaskId;
+};
+
+extern struct ScanlineEffect gScanlineEffect;
+
+extern u16 gScanlineEffectRegBuffers[2][0x3C0];
+
+void ScanlineEffect_Stop(void);
+void ScanlineEffect_Clear(void);
+void ScanlineEffect_SetParams(struct ScanlineEffectParams);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7);
+
+#endif // GUARD_SCANLINE_EFFECT_H
diff --git a/include/sprite.h b/include/sprite.h
index d5c6bc402..b5a1b6ae5 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -233,6 +233,7 @@ extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern struct Sprite gSprites[];
+extern struct OamMatrix gOamMatrices[];
void ResetSpriteData(void);
void AnimateSprites(void);
diff --git a/include/strings.h b/include/strings.h
index 3bd69bb12..6d569e57a 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -152,6 +152,19 @@ extern const u8 gText_EggNickname[];
extern const u8 gText_Pokemon[];
extern const u8 gText_InGameClockUsable[];
+// reset rtc screen texts
+extern const u8 gText_Day[];
+extern const u8 gText_Colon3[];
+extern const u8 gText_Confirm2[];
+extern const u8 gText_PresentTime[];
+extern const u8 gText_PreviousTime[];
+extern const u8 gText_ResetRTCConfirmCancel[];
+extern const u8 gText_NoSaveFileCantSetTime[];
+extern const u8 gText_PleaseResetTime[];
+extern const u8 gText_ClockHasBeenReset[];
+extern const u8 gText_SaveCompleted[];
+extern const u8 gText_SaveFailed[];
+
// menu texts
extern const u8 gText_MenuPokedex[];
extern const u8 gText_MenuPokemon[];
@@ -205,4 +218,25 @@ extern const u8 gText_FemaleSymbol[];
extern const u8 gText_SelectorArrow3[];
extern const u8 gText_YesNo[];
+// mystery event menu text
+extern const u8 gText_EventSafelyLoaded[];
+extern const u8 gText_LoadErrorEndingSession[];
+extern const u8 gText_PressAToLoadEvent[];
+extern const u8 gText_LoadingEvent[];
+extern const u8 gText_DontRemoveCableTurnOff[];
+extern const u8 gText_LinkStandby2[];
+
+// berry tag screen text
+extern const u8 gBerryFirmnessString_VerySoft[];
+extern const u8 gBerryFirmnessString_Soft[];
+extern const u8 gBerryFirmnessString_Hard[];
+extern const u8 gBerryFirmnessString_VeryHard[];
+extern const u8 gBerryFirmnessString_SuperHard[];
+extern const u8 gText_BerryTag[];
+extern const u8 gText_UnkF908Var1Var2[];
+extern const u8 gText_SizeSlash[];
+extern const u8 gText_Var1DotVar2[];
+extern const u8 gText_ThreeMarks[];
+extern const u8 gText_FirmSlash[];
+
#endif //GUARD_STRINGS_H
diff --git a/include/time_events.h b/include/time_events.h
new file mode 100644
index 000000000..fd6d29f39
--- /dev/null
+++ b/include/time_events.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TIME_EVENTS_H
+#define GUARD_TIME_EVENTS_H
+
+void UpdateMirageRnd(u16);
+u8 IsMirageIslandPresent(void);
+void UpdateBirchState(u16);
+
+#endif // GUARD_TIME_EVENTS_H
diff --git a/include/title_screen.h b/include/title_screen.h
new file mode 100644
index 000000000..b660792fc
--- /dev/null
+++ b/include/title_screen.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+extern const u16 gUnknown_0853FF70[];
+
+void CB2_InitTitleScreen(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/unknown_task.h b/include/unknown_task.h
deleted file mode 100644
index 906fed3e0..000000000
--- a/include/unknown_task.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef GUARD_unknown_task_H
-#define GUARD_unknown_task_H
-
-// Exported type declarations
-struct UnknownTaskStruct
-{
- volatile void *dest;
- u32 control;
- u8 unk8;
- u8 unk9;
-};
-
-extern struct UnknownTaskStruct gUnknown_0831AC70;
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-void ScanlineEffect_Stop(void);
-void sub_80BA038(struct UnknownTaskStruct arg0);
-void sub_80BA0A8(void);
-
-#endif // GUARD_unknown_task_H
diff --git a/ld_script.txt b/ld_script.txt
index 61ea86a3e..6a6e098e1 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -59,7 +59,7 @@ SECTIONS {
src/decompress.o(.text);
asm/rom_8034C54.o(.text);
src/battle_bg.o(.text);
- src/battle_2.o(.text);
+ src/battle_main.o(.text);
src/battle_util.o(.text);
src/battle_script_commands.o(.text);
src/battle_util2.o(.text);
@@ -97,18 +97,18 @@ SECTIONS {
asm/field_player_avatar.o(.text);
src/field_map_obj.o(.text);
asm/field_ground_effect.o(.text);
- asm/map_obj_8097404.o(.text);
- asm/field_message_box.o(.text);
+ src/field_map_obj_helpers.o(.text);
+ src/field_message_box.o(.text);
asm/map_obj_lock.o(.text);
src/text_window.o(.text);
src/script.o(.text);
src/scrcmd.o(.text);
asm/field_control_avatar.o(.text);
src/event_data.o(.text);
- asm/coord_event_weather.o(.text);
+ src/coord_event_weather.o(.text);
asm/field_tasks.o(.text);
src/clock.o(.text);
- asm/reset_rtc_screen.o(.text);
+ src/reset_rtc_screen.o(.text);
src/start_menu.o(.text);
asm/start_menu.o(.text);
src/tileset_anims.o(.text);
@@ -119,14 +119,14 @@ SECTIONS {
src/task.o(.text);
src/reshow_battle_screen.o(.text);
asm/battle_anim_80A9C70.o(.text);
- asm/title_screen.o(.text);
+ src/title_screen.o(.text);
asm/field_screen.o(.text);
src/battle_setup.o(.text);
asm/cable_club.o(.text);
src/trainer_see.o(.text);
src/wild_encounter.o(.text);
asm/field_effect.o(.text);
- asm/unknown_task.o(.text);
+ src/scanline_effect.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
asm/pokedex.o(.text);
@@ -162,7 +162,7 @@ SECTIONS {
asm/rotating_gate.o(.text);
src/safari_zone.o(.text);
asm/contest_link_80FC4F4.o(.text);
- asm/item_use.o(.text);
+ src/item_use.o(.text);
asm/battle_anim_80FE840.o(.text);
src/bike.o(.text);
asm/easy_chat.o(.text);
@@ -185,7 +185,7 @@ SECTIONS {
src/pokeblock.o(.text);
asm/fldeff_flash.o(.text);
asm/post_battle_event_funcs.o(.text);
- asm/time_events.o(.text);
+ src/time_events.o(.text);
asm/birch_pc.o(.text);
src/hof_pc.o(.text);
asm/field_specials.o(.text);
@@ -229,8 +229,8 @@ SECTIONS {
asm/credits.o(.text);
src/lottery_corner.o(.text);
src/diploma.o(.text);
- asm/berry_tag_screen.o(.text);
- asm/mystery_event_menu.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);
@@ -240,7 +240,7 @@ SECTIONS {
src/bard_music.o(.text);
src/fldeff_teleport.o(.text);
asm/battle_link_817C95C.o(.text);
- asm/pokemon_animation.o(.text);
+ src/pokemon_animation.o(.text);
src/recorded_battle.o(.text);
src/battle_controller_recorded_opponent.o(.text);
src/battle_controller_recorded_player.o(.text);
@@ -254,7 +254,7 @@ SECTIONS {
asm/menu_indicators.o(.text);
src/unk_text_util.o(.text);
src/save_location.o(.text);
- asm/item_icon.o(.text);
+ src/item_icon.o(.text);
asm/party_menu.o(.text);
asm/battle_tent.o(.text);
src/unk_text_util_2.o(.text);
@@ -268,7 +268,6 @@ SECTIONS {
asm/pokemon_summary_screen.o(.text);
asm/pokenav.o(.text);
src/rayquaza_scene.o(.text);
- asm/rayquaza_scene.o(.text);
src/walda_phrase.o(.text);
asm/contest_link_81D9DE4.o(.text);
asm/trainer_rematch.o(.text);
@@ -376,7 +375,7 @@ SECTIONS {
data/main_menu.o(.rodata);
data/battle_1.o(.rodata);
data/data2b.o(.rodata);
- src/battle_2.o(.rodata);
+ src/battle_main.o(.rodata);
src/battle_util.o(.rodata);
src/battle_script_commands.o(.rodata);
src/battle_controller_player.o(.rodata);
@@ -406,9 +405,9 @@ SECTIONS {
data/map_obj_8097404.o(.rodata);
src/text_window.o(.rodata);
src/scrcmd.o(.rodata);
- data/coord_event_weather.o(.rodata);
+ src/coord_event_weather.o(.rodata);
data/field_tasks.o(.rodata);
- data/reset_rtc_screen.o(.rodata);
+ src/reset_rtc_screen.o(.rodata);
src/start_menu.o(.rodata);
src/tileset_anims.o(.rodata);
src/palette.o(.rodata);
@@ -418,7 +417,7 @@ SECTIONS {
data/rom_8525F58.o(.rodata);
data/map_events.o(.rodata);
data/battle_anim_80A9C70.o(.rodata);
- data/title_screen.o(.rodata);
+ src/title_screen.o(.rodata);
data/field_screen.o(.rodata);
src/battle_setup.o(.rodata);
data/cable_club.o(.rodata);
@@ -471,7 +470,7 @@ SECTIONS {
src/wallclock.o(.rodata);
src/pokeblock.o(.rodata);
data/fldeff_flash.o(.rodata);
- data/time_events.o(.rodata);
+ src/time_events.o(.rodata);
data/field_specials.o(.rodata);
data/battle_records.o(.rodata);
data/pokedex_area_screen.o(.rodata);
@@ -483,7 +482,7 @@ SECTIONS {
src/battle_controller_link_partner.o(.rodata);
src/battle_message.o(.rodata);
data/cable_car.o(.rodata);
- data/save.o(.rodata);
+ src/save.o(.rodata);
data/field_effect_helpers.o(.rodata);
data/contest_ai.o(.rodata);
src/battle_controller_safari.o(.rodata);
@@ -503,8 +502,8 @@ SECTIONS {
src/lottery_corner.o(.rodata);
src/diploma.o(.rodata);
data/strings.o(.rodata);
- data/berry_tag_screen.o(.rodata);
- data/mystery_event_menu.o(.rodata);
+ src/berry_tag_screen.o(.rodata);
+ src/mystery_event_menu.o(.rodata);
src/save_failed_screen.o(.rodata);
data/braille_puzzles.o(.rodata);
src/pokeblock_feed.o(.rodata);
@@ -513,7 +512,7 @@ SECTIONS {
src/evolution_graphics.o(.rodata);
src/bard_music.o(.rodata);
data/battle_link_817C95C.o(.rodata);
- data/pokemon_animation.o(.rodata);
+ src/pokemon_animation.o(.rodata);
src/battle_controller_recorded_opponent.o(.rodata);
src/battle_controller_recorded_player.o(.rodata);
src/battle_dome_cards.o(.rodata);
@@ -525,6 +524,7 @@ SECTIONS {
data/menu_indicators.o(.rodata);
src/save_location.o(.rodata);
data/item_icon.o(.rodata);
+ src/item_icon.o(.rodata);
data/party_menu.o(.rodata);
data/battle_tent.o(.rodata);
src/unk_text_util_2.o(.rodata);
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 42cf0595f..355d81d2c 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -45,19 +45,19 @@ AI scripts.
*/
extern u32 gBattleTypeFlags;
-extern u8 gActiveBank;
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u8 gActiveBattler;
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern u16 gCurrentMove;
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
-extern u16 gLastMoves[BATTLE_BANKS_COUNT];
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
-extern u32 gStatuses3[BATTLE_BANKS_COUNT];
-extern u16 gSideAffecting[2];
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
+extern u16 gSideStatuses[2];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern u16 gDynamicBasePower;
-extern u8 gBattleMoveFlags;
+extern u8 gMoveResultFlags;
extern s32 gBattleMoveDamage;
extern u8 gCritMultiplier;
extern u16 gBattleWeather;
@@ -179,7 +179,7 @@ static void BattleAICmd_if_holds_item(void);
// ewram
EWRAM_DATA const u8 *gAIScriptPtr = NULL;
-EWRAM_DATA static u8 sBank_AI = 0;
+EWRAM_DATA static u8 sBattler_AI = 0;
// const rom data
@@ -352,7 +352,7 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
defaultScoreMoves >>= 1;
}
- moveLimitations = CheckMoveLimitations(gActiveBank, 0, 0xFF);
+ moveLimitations = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
// ignore moves that aren't possible to use
for (i = 0; i < 4; i++)
@@ -363,18 +363,18 @@ void BattleAI_SetupAIData(u8 defaultScoreMoves)
AI_THINKING_STRUCT->simulatedRNG[i] = 100 - (Random() % 16);
}
gBattleResources->AI_ScriptsStack->size = 0;
- sBank_AI = gActiveBank;
+ sBattler_AI = gActiveBattler;
// decide a random target bank in doubles
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- gBankTarget = (Random() & BIT_MON) + (GetBankSide(gActiveBank) ^ BIT_SIDE);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget ^= BIT_MON;
+ gBattlerTarget = (Random() & BIT_FLANK) + (GetBattlerSide(gActiveBattler) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget ^= BIT_FLANK;
}
// in singles there's only one choice
else
{
- gBankTarget = sBank_AI ^ BIT_SIDE;
+ gBattlerTarget = sBattler_AI ^ BIT_SIDE;
}
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
@@ -444,7 +444,7 @@ static u8 BattleAI_ChooseMoveOrAction_Singles(void)
for (i = 1; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] != 0) // emerald adds an extra move ID check for some reason.
+ if (gBattleMons[sBattler_AI].moves[i] != 0) // emerald adds an extra move ID check for some reason.
{
// in ruby, the order of these if statements are reversed.
if (currentMoveArray[0] == AI_THINKING_STRUCT->score[i])
@@ -479,7 +479,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
for (i = 0; i < 4; i++)
{
- if (i == sBank_AI || gBattleMons[i].hp == 0)
+ if (i == sBattler_AI || gBattleMons[i].hp == 0)
{
actionOrMoveIndex[i] = -1;
bestMovePointsForTarget[i] = -1;
@@ -491,9 +491,9 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
else
BattleAI_SetupAIData(0xF);
- gBankTarget = i;
+ gBattlerTarget = i;
- if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE))
+ if ((i & BIT_SIDE) != (sBattler_AI & BIT_SIDE))
RecordLastUsedMoveByTarget();
AI_THINKING_STRUCT->aiLogicId = 0;
@@ -521,7 +521,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
mostViableMovesNo = 1;
for (j = 1; j < 4; j++)
{
- if (gBattleMons[sBank_AI].moves[j] != 0)
+ if (gBattleMons[sBattler_AI].moves[j] != 0)
{
if (mostViableMovesScores[0] == AI_THINKING_STRUCT->score[j])
{
@@ -542,7 +542,7 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
bestMovePointsForTarget[i] = mostViableMovesScores[0];
// don't use a move against ally if it has less than 100 pts
- if (i == (sBank_AI ^ BIT_MON) && bestMovePointsForTarget[i] < 100)
+ if (i == (sBattler_AI ^ BIT_FLANK) && bestMovePointsForTarget[i] < 100)
{
bestMovePointsForTarget[i] = -1;
mostViableMovesScores[0] = mostViableMovesScores[0]; // needed to match
@@ -573,8 +573,8 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void)
}
}
- gBankTarget = mostViableTargetsArray[Random() % mostViableTargetsNo];
- return actionOrMoveIndex[gBankTarget];
+ gBattlerTarget = mostViableTargetsArray[Random() % mostViableTargetsNo];
+ return actionOrMoveIndex[gBattlerTarget];
}
static void BattleAI_DoAIProcessing(void)
@@ -587,13 +587,13 @@ static void BattleAI_DoAIProcessing(void)
break;
case AIState_SettingUp:
gAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set AI ptr to logic ID.
- if (gBattleMons[sBank_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0)
+ if (gBattleMons[sBattler_AI].pp[AI_THINKING_STRUCT->movesetIndex] == 0)
{
AI_THINKING_STRUCT->moveConsidered = 0;
}
else
{
- AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBank_AI].moves[AI_THINKING_STRUCT->movesetIndex];
+ AI_THINKING_STRUCT->moveConsidered = gBattleMons[sBattler_AI].moves[AI_THINKING_STRUCT->movesetIndex];
}
AI_THINKING_STRUCT->aiState++;
break;
@@ -627,18 +627,18 @@ static void RecordLastUsedMoveByTarget(void)
for (i = 0; i < 4; i++)
{
- if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget])
+ if (gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
- if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match.
- && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0)
+ if (gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] != gLastMoves[gBattlerTarget] // HACK: This redundant condition is a hack to make the asm match.
+ && gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] == 0)
{
- gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget];
+ gBattleResources->battleHistory->usedMoves[gBattlerTarget].moves[i] = gLastMoves[gBattlerTarget];
break;
}
}
}
-void ClearBankMoveHistory(u8 bank)
+void ClearBattlerMoveHistory(u8 bank)
{
s32 i;
@@ -651,7 +651,7 @@ void RecordAbilityBattle(u8 bank, u8 abilityId)
gBattleResources->battleHistory->abilities[bank] = abilityId;
}
-void ClearBankAbilityHistory(u8 bank)
+void ClearBattlerAbilityHistory(u8 bank)
{
gBattleResources->battleHistory->abilities[bank] = 0;
}
@@ -721,9 +721,9 @@ static void BattleAICmd_if_hp_less_than(void)
u16 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) < gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@@ -736,9 +736,9 @@ static void BattleAICmd_if_hp_more_than(void)
u16 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) > gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@@ -751,9 +751,9 @@ static void BattleAICmd_if_hp_equal(void)
u16 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) == gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@@ -766,9 +766,9 @@ static void BattleAICmd_if_hp_not_equal(void)
u16 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if ((u32)(100 * gBattleMons[bank].hp / gBattleMons[bank].maxHP) != gAIScriptPtr[2])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
@@ -782,9 +782,9 @@ static void BattleAICmd_if_status(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -800,9 +800,9 @@ static void BattleAICmd_if_not_status(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -818,9 +818,9 @@ static void BattleAICmd_if_status2(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -836,9 +836,9 @@ static void BattleAICmd_if_not_status2(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -854,9 +854,9 @@ static void BattleAICmd_if_status3(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -872,9 +872,9 @@ static void BattleAICmd_if_not_status3(void)
u32 status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
status = AIScriptRead32(gAIScriptPtr + 2);
@@ -890,14 +890,14 @@ static void BattleAICmd_if_side_affecting(void)
u32 side, status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
- side = GET_BANK_SIDE(bank);
+ side = GET_BATTLER_SIDE(bank);
status = AIScriptRead32(gAIScriptPtr + 2);
- if ((gSideAffecting[side] & status) != 0)
+ if ((gSideStatuses[side] & status) != 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
@@ -909,14 +909,14 @@ static void BattleAICmd_if_not_side_affecting(void)
u32 side, status;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
- side = GET_BANK_SIDE(bank);
+ side = GET_BATTLER_SIDE(bank);
status = AIScriptRead32(gAIScriptPtr + 2);
- if ((gSideAffecting[side] & status) == 0)
+ if ((gSideStatuses[side] & status) == 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
@@ -1084,8 +1084,8 @@ static void BattleAICmd_if_user_has_attacking_move(void)
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] != 0
- && gBattleMoves[gBattleMons[sBank_AI].moves[i]].power != 0)
+ if (gBattleMons[sBattler_AI].moves[i] != 0
+ && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0)
break;
}
if (i == 4)
@@ -1100,8 +1100,8 @@ static void BattleAICmd_if_user_has_no_attacking_moves(void)
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] != 0
- && gBattleMoves[gBattleMons[sBank_AI].moves[i]].power != 0)
+ if (gBattleMons[sBattler_AI].moves[i] != 0
+ && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].power != 0)
break;
}
if (i != 4)
@@ -1123,16 +1123,16 @@ static void BattleAICmd_get_type(void)
switch (typeVar)
{
case AI_TYPE1_USER: // AI user primary type
- AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type1;
+ AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type1;
break;
case AI_TYPE1_TARGET: // target primary type
- AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type1;
+ AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type1;
break;
case AI_TYPE2_USER: // AI user secondary type
- AI_THINKING_STRUCT->funcResult = gBattleMons[sBank_AI].type2;
+ AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type2;
break;
case AI_TYPE2_TARGET: // target secondary type
- AI_THINKING_STRUCT->funcResult = gBattleMons[gBankTarget].type2;
+ AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type2;
break;
case AI_TYPE_MOVE: // type of move being pointed to
AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type;
@@ -1146,14 +1146,14 @@ static u8 BattleAI_GetWantedBank(u8 bank)
switch (bank)
{
case AI_USER:
- return sBank_AI;
+ return sBattler_AI;
case AI_TARGET:
default:
- return gBankTarget;
+ return gBattlerTarget;
case AI_USER_PARTNER:
- return sBank_AI ^ BIT_MON;
+ return sBattler_AI ^ BIT_FLANK;
case AI_TARGET_PARTNER:
- return gBankTarget ^ BIT_MON;
+ return gBattlerTarget ^ BIT_FLANK;
}
}
@@ -1196,24 +1196,24 @@ static void BattleAICmd_get_how_powerful_move_is(void)
gDynamicBasePower = 0;
*(&gBattleStruct->dynamicMoveType) = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
for (checkedMove = 0; checkedMove < 4; checkedMove++)
{
for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++)
{
- if (gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i])
+ if (gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i])
break;
}
- if (gBattleMons[sBank_AI].moves[checkedMove] != MOVE_NONE
+ if (gBattleMons[sBattler_AI].moves[checkedMove] != MOVE_NONE
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF
- && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1)
+ && gBattleMoves[gBattleMons[sBattler_AI].moves[checkedMove]].power > 1)
{
- gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove];
- AI_CalcDmg(sBank_AI, gBankTarget);
- TypeCalc(gCurrentMove, sBank_AI, gBankTarget);
+ gCurrentMove = gBattleMons[sBattler_AI].moves[checkedMove];
+ AI_CalcDmg(sBattler_AI, gBattlerTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100;
if (moveDmgs[checkedMove] == 0)
moveDmgs[checkedMove] = 1;
@@ -1246,9 +1246,9 @@ static void BattleAICmd_get_how_powerful_move_is(void)
static void BattleAICmd_get_last_used_bank_move(void)
{
if (gAIScriptPtr[1] == AI_USER)
- AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI];
+ AI_THINKING_STRUCT->funcResult = gLastMoves[sBattler_AI];
else
- AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget];
+ AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerTarget];
gAIScriptPtr += 2;
}
@@ -1271,7 +1271,7 @@ static void BattleAICmd_if_not_equal_(void) // same as if_not_equal
static void BattleAICmd_if_user_goes(void)
{
- if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) == gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) == gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1279,7 +1279,7 @@ static void BattleAICmd_if_user_goes(void)
static void BattleAICmd_if_user_doesnt_go(void)
{
- if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) != gAIScriptPtr[1])
+ if (GetWhoStrikesFirst(sBattler_AI, gBattlerTarget, TRUE) != gAIScriptPtr[1])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
@@ -1303,26 +1303,26 @@ static void BattleAICmd_count_usable_party_mons(void)
AI_THINKING_STRUCT->funcResult = 0;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- u32 identity;
- bankOnField1 = gBattlePartyID[bank];
- identity = GetBankIdentity(bank) ^ BIT_MON;
- bankOnField2 = gBattlePartyID[GetBankByIdentity(identity)];
+ u32 position;
+ bankOnField1 = gBattlerPartyIndexes[bank];
+ position = GetBattlerPosition(bank) ^ BIT_FLANK;
+ bankOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)];
}
else // in singles there's only one bank by side
{
- bankOnField1 = gBattlePartyID[bank];
- bankOnField2 = gBattlePartyID[bank];
+ bankOnField1 = gBattlerPartyIndexes[bank];
+ bankOnField2 = gBattlerPartyIndexes[bank];
}
for (i = 0; i < PARTY_SIZE; i++)
@@ -1356,11 +1356,11 @@ static void BattleAICmd_get_ability(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
- if (gActiveBank != bank)
+ if (gActiveBattler != bank)
{
if (BATTLE_HISTORY->abilities[bank] != 0)
{
@@ -1482,18 +1482,18 @@ static void BattleAICmd_get_highest_type_effectiveness(void)
dynamicMoveType = &gBattleStruct->dynamicMoveType;
*dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
AI_THINKING_STRUCT->funcResult = 0;
for (i = 0; i < 4; i++)
{
gBattleMoveDamage = AI_EFFECTIVENESS_x1;
- gCurrentMove = gBattleMons[sBank_AI].moves[i];
+ gCurrentMove = gBattleMons[sBattler_AI].moves[i];
if (gCurrentMove)
{
- TypeCalc(gCurrentMove, sBank_AI, gBankTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
// reduce by 1/3.
if (gBattleMoveDamage == 120)
@@ -1505,7 +1505,7 @@ static void BattleAICmd_get_highest_type_effectiveness(void)
if (gBattleMoveDamage == 15)
gBattleMoveDamage = AI_EFFECTIVENESS_x0_25;
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
+ if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
gBattleMoveDamage = AI_EFFECTIVENESS_x0;
if (AI_THINKING_STRUCT->funcResult < gBattleMoveDamage)
@@ -1522,13 +1522,13 @@ static void BattleAICmd_if_type_effectiveness(void)
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
gBattleMoveDamage = AI_EFFECTIVENESS_x1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- TypeCalc(gCurrentMove, sBank_AI, gBankTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
if (gBattleMoveDamage == 120)
gBattleMoveDamage = AI_EFFECTIVENESS_x2;
@@ -1539,7 +1539,7 @@ static void BattleAICmd_if_type_effectiveness(void)
if (gBattleMoveDamage == 15)
gBattleMoveDamage = AI_EFFECTIVENESS_x0_25;
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
+ if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
gBattleMoveDamage = AI_EFFECTIVENESS_x0;
// store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8.
@@ -1569,14 +1569,14 @@ static void BattleAICmd_if_status_in_party(void)
switch(gAIScriptPtr[1])
{
case AI_USER:
- bank = sBank_AI;
+ bank = sBattler_AI;
break;
default:
- bank = gBankTarget;
+ bank = gBattlerTarget;
break;
}
- party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty;
+ party = (GetBattlerSide(bank) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty;
statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
@@ -1606,14 +1606,14 @@ static void BattleAICmd_if_status_not_in_party(void)
switch(gAIScriptPtr[1])
{
case 1:
- bank = sBank_AI;
+ bank = sBattler_AI;
break;
default:
- bank = gBankTarget;
+ bank = gBattlerTarget;
break;
}
- party = (GetBankSide(bank) == SIDE_PLAYER) ? gPlayerParty : gEnemyParty;
+ party = (GetBattlerSide(bank) == B_SIDE_PLAYER) ? gPlayerParty : gEnemyParty;
statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
@@ -1667,9 +1667,9 @@ static void BattleAICmd_if_stat_level_less_than(void)
u32 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@@ -1682,9 +1682,9 @@ static void BattleAICmd_if_stat_level_more_than(void)
u32 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@@ -1697,9 +1697,9 @@ static void BattleAICmd_if_stat_level_equal(void)
u32 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@@ -1712,9 +1712,9 @@ static void BattleAICmd_if_stat_level_not_equal(void)
u32 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if (gBattleMons[bank].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
@@ -1733,11 +1733,11 @@ static void BattleAICmd_if_can_faint(void)
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- AI_CalcDmg(sBank_AI, gBankTarget);
- TypeCalc(gCurrentMove, sBank_AI, gBankTarget);
+ AI_CalcDmg(sBattler_AI, gBattlerTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
@@ -1745,7 +1745,7 @@ static void BattleAICmd_if_can_faint(void)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -1762,17 +1762,17 @@ static void BattleAICmd_if_cant_faint(void)
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
gCurrentMove = AI_THINKING_STRUCT->moveConsidered;
- AI_CalcDmg(sBank_AI, gBankTarget);
- TypeCalc(gCurrentMove, sBank_AI, gBankTarget);
+ AI_CalcDmg(sBattler_AI, gBattlerTarget);
+ TypeCalc(gCurrentMove, sBattler_AI, gBattlerTarget);
gBattleMoveDamage = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[AI_THINKING_STRUCT->movesetIndex] / 100;
// this macro is missing the damage 0 = 1 assumption.
- if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -1788,7 +1788,7 @@ static void BattleAICmd_if_has_move(void)
case AI_USER:
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] == *movePtr)
+ if (gBattleMons[sBattler_AI].moves[i] == *movePtr)
break;
}
if (i == 4)
@@ -1802,7 +1802,7 @@ static void BattleAICmd_if_has_move(void)
return;
}
case AI_USER_PARTNER:
- if (gBattleMons[sBank_AI ^ BIT_MON].hp == 0)
+ if (gBattleMons[sBattler_AI ^ BIT_FLANK].hp == 0)
{
gAIScriptPtr += 8;
return;
@@ -1811,7 +1811,7 @@ static void BattleAICmd_if_has_move(void)
{
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI ^ BIT_MON].moves[i] == *movePtr)
+ if (gBattleMons[sBattler_AI ^ BIT_FLANK].moves[i] == *movePtr)
break;
}
}
@@ -1829,7 +1829,7 @@ static void BattleAICmd_if_has_move(void)
case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++)
{
- if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr)
+ if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == *movePtr)
break;
}
if (i == 4)
@@ -1856,7 +1856,7 @@ static void BattleAICmd_if_doesnt_have_move(void)
case AI_USER_PARTNER: // UB: no separate check for user partner
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] == *movePtr)
+ if (gBattleMons[sBattler_AI].moves[i] == *movePtr)
break;
}
if (i != 4)
@@ -1873,7 +1873,7 @@ static void BattleAICmd_if_doesnt_have_move(void)
case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++)
{
- if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] == *movePtr)
+ if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == *movePtr)
break;
}
if (i != 4)
@@ -1899,7 +1899,7 @@ static void BattleAICmd_if_has_move_with_effect(void)
case AI_USER_PARTNER:
for (i = 0; i < 4; i++)
{
- if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2])
+ if (gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2])
break;
}
if (i == 4)
@@ -1911,8 +1911,8 @@ static void BattleAICmd_if_has_move_with_effect(void)
case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++)
{
- // UB: checks sBank_AI instead of gBankTarget
- if (gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2])
+ // UB: checks sBattler_AI instead of gBattlerTarget
+ if (gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i]].effect == gAIScriptPtr[2])
break;
}
if (i == 4)
@@ -1933,7 +1933,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void)
case AI_USER_PARTNER:
for (i = 0; i < 4; i++)
{
- if(gBattleMons[sBank_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBank_AI].moves[i]].effect == gAIScriptPtr[2])
+ if(gBattleMons[sBattler_AI].moves[i] != 0 && gBattleMoves[gBattleMons[sBattler_AI].moves[i]].effect == gAIScriptPtr[2])
break;
}
if (i != 4)
@@ -1945,7 +1945,7 @@ static void BattleAICmd_if_doesnt_have_move_with_effect(void)
case AI_TARGET_PARTNER:
for (i = 0; i < 4; i++)
{
- if (BATTLE_HISTORY->usedMoves[gBankTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBankTarget].moves[i]].effect == gAIScriptPtr[2])
+ if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i]].effect == gAIScriptPtr[2])
break;
}
if (i != 4)
@@ -1961,9 +1961,9 @@ static void BattleAICmd_if_any_move_disabled_or_encored(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
if (gAIScriptPtr[2] == 0)
{
@@ -1993,7 +1993,7 @@ static void BattleAICmd_if_curr_move_disabled_or_encored(void)
switch (gAIScriptPtr[1])
{
case 0:
- if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -2001,7 +2001,7 @@ static void BattleAICmd_if_curr_move_disabled_or_encored(void)
gAIScriptPtr += 6;
return;
case 1:
- if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered)
+ if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -2039,11 +2039,11 @@ static void BattleAICmd_get_hold_effect(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
- if (gActiveBank != bank)
+ if (gActiveBattler != bank)
AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(BATTLE_HISTORY->itemEffects[bank]);
else
AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[bank].item);
@@ -2057,7 +2057,7 @@ static void BattleAICmd_if_holds_item(void)
u16 item;
u8 var1, var2;
- if ((bank & BIT_SIDE) == (sBank_AI & BIT_SIDE))
+ if ((bank & BIT_SIDE) == (sBattler_AI & BIT_SIDE))
item = gBattleMons[bank].item;
else
item = BATTLE_HISTORY->itemEffects[bank];
@@ -2077,9 +2077,9 @@ static void BattleAICmd_get_gender(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[bank].species, gBattleMons[bank].personality);
@@ -2091,9 +2091,9 @@ static void BattleAICmd_is_first_turn_for(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].isFirstTurn;
@@ -2105,9 +2105,9 @@ static void BattleAICmd_get_stockpile_count(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].stockpileCounter;
@@ -2126,9 +2126,9 @@ static void BattleAICmd_get_used_held_item(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
// This is likely a leftover from Ruby's code and its ugly ewram access
#ifdef NONMATCHING
@@ -2166,9 +2166,9 @@ static void BattleAICmd_get_protect_count(void)
u8 bank;
if (gAIScriptPtr[1] == AI_USER)
- bank = sBank_AI;
+ bank = sBattler_AI;
else
- bank = gBankTarget;
+ bank = gBattlerTarget;
AI_THINKING_STRUCT->funcResult = gDisableStructs[bank].protectUses;
@@ -2221,7 +2221,7 @@ static void BattleAICmd_if_level_cond(void)
switch (gAIScriptPtr[1])
{
case 0: // greater than
- if (gBattleMons[sBank_AI].level > gBattleMons[gBankTarget].level)
+ if (gBattleMons[sBattler_AI].level > gBattleMons[gBattlerTarget].level)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -2229,7 +2229,7 @@ static void BattleAICmd_if_level_cond(void)
gAIScriptPtr += 6;
return;
case 1: // less than
- if (gBattleMons[sBank_AI].level < gBattleMons[gBankTarget].level)
+ if (gBattleMons[sBattler_AI].level < gBattleMons[gBattlerTarget].level)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -2237,7 +2237,7 @@ static void BattleAICmd_if_level_cond(void)
gAIScriptPtr += 6;
return;
case 2: // equal
- if (gBattleMons[sBank_AI].level == gBattleMons[gBankTarget].level)
+ if (gBattleMons[sBattler_AI].level == gBattleMons[gBattlerTarget].level)
{
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
return;
@@ -2249,7 +2249,7 @@ static void BattleAICmd_if_level_cond(void)
static void BattleAICmd_if_target_taunted(void)
{
- if (gDisableStructs[gBankTarget].tauntTimer1 != 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer1 != 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2257,7 +2257,7 @@ static void BattleAICmd_if_target_taunted(void)
static void BattleAICmd_if_target_not_taunted(void)
{
- if (gDisableStructs[gBankTarget].tauntTimer1 == 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0)
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
@@ -2265,7 +2265,7 @@ static void BattleAICmd_if_target_not_taunted(void)
static void BattleAICmd_if_target_is_ally(void)
{
- if ((sBank_AI & BIT_SIDE) == (gBankTarget & BIT_SIDE))
+ if ((sBattler_AI & BIT_SIDE) == (gBattlerTarget & BIT_SIDE))
gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index b3fccb17f..23d223308 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -10,16 +10,16 @@
#include "constants/items.h"
#include "pokemon_item_effects.h"
-extern u8 gActiveBank;
-extern u8 gAbsentBankFlags;
+extern u8 gActiveBattler;
+extern u8 gAbsentBattlerFlags;
extern u32 gBattleTypeFlags;
-extern u32 gStatuses3[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
-extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT];
+extern u8 gLastHitBy[MAX_BATTLERS_COUNT];
extern u16 gDynamicBasePower;
-extern u8 gBattleMoveFlags;
+extern u8 gMoveResultFlags;
extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage;
@@ -35,11 +35,11 @@ static bool8 ShouldUseItem(void);
static bool8 ShouldSwitchIfPerishSong(void)
{
- if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG
- && gDisableStructs[gActiveBank].perishSongTimer1 == 0)
+ if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG
+ && gDisableStructs[gActiveBattler].perishSongTimer1 == 0)
{
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
@@ -48,7 +48,7 @@ static bool8 ShouldSwitchIfPerishSong(void)
static bool8 ShouldSwitchIfWonderGuard(void)
{
- u8 opposingIdentity;
+ u8 opposingPosition;
u8 opposingBank;
u8 moveFlags;
s32 i, j;
@@ -60,27 +60,27 @@ static bool8 ShouldSwitchIfWonderGuard(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
return FALSE;
- opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE;
+ opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler));
- if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD)
+ if (gBattleMons[GetBattlerAtPosition(opposingPosition)].ability != ABILITY_WONDER_GUARD)
return FALSE;
// check if pokemon has a super effective move
- for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++)
+ for (opposingBank = GetBattlerAtPosition(opposingPosition), i = 0; i < 4; i++)
{
- move = gBattleMons[gActiveBank].moves[i];
+ move = gBattleMons[gActiveBattler].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
- if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
+ if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
return FALSE;
}
// get party information
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -90,7 +90,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
firstId = 0, lastId = 6;
}
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -104,24 +104,24 @@ static bool8 ShouldSwitchIfWonderGuard(void)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
- if (i == gBattlePartyID[gActiveBank])
+ if (i == gBattlerPartyIndexes[gActiveBattler])
continue;
GetMonData(&party[i], MON_DATA_SPECIES); // unused return value
GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value
- for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++)
+ for (opposingBank = GetBattlerAtPosition(opposingPosition), j = 0; j < 4; j++)
{
move = GetMonData(&party[i], MON_DATA_MOVE1 + j);
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
- if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2)
+ if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % 3 < 2)
{
// we found a mon
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
}
@@ -141,42 +141,42 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0)
return FALSE;
- if (gLastLandedMoves[gActiveBank] == 0)
+ if (gLastLandedMoves[gActiveBattler] == 0)
return FALSE;
- if (gLastLandedMoves[gActiveBank] == 0xFFFF)
+ if (gLastLandedMoves[gActiveBattler] == 0xFFFF)
return FALSE;
- if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
+ if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- bankIn1 = gActiveBank;
- if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
- bankIn2 = gActiveBank;
+ bankIn1 = gActiveBattler;
+ if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))])
+ bankIn2 = gActiveBattler;
else
- bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
+ bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)));
}
else
{
- bankIn1 = gActiveBank;
- bankIn2 = gActiveBank;
+ bankIn1 = gActiveBattler;
+ bankIn2 = gActiveBattler;
}
- if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE)
+ if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_FIRE)
absorbingTypeAbility = ABILITY_FLASH_FIRE;
- else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER)
+ else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_WATER)
absorbingTypeAbility = ABILITY_WATER_ABSORB;
- else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC)
+ else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].type == TYPE_ELECTRIC)
absorbingTypeAbility = ABILITY_VOLT_ABSORB;
else
return FALSE;
- if (gBattleMons[gActiveBank].ability == absorbingTypeAbility)
+ if (gBattleMons[gActiveBattler].ability == absorbingTypeAbility)
return FALSE;
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -186,7 +186,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
firstId = 0, lastId = 6;
}
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -202,9 +202,9 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
- if (i == gBattlePartyID[bankIn1])
+ if (i == gBattlerPartyIndexes[bankIn1])
continue;
- if (i == gBattlePartyID[bankIn2])
+ if (i == gBattlerPartyIndexes[bankIn2])
continue;
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
continue;
@@ -220,8 +220,8 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (absorbingTypeAbility == monAbility && Random() & 1)
{
// we found a mon
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
}
@@ -231,34 +231,34 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
static bool8 ShouldSwitchIfNaturalCure(void)
{
- if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP))
+ if (!(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP))
return FALSE;
- if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE)
+ if (gBattleMons[gActiveBattler].ability != ABILITY_NATURAL_CURE)
return FALSE;
- if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2)
+ if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 2)
return FALSE;
- if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1)
+ if ((gLastLandedMoves[gActiveBattler] == 0 || gLastLandedMoves[gActiveBattler] == 0xFFFF) && Random() & 1)
{
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
- else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1)
+ else if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0 && Random() & 1)
{
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
- if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1))
+ if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 1))
return TRUE;
- if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1))
+ if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 1))
return TRUE;
if (Random() & 1)
{
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
@@ -267,25 +267,25 @@ static bool8 ShouldSwitchIfNaturalCure(void)
static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
{
- u8 opposingIdentity;
+ u8 opposingPosition;
u8 opposingBank;
s32 i;
u8 moveFlags;
u16 move;
- opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE;
- opposingBank = GetBankByIdentity(opposingIdentity);
+ opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler));
+ opposingBank = GetBattlerAtPosition(opposingPosition);
- if (!(gAbsentBankFlags & gBitTable[opposingBank]))
+ if (!(gAbsentBattlerFlags & gBitTable[opposingBank]))
{
for (i = 0; i < 4; i++)
{
- move = gBattleMons[gActiveBank].moves[i];
+ move = gBattleMons[gActiveBattler].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
- if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
+ if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
if (noRng)
return TRUE;
@@ -297,18 +297,18 @@ static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
return FALSE;
- opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON);
+ opposingBank = GetBattlerAtPosition(BATTLE_PARTNER(opposingPosition));
- if (!(gAbsentBankFlags & gBitTable[opposingBank]))
+ if (!(gAbsentBattlerFlags & gBitTable[opposingBank]))
{
for (i = 0; i < 4; i++)
{
- move = gBattleMons[gActiveBank].moves[i];
+ move = gBattleMons[gActiveBattler].moves[i];
if (move == MOVE_NONE)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability);
- if (moveFlags & MOVESTATUS_SUPEREFFECTIVE)
+ if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
if (noRng)
return TRUE;
@@ -328,8 +328,8 @@ static bool8 AreStatsRaised(void)
for (i = 0; i < BATTLE_STATS_NO; i++)
{
- if (gBattleMons[gActiveBank].statStages[i] > 6)
- buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6;
+ if (gBattleMons[gActiveBattler].statStages[i] > 6)
+ buffedStatsValue += gBattleMons[gActiveBattler].statStages[i] - 6;
}
return (buffedStatsValue > 3);
@@ -345,32 +345,32 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
u16 move;
u8 moveFlags;
- if (gLastLandedMoves[gActiveBank] == 0)
+ if (gLastLandedMoves[gActiveBattler] == 0)
return FALSE;
- if (gLastLandedMoves[gActiveBank] == 0xFFFF)
+ if (gLastLandedMoves[gActiveBattler] == 0xFFFF)
return FALSE;
- if (gLastHitBy[gActiveBank] == 0xFF)
+ if (gLastHitBy[gActiveBattler] == 0xFF)
return FALSE;
- if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
+ if (gBattleMoves[gLastLandedMoves[gActiveBattler]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- bankIn1 = gActiveBank;
- if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
- bankIn2 = gActiveBank;
+ bankIn1 = gActiveBattler;
+ if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))])
+ bankIn2 = gActiveBattler;
else
- bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
+ bankIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)));
}
else
{
- bankIn1 = gActiveBank;
- bankIn2 = gActiveBank;
+ bankIn1 = gActiveBattler;
+ bankIn2 = gActiveBattler;
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -380,7 +380,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
firstId = 0, lastId = 6;
}
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -396,9 +396,9 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
- if (i == gBattlePartyID[bankIn1])
+ if (i == gBattlerPartyIndexes[bankIn1])
continue;
- if (i == gBattlePartyID[bankIn2])
+ if (i == gBattlerPartyIndexes[bankIn2])
continue;
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
continue;
@@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
else
monAbility = gBaseStats[species].ability1;
- moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility);
+ moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBattler], species, monAbility);
if (moveFlags & flags)
{
- bankIn1 = gLastHitBy[gActiveBank];
+ bankIn1 = gLastHitBy[gActiveBattler];
for (j = 0; j < 4; j++)
{
@@ -423,10 +423,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
continue;
moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability);
- if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0)
+ if (moveFlags & MOVE_RESULT_SUPER_EFFECTIVE && Random() % moduloPercent == 0)
{
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = i;
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = i;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
return TRUE;
}
}
@@ -446,19 +446,19 @@ static bool8 ShouldSwitch(void)
s32 i;
s32 availableToSwitch;
- if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ if (gBattleMons[*(activeBankPtr = &gActiveBattler)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
return FALSE;
- if (gStatuses3[gActiveBank] & STATUS3_ROOTED)
+ if (gStatuses3[gActiveBattler] & STATUS3_ROOTED)
return FALSE;
- if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0))
return FALSE;
- if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0))
return FALSE; // misses the flying or levitate check
if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0))
{
- if (gBattleMons[gActiveBank].type1 == TYPE_STEEL)
+ if (gBattleMons[gActiveBattler].type1 == TYPE_STEEL)
return FALSE;
- if (gBattleMons[gActiveBank].type2 == TYPE_STEEL)
+ if (gBattleMons[gActiveBattler].type2 == TYPE_STEEL)
return FALSE;
}
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
@@ -468,10 +468,10 @@ static bool8 ShouldSwitch(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
bankIn1 = *activeBankPtr;
- if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)])
+ if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(*activeBankPtr) ^ BIT_FLANK)])
bankIn2 = *activeBankPtr;
else
- bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON);
+ bankIn2 = GetBattlerAtPosition(GetBattlerPosition(*activeBankPtr) ^ BIT_FLANK);
}
else
{
@@ -481,7 +481,7 @@ static bool8 ShouldSwitch(void)
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -491,7 +491,7 @@ static bool8 ShouldSwitch(void)
firstId = 0, lastId = 6;
}
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -504,9 +504,9 @@ static bool8 ShouldSwitch(void)
continue;
if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG)
continue;
- if (i == gBattlePartyID[bankIn1])
+ if (i == gBattlerPartyIndexes[bankIn1])
continue;
- if (i == gBattlePartyID[bankIn2])
+ if (i == gBattlerPartyIndexes[bankIn2])
continue;
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
continue;
@@ -530,8 +530,8 @@ static bool8 ShouldSwitch(void)
return FALSE;
if (AreStatsRaised())
return FALSE;
- if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2)
- || FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3))
+ if (FindMonWithFlagsAndSuperEffective(MOVE_RESULT_DOESNT_AFFECT_FOE, 2)
+ || FindMonWithFlagsAndSuperEffective(MOVE_RESULT_NOT_VERY_EFFECTIVE, 3))
return TRUE;
return FALSE;
@@ -543,9 +543,9 @@ void AI_TrySwitchOrUseItem(void)
u8 bankIn1, bankIn2;
s32 firstId;
s32 lastId; // + 1
- u8 bankIdentity = GetBankIdentity(gActiveBank);
+ u8 bankIdentity = GetBattlerPosition(gActiveBattler);
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -554,25 +554,25 @@ void AI_TrySwitchOrUseItem(void)
{
if (ShouldSwitch())
{
- if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6)
+ if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6)
{
s32 monToSwitchId = GetMostSuitableMonToSwitchInto();
if (monToSwitchId == 6)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- bankIn1 = GetBankByIdentity(bankIdentity);
+ bankIn1 = GetBattlerAtPosition(bankIdentity);
bankIn2 = bankIn1;
}
else
{
- bankIn1 = GetBankByIdentity(bankIdentity);
- bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON);
+ bankIn1 = GetBattlerAtPosition(bankIdentity);
+ bankIn2 = GetBattlerAtPosition(bankIdentity ^ BIT_FLANK);
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -586,9 +586,9 @@ void AI_TrySwitchOrUseItem(void)
{
if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0)
continue;
- if (monToSwitchId == gBattlePartyID[bankIn1])
+ if (monToSwitchId == gBattlerPartyIndexes[bankIn1])
continue;
- if (monToSwitchId == gBattlePartyID[bankIn2])
+ if (monToSwitchId == gBattlerPartyIndexes[bankIn2])
continue;
if (monToSwitchId == *(gBattleStruct->monToSwitchIntoId + bankIn1))
continue;
@@ -599,10 +599,10 @@ void AI_TrySwitchOrUseItem(void)
}
}
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = monToSwitchId;
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = monToSwitchId;
}
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler);
return;
}
else if (ShouldUseItem())
@@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void)
}
}
- EmitTwoReturnValues(1, ACTION_USE_MOVE, (gActiveBank ^ BIT_SIDE) << 8);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, (gActiveBattler ^ BIT_SIDE) << 8);
}
static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var)
@@ -651,34 +651,34 @@ u8 GetMostSuitableMonToSwitchInto(void)
u8 invalidMons;
u16 move;
- if (*(gBattleStruct->monToSwitchIntoId + gActiveBank) != 6)
- return *(gBattleStruct->monToSwitchIntoId + gActiveBank);
+ if (*(gBattleStruct->monToSwitchIntoId + gActiveBattler) != 6)
+ return *(gBattleStruct->monToSwitchIntoId + gActiveBattler);
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
- return gBattlePartyID[gActiveBank] + 1;
+ return gBattlerPartyIndexes[gActiveBattler] + 1;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- bankIn1 = gActiveBank;
- if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)])
- bankIn2 = gActiveBank;
+ bankIn1 = gActiveBattler;
+ if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK)])
+ bankIn2 = gActiveBattler;
else
- bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON);
+ bankIn2 = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_FLANK);
// UB: It considers the opponent only player's side even though it can battle alongside player;
- opposingBank = Random() & BIT_MON;
- if (gAbsentBankFlags & gBitTable[opposingBank])
- opposingBank ^= BIT_MON;
+ opposingBank = Random() & BIT_FLANK;
+ if (gAbsentBattlerFlags & gBitTable[opposingBank])
+ opposingBank ^= BIT_FLANK;
}
else
{
- opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE);
- bankIn1 = gActiveBank;
- bankIn2 = gActiveBank;
+ opposingBank = GetBattlerAtPosition(GetBattlerPosition(gActiveBattler) ^ BIT_SIDE);
+ bankIn1 = gActiveBattler;
+ bankIn2 = gActiveBattler;
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if ((gActiveBank & BIT_MON) == 0)
+ if ((gActiveBattler & BIT_FLANK) == 0)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -688,7 +688,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
firstId = 0, lastId = 6;
}
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -706,8 +706,8 @@ u8 GetMostSuitableMonToSwitchInto(void)
if (species != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_HP) != 0
&& !(gBitTable[i] & invalidMons)
- && gBattlePartyID[bankIn1] != i
- && gBattlePartyID[bankIn2] != i
+ && gBattlerPartyIndexes[bankIn1] != i
+ && gBattlerPartyIndexes[bankIn2] != i
&& i != *(gBattleStruct->monToSwitchIntoId + bankIn1)
&& i != *(gBattleStruct->monToSwitchIntoId + bankIn2))
{
@@ -734,7 +734,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
for (i = 0; i < 4; i++)
{
move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i);
- if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE)
+ if (move != MOVE_NONE && TypeCalc(move, gActiveBattler, opposingBank) & MOVE_RESULT_SUPER_EFFECTIVE)
break;
}
@@ -752,7 +752,7 @@ u8 GetMostSuitableMonToSwitchInto(void)
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleScripting.dmgMultiplier = 1;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gCritMultiplier = 1;
bestDmg = 0;
bestMonId = 6;
@@ -764,9 +764,9 @@ u8 GetMostSuitableMonToSwitchInto(void)
continue;
if (GetMonData(&party[i], MON_DATA_HP) == 0)
continue;
- if (gBattlePartyID[bankIn1] == i)
+ if (gBattlerPartyIndexes[bankIn1] == i)
continue;
- if (gBattlePartyID[bankIn2] == i)
+ if (gBattlerPartyIndexes[bankIn2] == i)
continue;
if (i == *(gBattleStruct->monToSwitchIntoId + bankIn1))
continue;
@@ -779,8 +779,8 @@ u8 GetMostSuitableMonToSwitchInto(void)
gBattleMoveDamage = 0;
if (move != MOVE_NONE && gBattleMoves[move].power != 1)
{
- AI_CalcDmg(gActiveBank, opposingBank);
- TypeCalc(move, gActiveBank, opposingBank);
+ AI_CalcDmg(gActiveBattler, opposingBank);
+ TypeCalc(move, gActiveBattler, opposingBank);
}
if (bestDmg < gBattleMoveDamage)
{
@@ -817,10 +817,10 @@ static bool8 ShouldUseItem(void)
u8 validMons = 0;
bool8 shouldUse = FALSE;
- if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2)
+ if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT)
return FALSE;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -855,14 +855,14 @@ static bool8 ShouldUseItem(void)
else
itemEffects = gItemEffectTable[item - 13];
- *(gBattleStruct->AI_itemType + gActiveBank / 2) = GetAI_ItemType(item, itemEffects);
+ *(gBattleStruct->AI_itemType + gActiveBattler / 2) = GetAI_ItemType(item, itemEffects);
- switch (*(gBattleStruct->AI_itemType + gActiveBank / 2))
+ switch (*(gBattleStruct->AI_itemType + gActiveBattler / 2))
{
case AI_ITEM_FULL_RESTORE:
- if (gBattleMons[gActiveBank].hp >= gBattleMons[gActiveBank].maxHP / 4)
+ if (gBattleMons[gActiveBattler].hp >= gBattleMons[gActiveBattler].maxHP / 4)
break;
- if (gBattleMons[gActiveBank].hp == 0)
+ if (gBattleMons[gActiveBattler].hp == 0)
break;
shouldUse = TRUE;
break;
@@ -870,65 +870,65 @@ static bool8 ShouldUseItem(void)
paramOffset = GetItemEffectParamOffset(item, 4, 4);
if (paramOffset == 0)
break;
- if (gBattleMons[gActiveBank].hp == 0)
+ if (gBattleMons[gActiveBattler].hp == 0)
break;
- if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 4 || gBattleMons[gActiveBank].maxHP - gBattleMons[gActiveBank].hp > itemEffects[paramOffset])
+ if (gBattleMons[gActiveBattler].hp < gBattleMons[gActiveBattler].maxHP / 4 || gBattleMons[gActiveBattler].maxHP - gBattleMons[gActiveBattler].hp > itemEffects[paramOffset])
shouldUse = TRUE;
break;
case AI_ITEM_CURE_CONDITION:
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0;
- if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
+ if (itemEffects[3] & 0x20 && gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20;
shouldUse = TRUE;
}
- if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS_POISON || gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON))
+ if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBattler].status1 & STATUS1_POISON || gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON))
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x10;
shouldUse = TRUE;
}
- if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS_BURN)
+ if (itemEffects[3] & 0x8 && gBattleMons[gActiveBattler].status1 & STATUS1_BURN)
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8;
shouldUse = TRUE;
}
- if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS_FREEZE)
+ if (itemEffects[3] & 0x4 && gBattleMons[gActiveBattler].status1 & STATUS1_FREEZE)
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4;
shouldUse = TRUE;
}
- if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS_PARALYSIS)
+ if (itemEffects[3] & 0x2 && gBattleMons[gActiveBattler].status1 & STATUS1_PARALYSIS)
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2;
shouldUse = TRUE;
}
- if (itemEffects[3] & 0x1 && gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)
+ if (itemEffects[3] & 0x1 && gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)
{
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1;
shouldUse = TRUE;
}
break;
case AI_ITEM_X_STAT:
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0;
- if (gDisableStructs[gActiveBank].isFirstTurn == 0)
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) = 0;
+ if (gDisableStructs[gActiveBattler].isFirstTurn == 0)
break;
if (itemEffects[0] & 0xF)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x1;
if (itemEffects[1] & 0xF0)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x2;
if (itemEffects[1] & 0xF)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x4;
if (itemEffects[2] & 0xF)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8;
if (itemEffects[2] & 0xF0)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20;
if (itemEffects[0] & 0x30)
- *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x80;
+ *(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80;
shouldUse = TRUE;
break;
case AI_ITEM_GUARD_SPECS:
- bankSide = GetBankSide(gActiveBank);
- if (gDisableStructs[gActiveBank].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0)
+ bankSide = GetBattlerSide(gActiveBattler);
+ if (gDisableStructs[gActiveBattler].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0)
shouldUse = TRUE;
break;
case AI_ITEM_NOT_RECOGNIZABLE:
@@ -937,8 +937,8 @@ static bool8 ShouldUseItem(void)
if (shouldUse)
{
- EmitTwoReturnValues(1, ACTION_USE_ITEM, 0);
- *(gBattleStruct->chosenItem + (gActiveBank / 2) * 2) = item;
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0);
+ *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2) = item;
gBattleResources->battleHistory->trainerItems[i] = 0;
return shouldUse;
}
diff --git a/src/battle_anim.c b/src/battle_anim.c
index d991a702d..34b7a7476 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -25,8 +25,8 @@
#define ANIM_SPRITE_INDEX_COUNT 8
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
extern u16 gBattle_WIN0H;
extern u16 gBattle_WIN0V;
extern u16 gBattle_WIN1H;
@@ -35,8 +35,8 @@ extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
@@ -130,9 +130,9 @@ EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0};
EWRAM_DATA u8 gAnimMoveTurn = 0;
EWRAM_DATA static u8 sAnimBackgroundFadeState = 0;
EWRAM_DATA static u16 sAnimMoveIndex = 0; // set but unused.
-EWRAM_DATA u8 gAnimBankAttacker = 0;
-EWRAM_DATA u8 gAnimBankTarget = 0;
-EWRAM_DATA u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT] = {0};
+EWRAM_DATA u8 gBattleAnimAttacker = 0;
+EWRAM_DATA u8 gBattleAnimTarget = 0;
+EWRAM_DATA u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA u8 gUnknown_02038440 = 0;
// const rom data
@@ -214,15 +214,15 @@ void ClearBattleAnimationVars(void)
gAnimMoveTurn = 0;
sAnimBackgroundFadeState = 0;
sAnimMoveIndex = 0;
- gAnimBankAttacker = 0;
- gAnimBankTarget = 0;
+ gBattleAnimAttacker = 0;
+ gBattleAnimTarget = 0;
gUnknown_02038440 = 0;
}
void DoMoveAnim(u16 move)
{
- gAnimBankAttacker = gBankAttacker;
- gAnimBankTarget = gBankTarget;
+ gBattleAnimAttacker = gBattlerAttacker;
+ gBattleAnimTarget = gBattlerTarget;
LaunchBattleAnimation(gBattleAnims_Moves, move, TRUE);
}
@@ -234,12 +234,12 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{
sub_80A8278();
UpdateOamPriorityInAllHealthboxes(0);
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- if (GetBankSide(i) != 0)
- gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES);
+ if (GetBattlerSide(i) != 0)
+ gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
else
- gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES);
+ gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_SPECIES);
}
}
else
@@ -409,7 +409,7 @@ static void ScriptCmd_createsprite(void)
else
argVar *= -1;
- subpriority = sub_80A82E4(gAnimBankTarget) + (s8)(argVar);
+ subpriority = sub_80A82E4(gBattleAnimTarget) + (s8)(argVar);
}
else
{
@@ -418,13 +418,13 @@ static void ScriptCmd_createsprite(void)
else
argVar *= -1;
- subpriority = sub_80A82E4(gAnimBankAttacker) + (s8)(argVar);
+ subpriority = sub_80A82E4(gBattleAnimAttacker) + (s8)(argVar);
}
if (subpriority < 3)
subpriority = 3;
- CreateSpriteAndAnimate(template, GetBankPosition(gAnimBankTarget, 2), GetBankPosition(gAnimBankTarget, 3), subpriority);
+ CreateSpriteAndAnimate(template, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), subpriority);
gAnimVisualTaskCount++;
}
@@ -565,7 +565,7 @@ static void sub_80A40F4(u8 taskId)
u8 newTaskId;
s16 *selfData = gTasks[taskId].data;
- u8 bankSpriteId = gBankSpriteIds[selfData[t1_MONBG_BANK]];
+ u8 bankSpriteId = gBattlerSpriteIds[selfData[t1_MONBG_BANK]];
gSprites[bankSpriteId].invisible = 1;
if (!selfData[t1_CREATE_ANOTHER_TASK])
@@ -607,14 +607,14 @@ static void ScriptCmd_monbg(void)
animBank = sBattleAnimScriptPtr[0];
if (animBank & ANIM_TARGET)
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
else
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
- if (IsAnimBankSpriteVisible(bank))
+ if (IsBattlerSpriteVisible(bank))
{
- u8 identity = GetBankIdentity(bank);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(bank);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
@@ -629,11 +629,11 @@ static void ScriptCmd_monbg(void)
}
- bank ^= BIT_MON;
- if (IsAnimBankSpriteVisible(bank))
+ bank ^= BIT_FLANK;
+ if (IsBattlerSpriteVisible(bank))
{
- u8 identity = GetBankIdentity(bank);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(bank);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
@@ -652,20 +652,20 @@ static void ScriptCmd_monbg(void)
gAnimScriptCallback = WaitAnimFrameCount;
}
-bool8 IsAnimBankSpriteVisible(u8 bank)
+bool8 IsBattlerSpriteVisible(u8 bank)
{
if (IsContest())
{
- if (bank == gAnimBankAttacker)
+ if (bank == gBattleAnimAttacker)
return TRUE;
else
return FALSE;
}
- if (!IsBankSpritePresent(bank))
+ if (!IsBattlerSpritePresent(bank))
return FALSE;
if (IsContest())
return TRUE; // this line wont ever be reached.
- if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBankSpriteIds[bank]].invisible)
+ if (!gBattleSpritesDataPtr->battlerData[bank].invisible || !gSprites[gBattlerSpriteIds[bank]].invisible)
return TRUE;
return FALSE;
@@ -699,7 +699,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0);
- bankSpriteId = gBankSpriteIds[bank];
+ bankSpriteId = gBattlerSpriteIds[bank];
gBattle_BG1_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20;
if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0))
@@ -707,7 +707,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
gBattle_BG1_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20;
if (setSpriteInvisible)
- gSprites[gBankSpriteIds[bank]].invisible = 1;
+ gSprites[gBattlerSpriteIds[bank]].invisible = 1;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
@@ -718,7 +718,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
if (IsContest())
bankIdentity = 0;
else
- bankIdentity = GetBankIdentity(bank);
+ bankIdentity = GetBattlerPosition(bank);
sub_8118FBC(1, 0, 0, bankIdentity, unknownStruct.unk8, unknownStruct.unk0, unknownStruct.unk4, unknownStruct.unkA);
@@ -736,13 +736,13 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1);
SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0);
- bankSpriteId = gBankSpriteIds[bank];
+ bankSpriteId = gBattlerSpriteIds[bank];
gBattle_BG2_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20;
gBattle_BG2_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20;
if (setSpriteInvisible)
- gSprites[gBankSpriteIds[bank]].invisible = 1;
+ gSprites[gBattlerSpriteIds[bank]].invisible = 1;
SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
@@ -750,7 +750,7 @@ void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], 0x90, 0x20);
CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + 0x120), 0x20);
- sub_8118FBC(2, 0, 0, GetBankIdentity(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA);
+ sub_8118FBC(2, 0, 0, GetBattlerPosition(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA);
}
}
@@ -869,14 +869,14 @@ static void ScriptCmd_clearmonbg(void)
animBankId = ANIM_DEF_PARTNER;
if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER)
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
else
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
if (sMonAnimTaskIdArray[0] != 0xFF)
- gSprites[gBankSpriteIds[bank]].invisible = 0;
+ gSprites[gBattlerSpriteIds[bank]].invisible = 0;
if (animBankId > 1 && sMonAnimTaskIdArray[1] != 0xFF)
- gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ gSprites[gBattlerSpriteIds[bank ^ BIT_FLANK]].invisible = 0;
else
animBankId = 0;
@@ -893,8 +893,8 @@ static void sub_80A4980(u8 taskId)
if (gTasks[taskId].data[1] != 1)
{
u8 to_BG2;
- u8 identity = GetBankIdentity(gTasks[taskId].data[2]);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(gTasks[taskId].data[2]);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
to_BG2 = FALSE;
else
to_BG2 = TRUE;
@@ -931,14 +931,14 @@ static void ScriptCmd_monbg_22(void)
animBankId = ANIM_DEF_PARTNER;
if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER)
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
else
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
- if (IsAnimBankSpriteVisible(bank))
+ if (IsBattlerSpriteVisible(bank))
{
- u8 identity = GetBankIdentity(bank);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(bank);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
@@ -946,11 +946,11 @@ static void ScriptCmd_monbg_22(void)
sub_80A438C(bank, toBG_2, FALSE);
}
- bank ^= BIT_MON;
- if (animBankId > 1 && IsAnimBankSpriteVisible(bank))
+ bank ^= BIT_FLANK;
+ if (animBankId > 1 && IsBattlerSpriteVisible(bank))
{
- u8 identity = GetBankIdentity(bank);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(bank);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
@@ -976,14 +976,14 @@ static void ScriptCmd_clearmonbg_23(void)
animBankId = ANIM_DEF_PARTNER;
if (animBankId == ANIM_ATTACKER || animBankId == ANIM_ATK_PARTNER)
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
else
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
- if (IsAnimBankSpriteVisible(bank))
- gSprites[gBankSpriteIds[bank]].invisible = 0;
- if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
- gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ if (IsBattlerSpriteVisible(bank))
+ gSprites[gBattlerSpriteIds[bank]].invisible = 0;
+ if (animBankId > 1 && IsBattlerSpriteVisible(bank ^ BIT_FLANK))
+ gSprites[gBattlerSpriteIds[bank ^ BIT_FLANK]].invisible = 0;
else
animBankId = 0;
@@ -1001,15 +1001,15 @@ static void sub_80A4BB0(u8 taskId)
{
bool8 toBG_2;
u8 bank = gTasks[taskId].data[2];
- u8 identity = GetBankIdentity(bank);
- if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ u8 position = GetBattlerPosition(bank);
+ if (position == B_POSITION_OPPONENT_LEFT || position == B_POSITION_PLAYER_RIGHT || IsContest())
toBG_2 = FALSE;
else
toBG_2 = TRUE;
- if (IsAnimBankSpriteVisible(bank))
+ if (IsBattlerSpriteVisible(bank))
sub_80A477C(toBG_2);
- if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
+ if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(bank ^ BIT_FLANK))
sub_80A477C(toBG_2 ^ 1);
DestroyTask(taskId);
@@ -1145,7 +1145,7 @@ static void ScriptCmd_fadetobgfromset(void)
if (IsContest())
gTasks[taskId].tBackgroundId = bg3;
- else if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
gTasks[taskId].tBackgroundId = bg2;
else
gTasks[taskId].tBackgroundId = bg1;
@@ -1270,21 +1270,21 @@ static void ScriptCmd_changebg(void)
s8 BattleAnimAdjustPanning(s8 pan)
{
- if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive)
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gBattleAnimAttacker].statusAnimActive)
{
- if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
pan = PAN_SIDE_OPPONENT;
else
pan = PAN_SIDE_PLAYER;
}
else if (IsContest())
{
- if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != PAN_SIDE_OPPONENT)
+ if (gBattleAnimAttacker != gBattleAnimTarget || gBattleAnimAttacker != 2 || pan != PAN_SIDE_OPPONENT)
pan *= -1;
}
- else if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{
- if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
{
if (pan == PAN_SIDE_OPPONENT)
pan = PAN_SIDE_PLAYER;
@@ -1292,7 +1292,7 @@ s8 BattleAnimAdjustPanning(s8 pan)
pan *= -1;
}
}
- else if (GetBankSide(gAnimBankTarget) == SIDE_OPPONENT)
+ else if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT)
{
if (pan == PAN_SIDE_PLAYER)
pan = PAN_SIDE_OPPONENT;
@@ -1312,16 +1312,16 @@ s8 BattleAnimAdjustPanning(s8 pan)
s8 BattleAnimAdjustPanning2(s8 pan)
{
- if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].statusAnimActive)
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gBattleAnimAttacker].statusAnimActive)
{
- if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
pan = PAN_SIDE_OPPONENT;
else
pan = PAN_SIDE_PLAYER;
}
else
{
- if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER || IsContest())
+ if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest())
pan = -pan;
}
return pan;
@@ -1701,12 +1701,12 @@ static void ScriptCmd_monbgprio_28(void)
sBattleAnimScriptPtr += 2;
if (wantedBank != ANIM_ATTACKER)
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
else
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
- bankIdentity = GetBankIdentity(bank);
- if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2))
+ bankIdentity = GetBattlerPosition(bank);
+ if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT))
{
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
@@ -1731,15 +1731,15 @@ static void ScriptCmd_monbgprio_2A(void)
wantedBank = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2;
- if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget))
+ if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget))
{
if (wantedBank != ANIM_ATTACKER)
- bank = gAnimBankTarget;
+ bank = gBattleAnimTarget;
else
- bank = gAnimBankAttacker;
+ bank = gBattleAnimAttacker;
- bankIdentity = GetBankIdentity(bank);
- if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2))
+ bankIdentity = GetBattlerPosition(bank);
+ if (!IsContest() && (bankIdentity == B_POSITION_PLAYER_LEFT || bankIdentity == B_POSITION_OPPONENT_RIGHT))
{
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
@@ -1751,7 +1751,7 @@ static void ScriptCmd_invisible(void)
{
u8 spriteId;
- spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]);
+ spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]);
if (spriteId != 0xFF)
gSprites[spriteId].invisible = 1;
@@ -1762,7 +1762,7 @@ static void ScriptCmd_visible(void)
{
u8 spriteId;
- spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]);
+ spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]);
if (spriteId != 0xFF)
gSprites[spriteId].invisible = 0;
@@ -1778,17 +1778,17 @@ static void ScriptCmd_doublebattle_2D(void)
wantedBank = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget))
+ && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
{
if (wantedBank == ANIM_ATTACKER)
{
- r4 = sub_80A8364(gAnimBankAttacker);
- spriteId = GetAnimBankSpriteId(ANIM_ATTACKER);
+ r4 = sub_80A8364(gBattleAnimAttacker);
+ spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
}
else
{
- r4 = sub_80A8364(gAnimBankTarget);
- spriteId = GetAnimBankSpriteId(ANIM_TARGET);
+ r4 = sub_80A8364(gBattleAnimTarget);
+ spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
}
if (spriteId != 0xFF)
{
@@ -1813,17 +1813,17 @@ static void ScriptCmd_doublebattle_2E(void)
wantedBank = sBattleAnimScriptPtr[1];
sBattleAnimScriptPtr += 2;
if (!IsContest() && IsDoubleBattle()
- && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget))
+ && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
{
if (wantedBank == ANIM_ATTACKER)
{
- r4 = sub_80A8364(gAnimBankAttacker);
- spriteId = GetAnimBankSpriteId(ANIM_ATTACKER);
+ r4 = sub_80A8364(gBattleAnimAttacker);
+ spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
}
else
{
- r4 = sub_80A8364(gAnimBankTarget);
- spriteId = GetAnimBankSpriteId(ANIM_TARGET);
+ r4 = sub_80A8364(gBattleAnimTarget);
+ spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
}
if (spriteId != 0xFF && r4 == 2)
diff --git a/src/battle_bg.c b/src/battle_bg.c
index a67f56fd8..51c54f0a3 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -273,13 +273,13 @@ static void sub_8035AE4(u8 taskId, u8 bank, u8 bgId, u8 destX, u8 destY)
static void sub_8035C4C(void)
{
- if (gBattleOutcome == BATTLE_DREW)
+ if (gBattleOutcome == B_OUTCOME_DREW)
{
BattleHandleAddTextPrinter(gText_Draw, 0x15);
}
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if (gBattleOutcome == BATTLE_WON)
+ if (gBattleOutcome == B_OUTCOME_WON)
{
switch (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18)
{
@@ -324,7 +324,7 @@ static void sub_8035C4C(void)
}
}
}
- else if (gBattleOutcome == BATTLE_WON)
+ else if (gBattleOutcome == B_OUTCOME_WON)
{
if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 != 0)
{
@@ -363,7 +363,7 @@ void sub_8035D74(u8 taskId)
case 0:
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
name = gLinkPlayers[i].name;
linkPlayer = &gLinkPlayers[i];
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index cb510bb5b..3775cf1fb 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -24,33 +24,33 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gUnknown_020243FC;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gUnknown_020244B4[];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern u16 gTrainerBattleOpponent_A;
@@ -203,15 +203,15 @@ static void nullsub_28(void)
void SetControllerToLinkOpponent(void)
{
- gBattleBankFunc[gActiveBank] = LinkOpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand;
}
static void LinkOpponentBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sLinkOpponentBufferCommands))
- sLinkOpponentBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands))
+ sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
LinkOpponentBufferExecCompleted();
}
@@ -219,32 +219,32 @@ static void LinkOpponentBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
LinkOpponentBufferExecCompleted();
}
static void CompleteOnBankSpriteCallbackDummy2(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
LinkOpponentBufferExecCompleted();
}
static void sub_8064470(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
LinkOpponentBufferExecCompleted();
}
}
static void sub_80644D8(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
LinkOpponentBufferExecCompleted();
}
}
@@ -256,13 +256,13 @@ static void sub_8064520(void)
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r8 = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]].callback == SpriteCallbackDummy)
{
r8 = TRUE;
}
@@ -271,39 +271,39 @@ static void sub_8064520(void)
if (r8)
{
- if (r4 || !IsAnimBankSpriteVisible(gActiveBank ^ BIT_MON))
+ if (r4 || !IsBattlerSpriteVisible(BATTLE_PARTNER(gActiveBattler)))
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
return;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1)
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
- if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
{
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
}
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_80644D8;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80644D8;
}
}
@@ -311,48 +311,48 @@ static void sub_8064734(void)
{
bool32 r10 = FALSE;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x1)
{
- sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
+ sub_8172EF0(BATTLE_PARTNER(gActiveBattler), &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]]);
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)], &gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], HEALTHBOX_ALL);
+ sub_8076918(BATTLE_PARTNER(gActiveBattler));
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[BATTLE_PARTNER(gActiveBattler)]);
}
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[BATTLE_PARTNER(gActiveBattler)].field_1_x40
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
m4aMPlayContinue(&gMPlayInfo_BGM);
}
else
@@ -361,56 +361,56 @@ static void sub_8064734(void)
}
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
r10 = TRUE;
}
if (r10)
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2)
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
{
- if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 1)
+ if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 1)
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
}
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[BATTLE_PARTNER(gActiveBattler)]]);
+ SetBattlerShadowSpriteCallback(BATTLE_PARTNER(gActiveBattler), GetMonData(&gEnemyParty[gBattlerPartyIndexes[BATTLE_PARTNER(gActiveBattler)]], MON_DATA_SPECIES));
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
- gBattleBankFunc[gActiveBank] = sub_8064520;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064520;
}
}
}
static void sub_8064B04(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
LinkOpponentBufferExecCompleted();
@@ -421,13 +421,13 @@ static void sub_8064B04(void)
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
@@ -437,21 +437,21 @@ static void CompleteOnHealthbarDone(void)
static void sub_8064C14(void)
{
- if (!gSprites[gBankSpriteIds[gActiveBank]].inUse)
+ if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
{
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkOpponentBufferExecCompleted();
}
}
static void sub_8064C58(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkOpponentBufferExecCompleted();
}
}
@@ -464,7 +464,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -483,21 +483,21 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_8064D60(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_8064DD0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064DD0;
}
}
static void sub_8064DD0(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive && !IsCryPlayingOrClearCrySongs())
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
LinkOpponentBufferExecCompleted();
@@ -507,67 +507,67 @@ static void sub_8064DD0(void)
static void sub_8064E50(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
- CopyBattleSpriteInvisibility(gActiveBank);
- gBattleBankFunc[gActiveBank] = sub_8064D60;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064D60;
}
}
static void sub_8064F40(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_8064E50;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064E50;
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
LinkOpponentBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = LinkOpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
@@ -578,13 +578,13 @@ static void LinkOpponentHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyLinkOpponentMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -592,7 +592,7 @@ static void LinkOpponentHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
LinkOpponentBufferExecCompleted();
}
@@ -606,7 +606,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
@@ -672,7 +672,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -687,7 +687,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -912,13 +912,13 @@ static void LinkOpponentHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetLinkOpponentMonData(gBattlePartyID[gActiveBank]);
+ SetLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -931,11 +931,11 @@ static void LinkOpponentHandleSetMonData(void)
static void SetLinkOpponentMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -976,10 +976,10 @@ static void SetLinkOpponentMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -993,196 +993,196 @@ static void SetLinkOpponentMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
}
static void LinkOpponentHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentHandleLoadMonSprite(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_8064B04;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064B04;
}
static void LinkOpponentHandleSwitchInAnim(void)
{
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- sub_8066494(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_8064F40;
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ sub_8066494(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064F40;
}
static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit)
@@ -1190,66 +1190,66 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
- sub_806A068(species, GetBankIdentity(bank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(
+ gBattlerSpriteIds[bank] = CreateSprite(
&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
}
static void LinkOpponentHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkOpponentBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
- gBattleBankFunc[gActiveBank] = sub_8064C58;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064C58;
}
break;
}
@@ -1262,39 +1262,39 @@ static void LinkOpponentHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 152;
else // first mon
xPos = 200;
if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
}
else
{
- if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN)
+ if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
- if (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender != 0)
+ if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
trainerPicId = gUnknown_0831F578[0x4F];
else
trainerPicId = gUnknown_0831F578[0x4E];
}
- else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE)
+ else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
- if (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender != 0)
+ if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
trainerPicId = gUnknown_0831F578[0x51];
else
trainerPicId = gUnknown_0831F578[0x50];
}
else
{
- trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender);
+ trainerPicId = PlayerGenderToFrontTrainerPicId(gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender);
}
}
}
@@ -1327,73 +1327,73 @@ static void LinkOpponentHandleDrawTrainerPic(void)
}
}
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
- sub_80A82E4(gActiveBank));
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void LinkOpponentHandleTrainerSlide(void)
{
u32 trainerPicId;
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96;
- gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2; // this line is redundant, because LinkOpponentBufferExecCompleted changes the battle bank function
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_8064470;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064470;
}
static void LinkOpponentHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT);
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934;
- gBattleBankFunc[gActiveBank] = sub_8064C14;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064C14;
}
}
}
@@ -1420,25 +1420,25 @@ static void LinkOpponentHandlePause(void)
static void LinkOpponentHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
-
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
LinkOpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = LinkOpponentDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDoMoveAnimation;
sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr);
}
}
@@ -1446,26 +1446,26 @@ static void LinkOpponentHandleMoveAnimation(void)
static void LinkOpponentDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1473,20 +1473,20 @@ static void LinkOpponentDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
LinkOpponentBufferExecCompleted();
}
break;
@@ -1499,10 +1499,10 @@ static void LinkOpponentHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
sub_817C95C(*stringId);
}
@@ -1546,23 +1546,23 @@ static void LinkOpponentHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void LinkOpponentHandleExpUpdate(void)
@@ -1572,24 +1572,24 @@ static void LinkOpponentHandleExpUpdate(void)
static void LinkOpponentHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void LinkOpponentHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1646,7 +1646,7 @@ static void LinkOpponentHandleCmd37(void)
static void LinkOpponentHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
LinkOpponentBufferExecCompleted();
}
@@ -1664,16 +1664,16 @@ static void LinkOpponentHandleCmd40(void)
static void LinkOpponentHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
LinkOpponentBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1686,25 +1686,25 @@ static void LinkOpponentHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
LinkOpponentBufferExecCompleted();
@@ -1712,7 +1712,7 @@ static void LinkOpponentHandlePlayFanfareOrBGM(void)
static void LinkOpponentHandleFaintingCry(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, 25, 5);
LinkOpponentBufferExecCompleted();
@@ -1720,7 +1720,7 @@ static void LinkOpponentHandleFaintingCry(void)
static void LinkOpponentHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
LinkOpponentBufferExecCompleted();
}
@@ -1730,46 +1730,46 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_80676FC);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80676FC);
taskId = CreateTask(sub_8067618, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_28;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_28;
}
static void sub_8067618(u8 taskId)
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_8066494(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_8066494(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_8066494(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_8066494(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_8066494(gActiveBattler, FALSE);
+ gActiveBattler = BATTLE_PARTNER(gActiveBattler);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_8066494(gActiveBattler, FALSE);
+ gActiveBattler = BATTLE_PARTNER(gActiveBattler);
}
- gBattleBankFunc[gActiveBank] = sub_8064734;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8064734;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
@@ -1782,50 +1782,50 @@ static void sub_80676FC(struct Sprite *sprite)
static void LinkOpponentHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
LinkOpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
- if (gBattleBufferA[gActiveBank][2] != 0)
+ if (gBattleBufferA[gActiveBattler][2] != 0)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
return;
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
}
}
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_806782C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_806782C;
}
}
static void sub_806782C(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
LinkOpponentBufferExecCompleted();
}
}
static void LinkOpponentHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
LinkOpponentBufferExecCompleted();
}
@@ -1836,25 +1836,25 @@ static void LinkOpponentHandleCmd50(void)
static void LinkOpponentHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
LinkOpponentBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
sub_817E32C(animationId);
}
@@ -1862,7 +1862,7 @@ static void LinkOpponentHandleBattleAnimation(void)
static void LinkOpponentHandleLinkStandbyMsg(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][2]);
+ sub_81851A8(&gBattleBufferA[gActiveBattler][2]);
LinkOpponentBufferExecCompleted();
}
@@ -1873,18 +1873,18 @@ static void LinkOpponentHandleResetActionMoveSelection(void)
static void LinkOpponentHandleCmd55(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][4]);
+ sub_81851A8(&gBattleBufferA[gActiveBattler][4]);
- if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW)
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW)
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
else
- gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW;
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW;
- gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2];
+ gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
LinkOpponentBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_92(void)
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 082b134b4..340a2b566 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -24,33 +24,33 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gUnknown_020243FC;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gUnknown_020244B4[];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
@@ -198,15 +198,15 @@ static void nullsub_112(void)
void SetControllerToLinkPartner(void)
{
- gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand;
}
static void LinkPartnerBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sLinkPartnerBufferCommands))
- sLinkPartnerBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands))
+ sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
LinkPartnerBufferExecCompleted();
}
@@ -214,26 +214,26 @@ static void LinkPartnerBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
LinkPartnerBufferExecCompleted();
}
static void sub_814AF54(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
nullsub_25(0);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
LinkPartnerBufferExecCompleted();
}
}
static void sub_814AFBC(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
LinkPartnerBufferExecCompleted();
}
}
@@ -244,13 +244,13 @@ static void sub_814B004(void)
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r6 = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r6 = TRUE;
}
@@ -261,84 +261,84 @@ static void sub_814B004(void)
if (r6)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_814AFBC;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814AFBC;
}
}
static void sub_814B0E8(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive
- && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
+ && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleBankFunc[gActiveBank] = sub_814B004;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B004;
}
}
static void sub_814B290(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
LinkPartnerBufferExecCompleted();
}
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
LinkPartnerBufferExecCompleted();
}
}
static void sub_814B340(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
nullsub_24(species);
- FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkPartnerBufferExecCompleted();
}
}
static void sub_814B3DC(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkPartnerBufferExecCompleted();
}
}
@@ -351,7 +351,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -370,20 +370,20 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_814B4E0(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- CopyBattleSpriteInvisibility(gActiveBank);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_814B554;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B554;
}
}
static void sub_814B554(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
LinkPartnerBufferExecCompleted();
}
@@ -391,66 +391,66 @@ static void sub_814B554(void)
static void sub_814B5A8(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
- gBattleBankFunc[gActiveBank] = sub_814B4E0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B4E0;
}
}
static void sub_814B69C(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- gBattleBankFunc[gActiveBank] = sub_814B5A8;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B5A8;
}
}
static void LinkPartnerBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = LinkPartnerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
LinkPartnerBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
LinkPartnerBufferExecCompleted();
}
@@ -461,13 +461,13 @@ static void LinkPartnerHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyLinkPartnerMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -475,7 +475,7 @@ static void LinkPartnerHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
LinkPartnerBufferExecCompleted();
}
@@ -489,7 +489,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
@@ -555,7 +555,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -570,7 +570,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -795,13 +795,13 @@ static void LinkPartnerHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetLinkPartnerMonData(gBattlePartyID[gActiveBank]);
+ SetLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -814,11 +814,11 @@ static void LinkPartnerHandleSetMonData(void)
static void SetLinkPartnerMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -859,10 +859,10 @@ static void SetLinkPartnerMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -876,167 +876,167 @@ static void SetLinkPartnerMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
}
static void LinkPartnerHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
LinkPartnerBufferExecCompleted();
}
@@ -1045,28 +1045,28 @@ static void LinkPartnerHandleLoadMonSprite(void)
{
u16 species;
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
- gBattleBankFunc[gActiveBank] = sub_814B290;
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B290;
}
static void LinkPartnerHandleSwitchInAnim(void)
{
- ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_814CC98(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_814B69C;
+ ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_814CC98(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B69C;
}
static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit)
@@ -1074,64 +1074,64 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- sub_806A068(species, GetBankIdentity(bank));
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(
+ gBattlerSpriteIds[bank] = CreateSprite(
&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
}
static void LinkPartnerHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
LinkPartnerBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
- gBattleBankFunc[gActiveBank] = sub_814B3DC;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B3DC;
}
break;
}
@@ -1144,7 +1144,7 @@ static void LinkPartnerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 90;
else // first mon
xPos = 32;
@@ -1154,31 +1154,31 @@ static void LinkPartnerHandleDrawTrainerPic(void)
xPos = 80;
}
- if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN)
+ if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RED;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED;
}
- else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE)
+ else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RS_BRENDAN;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN;
}
else
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
}
- DecompressTrainerBackPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBank));
+ DecompressTrainerBackPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void LinkPartnerHandleTrainerSlide(void)
@@ -1188,34 +1188,34 @@ static void LinkPartnerHandleTrainerSlide(void)
static void LinkPartnerHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_814AF54;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_814AF54;
}
static void LinkPartnerHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00;
- gBattleBankFunc[gActiveBank] = sub_814B340;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B340;
}
}
}
@@ -1242,25 +1242,25 @@ static void LinkPartnerHandlePause(void)
static void LinkPartnerHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
-
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
LinkPartnerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = LinkPartnerDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = LinkPartnerDoMoveAnimation;
sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr);
}
}
@@ -1268,26 +1268,26 @@ static void LinkPartnerHandleMoveAnimation(void)
static void LinkPartnerDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1295,20 +1295,20 @@ static void LinkPartnerDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
LinkPartnerBufferExecCompleted();
}
break;
@@ -1321,10 +1321,10 @@ static void LinkPartnerHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
sub_817C95C(*stringId);
}
@@ -1368,23 +1368,23 @@ static void LinkPartnerHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void LinkPartnerHandleExpUpdate(void)
@@ -1394,24 +1394,24 @@ static void LinkPartnerHandleExpUpdate(void)
static void LinkPartnerHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void LinkPartnerHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1468,7 +1468,7 @@ static void LinkPartnerHandleCmd37(void)
static void LinkPartnerHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
LinkPartnerBufferExecCompleted();
}
@@ -1486,16 +1486,16 @@ static void LinkPartnerHandleCmd40(void)
static void LinkPartnerHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
LinkPartnerBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1508,25 +1508,25 @@ static void LinkPartnerHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
LinkPartnerBufferExecCompleted();
}
static void LinkPartnerHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
LinkPartnerBufferExecCompleted();
@@ -1534,7 +1534,7 @@ static void LinkPartnerHandlePlayFanfareOrBGM(void)
static void LinkPartnerHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, -25, 5);
LinkPartnerBufferExecCompleted();
@@ -1542,7 +1542,7 @@ static void LinkPartnerHandleFaintingCry(void)
static void LinkPartnerHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
LinkPartnerBufferExecCompleted();
}
@@ -1553,46 +1553,46 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void)
u8 taskId;
u32 trainerPicId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F9);
- if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_FIRE_RED
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_LEAF_GREEN)
+ if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RED;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED;
}
- else if ((gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_RUBY
- || (gLinkPlayers[GetBankMultiplayerId(gActiveBank)].version & 0xFF) == VERSION_SAPPHIRE)
+ else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
+ || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender + BACK_PIC_RS_BRENDAN;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN;
}
else
{
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
}
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_814DCCC, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_112;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_112;
}
static void sub_814DCCC(u8 taskId)
@@ -1603,62 +1603,62 @@ static void sub_814DCCC(u8 taskId)
}
else
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_814CC98(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_814CC98(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_814CC98(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_814CC98(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_814CC98(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_814CC98(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_814B0E8;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814B0E8;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
}
static void LinkPartnerHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
LinkPartnerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_814DE9C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_814DE9C;
}
}
static void sub_814DE9C(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
LinkPartnerBufferExecCompleted();
}
}
static void LinkPartnerHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
LinkPartnerBufferExecCompleted();
}
@@ -1669,25 +1669,25 @@ static void LinkPartnerHandleCmd50(void)
static void LinkPartnerHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
LinkPartnerBufferExecCompleted();
}
static void LinkPartnerHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
LinkPartnerBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
sub_817E32C(animationId);
}
@@ -1695,7 +1695,7 @@ static void LinkPartnerHandleBattleAnimation(void)
static void LinkPartnerHandleLinkStandbyMsg(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][2]);
+ sub_81851A8(&gBattleBufferA[gActiveBattler][2]);
LinkPartnerBufferExecCompleted();
}
@@ -1706,13 +1706,13 @@ static void LinkPartnerHandleResetActionMoveSelection(void)
static void LinkPartnerHandleCmd55(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][4]);
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
- gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2];
+ sub_81851A8(&gBattleBufferA[gActiveBattler][4]);
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
+ gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
LinkPartnerBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_113(void)
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 30414d53a..760205d90 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -28,27 +28,27 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern bool8 gDoingBattleAnim;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void *gUnknown_020244D8;
extern void *gUnknown_020244DC;
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gUnknown_020243FC;
@@ -207,15 +207,15 @@ static void nullsub_26(void)
void SetControllerToOpponent(void)
{
- gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand;
}
static void OpponentBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sOpponentBufferCommands))
- sOpponentBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sOpponentBufferCommands))
+ sOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
OpponentBufferExecCompleted();
}
@@ -223,32 +223,32 @@ static void OpponentBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
OpponentBufferExecCompleted();
}
static void CompleteOnBankSpriteCallbackDummy2(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
OpponentBufferExecCompleted();
}
static void sub_805F240(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
OpponentBufferExecCompleted();
}
}
static void sub_805F2A8(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
OpponentBufferExecCompleted();
}
}
@@ -260,42 +260,42 @@ static void sub_805F2F0(void)
if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)) || (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
var = TRUE;
var2 = FALSE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
var = TRUE;
var2 = TRUE;
}
- gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBank];
- gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON];
+ gUnknown_020244D8 = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler];
+ gUnknown_020244DC = &gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK];
if (var)
{
if (var2 == TRUE)
{
- if (var2 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (var2 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
}
else
return;
}
- else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- if (GetBankIdentity(gActiveBank) == 3)
+ if (GetBattlerPosition(gActiveBattler) == 3)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 == 0 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 == 0 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 == 0)
{
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
@@ -303,14 +303,14 @@ static void sub_805F2F0(void)
else
return;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
}
else
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_805F2A8;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805F2A8;
}
}
@@ -319,60 +319,60 @@ static void sub_805F560(void)
bool32 sp = FALSE;
bool32 r10 = FALSE;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
- if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
- sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
+ sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- if (GetBankIdentity(gActiveBank) == 1)
+ if (GetBattlerPosition(gActiveBattler) == 1)
m4aMPlayContinue(&gMPlayInfo_BGM);
}
else
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
sp = TRUE;
}
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
r10 = TRUE;
}
}
else
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r10 = TRUE;
}
@@ -382,29 +382,29 @@ static void sub_805F560(void)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
- gBattleBankFunc[gActiveBank] = sub_805F2F0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805F2F0;
}
}
static void sub_805F994(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
OpponentBufferExecCompleted();
@@ -413,11 +413,11 @@ static void sub_805F994(void)
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
OpponentBufferExecCompleted();
@@ -425,21 +425,21 @@ static void CompleteOnHealthbarDone(void)
static void sub_805FAC4(void)
{
- if (!gSprites[gBankSpriteIds[gActiveBank]].inUse)
+ if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
{
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
OpponentBufferExecCompleted();
}
}
static void sub_805FB08(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
OpponentBufferExecCompleted();
}
}
@@ -452,7 +452,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -471,19 +471,19 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_805FC10(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_805FC80;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FC80;
}
}
static void sub_805FC80(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive && !IsCryPlayingOrClearCrySongs())
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
OpponentBufferExecCompleted();
@@ -493,60 +493,60 @@ static void sub_805FC80(void)
static void sub_805FD00(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
- CopyBattleSpriteInvisibility(gActiveBank);
- gBattleBankFunc[gActiveBank] = sub_805FC10;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FC10;
}
}
static void sub_805FDF0(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_805FD00;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FD00;
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
OpponentBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
OpponentBufferExecCompleted();
}
static void OpponentBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = OpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
@@ -557,13 +557,13 @@ static void OpponentHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += GetOpponentMonData(gBattlePartyID[gActiveBank], monData);
+ size += GetOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -571,7 +571,7 @@ static void OpponentHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
OpponentBufferExecCompleted();
}
@@ -585,7 +585,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
@@ -651,7 +651,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -666,7 +666,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -884,14 +884,14 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
static void OpponentHandleGetRawMonData(void)
{
struct BattlePokemon battleMon;
- u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1];
+ u8 *src = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
+ u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
dst[i] = src[i];
- EmitDataTransfer(1, gBattleBufferA[gActiveBank][2], dst);
+ BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst);
OpponentBufferExecCompleted();
}
@@ -900,13 +900,13 @@ static void OpponentHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetOpponentMonData(gBattlePartyID[gActiveBank]);
+ SetOpponentMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -919,11 +919,11 @@ static void OpponentHandleSetMonData(void)
static void SetOpponentMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -964,10 +964,10 @@ static void SetOpponentMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -981,198 +981,198 @@ static void SetOpponentMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
}
static void OpponentHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
OpponentBufferExecCompleted();
}
static void OpponentHandleLoadMonSprite(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = species;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_805F994;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805F994;
}
static void OpponentHandleSwitchInAnim(void)
{
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- sub_80613DC(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_805FDF0;
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ sub_80613DC(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FDF0;
}
static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit)
@@ -1180,66 +1180,66 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
- sub_806A068(species, GetBankIdentity(bank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
}
static void OpponentHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
OpponentBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
- gBattleBankFunc[gActiveBank] = sub_805FB08;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FB08;
}
break;
}
@@ -1262,7 +1262,7 @@ static void OpponentHandleDrawTrainerPic(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = sub_81D5588(gTrainerBattleOpponent_A);
else
trainerPicId = sub_81D5588(gTrainerBattleOpponent_B);
@@ -1276,7 +1276,7 @@ static void OpponentHandleDrawTrainerPic(void)
{
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
@@ -1292,7 +1292,7 @@ static void OpponentHandleDrawTrainerPic(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (gActiveBank != 1)
+ if (gActiveBattler != 1)
trainerPicId = gTrainers[gTrainerBattleOpponent_B].trainerPic;
else
trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic;
@@ -1304,7 +1304,7 @@ static void OpponentHandleDrawTrainerPic(void)
if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS))
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 152;
else // first mon
xPos = 200;
@@ -1314,20 +1314,20 @@ static void OpponentHandleDrawTrainerPic(void)
xPos = 176;
}
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
- sub_80A82E4(gActiveBank));
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void OpponentHandleTrainerSlide(void)
@@ -1346,7 +1346,7 @@ static void OpponentHandleTrainerSlide(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = sub_81D5588(gTrainerBattleOpponent_A);
else
trainerPicId = sub_81D5588(gTrainerBattleOpponent_B);
@@ -1360,7 +1360,7 @@ static void OpponentHandleTrainerSlide(void)
{
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
@@ -1376,7 +1376,7 @@ static void OpponentHandleTrainerSlide(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (gActiveBank != 1)
+ if (gActiveBattler != 1)
trainerPicId = gTrainers[gTrainerBattleOpponent_B].trainerPic;
else
trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic;
@@ -1386,47 +1386,47 @@ static void OpponentHandleTrainerSlide(void)
trainerPicId = gTrainers[gTrainerBattleOpponent_A].trainerPic;
}
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96;
- gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2;
}
static void OpponentHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_805F240;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805F240;
}
static void OpponentHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT);
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934;
- gBattleBankFunc[gActiveBank] = sub_805FAC4;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805FAC4;
}
}
}
@@ -1453,51 +1453,51 @@ static void OpponentHandlePause(void)
static void OpponentHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
OpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = OpponentDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = OpponentDoMoveAnimation;
}
}
}
static void OpponentDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1505,20 +1505,20 @@ static void OpponentDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
OpponentBufferExecCompleted();
}
break;
@@ -1531,11 +1531,11 @@ static void OpponentHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
- sub_81A57E4(gActiveBank, *stringId);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
+ sub_81A57E4(gActiveBattler, *stringId);
}
static void OpponentHandlePrintSelectionString(void)
@@ -1558,13 +1558,13 @@ static void OpponentHandleChooseMove(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
+ BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
OpponentBufferExecCompleted();
}
else
{
u8 chosenMoveId;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
if (gBattleTypeFlags & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_SAFARI | BATTLE_TYPE_ROAMER))
{
@@ -1575,24 +1575,24 @@ static void OpponentHandleChooseMove(void)
switch (chosenMoveId)
{
case 5:
- EmitTwoReturnValues(1, ACTION_WATCHES_CAREFULLY, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_WATCH_CAREFULLY, 0);
break;
case 4:
- EmitTwoReturnValues(1, ACTION_RUN, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0);
break;
case 6:
- EmitTwoReturnValues(1, 15, gBankTarget);
+ BtlController_EmitTwoReturnValues(1, 15, gBattlerTarget);
break;
default:
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_x10))
- gBankTarget = gActiveBank;
+ gBattlerTarget = gActiveBattler;
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH)
{
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
- EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBankTarget << 8));
+ BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattlerTarget << 8));
break;
}
OpponentBufferExecCompleted();
@@ -1607,11 +1607,11 @@ static void OpponentHandleChooseMove(void)
} while (move == MOVE_NONE);
if (gBattleMoves[move].target & (MOVE_TARGET_USER | MOVE_TARGET_x10))
- EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBank << 8));
+ BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gActiveBattler << 8));
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(Random() & 2) << 8));
+ BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(Random() & 2) << 8));
else
- EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBankByIdentity(IDENTITY_PLAYER_MON1) << 8));
+ BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) << 8));
OpponentBufferExecCompleted();
}
@@ -1620,7 +1620,7 @@ static void OpponentHandleChooseMove(void)
static void OpponentHandleChooseItem(void)
{
- EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBank / 2) * 2));
+ BtlController_EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2));
OpponentBufferExecCompleted();
}
@@ -1628,7 +1628,7 @@ static void OpponentHandleChoosePokemon(void)
{
s32 chosenMonId;
- if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) == 6)
+ if (*(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) == 6)
{
chosenMonId = GetMostSuitableMonToSwitchInto();
@@ -1638,17 +1638,17 @@ static void OpponentHandleChoosePokemon(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- bank2 = bank1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ bank2 = bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
}
else
{
- bank1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- bank2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ bank1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ bank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000))
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
firstId = 0, lastId = 3;
else
firstId = 3, lastId = 6;
@@ -1661,8 +1661,8 @@ static void OpponentHandleChoosePokemon(void)
for (chosenMonId = firstId; chosenMonId < lastId; chosenMonId++)
{
if (GetMonData(&gEnemyParty[chosenMonId], MON_DATA_HP) != 0
- && chosenMonId != gBattlePartyID[bank1]
- && chosenMonId != gBattlePartyID[bank2])
+ && chosenMonId != gBattlerPartyIndexes[bank1]
+ && chosenMonId != gBattlerPartyIndexes[bank2])
{
break;
}
@@ -1671,13 +1671,13 @@ static void OpponentHandleChoosePokemon(void)
}
else
{
- chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank);
- *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
+ chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler);
+ *(gBattleStruct->AI_monToSwitchIntoId + gActiveBattler) = 6;
}
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId;
- EmitChosenMonReturnValue(1, chosenMonId, NULL);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId;
+ BtlController_EmitChosenMonReturnValue(1, chosenMonId, NULL);
OpponentBufferExecCompleted();
}
@@ -1691,23 +1691,23 @@ static void OpponentHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = (gBattleBufferA[gActiveBank][3] << 8) | gBattleBufferA[gActiveBank][2];
+ hpVal = (gBattleBufferA[gActiveBattler][3] << 8) | gBattleBufferA[gActiveBattler][2];
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void OpponentHandleExpUpdate(void)
@@ -1717,24 +1717,24 @@ static void OpponentHandleExpUpdate(void)
static void OpponentHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void OpponentHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1791,7 +1791,7 @@ static void OpponentHandleCmd37(void)
static void OpponentHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
OpponentBufferExecCompleted();
}
@@ -1809,16 +1809,16 @@ static void OpponentHandleCmd40(void)
static void OpponentHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
OpponentBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1831,25 +1831,25 @@ static void OpponentHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
OpponentBufferExecCompleted();
}
static void OpponentHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
OpponentBufferExecCompleted();
@@ -1857,7 +1857,7 @@ static void OpponentHandlePlayFanfareOrBGM(void)
static void OpponentHandleFaintingCry(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, 25, 5);
OpponentBufferExecCompleted();
@@ -1865,7 +1865,7 @@ static void OpponentHandleFaintingCry(void)
static void OpponentHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
OpponentBufferExecCompleted();
}
@@ -1875,23 +1875,23 @@ static void OpponentHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_806280C);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_806280C);
taskId = CreateTask(sub_8062828, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_26;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_26;
}
static void sub_806280C(struct Sprite *sprite)
@@ -1903,79 +1903,79 @@ static void sub_806280C(struct Sprite *sprite)
static void sub_8062828(u8 taskId)
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_80613DC(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_80613DC(gActiveBattler, FALSE);
}
else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_80613DC(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_80613DC(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_80613DC(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_80613DC(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_80613DC(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_80613DC(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_805F560;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805F560;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
static void OpponentHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
OpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
- if (gBattleBufferA[gActiveBank][2] != 0)
+ if (gBattleBufferA[gActiveBattler][2] != 0)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
return;
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
}
}
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_8062A2C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8062A2C;
}
}
static void sub_8062A2C(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
OpponentBufferExecCompleted();
}
}
static void OpponentHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
OpponentBufferExecCompleted();
}
@@ -1986,25 +1986,25 @@ static void OpponentHandleCmd50(void)
static void OpponentHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
OpponentBufferExecCompleted();
}
static void OpponentHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
OpponentBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index a9d5b70eb..08af2e902 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -27,32 +27,32 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gAbsentBankFlags;
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gAbsentBattlerFlags;
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
extern u8 gPlayerDpadHoldFrames;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
extern u8 gMultiUsePlayerCursor;
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern u16 gPartnerTrainerId;
extern struct SpriteTemplate gUnknown_0202499C;
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gSpecialVar_ItemId;
extern u8 gUnknown_0203CEE8;
extern u8 gUnknown_0203CEE9;
extern u8 gUnknown_0203CF00[];
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u8 gNumberOfMovesToChoose;
extern u16 gBattle_BG0_X;
@@ -60,7 +60,7 @@ extern u16 gBattle_BG0_Y;
extern s32 gUnknown_0203CD70;
extern u8 gBankInMenu;
extern u32 gBattlePalaceMoveSelectionRngValue;
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern u8 gUnknown_020244B4[];
extern u16 gUnknown_020243FC;
extern struct UnusedControllerStruct gUnknown_02022D0C;
@@ -232,7 +232,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
nullsub_22
};
-static const u8 sTargetIdentities[] = {IDENTITY_PLAYER_MON1, IDENTITY_PLAYER_MON2, IDENTITY_OPPONENT_MON2, IDENTITY_OPPONENT_MON1};
+static const u8 sTargetIdentities[] = {B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT};
// unknown unused data
static const u8 sUnknown_0831C5FC[] = {0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58};
@@ -243,33 +243,33 @@ void nullsub_21(void)
void SetControllerToPlayer(void)
{
- gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand;
gDoingBattleAnim = FALSE;
gPlayerDpadHoldFrames = 0;
}
static void PlayerBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = PlayerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void PlayerBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sPlayerBufferCommands))
- sPlayerBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerBufferCommands))
+ sPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
PlayerBufferExecCompleted();
}
@@ -277,16 +277,16 @@ static void PlayerBufferRunCommand(void)
static void CompleteOnBankSpritePosX_0(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
PlayerBufferExecCompleted();
}
static void HandleInputChooseAction(void)
{
- u16 itemId = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u16 itemId = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- dp11b_obj_instanciate(gActiveBank, 1, 7, 1);
- dp11b_obj_instanciate(gActiveBank, 0, 7, 1);
+ dp11b_obj_instanciate(gActiveBattler, 1, 7, 1);
+ dp11b_obj_instanciate(gActiveBattler, 0, 7, 1);
if (gMain.newAndRepeatedKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2)
gPlayerDpadHoldFrames++;
@@ -297,71 +297,71 @@ static void HandleInputChooseAction(void)
{
PlaySE(SE_SELECT);
- switch (gActionSelectionCursor[gActiveBank])
+ switch (gActionSelectionCursor[gActiveBattler])
{
case 0:
- EmitTwoReturnValues(1, ACTION_USE_MOVE, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0);
break;
case 1:
- EmitTwoReturnValues(1, ACTION_USE_ITEM, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0);
break;
case 2:
- EmitTwoReturnValues(1, ACTION_SWITCH, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SWITCH, 0);
break;
case 3:
- EmitTwoReturnValues(1, ACTION_RUN, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_RUN, 0);
break;
}
PlayerBufferExecCompleted();
}
else if (gMain.newKeys & DPAD_LEFT)
{
- if (gActionSelectionCursor[gActiveBank] & 1) // if is ACTION_USE_ITEM or ACTION_RUN
+ if (gActionSelectionCursor[gActiveBattler] & 1) // if is B_ACTION_USE_ITEM or B_ACTION_RUN
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 1;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_RIGHT)
{
- if (!(gActionSelectionCursor[gActiveBank] & 1)) // if is ACTION_USE_MOVE or ACTION_SWITCH
+ if (!(gActionSelectionCursor[gActiveBattler] & 1)) // if is B_ACTION_USE_MOVE or B_ACTION_SWITCH
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 1;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_UP)
{
- if (gActionSelectionCursor[gActiveBank] & 2) // if is ACTION_SWITCH or ACTION_RUN
+ if (gActionSelectionCursor[gActiveBattler] & 2) // if is B_ACTION_SWITCH or B_ACTION_RUN
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 2;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (!(gActionSelectionCursor[gActiveBank] & 2)) // if is ACTION_USE_MOVE or ACTION_USE_ITEM
+ if (!(gActionSelectionCursor[gActiveBattler] & 2)) // if is B_ACTION_USE_MOVE or B_ACTION_USE_ITEM
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 2;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59)
{
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2
- && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(IDENTITY_PLAYER_MON1)])
+ && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT
+ && !(gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)])
&& !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- if (gBattleBufferA[gActiveBank][1] == ACTION_USE_ITEM)
+ if (gBattleBufferA[gActiveBattler][1] == B_ACTION_USE_ITEM)
{
// Add item to bag if it is a ball
if (itemId <= ITEM_PREMIER_BALL)
@@ -370,7 +370,7 @@ static void HandleInputChooseAction(void)
return;
}
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, ACTION_CANCEL_PARTNER, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_CANCEL_PARTNER, 0);
PlayerBufferExecCompleted();
}
}
@@ -382,9 +382,9 @@ static void HandleInputChooseAction(void)
static void sub_80577F0(void) // unused
{
- dp11b_obj_free(gActiveBank, 1);
- dp11b_obj_free(gActiveBank, 0);
- gBattleBankFunc[gActiveBank] = HandleInputChooseTarget;
+ dp11b_obj_free(gActiveBattler, 1);
+ dp11b_obj_free(gActiveBattler, 0);
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseTarget;
}
static void HandleInputChooseTarget(void)
@@ -397,14 +397,14 @@ static void HandleInputChooseTarget(void)
// what a weird loop
i = 0;
- if (gNoOfAllBanks != 0)
+ if (gBattlersCount != 0)
{
do
{
if (i != gMultiUsePlayerCursor)
dp11b_obj_free(i, 1);
i++;
- } while (i < gNoOfAllBanks);
+ } while (i < gBattlersCount);
}
if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2)
@@ -415,30 +415,30 @@ static void HandleInputChooseTarget(void)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
- EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBank] | (gMultiUsePlayerCursor << 8));
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
+ BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
dp11b_obj_free(gMultiUsePlayerCursor, 1);
PlayerBufferExecCompleted();
}
else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59)
{
PlaySE(SE_SELECT);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
- gBattleBankFunc[gActiveBank] = HandleInputChooseMove;
- dp11b_obj_instanciate(gActiveBank, 1, 7, 1);
- dp11b_obj_instanciate(gActiveBank, 0, 7, 1);
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
+ dp11b_obj_instanciate(gActiveBattler, 1, 7, 1);
+ dp11b_obj_instanciate(gActiveBattler, 0, 7, 1);
dp11b_obj_free(gMultiUsePlayerCursor, 1);
}
else if (gMain.newKeys & (DPAD_LEFT | DPAD_UP))
{
PlaySE(SE_SELECT);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
do
{
- u8 currSelIdentity = GetBankIdentity(gMultiUsePlayerCursor);
+ u8 currSelIdentity = GetBattlerPosition(gMultiUsePlayerCursor);
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
if (currSelIdentity == identities[i])
break;
@@ -447,40 +447,40 @@ static void HandleInputChooseTarget(void)
{
if (--i < 0)
i = 4; // UB: array out of range
- gMultiUsePlayerCursor = GetBankByIdentity(identities[i]);
- } while (gMultiUsePlayerCursor == gNoOfAllBanks);
+ gMultiUsePlayerCursor = GetBattlerAtPosition(identities[i]);
+ } while (gMultiUsePlayerCursor == gBattlersCount);
i = 0;
- switch (GetBankIdentity(gMultiUsePlayerCursor))
+ switch (GetBattlerPosition(gMultiUsePlayerCursor))
{
- case IDENTITY_PLAYER_MON1:
- case IDENTITY_PLAYER_MON2:
- if (gActiveBank != gMultiUsePlayerCursor)
+ case B_POSITION_PLAYER_LEFT:
+ case B_POSITION_PLAYER_RIGHT:
+ if (gActiveBattler != gMultiUsePlayerCursor)
i++;
- else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER)
+ else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER)
i++;
break;
- case IDENTITY_OPPONENT_MON1:
- case IDENTITY_OPPONENT_MON2:
+ case B_POSITION_OPPONENT_LEFT:
+ case B_POSITION_OPPONENT_RIGHT:
i++;
break;
}
- if (gAbsentBankFlags & gBitTable[gMultiUsePlayerCursor])
+ if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor])
i = 0;
} while (i == 0);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
}
else if (gMain.newKeys & (DPAD_RIGHT | DPAD_DOWN))
{
PlaySE(SE_SELECT);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C;
do
{
- u8 currSelIdentity = GetBankIdentity(gMultiUsePlayerCursor);
+ u8 currSelIdentity = GetBattlerPosition(gMultiUsePlayerCursor);
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
if (currSelIdentity == identities[i])
break;
@@ -489,36 +489,36 @@ static void HandleInputChooseTarget(void)
{
if (++i > 3)
i = 0;
- gMultiUsePlayerCursor = GetBankByIdentity(identities[i]);
- } while (gMultiUsePlayerCursor == gNoOfAllBanks);
+ gMultiUsePlayerCursor = GetBattlerAtPosition(identities[i]);
+ } while (gMultiUsePlayerCursor == gBattlersCount);
i = 0;
- switch (GetBankIdentity(gMultiUsePlayerCursor))
+ switch (GetBattlerPosition(gMultiUsePlayerCursor))
{
- case IDENTITY_PLAYER_MON1:
- case IDENTITY_PLAYER_MON2:
- if (gActiveBank != gMultiUsePlayerCursor)
+ case B_POSITION_PLAYER_LEFT:
+ case B_POSITION_PLAYER_RIGHT:
+ if (gActiveBattler != gMultiUsePlayerCursor)
i++;
- else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBank])].target & MOVE_TARGET_USER)
+ else if (gBattleMoves[GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + gMoveSelectionCursor[gActiveBattler])].target & MOVE_TARGET_USER)
i++;
break;
- case IDENTITY_OPPONENT_MON1:
- case IDENTITY_OPPONENT_MON2:
+ case B_POSITION_OPPONENT_LEFT:
+ case B_POSITION_OPPONENT_RIGHT:
i++;
break;
}
- if (gAbsentBankFlags & gBitTable[gMultiUsePlayerCursor])
+ if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor])
i = 0;
} while (i == 0);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
}
}
static void HandleInputChooseMove(void)
{
bool32 canSelectTarget = FALSE;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2)
gPlayerDpadHoldFrames++;
@@ -530,7 +530,7 @@ static void HandleInputChooseMove(void)
u8 moveTarget;
PlaySE(SE_SELECT);
- if (moveInfo->moves[gMoveSelectionCursor[gActiveBank]] == MOVE_CURSE)
+ if (moveInfo->moves[gMoveSelectionCursor[gActiveBattler]] == MOVE_CURSE)
{
if (moveInfo->monType1 != TYPE_GHOST && moveInfo->monType2 != TYPE_GHOST)
moveTarget = MOVE_TARGET_x10;
@@ -539,17 +539,17 @@ static void HandleInputChooseMove(void)
}
else
{
- moveTarget = gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBank]]].target;
+ moveTarget = gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].target;
}
if (moveTarget & MOVE_TARGET_x10)
- gMultiUsePlayerCursor = gActiveBank;
+ gMultiUsePlayerCursor = gActiveBattler;
else
- gMultiUsePlayerCursor = GetBankByIdentity((GetBankIdentity(gActiveBank) & BIT_SIDE) ^ BIT_SIDE);
+ gMultiUsePlayerCursor = GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE);
- if (!gBattleBufferA[gActiveBank][1]) // not a double battle
+ if (!gBattleBufferA[gActiveBattler][1]) // not a double battle
{
- if (moveTarget & MOVE_TARGET_USER && !gBattleBufferA[gActiveBank][2])
+ if (moveTarget & MOVE_TARGET_USER && !gBattleBufferA[gActiveBattler][2])
canSelectTarget++;
}
else // double battle
@@ -557,88 +557,88 @@ static void HandleInputChooseMove(void)
if (!(moveTarget & (MOVE_TARGET_RANDOM | MOVE_TARGET_BOTH | MOVE_TARGET_DEPENDS | MOVE_TARGET_FOES_AND_ALLY | MOVE_TARGET_OPPONENTS_FIELD | MOVE_TARGET_x10)))
canSelectTarget++; // either selected or user
- if (moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]] == 0)
+ if (moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]] == 0)
{
canSelectTarget = FALSE;
}
else if (!(moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER)) && CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) <= 1)
{
- gMultiUsePlayerCursor = GetDefaultMoveTarget(gActiveBank);
+ gMultiUsePlayerCursor = GetDefaultMoveTarget(gActiveBattler);
canSelectTarget = FALSE;
}
}
if (!canSelectTarget)
{
- EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBank] | (gMultiUsePlayerCursor << 8));
+ BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8));
PlayerBufferExecCompleted();
}
else
{
- gBattleBankFunc[gActiveBank] = HandleInputChooseTarget;
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseTarget;
if (moveTarget & (MOVE_TARGET_x10 | MOVE_TARGET_USER))
- gMultiUsePlayerCursor = gActiveBank;
- else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(IDENTITY_OPPONENT_MON1)])
- gMultiUsePlayerCursor = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ gMultiUsePlayerCursor = gActiveBattler;
+ else if (gAbsentBattlerFlags & gBitTable[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)])
+ gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
else
- gMultiUsePlayerCursor = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
- gSprites[gBankSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
+ gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8;
}
}
else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59)
{
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, 10, 0xFFFF);
+ BtlController_EmitTwoReturnValues(1, 10, 0xFFFF);
PlayerBufferExecCompleted();
}
else if (gMain.newKeys & DPAD_LEFT)
{
- if (gMoveSelectionCursor[gActiveBank] & 1)
+ if (gMoveSelectionCursor[gActiveBattler] & 1)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 1;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 1;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
}
}
else if (gMain.newKeys & DPAD_RIGHT)
{
- if (!(gMoveSelectionCursor[gActiveBank] & 1)
- && (gMoveSelectionCursor[gActiveBank] ^ 1) < gNumberOfMovesToChoose)
+ if (!(gMoveSelectionCursor[gActiveBattler] & 1)
+ && (gMoveSelectionCursor[gActiveBattler] ^ 1) < gNumberOfMovesToChoose)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 1;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 1;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
}
}
else if (gMain.newKeys & DPAD_UP)
{
- if (gMoveSelectionCursor[gActiveBank] & 2)
+ if (gMoveSelectionCursor[gActiveBattler] & 2)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 2;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 2;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
}
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (!(gMoveSelectionCursor[gActiveBank] & 2)
- && (gMoveSelectionCursor[gActiveBank] ^ 2) < gNumberOfMovesToChoose)
+ if (!(gMoveSelectionCursor[gActiveBattler] & 2)
+ && (gMoveSelectionCursor[gActiveBattler] ^ 2) < gNumberOfMovesToChoose)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 2;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 2;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
}
@@ -647,16 +647,16 @@ static void HandleInputChooseMove(void)
{
if (gNumberOfMovesToChoose > 1 && !(gBattleTypeFlags & BATTLE_TYPE_LINK))
{
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29);
- if (gMoveSelectionCursor[gActiveBank] != 0)
+ if (gMoveSelectionCursor[gActiveBattler] != 0)
gMultiUsePlayerCursor = 0;
else
- gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBank] + 1;
+ gMultiUsePlayerCursor = gMoveSelectionCursor[gActiveBattler] + 1;
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
BattleHandleAddTextPrinter(gText_BattleSwitchWhich, 0xB);
- gBattleBankFunc[gActiveBank] = HandleMoveSwitchting;
+ gBattlerControllerFuncs[gActiveBattler] = HandleMoveSwitchting;
}
}
}
@@ -677,35 +677,35 @@ u32 sub_8057FBC(void) // unused
gBattle_BG0_Y = 0x140;
var = 0xFF;
}
- if (gMain.newKeys & DPAD_LEFT && gMoveSelectionCursor[gActiveBank] & 1)
+ if (gMain.newKeys & DPAD_LEFT && gMoveSelectionCursor[gActiveBattler] & 1)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 1;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 1;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
}
- if (gMain.newKeys & DPAD_RIGHT && !(gMoveSelectionCursor[gActiveBank] & 1)
- && (gMoveSelectionCursor[gActiveBank] ^ 1) < gNumberOfMovesToChoose)
+ if (gMain.newKeys & DPAD_RIGHT && !(gMoveSelectionCursor[gActiveBattler] & 1)
+ && (gMoveSelectionCursor[gActiveBattler] ^ 1) < gNumberOfMovesToChoose)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 1;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 1;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
}
- if (gMain.newKeys & DPAD_UP && gMoveSelectionCursor[gActiveBank] & 2)
+ if (gMain.newKeys & DPAD_UP && gMoveSelectionCursor[gActiveBattler] & 2)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 2;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 2;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
}
- if (gMain.newKeys & DPAD_DOWN && !(gMoveSelectionCursor[gActiveBank] & 2)
- && (gMoveSelectionCursor[gActiveBank] ^ 2) < gNumberOfMovesToChoose)
+ if (gMain.newKeys & DPAD_DOWN && !(gMoveSelectionCursor[gActiveBattler] & 2)
+ && (gMoveSelectionCursor[gActiveBattler] ^ 2) < gNumberOfMovesToChoose)
{
- MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBank]);
- gMoveSelectionCursor[gActiveBank] ^= 2;
+ MoveSelectionDestroyCursorAt(gMoveSelectionCursor[gActiveBattler]);
+ gMoveSelectionCursor[gActiveBattler] ^= 2;
PlaySE(SE_SELECT);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
}
return var;
@@ -721,73 +721,73 @@ static void HandleMoveSwitchting(void)
{
PlaySE(SE_SELECT);
- if (gMoveSelectionCursor[gActiveBank] != gMultiUsePlayerCursor)
+ if (gMoveSelectionCursor[gActiveBattler] != gMultiUsePlayerCursor)
{
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
s32 i;
// swap moves and pp
- i = moveInfo->moves[gMoveSelectionCursor[gActiveBank]];
- moveInfo->moves[gMoveSelectionCursor[gActiveBank]] = moveInfo->moves[gMultiUsePlayerCursor];
+ i = moveInfo->moves[gMoveSelectionCursor[gActiveBattler]];
+ moveInfo->moves[gMoveSelectionCursor[gActiveBattler]] = moveInfo->moves[gMultiUsePlayerCursor];
moveInfo->moves[gMultiUsePlayerCursor] = i;
- i = moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]];
- moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]] = moveInfo->currentPp[gMultiUsePlayerCursor];
+ i = moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]];
+ moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]] = moveInfo->currentPp[gMultiUsePlayerCursor];
moveInfo->currentPp[gMultiUsePlayerCursor] = i;
- i = moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]];
- moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]] = moveInfo->maxPp[gMultiUsePlayerCursor];
+ i = moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]];
+ moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]] = moveInfo->maxPp[gMultiUsePlayerCursor];
moveInfo->maxPp[gMultiUsePlayerCursor] = i;
- if (gDisableStructs[gActiveBank].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBank]])
+ if (gDisableStructs[gActiveBattler].unk18_b & gBitTable[gMoveSelectionCursor[gActiveBattler]])
{
- gDisableStructs[gActiveBank].unk18_b &= (~gBitTable[gMoveSelectionCursor[gActiveBank]]);
- gDisableStructs[gActiveBank].unk18_b |= gBitTable[gMultiUsePlayerCursor];
+ gDisableStructs[gActiveBattler].unk18_b &= (~gBitTable[gMoveSelectionCursor[gActiveBattler]]);
+ gDisableStructs[gActiveBattler].unk18_b |= gBitTable[gMultiUsePlayerCursor];
}
MoveSelectionDisplayMoveNames();
for (i = 0; i < 4; i++)
- perMovePPBonuses[i] = (gBattleMons[gActiveBank].ppBonuses & (3 << (i * 2))) >> (i * 2);
+ perMovePPBonuses[i] = (gBattleMons[gActiveBattler].ppBonuses & (3 << (i * 2))) >> (i * 2);
- totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]];
- perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gMultiUsePlayerCursor];
+ totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]];
+ perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gMultiUsePlayerCursor];
perMovePPBonuses[gMultiUsePlayerCursor] = totalPPBonuses;
totalPPBonuses = 0;
for (i = 0; i < 4; i++)
totalPPBonuses |= perMovePPBonuses[i] << (i * 2);
- gBattleMons[gActiveBank].ppBonuses = totalPPBonuses;
+ gBattleMons[gActiveBattler].ppBonuses = totalPPBonuses;
for (i = 0; i < 4; i++)
{
- gBattleMons[gActiveBank].moves[i] = moveInfo->moves[i];
- gBattleMons[gActiveBank].pp[i] = moveInfo->currentPp[i];
+ gBattleMons[gActiveBattler].moves[i] = moveInfo->moves[i];
+ gBattleMons[gActiveBattler].pp[i] = moveInfo->currentPp[i];
}
- if (!(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ if (!(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
for (i = 0; i < 4; i++)
{
- moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i);
- moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i);
+ moveStruct.moves[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i);
+ moveStruct.currentPp[i] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i);
}
- totalPPBonuses = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES);
+ totalPPBonuses = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES);
for (i = 0; i < 4; i++)
perMovePPBonuses[i] = (totalPPBonuses & (3 << (i * 2))) >> (i * 2);
- i = moveStruct.moves[gMoveSelectionCursor[gActiveBank]];
- moveStruct.moves[gMoveSelectionCursor[gActiveBank]] = moveStruct.moves[gMultiUsePlayerCursor];
+ i = moveStruct.moves[gMoveSelectionCursor[gActiveBattler]];
+ moveStruct.moves[gMoveSelectionCursor[gActiveBattler]] = moveStruct.moves[gMultiUsePlayerCursor];
moveStruct.moves[gMultiUsePlayerCursor] = i;
- i = moveStruct.currentPp[gMoveSelectionCursor[gActiveBank]];
- moveStruct.currentPp[gMoveSelectionCursor[gActiveBank]] = moveStruct.currentPp[gMultiUsePlayerCursor];
+ i = moveStruct.currentPp[gMoveSelectionCursor[gActiveBattler]];
+ moveStruct.currentPp[gMoveSelectionCursor[gActiveBattler]] = moveStruct.currentPp[gMultiUsePlayerCursor];
moveStruct.currentPp[gMultiUsePlayerCursor] = i;
- totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBank]];
- perMovePPBonuses[gMoveSelectionCursor[gActiveBank]] = perMovePPBonuses[gMultiUsePlayerCursor];
+ totalPPBonuses = perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]];
+ perMovePPBonuses[gMoveSelectionCursor[gActiveBattler]] = perMovePPBonuses[gMultiUsePlayerCursor];
perMovePPBonuses[gMultiUsePlayerCursor] = totalPPBonuses;
totalPPBonuses = 0;
@@ -796,17 +796,17 @@ static void HandleMoveSwitchting(void)
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]);
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MOVE1 + i, &moveStruct.moves[i]);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP1 + i, &moveStruct.currentPp[i]);
}
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES, &totalPPBonuses);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_PP_BONUSES, &totalPPBonuses);
}
}
- gBattleBankFunc[gActiveBank] = HandleInputChooseMove;
- gMoveSelectionCursor[gActiveBank] = gMultiUsePlayerCursor;
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
+ gMoveSelectionCursor[gActiveBattler] = gMultiUsePlayerCursor;
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpString();
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
@@ -815,8 +815,8 @@ static void HandleMoveSwitchting(void)
{
PlaySE(SE_SELECT);
MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor);
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
- gBattleBankFunc[gActiveBank] = HandleInputChooseMove;
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
MoveSelectionDisplayPpString();
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
@@ -825,15 +825,15 @@ static void HandleMoveSwitchting(void)
{
if (gMultiUsePlayerCursor & 1)
{
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29);
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29);
else
MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor);
gMultiUsePlayerCursor ^= 1;
PlaySE(SE_SELECT);
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0);
else
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
@@ -843,15 +843,15 @@ static void HandleMoveSwitchting(void)
{
if (!(gMultiUsePlayerCursor & 1) && (gMultiUsePlayerCursor ^ 1) < gNumberOfMovesToChoose)
{
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29);
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29);
else
MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor);
gMultiUsePlayerCursor ^= 1;
PlaySE(SE_SELECT);
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0);
else
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
@@ -861,15 +861,15 @@ static void HandleMoveSwitchting(void)
{
if (gMultiUsePlayerCursor & 2)
{
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29);
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29);
else
MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor);
gMultiUsePlayerCursor ^= 2;
PlaySE(SE_SELECT);
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0);
else
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
@@ -879,15 +879,15 @@ static void HandleMoveSwitchting(void)
{
if (!(gMultiUsePlayerCursor & 2) && (gMultiUsePlayerCursor ^ 2) < gNumberOfMovesToChoose)
{
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 29);
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 29);
else
MoveSelectionDestroyCursorAt(gMultiUsePlayerCursor);
gMultiUsePlayerCursor ^= 2;
PlaySE(SE_SELECT);
- if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBank])
+ if (gMultiUsePlayerCursor == gMoveSelectionCursor[gActiveBattler])
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 0);
else
MoveSelectionCreateCursorAt(gMultiUsePlayerCursor, 27);
@@ -905,7 +905,7 @@ static void sub_80586F8(void)
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64);
- if (gBattleOutcome == BATTLE_WON)
+ if (gBattleOutcome == B_OUTCOME_WON)
sub_817E3F4();
FreeAllWindowBuffers();
}
@@ -918,7 +918,7 @@ static void sub_80586F8(void)
gMain.inBattle = 0;
gMain.callback1 = gPreBattleCallback1;
SetMainCallback2(sub_8038D64);
- if (gBattleOutcome == BATTLE_WON)
+ if (gBattleOutcome == B_OUTCOME_WON)
sub_817E3F4();
FreeAllWindowBuffers();
}
@@ -938,7 +938,7 @@ void sub_80587B0(void)
else
sub_800ADF8();
- gBattleBankFunc[gActiveBank] = sub_80586F8;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80586F8;
}
}
else
@@ -953,32 +953,32 @@ void sub_80587B0(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
PlayerBufferExecCompleted();
}
static void CompleteOnBankSpriteCallbackDummy2(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
PlayerBufferExecCompleted();
}
static void sub_80588B4(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
nullsub_25(gSaveBlock2Ptr->playerGender);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
PlayerBufferExecCompleted();
}
}
static void sub_8058924(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
PlayerBufferExecCompleted();
}
}
@@ -989,33 +989,33 @@ static void sub_805896C(void)
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
var = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
var = TRUE;
}
- if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
if (IsDoubleBattle())
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_8058924;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8058924;
}
}
@@ -1024,58 +1024,58 @@ static void sub_8058B40(void)
bool32 r9 = FALSE;
bool32 r8 = FALSE;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
- sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
+ sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
m4aMPlayContinue(&gMPlayInfo_BGM);
else
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
r9 = TRUE;
}
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
r8 = TRUE;
}
}
else
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r8 = TRUE;
}
@@ -1084,63 +1084,63 @@ static void sub_8058B40(void)
if (r9 && r8)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
- gBattleBankFunc[gActiveBank] = sub_805896C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805896C;
}
}
static void sub_8058EDC(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- CopyBattleSpriteInvisibility(gActiveBank);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_8058FC0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8058FC0;
}
}
static void sub_8058FC0(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive
&& !IsCryPlayingOrClearCrySongs())
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlayerBufferExecCompleted();
}
}
static void sub_805902C(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
- gBattleBankFunc[gActiveBank] = sub_8058EDC;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8058EDC;
}
}
@@ -1155,17 +1155,17 @@ void c3_0802FDF4(u8 taskId)
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlayerBufferExecCompleted();
}
}
@@ -1187,7 +1187,7 @@ static void Task_GiveExpToMon(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
s16 gainedExp = gTasks[taskId].tExpTask_gainedExp;
- if (IsDoubleBattle() == TRUE || monId != gBattlePartyID[bank]) // give exp without the expbar
+ if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[bank]) // give exp without the expbar
{
struct Pokemon *mon = &gPlayerParty[monId];
u16 species = GetMonData(mon, MON_DATA_SPECIES);
@@ -1202,13 +1202,13 @@ static void Task_GiveExpToMon(u8 taskId)
SetMonData(mon, MON_DATA_EXP, &nextLvlExp);
CalculateMonStats(mon);
gainedExp -= nextLvlExp - currExp;
- savedActiveBank = gActiveBank;
- gActiveBank = bank;
- EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
- gActiveBank = savedActiveBank;
+ savedActiveBank = gActiveBattler;
+ gActiveBattler = bank;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
+ gActiveBattler = savedActiveBank;
if (IsDoubleBattle() == TRUE
- && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_MON]))
+ && ((u16)(monId) == gBattlerPartyIndexes[bank] || (u16)(monId) == gBattlerPartyIndexes[bank ^ BIT_FLANK]))
gTasks[taskId].func = sub_8059544;
else
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
@@ -1217,7 +1217,7 @@ static void Task_GiveExpToMon(u8 taskId)
{
currExp += gainedExp;
SetMonData(mon, MON_DATA_EXP, &currExp);
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
}
@@ -1241,7 +1241,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
exp -= currLvlExp;
expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
- SetBattleBarStruct(bank, gHealthBoxesIds[bank], expToNextLvl, exp, -gainedExp);
+ SetBattleBarStruct(bank, gHealthboxSpriteIds[bank], expToNextLvl, exp, -gainedExp);
PlaySE(SE_EXP);
gTasks[taskId].func = sub_8059400;
}
@@ -1259,8 +1259,8 @@ static void sub_8059400(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
s16 r4;
- r4 = sub_8074AA0(bank, gHealthBoxesIds[bank], EXP_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[bank]);
+ r4 = sub_8074AA0(bank, gHealthboxSpriteIds[bank], EXP_BAR, 0);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[bank]);
if (r4 == -1)
{
u8 level;
@@ -1281,17 +1281,17 @@ static void sub_8059400(u8 taskId)
SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &expOnNextLvl);
CalculateMonStats(&gPlayerParty[monId]);
gainedExp -= expOnNextLvl - currExp;
- savedActiveBank = gActiveBank;
- gActiveBank = bank;
- EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
- gActiveBank = savedActiveBank;
+ savedActiveBank = gActiveBattler;
+ gActiveBattler = bank;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
+ gActiveBattler = savedActiveBank;
gTasks[taskId].func = sub_8059544;
}
else
{
currExp += gainedExp;
SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp);
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
}
@@ -1303,8 +1303,8 @@ static void sub_8059544(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
u8 monIndex = gTasks[taskId].tExpTask_monId;
- if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
- bank ^= BIT_MON;
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK])
+ bank ^= BIT_FLANK;
InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP);
gTasks[taskId].func = sub_80595A4;
@@ -1320,10 +1320,10 @@ static void sub_80595A4(u8 taskId)
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
- if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
- UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_MON], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK])
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
else
- UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL);
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
}
@@ -1337,31 +1337,31 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId)
monIndex = gTasks[taskId].tExpTask_monId;
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
bank = gTasks[taskId].tExpTask_bank;
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
static void sub_80596A8(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
nullsub_24(species);
- FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerBufferExecCompleted();
}
}
static void sub_8059744(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerBufferExecCompleted();
}
}
@@ -1378,9 +1378,9 @@ static void sub_80597CC(void)
{
u8 r4;
- gBattleBankFunc[gActiveBank] = sub_8059828;
- r4 = gTasks[gUnknown_03005D7C[gActiveBank]].data[0];
- DestroyTask(gUnknown_03005D7C[gActiveBank]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8059828;
+ r4 = gTasks[gUnknown_03005D7C[gActiveBattler]].data[0];
+ DestroyTask(gUnknown_03005D7C[gActiveBattler]);
FreeAllWindowBuffers();
sub_81B89AC(r4);
}
@@ -1391,11 +1391,11 @@ static void sub_8059828(void)
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
if (gUnknown_0203CEE8 == 1)
- EmitChosenMonReturnValue(1, gUnknown_0203CEE9, gUnknown_0203CF00);
+ BtlController_EmitChosenMonReturnValue(1, gUnknown_0203CEE9, gUnknown_0203CF00);
else
- EmitChosenMonReturnValue(1, 6, NULL);
+ BtlController_EmitChosenMonReturnValue(1, 6, NULL);
- if ((gBattleBufferA[gActiveBank][1] & 0xF) == 1)
+ if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1)
PrintLinkStandbyMsg();
PlayerBufferExecCompleted();
@@ -1406,7 +1406,7 @@ static void OpenBagAndChooseItem(void)
{
if (!gPaletteFade.active)
{
- gBattleBankFunc[gActiveBank] = CompleteWhenChoseItem;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem;
nullsub_35();
FreeAllWindowBuffers();
sub_81AABB0();
@@ -1417,20 +1417,20 @@ static void CompleteWhenChoseItem(void)
{
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
- EmitOneReturnValue(1, gSpecialVar_ItemId);
+ BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
PlayerBufferExecCompleted();
}
}
static void CompleteOnSpecialAnimDone(void)
{
- if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
PlayerBufferExecCompleted();
}
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -1469,9 +1469,9 @@ static void PlayerHandleUnknownYesNoInput(void)
PlaySE(SE_SELECT);
if (gMultiUsePlayerCursor != 0)
- EmitTwoReturnValues(1, 0xE, 0);
+ BtlController_EmitTwoReturnValues(1, 0xE, 0);
else
- EmitTwoReturnValues(1, 0xD, 0);
+ BtlController_EmitTwoReturnValues(1, 0xD, 0);
PlayerBufferExecCompleted();
}
@@ -1486,7 +1486,7 @@ static void PlayerHandleUnknownYesNoInput(void)
static void MoveSelectionDisplayMoveNames(void)
{
s32 i;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
gNumberOfMovesToChoose = 0;
for (i = 0; i < 4; i++)
@@ -1510,15 +1510,15 @@ static void MoveSelectionDisplayPpNumber(void)
u8 *txtPtr;
struct ChooseMoveStruct *moveInfo;
- if (gBattleBufferA[gActiveBank][2] == TRUE) // check if we didn't want to display pp number
+ if (gBattleBufferA[gActiveBattler][2] == TRUE) // check if we didn't want to display pp number
return;
SetPpNumbersPaletteInMoveSelection();
- moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
- txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBank]], STR_CONV_MODE_RIGHT_ALIGN, 2);
+ moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
+ txtPtr = ConvertIntToDecimalStringN(gDisplayedStringBattle, moveInfo->currentPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
txtPtr[0] = CHAR_SLASH;
txtPtr++;
- ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBank]], STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(txtPtr, moveInfo->maxPp[gMoveSelectionCursor[gActiveBattler]], STR_CONV_MODE_RIGHT_ALIGN, 2);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 9);
}
@@ -1526,7 +1526,7 @@ static void MoveSelectionDisplayPpNumber(void)
static void MoveSelectionDisplayMoveType(void)
{
u8 *txtPtr;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType);
txtPtr[0] = EXT_CTRL_CODE_BEGIN;
@@ -1536,7 +1536,7 @@ static void MoveSelectionDisplayMoveType(void)
txtPtr[0] = 1;
txtPtr++;
- StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBank]]].type]);
+ StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 10);
}
@@ -1592,13 +1592,13 @@ void SetCB2ToReshowScreenAfterMenu2(void)
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
PlayerBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
PlayerBufferExecCompleted();
}
@@ -1619,13 +1619,13 @@ static void PlayerHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyPlayerMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyPlayerMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -1633,7 +1633,7 @@ static void PlayerHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
PlayerBufferExecCompleted();
}
@@ -1647,7 +1647,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
@@ -1713,7 +1713,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -1728,7 +1728,7 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -1946,14 +1946,14 @@ static u32 CopyPlayerMonData(u8 monId, u8 *dst)
void PlayerHandleGetRawMonData(void)
{
struct BattlePokemon battleMon;
- u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1];
+ u8 *src = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
+ u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
dst[i] = src[i];
- EmitDataTransfer(1, gBattleBufferA[gActiveBank][2], dst);
+ BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst);
PlayerBufferExecCompleted();
}
@@ -1962,13 +1962,13 @@ static void PlayerHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetPlayerMonData(gBattlePartyID[gActiveBank]);
+ SetPlayerMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -1981,11 +1981,11 @@ static void PlayerHandleSetMonData(void)
static void SetPlayerMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -2026,10 +2026,10 @@ static void SetPlayerMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -2043,187 +2043,187 @@ static void SetPlayerMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
}
static void PlayerHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
PlayerBufferExecCompleted();
}
static void PlayerHandleLoadMonSprite(void)
{
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpritePosX_0;
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpritePosX_0;
}
static void PlayerHandleSwitchInAnim(void)
{
- ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- gActionSelectionCursor[gActiveBank] = 0;
- gMoveSelectionCursor[gActiveBank] = 0;
- sub_805B258(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_805902C;
+ ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
+ sub_805B258(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_805902C;
}
static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit)
@@ -2231,64 +2231,64 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- sub_806A068(species, GetBankIdentity(bank));
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(
+ gBattlerSpriteIds[bank] = CreateSprite(
&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
}
static void PlayerHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
- gBattleBankFunc[gActiveBank] = sub_8059744;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8059744;
}
break;
}
@@ -2326,7 +2326,7 @@ static void PlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 90;
else // first mon
xPos = 32;
@@ -2352,32 +2352,32 @@ static void PlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != STEVEN_PARTNER_ID)
{
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
-
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0;
- gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1;
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
+
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
// use the back pic in any other scenario
else
{
- DecompressTrainerBackPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
+ DecompressTrainerBackPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
}
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void PlayerHandleTrainerSlide(void)
@@ -2406,49 +2406,49 @@ static void PlayerHandleTrainerSlide(void)
trainerPicId = gSaveBlock2Ptr->playerGender;
}
- DecompressTrainerBackPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30);
+ DecompressTrainerBackPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2;
}
static void PlayerHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
- gBattleBankFunc[gActiveBank] = sub_80588B4;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
+ gBattlerControllerFuncs[gActiveBattler] = sub_80588B4;
}
static void PlayerHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00;
- gBattleBankFunc[gActiveBank] = sub_80596A8;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80596A8;
}
}
}
@@ -2463,23 +2463,23 @@ static void PlayerHandleSuccessBallThrowAnim(void)
{
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
}
static void PlayerHandleBallThrowAnim(void)
{
- u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1];
+ u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1];
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
}
static void PlayerHandlePause(void)
{
- u8 var = gBattleBufferA[gActiveBank][1];
+ u8 var = gBattleBufferA[gActiveBattler][1];
// WTF is this??
while (var != 0)
@@ -2490,25 +2490,25 @@ static void PlayerHandlePause(void)
static void PlayerHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
PlayerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = PlayerDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerDoMoveAnimation;
sub_817E0FC(move, gWeatherMoveAnim, gAnimDisableStructPtr);
}
}
@@ -2516,26 +2516,26 @@ static void PlayerHandleMoveAnimation(void)
static void PlayerDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -2543,20 +2543,20 @@ static void PlayerDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlayerBufferExecCompleted();
}
break;
@@ -2569,17 +2569,17 @@ static void PlayerHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2;
sub_817C95C(*stringId);
- sub_81A57E4(gActiveBank, *stringId);
+ sub_81A57E4(gActiveBattler, *stringId);
}
static void PlayerHandlePrintSelectionString(void)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
PlayerHandlePrintString();
else
PlayerBufferExecCompleted();
@@ -2591,7 +2591,7 @@ static void HandleChooseActionAfterDma3(void)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 160;
- gBattleBankFunc[gActiveBank] = HandleInputChooseAction;
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction;
}
}
@@ -2599,27 +2599,27 @@ static void PlayerHandleChooseAction(void)
{
s32 i;
- gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3;
+ gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
sub_817F2A8();
BattleHandleAddTextPrinter(gText_BattleMenu, 2);
for (i = 0; i < 4; i++)
ActionSelectionDestroyCursorAt(i);
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 1);
}
static void PlayerHandleUnknownYesNoBox(void)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
HandleBattleWindow(0x18, 8, 0x1D, 0xD, 0);
BattleHandleAddTextPrinter(gText_BattleYesNoChoice, 12);
gMultiUsePlayerCursor = 1;
BattleCreateYesNoCursorAt(1);
- gBattleBankFunc[gActiveBank] = PlayerHandleUnknownYesNoInput;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerHandleUnknownYesNoInput;
}
else
{
@@ -2633,16 +2633,16 @@ static void HandleChooseMoveAfterDma3(void)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 320;
- gBattleBankFunc[gActiveBank] = HandleInputChooseMove;
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove;
}
}
static void PlayerChooseMoveInBattlePalace(void)
{
- if (--*(gBattleStruct->field_298 + gActiveBank) == 0)
+ if (--*(gBattleStruct->field_298 + gActiveBattler) == 0)
{
gBattlePalaceMoveSelectionRngValue = gRngValue;
- EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
+ BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
PlayerBufferExecCompleted();
}
}
@@ -2651,13 +2651,13 @@ static void PlayerHandleChooseMove(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- *(gBattleStruct->field_298 + gActiveBank) = 8;
- gBattleBankFunc[gActiveBank] = PlayerChooseMoveInBattlePalace;
+ *(gBattleStruct->field_298 + gActiveBattler) = 8;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerChooseMoveInBattlePalace;
}
else
{
InitMoveSelectionsVarsAndStrings();
- gBattleBankFunc[gActiveBank] = HandleChooseMoveAfterDma3;
+ gBattlerControllerFuncs[gActiveBattler] = HandleChooseMoveAfterDma3;
}
}
@@ -2665,7 +2665,7 @@ void InitMoveSelectionsVarsAndStrings(void)
{
MoveSelectionDisplayMoveNames();
gMultiUsePlayerCursor = 0xFF;
- MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBank], 0);
+ MoveSelectionCreateCursorAt(gMoveSelectionCursor[gActiveBattler], 0);
MoveSelectionDisplayPpString();
MoveSelectionDisplayPpNumber();
MoveSelectionDisplayMoveType();
@@ -2676,11 +2676,11 @@ static void PlayerHandleChooseItem(void)
s32 i;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gBattleBankFunc[gActiveBank] = OpenBagAndChooseItem;
- gBankInMenu = gActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = OpenBagAndChooseItem;
+ gBankInMenu = gActiveBattler;
for (i = 0; i < 3; i++)
- gUnknown_0203CF00[i] = gBattleBufferA[gActiveBank][1 + i];
+ gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][1 + i];
}
static void PlayerHandleChoosePokemon(void)
@@ -2688,23 +2688,23 @@ static void PlayerHandleChoosePokemon(void)
s32 i;
for (i = 0; i < 3; i++)
- gUnknown_0203CF00[i] = gBattleBufferA[gActiveBank][4 + i];
+ gUnknown_0203CF00[i] = gBattleBufferA[gActiveBattler][4 + i];
- if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBank][1] & 0xF) != 2)
+ if (gBattleTypeFlags & BATTLE_TYPE_ARENA && (gBattleBufferA[gActiveBattler][1] & 0xF) != 2)
{
- EmitChosenMonReturnValue(1, gBattlePartyID[gActiveBank] + 1, gUnknown_0203CF00);
+ BtlController_EmitChosenMonReturnValue(1, gBattlerPartyIndexes[gActiveBattler] + 1, gUnknown_0203CF00);
PlayerBufferExecCompleted();
}
else
{
- gUnknown_03005D7C[gActiveBank] = CreateTask(TaskDummy, 0xFF);
- gTasks[gUnknown_03005D7C[gActiveBank]].data[0] = gBattleBufferA[gActiveBank][1] & 0xF;
- *(&gBattleStruct->field_49) = gBattleBufferA[gActiveBank][1] >> 4;
- *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBank][2];
- *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBank][3];
+ gUnknown_03005D7C[gActiveBattler] = CreateTask(TaskDummy, 0xFF);
+ gTasks[gUnknown_03005D7C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF;
+ *(&gBattleStruct->field_49) = gBattleBufferA[gActiveBattler][1] >> 4;
+ *(&gBattleStruct->field_8B) = gBattleBufferA[gActiveBattler][2];
+ *(&gBattleStruct->field_B0) = gBattleBufferA[gActiveBattler][3];
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
- gBattleBankFunc[gActiveBank] = sub_80597CC;
- gBankInMenu = gActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80597CC;
+ gBankInMenu = gActiveBattler;
}
}
@@ -2720,32 +2720,32 @@ static void PlayerHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal > 0)
gUnknown_0203CD70 += hpVal;
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void PlayerHandleExpUpdate(void)
{
- u8 monId = gBattleBufferA[gActiveBank][1];
+ u8 monId = gBattleBufferA[gActiveBattler][1];
if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL)
{
@@ -2758,12 +2758,12 @@ static void PlayerHandleExpUpdate(void)
LoadBattleBarGfx(1);
GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // unused return value
- expPointsToGive = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ expPointsToGive = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
taskId = CreateTask(Task_GiveExpToMon, 10);
gTasks[taskId].tExpTask_monId = monId;
gTasks[taskId].tExpTask_gainedExp = expPointsToGive;
- gTasks[taskId].tExpTask_bank = gActiveBank;
- gBattleBankFunc[gActiveBank] = nullsub_21;
+ gTasks[taskId].tExpTask_bank = gActiveBattler;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_21;
}
}
@@ -2774,32 +2774,32 @@ static void PlayerHandleExpUpdate(void)
static void PlayerHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void PlayerHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void PlayerHandleStatusXor(void)
{
- u8 val = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBank][1];
+ u8 val = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS) ^ gBattleBufferA[gActiveBattler][1];
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_STATUS, &val);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_STATUS, &val);
PlayerBufferExecCompleted();
}
@@ -2810,13 +2810,13 @@ static void PlayerHandleDataTransfer(void)
static void PlayerHandleDMA3Transfer(void)
{
- u32 dstArg = gBattleBufferA[gActiveBank][1]
- | (gBattleBufferA[gActiveBank][2] << 8)
- | (gBattleBufferA[gActiveBank][3] << 16)
- | (gBattleBufferA[gActiveBank][4] << 24);
- u16 sizeArg = gBattleBufferA[gActiveBank][5] | (gBattleBufferA[gActiveBank][6] << 8);
+ u32 dstArg = gBattleBufferA[gActiveBattler][1]
+ | (gBattleBufferA[gActiveBattler][2] << 8)
+ | (gBattleBufferA[gActiveBattler][3] << 16)
+ | (gBattleBufferA[gActiveBattler][4] << 24);
+ u16 sizeArg = gBattleBufferA[gActiveBattler][5] | (gBattleBufferA[gActiveBattler][6] << 8);
- const u8 *src = &gBattleBufferA[gActiveBank][7];
+ const u8 *src = &gBattleBufferA[gActiveBattler][7];
u8 *dst = (u8*)(dstArg);
u32 size = sizeArg;
@@ -2837,7 +2837,7 @@ static void PlayerHandleDMA3Transfer(void)
static void PlayerHandlePlayBGM(void)
{
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
PlayerBufferExecCompleted();
}
@@ -2848,25 +2848,25 @@ static void PlayerHandleCmd32(void)
static void PlayerHandleTwoReturnValues(void)
{
- EmitTwoReturnValues(1, 0, 0);
+ BtlController_EmitTwoReturnValues(1, 0, 0);
PlayerBufferExecCompleted();
}
static void PlayerHandleChosenMonReturnValue(void)
{
- EmitChosenMonReturnValue(1, 0, NULL);
+ BtlController_EmitChosenMonReturnValue(1, 0, NULL);
PlayerBufferExecCompleted();
}
static void PlayerHandleOneReturnValue(void)
{
- EmitOneReturnValue(1, 0);
+ BtlController_EmitOneReturnValue(1, 0);
PlayerBufferExecCompleted();
}
static void PlayerHandleOneReturnValue_Duplicate(void)
{
- EmitOneReturnValue_Duplicate(1, 0);
+ BtlController_EmitOneReturnValue_Duplicate(1, 0);
PlayerBufferExecCompleted();
}
@@ -2878,7 +2878,7 @@ static void PlayerHandleCmd37(void)
static void PlayerHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
PlayerBufferExecCompleted();
}
@@ -2896,16 +2896,16 @@ static void PlayerHandleCmd40(void)
static void PlayerHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
PlayerBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -2918,25 +2918,25 @@ static void PlayerHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
PlayerBufferExecCompleted();
}
static void PlayerHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
PlayerBufferExecCompleted();
@@ -2944,7 +2944,7 @@ static void PlayerHandlePlayFanfareOrBGM(void)
static void PlayerHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, -25, 5);
PlayerBufferExecCompleted();
@@ -2952,7 +2952,7 @@ static void PlayerHandleFaintingCry(void)
static void PlayerHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
PlayerBufferExecCompleted();
}
@@ -2962,29 +2962,29 @@ static void PlayerHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(task05_08033660, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_21;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_21;
}
void sub_805CC00(struct Sprite *sprite)
@@ -2994,8 +2994,8 @@ void sub_805CC00(struct Sprite *sprite)
FreeSpriteOamMatrix(sprite);
FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum));
DestroySprite(sprite);
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], 0);
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], 0);
}
static void task05_08033660(u8 taskId)
@@ -3006,93 +3006,93 @@ static void task05_08033660(u8 taskId)
}
else
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_805B258(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_805B258(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_805B258(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_805B258(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_805B258(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_805B258(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_8058B40;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8058B40;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
}
static void PlayerHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
PlayerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_805CE38;
+ gBattlerControllerFuncs[gActiveBattler] = sub_805CE38;
}
}
static void sub_805CE38(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
PlayerBufferExecCompleted();
}
}
static void PlayerHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
PlayerBufferExecCompleted();
}
static void PlayerHandleCmd50(void)
{
- dp11b_obj_free(gActiveBank, 1);
- dp11b_obj_free(gActiveBank, 0);
+ dp11b_obj_free(gActiveBattler, 1);
+ dp11b_obj_free(gActiveBattler, 0);
PlayerBufferExecCompleted();
}
static void PlayerHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
PlayerBufferExecCompleted();
}
static void PlayerHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
PlayerBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
sub_817E32C(animationId);
}
@@ -3100,15 +3100,15 @@ static void PlayerHandleBattleAnimation(void)
static void PlayerHandleLinkStandbyMsg(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][2]);
- switch (gBattleBufferA[gActiveBank][1])
+ sub_81851A8(&gBattleBufferA[gActiveBattler][2]);
+ switch (gBattleBufferA[gActiveBattler][1])
{
case 0:
PrintLinkStandbyMsg();
// fall through
case 1:
- dp11b_obj_free(gActiveBank, 1);
- dp11b_obj_free(gActiveBank, 0);
+ dp11b_obj_free(gActiveBattler, 1);
+ dp11b_obj_free(gActiveBattler, 0);
break;
case 2:
PrintLinkStandbyMsg();
@@ -3119,17 +3119,17 @@ static void PlayerHandleLinkStandbyMsg(void)
static void PlayerHandleResetActionMoveSelection(void)
{
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case RESET_ACTION_MOVE_SELECTION:
- gActionSelectionCursor[gActiveBank] = 0;
- gMoveSelectionCursor[gActiveBank] = 0;
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
break;
case RESET_ACTION_SELECTION:
- gActionSelectionCursor[gActiveBank] = 0;
+ gActionSelectionCursor[gActiveBattler] = 0;
break;
case RESET_MOVE_SELECTION:
- gMoveSelectionCursor[gActiveBank] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
break;
}
PlayerBufferExecCompleted();
@@ -3137,13 +3137,13 @@ static void PlayerHandleResetActionMoveSelection(void)
static void PlayerHandleCmd55(void)
{
- sub_81851A8(&gBattleBufferA[gActiveBank][4]);
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
- gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBank][2];
+ sub_81851A8(&gBattleBufferA[gActiveBattler][4]);
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
+ gSaveBlock2Ptr->field_CA9_b = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
PlayerBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_22(void)
diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c
index 6b5211ceb..b2b6baa0a 100644
--- a/src/battle_controller_player_partner.c
+++ b/src/battle_controller_player_partner.c
@@ -23,34 +23,34 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u8 gBankInMenu;
extern u16 gUnknown_020243FC;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gUnknown_020244B4[];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
@@ -213,15 +213,15 @@ static void nullsub_77(void)
void SetControllerToPlayerPartner(void)
{
- gBattleBankFunc[gActiveBank] = PlayerPartnerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand;
}
static void PlayerPartnerBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sPlayerPartnerBufferCommands))
- sPlayerPartnerBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sPlayerPartnerBufferCommands))
+ sPlayerPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
PlayerPartnerBufferExecCompleted();
}
@@ -229,26 +229,26 @@ static void PlayerPartnerBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
PlayerPartnerBufferExecCompleted();
}
static void sub_81BAE98(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
nullsub_25(0);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
PlayerPartnerBufferExecCompleted();
}
}
static void sub_81BAF00(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
PlayerPartnerBufferExecCompleted();
}
}
@@ -259,13 +259,13 @@ static void sub_81BAF48(void)
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r6 = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r6 = TRUE;
}
@@ -276,59 +276,59 @@ static void sub_81BAF48(void)
if (r6)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_81BAF00;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BAF00;
}
}
static void sub_81BB02C(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive
- && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
+ && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 != 1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleBankFunc[gActiveBank] = sub_81BAF48;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BAF48;
}
}
static void sub_81BB1D4(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
PlayerPartnerBufferExecCompleted();
}
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlayerPartnerBufferExecCompleted();
}
}
@@ -351,7 +351,7 @@ static void Task_GiveExpToMon(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
s16 gainedExp = gTasks[taskId].tExpTask_gainedExp;
- if (IsDoubleBattle() == TRUE || monId != gBattlePartyID[bank]) // give exp without the expbar
+ if (IsDoubleBattle() == TRUE || monId != gBattlerPartyIndexes[bank]) // give exp without the expbar
{
struct Pokemon *mon = &gPlayerParty[monId];
u16 species = GetMonData(mon, MON_DATA_SPECIES);
@@ -366,13 +366,13 @@ static void Task_GiveExpToMon(u8 taskId)
SetMonData(mon, MON_DATA_EXP, &nextLvlExp);
CalculateMonStats(mon);
gainedExp -= nextLvlExp - currExp;
- savedActiveBank = gActiveBank;
- gActiveBank = bank;
- EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
- gActiveBank = savedActiveBank;
+ savedActiveBank = gActiveBattler;
+ gActiveBattler = bank;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
+ gActiveBattler = savedActiveBank;
if (IsDoubleBattle() == TRUE
- && ((u16)(monId) == gBattlePartyID[bank] || (u16)(monId) == gBattlePartyID[bank ^ BIT_MON]))
+ && ((u16)(monId) == gBattlerPartyIndexes[bank] || (u16)(monId) == gBattlerPartyIndexes[bank ^ BIT_FLANK]))
gTasks[taskId].func = sub_81BB628;
else
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
@@ -381,7 +381,7 @@ static void Task_GiveExpToMon(u8 taskId)
{
currExp += gainedExp;
SetMonData(mon, MON_DATA_EXP, &currExp);
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
}
@@ -405,7 +405,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
exp -= currLvlExp;
expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
- SetBattleBarStruct(bank, gHealthBoxesIds[bank], expToNextLvl, exp, -gainedExp);
+ SetBattleBarStruct(bank, gHealthboxSpriteIds[bank], expToNextLvl, exp, -gainedExp);
PlaySE(SE_EXP);
gTasks[taskId].func = sub_81BB4E4;
}
@@ -423,8 +423,8 @@ static void sub_81BB4E4(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
s16 r4;
- r4 = sub_8074AA0(bank, gHealthBoxesIds[bank], EXP_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[bank]);
+ r4 = sub_8074AA0(bank, gHealthboxSpriteIds[bank], EXP_BAR, 0);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[bank]);
if (r4 == -1)
{
u8 level;
@@ -445,17 +445,17 @@ static void sub_81BB4E4(u8 taskId)
SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &expOnNextLvl);
CalculateMonStats(&gPlayerParty[monId]);
gainedExp -= expOnNextLvl - currExp;
- savedActiveBank = gActiveBank;
- gActiveBank = bank;
- EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
- gActiveBank = savedActiveBank;
+ savedActiveBank = gActiveBattler;
+ gActiveBattler = bank;
+ BtlController_EmitTwoReturnValues(1, RET_VALUE_LEVELLED_UP, gainedExp);
+ gActiveBattler = savedActiveBank;
gTasks[taskId].func = sub_81BB628;
}
else
{
currExp += gainedExp;
SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &currExp);
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
}
@@ -467,8 +467,8 @@ static void sub_81BB628(u8 taskId)
u8 bank = gTasks[taskId].tExpTask_bank;
u8 monIndex = gTasks[taskId].tExpTask_monId;
- if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
- bank ^= BIT_MON;
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK])
+ bank ^= BIT_FLANK;
InitAndLaunchSpecialAnimation(bank, bank, bank, B_ANIM_LVL_UP);
gTasks[taskId].func = sub_81BB688;
@@ -484,10 +484,10 @@ static void sub_81BB688(u8 taskId)
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
- if (IsDoubleBattle() == TRUE && monIndex == gBattlePartyID[bank ^ BIT_MON])
- UpdateHealthboxAttribute(gHealthBoxesIds[bank ^ BIT_MON], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ if (IsDoubleBattle() == TRUE && monIndex == gBattlerPartyIndexes[bank ^ BIT_FLANK])
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[bank ^ BIT_FLANK], &gPlayerParty[monIndex], HEALTHBOX_ALL);
else
- UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[bank], &gPlayerParty[monIndex], HEALTHBOX_ALL);
gTasks[taskId].func = DestroyExpTaskAndCompleteOnInactiveTextPrinter;
}
@@ -501,31 +501,31 @@ static void DestroyExpTaskAndCompleteOnInactiveTextPrinter(u8 taskId)
monIndex = gTasks[taskId].tExpTask_monId;
GetMonData(&gPlayerParty[monIndex], MON_DATA_LEVEL); // Unused return value
bank = gTasks[taskId].tExpTask_bank;
- gBattleBankFunc[bank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[bank] = CompleteOnInactiveTextPrinter;
DestroyTask(taskId);
}
static void sub_81BB78C(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
nullsub_24(species);
- FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerPartnerBufferExecCompleted();
}
}
static void sub_81BB828(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerPartnerBufferExecCompleted();
}
}
@@ -538,7 +538,7 @@ static void CompleteOnInactiveTextPrinter2(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -557,20 +557,20 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_81BB92C(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- CopyBattleSpriteInvisibility(gActiveBank);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_81BB9A0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB9A0;
}
}
static void sub_81BB9A0(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
PlayerPartnerBufferExecCompleted();
}
@@ -578,66 +578,66 @@ static void sub_81BB9A0(void)
static void sub_81BB9F4(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
- gBattleBankFunc[gActiveBank] = sub_81BB92C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB92C;
}
}
static void sub_81BBAE8(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- gBattleBankFunc[gActiveBank] = sub_81BB9F4;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB9F4;
}
}
static void PlayerPartnerBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = PlayerPartnerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
PlayerPartnerBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
PlayerPartnerBufferExecCompleted();
}
@@ -648,13 +648,13 @@ static void PlayerPartnerHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyPlayerPartnerMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyPlayerPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -662,7 +662,7 @@ static void PlayerPartnerHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
PlayerPartnerBufferExecCompleted();
}
@@ -676,7 +676,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
@@ -742,7 +742,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -757,7 +757,7 @@ static u32 CopyPlayerPartnerMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -982,13 +982,13 @@ static void PlayerPartnerHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetPlayerPartnerMonData(gBattlePartyID[gActiveBank]);
+ SetPlayerPartnerMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -1001,11 +1001,11 @@ static void PlayerPartnerHandleSetMonData(void)
static void SetPlayerPartnerMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -1046,10 +1046,10 @@ static void SetPlayerPartnerMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -1063,167 +1063,167 @@ static void SetPlayerPartnerMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
}
static void PlayerPartnerHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
PlayerPartnerBufferExecCompleted();
}
@@ -1232,28 +1232,28 @@ static void PlayerPartnerHandleLoadMonSprite(void)
{
u16 species;
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
- gBattleBankFunc[gActiveBank] = sub_81BB1D4;
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB1D4;
}
static void PlayerPartnerHandleSwitchInAnim(void)
{
- ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_81BD0E4(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_81BBAE8;
+ ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_81BD0E4(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BBAE8;
}
static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit)
@@ -1261,64 +1261,64 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- sub_806A068(species, GetBankIdentity(bank));
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(
+ gBattlerSpriteIds[bank] = CreateSprite(
&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
}
static void PlayerPartnerHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
PlayerPartnerBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
- gBattleBankFunc[gActiveBank] = sub_81BB828;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB828;
}
break;
}
@@ -1348,31 +1348,31 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
// Use back pic only if the partner is Steven
if (gPartnerTrainerId == STEVEN_PARTNER_ID)
{
- DecompressTrainerBackPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
-
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ DecompressTrainerBackPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
+
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
}
else // otherwise use front sprite
{
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
-
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0;
- gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1;
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
+
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void PlayerPartnerHandleTrainerSlide(void)
@@ -1382,34 +1382,34 @@ static void PlayerPartnerHandleTrainerSlide(void)
static void PlayerPartnerHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_81BAE98;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BAE98;
}
static void PlayerPartnerHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER);
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00;
- gBattleBankFunc[gActiveBank] = sub_81BB78C;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB78C;
}
}
}
@@ -1436,51 +1436,51 @@ static void PlayerPartnerHandlePause(void)
static void PlayerPartnerHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
-
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
PlayerPartnerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = PlayerPartnerDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = PlayerPartnerDoMoveAnimation;
}
}
}
static void PlayerPartnerDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1488,20 +1488,20 @@ static void PlayerPartnerDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlayerPartnerBufferExecCompleted();
}
break;
@@ -1514,10 +1514,10 @@ static void PlayerPartnerHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter2;
}
static void PlayerPartnerHandlePrintSelectionString(void)
@@ -1539,21 +1539,21 @@ static void PlayerPartnerHandleUnknownYesNoBox(void)
static void PlayerPartnerHandleChooseMove(void)
{
u8 chosenMoveId;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
BattleAI_SetupAIData(0xF);
chosenMoveId = BattleAI_ChooseMoveOrAction();
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_x10 | MOVE_TARGET_USER))
- gBankTarget = gActiveBank;
+ gBattlerTarget = gActiveBattler;
if (gBattleMoves[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH)
{
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
- EmitTwoReturnValues(1, 10, chosenMoveId | (gBankTarget << 8));
+ BtlController_EmitTwoReturnValues(1, 10, chosenMoveId | (gBattlerTarget << 8));
PlayerPartnerBufferExecCompleted();
}
@@ -1568,22 +1568,22 @@ static void PlayerPartnerHandleChoosePokemon(void)
if (chosenMonId == 6) // just switch to the next mon
{
- u8 playerMonIdentity = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- u8 selfIdentity = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ u8 playerMonIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ u8 selfIdentity = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
for (chosenMonId = 3; chosenMonId < 6; chosenMonId++)
{
if (GetMonData(&gPlayerParty[chosenMonId], MON_DATA_HP) != 0
- && chosenMonId != gBattlePartyID[playerMonIdentity]
- && chosenMonId != gBattlePartyID[selfIdentity])
+ && chosenMonId != gBattlerPartyIndexes[playerMonIdentity]
+ && chosenMonId != gBattlerPartyIndexes[selfIdentity])
{
break;
}
}
}
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = chosenMonId;
- EmitChosenMonReturnValue(1, chosenMonId, NULL);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId;
+ BtlController_EmitChosenMonReturnValue(1, chosenMonId, NULL);
PlayerPartnerBufferExecCompleted();
}
@@ -1597,28 +1597,28 @@ static void PlayerPartnerHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void PlayerPartnerHandleExpUpdate(void)
{
- u8 monId = gBattleBufferA[gActiveBank][1];
+ u8 monId = gBattleBufferA[gActiveBattler][1];
if (GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL) >= MAX_MON_LEVEL)
{
@@ -1631,12 +1631,12 @@ static void PlayerPartnerHandleExpUpdate(void)
LoadBattleBarGfx(1);
GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); // unused return value
- expPointsToGive = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ expPointsToGive = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
taskId = CreateTask(Task_GiveExpToMon, 10);
gTasks[taskId].tExpTask_monId = monId;
gTasks[taskId].tExpTask_gainedExp = expPointsToGive;
- gTasks[taskId].tExpTask_bank = gActiveBank;
- gBattleBankFunc[gActiveBank] = nullsub_21;
+ gTasks[taskId].tExpTask_bank = gActiveBattler;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_21;
}
}
@@ -1647,24 +1647,24 @@ static void PlayerPartnerHandleExpUpdate(void)
static void PlayerPartnerHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void PlayerPartnerHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1721,7 +1721,7 @@ static void PlayerPartnerHandleCmd37(void)
static void PlayerPartnerHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
PlayerPartnerBufferExecCompleted();
}
@@ -1739,16 +1739,16 @@ static void PlayerPartnerHandleCmd40(void)
static void PlayerPartnerHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
PlayerPartnerBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1761,25 +1761,25 @@ static void PlayerPartnerHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
PlayerPartnerBufferExecCompleted();
}
static void PlayerPartnerHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
PlayerPartnerBufferExecCompleted();
@@ -1787,7 +1787,7 @@ static void PlayerPartnerHandlePlayFanfareOrBGM(void)
static void PlayerPartnerHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, -25, 5);
PlayerPartnerBufferExecCompleted();
@@ -1795,7 +1795,7 @@ static void PlayerPartnerHandleFaintingCry(void)
static void PlayerPartnerHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
PlayerPartnerBufferExecCompleted();
}
@@ -1805,16 +1805,16 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F9);
if (gPartnerTrainerId == STEVEN_PARTNER_ID)
@@ -1829,16 +1829,16 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void)
}
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_81BE2C8, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_77;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_77;
}
static void sub_81BE2C8(u8 taskId)
@@ -1849,62 +1849,62 @@ static void sub_81BE2C8(u8 taskId)
}
else
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_81BD0E4(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_81BD0E4(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_81BD0E4(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_81BD0E4(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_81BD0E4(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_81BD0E4(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_81BB02C;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BB02C;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
}
static void PlayerPartnerHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
PlayerPartnerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_81BE498;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81BE498;
}
}
static void sub_81BE498(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
PlayerPartnerBufferExecCompleted();
}
}
static void PlayerPartnerHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
PlayerPartnerBufferExecCompleted();
}
@@ -1915,25 +1915,25 @@ static void PlayerPartnerHandleCmd50(void)
static void PlayerPartnerHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
PlayerPartnerBufferExecCompleted();
}
static void PlayerPartnerHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
PlayerPartnerBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
}
@@ -1949,11 +1949,11 @@ static void PlayerPartnerHandleResetActionMoveSelection(void)
static void PlayerPartnerHandleCmd55(void)
{
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
PlayerPartnerBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_128(void)
diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c
index 6e29fa951..8078d0af2 100644
--- a/src/battle_controller_recorded_opponent.c
+++ b/src/battle_controller_recorded_opponent.c
@@ -25,33 +25,33 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u16 gUnknown_020243FC;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gUnknown_020244B4[];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern struct UnusedControllerStruct gUnknown_02022D0C;
extern u16 gTrainerBattleOpponent_A;
@@ -202,15 +202,15 @@ static void nullsub_70(void)
void SetControllerToRecordedOpponent(void)
{
- gBattleBankFunc[gActiveBank] = RecordedOpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand;
}
static void RecordedOpponentBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sRecordedOpponentBufferCommands))
- sRecordedOpponentBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedOpponentBufferCommands))
+ sRecordedOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
RecordedOpponentBufferExecCompleted();
}
@@ -218,32 +218,32 @@ static void RecordedOpponentBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
RecordedOpponentBufferExecCompleted();
}
static void CompleteOnBankSpriteCallbackDummy2(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
RecordedOpponentBufferExecCompleted();
}
static void sub_81865C8(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- FreeTrainerFrontPicPalette(gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeTrainerFrontPicPalette(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
RecordedOpponentBufferExecCompleted();
}
}
static void sub_8186630(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
RecordedOpponentBufferExecCompleted();
}
}
@@ -254,43 +254,39 @@ static void sub_8186678(void)
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].animEnded)
- {
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded)
var = TRUE;
- }
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].animEnded
- && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].animEnded)
- {
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded
+ && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].animEnded)
var = TRUE;
- }
}
if (var)
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
return;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
return;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_8186630;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186630;
}
}
@@ -299,38 +295,38 @@ static void sub_818686C(void)
bool32 r9 = FALSE;
bool32 r8 = FALSE;
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
- sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
+ sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
m4aMPlayContinue(&gMPlayInfo_BGM);
}
else
@@ -338,24 +334,24 @@ static void sub_818686C(void)
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
}
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
r9 = TRUE;
}
if (!IsDoubleBattle())
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
r8 = TRUE;
}
}
else
{
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r8 = TRUE;
}
@@ -365,36 +361,36 @@ static void sub_818686C(void)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank ^ BIT_MON, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES));
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
- gBattleBankFunc[gActiveBank] = sub_8186678;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186678;
}
}
static void sub_8186C48(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
RecordedOpponentBufferExecCompleted();
@@ -405,13 +401,13 @@ static void sub_8186C48(void)
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
@@ -421,21 +417,21 @@ static void CompleteOnHealthbarDone(void)
static void sub_8186D58(void)
{
- if (!gSprites[gBankSpriteIds[gActiveBank]].inUse)
+ if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
{
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedOpponentBufferExecCompleted();
}
}
static void sub_8186D9C(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedOpponentBufferExecCompleted();
}
}
@@ -448,7 +444,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -467,22 +463,22 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_8186EA4(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_8186F14;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186F14;
}
}
static void sub_8186F14(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive
&& !IsCryPlayingOrClearCrySongs())
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy
- || gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy_2)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ || gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy_2)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
RecordedOpponentBufferExecCompleted();
@@ -492,67 +488,67 @@ static void sub_8186F14(void)
static void sub_8186F94(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
- CopyBattleSpriteInvisibility(gActiveBank);
- gBattleBankFunc[gActiveBank] = sub_8186EA4;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186EA4;
}
}
static void sub_8187084(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_8186F94;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186F94;
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
RecordedOpponentBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
RecordedOpponentBufferExecCompleted();
}
static void RecordedOpponentBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = RecordedOpponentBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
@@ -563,13 +559,13 @@ static void RecordedOpponentHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyRecordedOpponentMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyRecordedOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -577,7 +573,7 @@ static void RecordedOpponentHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
RecordedOpponentBufferExecCompleted();
}
@@ -591,7 +587,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
@@ -657,7 +653,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -672,7 +668,7 @@ static u32 CopyRecordedOpponentMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -897,13 +893,13 @@ static void RecordedOpponentHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetRecordedOpponentMonData(gBattlePartyID[gActiveBank]);
+ SetRecordedOpponentMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -916,11 +912,11 @@ static void RecordedOpponentHandleSetMonData(void)
static void SetRecordedOpponentMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -961,10 +957,10 @@ static void SetRecordedOpponentMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -978,198 +974,198 @@ static void SetRecordedOpponentMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gEnemyParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
}
static void RecordedOpponentHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
RecordedOpponentBufferExecCompleted();
}
static void RecordedOpponentHandleLoadMonSprite(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
- SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES));
+ SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES));
- gBattleBankFunc[gActiveBank] = sub_8186C48;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186C48;
}
static void RecordedOpponentHandleSwitchInAnim(void)
{
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- sub_81885D8(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_8187084;
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ sub_81885D8(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8187084;
}
static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit)
@@ -1177,65 +1173,65 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
- sub_806A068(species, GetBankIdentity(bank));
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
}
static void RecordedOpponentHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- EnemyShadowCallbackToSetInvisible(gActiveBank);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ HideBattlerShadowSprite(gActiveBattler);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedOpponentBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_OPPONENT_MON);
- gBattleBankFunc[gActiveBank] = sub_8186D9C;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_OPPONENT_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186D9C;
}
break;
}
@@ -1248,14 +1244,14 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 152;
else // first mon
xPos = 200;
if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
{
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
else
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
@@ -1278,20 +1274,20 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
}
}
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
- sub_80A82E4(gActiveBank));
+ sub_80A82E4(gActiveBattler));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void RecordedOpponentHandleTrainerSlide(void)
@@ -1301,31 +1297,31 @@ static void RecordedOpponentHandleTrainerSlide(void)
static void RecordedOpponentHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_81865C8;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81865C8;
}
static void RecordedOpponentHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_OPPONENT);
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039934;
- gBattleBankFunc[gActiveBank] = sub_8186D58;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039934;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8186D58;
}
}
}
@@ -1352,51 +1348,51 @@ static void RecordedOpponentHandlePause(void)
static void RecordedOpponentHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
-
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
RecordedOpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = RecordedOpponentDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedOpponentDoMoveAnimation;
}
}
}
static void RecordedOpponentDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1404,20 +1400,20 @@ static void RecordedOpponentDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
RecordedOpponentBufferExecCompleted();
}
break;
@@ -1430,10 +1426,10 @@ static void RecordedOpponentHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
}
static void RecordedOpponentHandlePrintSelectionString(void)
@@ -1443,7 +1439,7 @@ static void RecordedOpponentHandlePrintSelectionString(void)
static void RecordedOpponentHandleChooseAction(void)
{
- EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0);
+ BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0);
RecordedOpponentBufferExecCompleted();
}
@@ -1456,13 +1452,13 @@ static void RecordedOpponentHandleChooseMove(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
+ BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
}
else
{
- u8 moveId = RecordedBattle_ReadBankAction(gActiveBank);
- u8 target = RecordedBattle_ReadBankAction(gActiveBank);
- EmitTwoReturnValues(1, 10, moveId | (target << 8));
+ u8 moveId = RecordedBattle_GetBattlerAction(gActiveBattler);
+ u8 target = RecordedBattle_GetBattlerAction(gActiveBattler);
+ BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8));
}
RecordedOpponentBufferExecCompleted();
@@ -1475,8 +1471,8 @@ static void RecordedOpponentHandleChooseItem(void)
static void RecordedOpponentHandleChoosePokemon(void)
{
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
- EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBattlerAction(gActiveBattler);
+ BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL);
RecordedOpponentBufferExecCompleted();
}
@@ -1490,23 +1486,23 @@ static void RecordedOpponentHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void RecordedOpponentHandleExpUpdate(void)
@@ -1516,24 +1512,24 @@ static void RecordedOpponentHandleExpUpdate(void)
static void RecordedOpponentHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gEnemyParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void RecordedOpponentHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1590,7 +1586,7 @@ static void RecordedOpponentHandleCmd37(void)
static void RecordedOpponentHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
RecordedOpponentBufferExecCompleted();
}
@@ -1608,16 +1604,16 @@ static void RecordedOpponentHandleCmd40(void)
static void RecordedOpponentHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
RecordedOpponentBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1630,25 +1626,25 @@ static void RecordedOpponentHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
RecordedOpponentBufferExecCompleted();
}
static void RecordedOpponentHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
RecordedOpponentBufferExecCompleted();
@@ -1656,7 +1652,7 @@ static void RecordedOpponentHandlePlayFanfareOrBGM(void)
static void RecordedOpponentHandleFaintingCry(void)
{
- u16 species = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, 25, 5);
RecordedOpponentBufferExecCompleted();
@@ -1664,7 +1660,7 @@ static void RecordedOpponentHandleFaintingCry(void)
static void RecordedOpponentHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
RecordedOpponentBufferExecCompleted();
}
@@ -1674,46 +1670,46 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_818962C);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_818962C);
taskId = CreateTask(sub_8189548, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_70;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_70;
}
static void sub_8189548(u8 taskId)
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_81885D8(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_81885D8(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_81885D8(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_81885D8(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_81885D8(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_81885D8(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_818686C;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818686C;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
@@ -1726,50 +1722,50 @@ static void sub_818962C(struct Sprite *sprite)
static void RecordedOpponentHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
RecordedOpponentBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
- if (gBattleBufferA[gActiveBank][2] != 0)
+ if (gBattleBufferA[gActiveBattler][2] != 0)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E < 2)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E < 2)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E++;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E++;
return;
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1E = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1E = 0;
}
}
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_818975C;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818975C;
}
}
static void sub_818975C(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
RecordedOpponentBufferExecCompleted();
}
}
static void RecordedOpponentHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
RecordedOpponentBufferExecCompleted();
}
@@ -1780,25 +1776,25 @@ static void RecordedOpponentHandleCmd50(void)
static void RecordedOpponentHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
RecordedOpponentBufferExecCompleted();
}
static void RecordedOpponentHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
RecordedOpponentBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
}
@@ -1814,15 +1810,15 @@ static void RecordedOpponentHandleResetActionMoveSelection(void)
static void RecordedOpponentHandleCmd55(void)
{
- if (gBattleBufferA[gActiveBank][1] == BATTLE_DREW)
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW)
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
else
- gBattleOutcome = gBattleBufferA[gActiveBank][1] ^ BATTLE_DREW;
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW;
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
RecordedOpponentBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_119(void)
diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c
index f101d811f..953f989e9 100644
--- a/src/battle_controller_recorded_player.c
+++ b/src/battle_controller_recorded_player.c
@@ -24,34 +24,34 @@
#include "pokeball.h"
#include "data2.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
extern u8 gBankInMenu;
extern u16 gUnknown_020243FC;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId);
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gUnknown_020244B4[];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern u8 gBattleCommunication[];
extern u8 gUnknown_0203C7B4;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
@@ -201,15 +201,15 @@ static void nullsub_120(void)
void SetControllerToRecordedPlayer(void)
{
- gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand;
}
static void RecordedPlayerBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sRecordedPlayerBufferCommands))
- sRecordedPlayerBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sRecordedPlayerBufferCommands))
+ sRecordedPlayerBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
RecordedPlayerBufferExecCompleted();
}
@@ -217,26 +217,26 @@ static void RecordedPlayerBufferRunCommand(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
RecordedPlayerBufferExecCompleted();
}
static void sub_81899F0(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
nullsub_25(0);
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
RecordedPlayerBufferExecCompleted();
}
}
static void sub_8189A58(void)
{
- if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 == 0xFF)
+ if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 0xFF)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 0;
RecordedPlayerBufferExecCompleted();
}
}
@@ -245,53 +245,53 @@ static void sub_8189AA0(void)
{
bool32 r6 = FALSE;
- if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
{
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r6 = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r6 = TRUE;
}
}
- if (r6 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (r6 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
if (IsDoubleBattle())
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], gActiveBank ^ BIT_MON);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], gActiveBattler ^ BIT_FLANK);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_8189A58;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8189A58;
}
}
else
{
if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r6 = TRUE;
}
else
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gHealthBoxesIds[gActiveBank ^ BIT_MON]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy)
{
r6 = TRUE;
}
@@ -302,8 +302,8 @@ static void sub_8189AA0(void)
if (r6)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 = 3;
- gBattleBankFunc[gActiveBank] = sub_8189A58;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 = 3;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8189A58;
}
}
}
@@ -312,48 +312,48 @@ static void sub_8189D40(void)
{
bool32 r10 = FALSE;
- if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
+ sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
}
}
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 1;
}
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x40
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x40
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x40
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x40
&& !IsCryPlayingOrClearCrySongs())
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20)
{
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
m4aMPlayContinue(&gMPlayInfo_BGM);
}
else
@@ -362,68 +362,68 @@ static void sub_8189D40(void)
}
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 1;
r10 = TRUE;
}
- if (r10 && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (r10 && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x20 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80 = 0;
- gBattleBankFunc[gActiveBank] = sub_8189AA0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x20 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x80 = 0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8189AA0;
}
}
static void sub_818A064(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].animEnded && gSprites[gBankSpriteIds[gActiveBank]].pos2.x == 0)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x == 0)
RecordedPlayerBufferExecCompleted();
}
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
RecordedPlayerBufferExecCompleted();
}
}
static void sub_818A114(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].pos1.y + gSprites[gBankSpriteIds[gActiveBank]].pos2.y > DISPLAY_HEIGHT)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y + gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y > DISPLAY_HEIGHT)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
nullsub_24(species);
- FreeOamMatrix(gSprites[gBankSpriteIds[gActiveBank]].oam.matrixNum);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedPlayerBufferExecCompleted();
}
}
static void sub_818A1B0(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedPlayerBufferExecCompleted();
}
}
@@ -436,7 +436,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -455,20 +455,20 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_818A2B4(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- CopyBattleSpriteInvisibility(gActiveBank);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ CopyBattleSpriteInvisibility(gActiveBattler);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleBankFunc[gActiveBank] = sub_818A328;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A328;
}
}
static void sub_818A328(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
RecordedPlayerBufferExecCompleted();
}
@@ -476,66 +476,66 @@ static void sub_818A328(void)
static void sub_818A37C(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 0);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
- gBattleBankFunc[gActiveBank] = sub_818A2B4;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A2B4;
}
}
static void sub_818A470(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
}
- if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
+ if (gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- gBattleBankFunc[gActiveBank] = sub_818A37C;
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A37C;
}
}
static void RecordedPlayerBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = RecordedPlayerBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
RecordedPlayerBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
RecordedPlayerBufferExecCompleted();
}
@@ -546,13 +546,13 @@ static void RecordedPlayerHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyRecordedPlayerMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyRecordedPlayerMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -560,7 +560,7 @@ static void RecordedPlayerHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
RecordedPlayerBufferExecCompleted();
}
@@ -574,7 +574,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
@@ -640,7 +640,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -655,7 +655,7 @@ static u32 CopyRecordedPlayerMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -880,13 +880,13 @@ static void RecordedPlayerHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetRecordedPlayerMonData(gBattlePartyID[gActiveBank]);
+ SetRecordedPlayerMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -899,11 +899,11 @@ static void RecordedPlayerHandleSetMonData(void)
static void SetRecordedPlayerMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -944,10 +944,10 @@ static void SetRecordedPlayerMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -961,167 +961,167 @@ static void SetRecordedPlayerMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
}
static void RecordedPlayerHandleSetRawMonData(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
u8 i;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
+ dst[i] = gBattleBufferA[gActiveBattler][3 + i];
RecordedPlayerBufferExecCompleted();
}
@@ -1130,28 +1130,28 @@ static void RecordedPlayerHandleLoadMonSprite(void)
{
u16 species;
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
- sub_806A068(species, GetBankIdentity(gActiveBank));
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
+ sub_806A068(species, GetBattlerPosition(gActiveBattler));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(gActiveBank, 2),
- GetBankSpriteDefault_Y(gActiveBank),
- sub_80A82E4(gActiveBank));
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]);
- gBattleBankFunc[gActiveBank] = sub_818A064;
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(gActiveBattler, 2),
+ GetBattlerSpriteDefault_Y(gActiveBattler),
+ sub_80A82E4(gActiveBattler));
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A064;
}
static void RecordedPlayerHandleSwitchInAnim(void)
{
- ClearTemporarySpeciesSpriteData(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattlePartyID[gActiveBank] = gBattleBufferA[gActiveBank][1];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_818BA6C(gActiveBank, gBattleBufferA[gActiveBank][2]);
- gBattleBankFunc[gActiveBank] = sub_818A470;
+ ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_818BA6C(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A470;
}
static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit)
@@ -1159,64 +1159,64 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit)
u16 species;
ClearTemporarySpeciesSpriteData(bank, dontClearSubstituteBit);
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- sub_806A068(species, GetBankIdentity(bank));
+ sub_806A068(species, GetBattlerPosition(bank));
- gBankSpriteIds[bank] = CreateSprite(
+ gBattlerSpriteIds[bank] = CreateSprite(
&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
}
static void RecordedPlayerHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = DoSwitchOutAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
RecordedPlayerBufferExecCompleted();
}
}
static void DoSwitchOutAnimation(void)
{
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
- gBattleBankFunc[gActiveBank] = sub_818A1B0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A1B0;
}
break;
}
@@ -1241,7 +1241,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if ((GetBankIdentity(gActiveBank) & BIT_MON) != 0) // second mon
+ if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon
xPos = 90;
else // first mon
xPos = 32;
@@ -1266,31 +1266,31 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
- DecompressTrainerFrontPic(trainerPicId, gActiveBank);
- sub_806A1C0(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
-
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0;
- gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1;
+ DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
+ sub_806A1C0(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
+
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.y = 48;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineMode = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].hFlip = 1;
}
else
{
- DecompressTrainerBackPic(trainerPicId, gActiveBank);
- sub_806A12C(trainerPicId, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBank));
-
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
+ DecompressTrainerBackPic(trainerPicId, gActiveBattler);
+ sub_806A12C(trainerPicId, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C, xPos, yPos, sub_80A82E4(gActiveBattler));
+
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
}
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void RecordedPlayerHandleTrainerSlide(void)
@@ -1300,34 +1300,34 @@ static void RecordedPlayerHandleTrainerSlide(void)
static void RecordedPlayerHandleTrainerSlideBack(void)
{
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy);
- gBattleBankFunc[gActiveBank] = sub_81899F0;
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCallbackDummy);
+ gBattlerControllerFuncs[gActiveBattler] = sub_81899F0;
}
static void RecordedPlayerHandleFaintAnimation(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState == 0)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
{
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState++;
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
PlaySE12WithPanning(SE_POKE_DEAD, -64);
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00;
- gBattleBankFunc[gActiveBank] = sub_818A114;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_8039C00;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818A114;
}
}
}
@@ -1354,51 +1354,51 @@ static void RecordedPlayerHandlePause(void)
static void RecordedPlayerHandleMoveAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
-
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
RecordedPlayerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = RecordedPlayerDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = RecordedPlayerDoMoveAnimation;
}
}
}
static void RecordedPlayerDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
- u8 multihit = gBattleBufferA[gActiveBank][11];
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
+ u8 multihit = gBattleBufferA[gActiveBattler][11];
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute
- && !gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute
+ && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8)
{
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 1;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1406,20 +1406,20 @@ static void RecordedPlayerDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute && multihit < 2)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
- gBattleSpritesDataPtr->bankData[gActiveBank].flag_x8 = 0;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
+ gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 0;
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
RecordedPlayerBufferExecCompleted();
}
break;
@@ -1432,10 +1432,10 @@ static void RecordedPlayerHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
}
static void RecordedPlayerHandlePrintSelectionString(void)
@@ -1445,9 +1445,9 @@ static void RecordedPlayerHandlePrintSelectionString(void)
static void ChooseActionInBattlePalace(void)
{
- if (gBattleCommunication[4] >= gNoOfAllBanks / 2)
+ if (gBattleCommunication[4] >= gBattlersCount / 2)
{
- EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0);
+ BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0);
RecordedPlayerBufferExecCompleted();
}
}
@@ -1456,11 +1456,11 @@ static void RecordedPlayerHandleChooseAction(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gBattleBankFunc[gActiveBank] = ChooseActionInBattlePalace;
+ gBattlerControllerFuncs[gActiveBattler] = ChooseActionInBattlePalace;
}
else
{
- EmitTwoReturnValues(1, RecordedBattle_ReadBankAction(gActiveBank), 0);
+ BtlController_EmitTwoReturnValues(1, RecordedBattle_GetBattlerAction(gActiveBattler), 0);
RecordedPlayerBufferExecCompleted();
}
}
@@ -1474,13 +1474,13 @@ static void RecordedPlayerHandleChooseMove(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
+ BtlController_EmitTwoReturnValues(1, 10, ChooseMoveAndTargetInBattlePalace());
}
else
{
- u8 moveId = RecordedBattle_ReadBankAction(gActiveBank);
- u8 target = RecordedBattle_ReadBankAction(gActiveBank);
- EmitTwoReturnValues(1, 10, moveId | (target << 8));
+ u8 moveId = RecordedBattle_GetBattlerAction(gActiveBattler);
+ u8 target = RecordedBattle_GetBattlerAction(gActiveBattler);
+ BtlController_EmitTwoReturnValues(1, 10, moveId | (target << 8));
}
RecordedPlayerBufferExecCompleted();
@@ -1493,8 +1493,8 @@ static void RecordedPlayerHandleChooseItem(void)
static void RecordedPlayerHandleChoosePokemon(void)
{
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = RecordedBattle_ReadBankAction(gActiveBank);
- EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBank), NULL);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = RecordedBattle_GetBattlerAction(gActiveBattler);
+ BtlController_EmitChosenMonReturnValue(1, *(gBattleStruct->monToSwitchIntoId + gActiveBattler), NULL);
RecordedPlayerBufferExecCompleted();
}
@@ -1508,24 +1508,24 @@ static void RecordedPlayerHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void RecordedPlayerHandleExpUpdate(void)
@@ -1535,24 +1535,24 @@ static void RecordedPlayerHandleExpUpdate(void)
static void RecordedPlayerHandleStatusIconUpdate(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
u8 bank;
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_STATUS_ICON);
- bank = gActiveBank;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_STATUS_ICON);
+ bank = gActiveBattler;
gBattleSpritesDataPtr->healthBoxesData[bank].statusAnimActive = 0;
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
static void RecordedPlayerHandleStatusAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBank][1],
- gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8) | (gBattleBufferA[gActiveBank][4] << 16) | (gBattleBufferA[gActiveBank][5] << 24));
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedStatusAnimation;
+ InitAndLaunchChosenStatusAnimation(gBattleBufferA[gActiveBattler][1],
+ gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8) | (gBattleBufferA[gActiveBattler][4] << 16) | (gBattleBufferA[gActiveBattler][5] << 24));
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedStatusAnimation;
}
}
@@ -1609,7 +1609,7 @@ static void RecordedPlayerHandleCmd37(void)
static void RecordedPlayerHandleCmd38(void)
{
- gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBank][1];
+ gUnknown_02022D0C.field_0 = gBattleBufferA[gActiveBattler][1];
RecordedPlayerBufferExecCompleted();
}
@@ -1627,16 +1627,16 @@ static void RecordedPlayerHandleCmd40(void)
static void RecordedPlayerHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
RecordedPlayerBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1649,25 +1649,25 @@ static void RecordedPlayerHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
RecordedPlayerBufferExecCompleted();
}
static void RecordedPlayerHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
RecordedPlayerBufferExecCompleted();
@@ -1675,7 +1675,7 @@ static void RecordedPlayerHandlePlayFanfareOrBGM(void)
static void RecordedPlayerHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry3(species, -25, 5);
RecordedPlayerBufferExecCompleted();
@@ -1683,7 +1683,7 @@ static void RecordedPlayerHandleFaintingCry(void)
static void RecordedPlayerHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
RecordedPlayerBufferExecCompleted();
}
@@ -1694,35 +1694,35 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void)
u8 taskId;
u32 trainerPicId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F9);
if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
- trainerPicId = gLinkPlayers[GetBankMultiplayerId(gActiveBank)].gender;
+ trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender;
else
trainerPicId = gSaveBlock2Ptr->playerGender;
LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_818CC24, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_120;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_120;
}
static void sub_818CC24(u8 taskId)
@@ -1733,62 +1733,62 @@ static void sub_818CC24(u8 taskId)
}
else
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
+ gActiveBattler = gTasks[taskId].data[0];
if (!IsDoubleBattle() || (gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_818BA6C(gActiveBank, FALSE);
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_818BA6C(gActiveBattler, FALSE);
}
else
{
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_818BA6C(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
- sub_818BA6C(gActiveBank, FALSE);
- gActiveBank ^= BIT_MON;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_818BA6C(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
+ sub_818BA6C(gActiveBattler, FALSE);
+ gActiveBattler ^= BIT_FLANK;
}
- gBattleBankFunc[gActiveBank] = sub_8189D40;
- gActiveBank = savedActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8189D40;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
}
static void RecordedPlayerHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
RecordedPlayerBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
- if (gBattleBufferA[gActiveBank][2] != 0)
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0x5D;
+ if (gBattleBufferA[gActiveBattler][2] != 0)
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0x5D;
- gBattleBankFunc[gActiveBank] = sub_818CDF4;
+ gBattlerControllerFuncs[gActiveBattler] = sub_818CDF4;
}
}
static void sub_818CDF4(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5++ > 0x5C)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5++ > 0x5C)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_5 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_5 = 0;
RecordedPlayerBufferExecCompleted();
}
}
static void RecordedPlayerHandleCmd49(void)
{
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
RecordedPlayerBufferExecCompleted();
}
@@ -1799,25 +1799,25 @@ static void RecordedPlayerHandleCmd50(void)
static void RecordedPlayerHandleSpriteInvisibility(void)
{
- if (IsBankSpritePresent(gActiveBank))
+ if (IsBattlerSpritePresent(gActiveBattler))
{
- gSprites[gBankSpriteIds[gActiveBank]].invisible = gBattleBufferA[gActiveBank][1];
- CopyBattleSpriteInvisibility(gActiveBank);
+ gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
+ CopyBattleSpriteInvisibility(gActiveBattler);
}
RecordedPlayerBufferExecCompleted();
}
static void RecordedPlayerHandleBattleAnimation(void)
{
- if (!mplay_80342A4(gActiveBank))
+ if (!mplay_80342A4(gActiveBattler))
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
RecordedPlayerBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
}
@@ -1833,11 +1833,11 @@ static void RecordedPlayerHandleResetActionMoveSelection(void)
static void RecordedPlayerHandleCmd55(void)
{
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
RecordedPlayerBufferExecCompleted();
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_121(void)
diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c
index 682e8333d..608d59418 100644
--- a/src/battle_controller_safari.c
+++ b/src/battle_controller_safari.c
@@ -22,21 +22,21 @@
#include "data2.h"
#include "pokeblock.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
extern void (*gPreBattleCallback1)(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern u16 gSpecialVar_ItemId;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
@@ -180,15 +180,15 @@ static void nullsub_114(void)
void SetControllerToSafari(void)
{
- gBattleBankFunc[gActiveBank] = SafariBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand;
}
static void SafariBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sSafariBufferCommands))
- sSafariBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sSafariBufferCommands))
+ sSafariBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
SafariBufferExecCompleted();
}
@@ -200,68 +200,68 @@ static void HandleInputChooseAction(void)
{
PlaySE(SE_SELECT);
- switch (gActionSelectionCursor[gActiveBank])
+ switch (gActionSelectionCursor[gActiveBattler])
{
case 0:
- EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_BALL, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_BALL, 0);
break;
case 1:
- EmitTwoReturnValues(1, ACTION_POKEBLOCK_CASE, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_POKEBLOCK, 0);
break;
case 2:
- EmitTwoReturnValues(1, ACTION_GO_NEAR, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_GO_NEAR, 0);
break;
case 3:
- EmitTwoReturnValues(1, ACTION_SAFARI_ZONE_RUN, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_RUN, 0);
break;
}
SafariBufferExecCompleted();
}
else if (gMain.newKeys & DPAD_LEFT)
{
- if (gActionSelectionCursor[gActiveBank] & 1)
+ if (gActionSelectionCursor[gActiveBattler] & 1)
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 1;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_RIGHT)
{
- if (!(gActionSelectionCursor[gActiveBank] & 1))
+ if (!(gActionSelectionCursor[gActiveBattler] & 1))
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 1;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 1;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_UP)
{
- if (gActionSelectionCursor[gActiveBank] & 2)
+ if (gActionSelectionCursor[gActiveBattler] & 2)
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 2;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
else if (gMain.newKeys & DPAD_DOWN)
{
- if (!(gActionSelectionCursor[gActiveBank] & 2))
+ if (!(gActionSelectionCursor[gActiveBattler] & 2))
{
PlaySE(SE_SELECT);
- ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBank]);
- gActionSelectionCursor[gActiveBank] ^= 2;
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionDestroyCursorAt(gActionSelectionCursor[gActiveBattler]);
+ gActionSelectionCursor[gActiveBattler] ^= 2;
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
}
}
}
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
SafariBufferExecCompleted();
}
@@ -273,7 +273,7 @@ static void CompleteOnInactiveTextPrinter(void)
static void CompleteOnHealthboxSpriteCallbackDummy(void)
{
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
SafariBufferExecCompleted();
}
@@ -289,7 +289,7 @@ static void sub_81595E4(void)
static void CompleteOnSpecialAnimDone(void)
{
- if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
SafariBufferExecCompleted();
}
@@ -297,7 +297,7 @@ static void SafariOpenPokeblockCase(void)
{
if (!gPaletteFade.active)
{
- gBattleBankFunc[gActiveBank] = CompleteWhenChosePokeblock;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChosePokeblock;
FreeAllWindowBuffers();
OpenPokeblockCaseInBattle();
}
@@ -307,36 +307,36 @@ static void CompleteWhenChosePokeblock(void)
{
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
- EmitOneReturnValue(1, gSpecialVar_ItemId);
+ BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
SafariBufferExecCompleted();
}
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
SafariBufferExecCompleted();
}
static void SafariBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = SafariBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
SafariBufferExecCompleted();
}
@@ -377,18 +377,18 @@ static void SafariHandleReturnMonToBall(void)
static void SafariHandleDrawTrainerPic(void)
{
- DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBank);
- sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(
+ DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, gActiveBattler);
+ sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(
&gUnknown_0202499C,
80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
30);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void SafariHandleTrainerSlide(void)
@@ -415,18 +415,18 @@ static void SafariHandleSuccessBallThrowAnim(void)
{
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
}
static void SafariHandleBallThrowAnim(void)
{
- u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1];
+ u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1];
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnSpecialAnimDone;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
}
static void SafariHandlePause(void)
@@ -445,15 +445,15 @@ static void SafariHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
}
static void SafariHandlePrintSelectionString(void)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
SafariHandlePrintString();
else
SafariBufferExecCompleted();
@@ -465,7 +465,7 @@ static void HandleChooseActionAfterDma3(void)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 160;
- gBattleBankFunc[gActiveBank] = HandleInputChooseAction;
+ gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseAction;
}
}
@@ -473,13 +473,13 @@ static void SafariHandleChooseAction(void)
{
s32 i;
- gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3;
+ gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattleHandleAddTextPrinter(gText_SafariZoneMenu, 2);
for (i = 0; i < 4; i++)
ActionSelectionDestroyCursorAt(i);
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo2);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 1);
}
@@ -499,8 +499,8 @@ static void SafariHandleChooseItem(void)
s32 i;
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gBattleBankFunc[gActiveBank] = SafariOpenPokeblockCase;
- gBankInMenu = gActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = SafariOpenPokeblockCase;
+ gBankInMenu = gActiveBattler;
}
static void SafariHandleChoosePokemon(void)
@@ -525,7 +525,7 @@ static void SafariHandleExpUpdate(void)
static void SafariHandleStatusIconUpdate(void)
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_SAFARI_BALLS_TEXT);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_BALLS_TEXT);
SafariBufferExecCompleted();
}
@@ -613,25 +613,25 @@ static void SafariHandlePlaySE(void)
{
s8 pan;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
pan = PAN_SIDE_PLAYER;
else
pan = PAN_SIDE_OPPONENT;
- PlaySE12WithPanning(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8), pan);
+ PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
SafariBufferExecCompleted();
}
static void SafariHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
SafariBufferExecCompleted();
@@ -639,7 +639,7 @@ static void SafariHandlePlayFanfareOrBGM(void)
static void SafariHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry1(species, 25);
SafariBufferExecCompleted();
@@ -647,17 +647,17 @@ static void SafariHandleFaintingCry(void)
static void SafariHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
SafariBufferExecCompleted();
}
static void SafariHandleIntroTrainerBallThrow(void)
{
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_SAFARI_ALL_TEXT);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
- gBattleBankFunc[gActiveBank] = CompleteOnHealthboxSpriteCallbackDummy;
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy;
}
static void SafariHandleDrawPartyStatusSummary(void)
@@ -682,13 +682,13 @@ static void SafariHandleSpriteInvisibility(void)
static void SafariHandleBattleAnimation(void)
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
SafariBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
static void SafariHandleLinkStandbyMsg(void)
@@ -703,12 +703,12 @@ static void SafariHandleResetActionMoveSelection(void)
static void SafariHandleCmd55(void)
{
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
SafariBufferExecCompleted();
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_WILD))
- gBattleBankFunc[gActiveBank] = sub_81595E4;
+ gBattlerControllerFuncs[gActiveBattler] = sub_81595E4;
}
static void nullsub_115(void)
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index b0e1e1480..dd01e5996 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -28,27 +28,27 @@
#include "data2.h"
#include "party_menu.h"
-extern u32 gBattleExecBuffer;
-extern u8 gActiveBank;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gAbsentBankFlags;
-extern u8 gNoOfAllBanks;
+extern u32 gBattleControllerExecFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gAbsentBattlerFlags;
+extern u8 gBattlersCount;
extern bool8 gDoingBattleAnim;
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
extern u8 gMultiUsePlayerCursor;
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern u16 gPartnerTrainerId;
extern struct SpriteTemplate gUnknown_0202499C;
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
extern u16 gSpecialVar_ItemId;
-extern u8 gUnknown_03005D7C[BATTLE_BANKS_COUNT];
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gBattleOutcome;
extern u8 gNumberOfMovesToChoose;
extern u16 gBattle_BG0_X;
@@ -56,7 +56,7 @@ extern u16 gBattle_BG0_Y;
extern s32 gUnknown_0203CD70;
extern u8 gBankInMenu;
extern u32 gBattlePalaceMoveSelectionRngValue;
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern u8 gUnknown_020244B4[];
extern u16 gUnknown_020243FC;
extern struct UnusedControllerStruct gUnknown_02022D0C;
@@ -204,7 +204,7 @@ static void nullsub_117(void)
void SetControllerToWally(void)
{
- gBattleBankFunc[gActiveBank] = WallyBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand;
gBattleStruct->wallyBattleState = 0;
gBattleStruct->wallyMovesState = 0;
gBattleStruct->wallyWaitFrames = 0;
@@ -213,10 +213,10 @@ void SetControllerToWally(void)
static void WallyBufferRunCommand(void)
{
- if (gBattleExecBuffer & gBitTable[gActiveBank])
+ if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
{
- if (gBattleBufferA[gActiveBank][0] < ARRAY_COUNT(sWallyBufferCommands))
- sWallyBufferCommands[gBattleBufferA[gActiveBank][0]]();
+ if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sWallyBufferCommands))
+ sWallyBufferCommands[gBattleBufferA[gActiveBattler][0]]();
else
WallyBufferExecCompleted();
}
@@ -233,7 +233,7 @@ static void WallyHandleActions(void)
if (--gBattleStruct->wallyWaitFrames == 0)
{
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, ACTION_USE_MOVE, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0);
WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0;
@@ -244,7 +244,7 @@ static void WallyHandleActions(void)
if (--gBattleStruct->wallyWaitFrames == 0)
{
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, ACTION_USE_MOVE, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_MOVE, 0);
WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0;
@@ -254,7 +254,7 @@ static void WallyHandleActions(void)
case 3:
if (--gBattleStruct->wallyWaitFrames == 0)
{
- EmitTwoReturnValues(1, 9, 0);
+ BtlController_EmitTwoReturnValues(1, 9, 0);
WallyBufferExecCompleted();
gBattleStruct->wallyBattleState++;
gBattleStruct->wallyMovesState = 0;
@@ -275,7 +275,7 @@ static void WallyHandleActions(void)
if (--gBattleStruct->wallyWaitFrames == 0)
{
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, ACTION_USE_ITEM, 0);
+ BtlController_EmitTwoReturnValues(1, B_ACTION_USE_ITEM, 0);
WallyBufferExecCompleted();
}
break;
@@ -284,7 +284,7 @@ static void WallyHandleActions(void)
static void CompleteOnBankSpriteCallbackDummy(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
WallyBufferExecCompleted();
}
@@ -304,7 +304,7 @@ static void OpenBagAfterPaletteFade(void)
{
if (!gPaletteFade.active)
{
- gBattleBankFunc[gActiveBank] = CompleteOnChosenItem;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnChosenItem;
nullsub_35();
FreeAllWindowBuffers();
DoWallyTutorialBagMenu();
@@ -315,37 +315,37 @@ static void CompleteOnChosenItem(void)
{
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
{
- EmitOneReturnValue(1, gSpecialVar_ItemId);
+ BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
WallyBufferExecCompleted();
}
}
static void sub_816864C(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive)
- sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive)
- sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
+ sub_8172EF0(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
+ sub_8172EF0(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive
- && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive
- && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy
- && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
+ && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
+ && gSprites[gUnknown_03005D7C[gActiveBattler]].callback == SpriteCallbackDummy
+ && gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank ^ BIT_MON]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank ^ BIT_MON], &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank ^ BIT_MON);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank ^ BIT_MON]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler ^ BIT_FLANK]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler ^ BIT_FLANK);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]);
}
- DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]);
- UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL);
- sub_8076918(gActiveBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBattler]]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL);
+ sub_8076918(gActiveBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
gBattleSpritesDataPtr->animationData->field_9_x1 = 0;
- gBattleBankFunc[gActiveBank] = sub_8168818;
+ gBattlerControllerFuncs[gActiveBattler] = sub_8168818;
}
}
@@ -354,23 +354,23 @@ static void sub_8168818(void)
{
bool32 r4 = FALSE;
- if (gSprites[gHealthBoxesIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
r4 = TRUE;
- if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1
- && gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1)
+ if (r4 && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1
+ && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 = 0;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].field_1_x1 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
CreateTask(c3_0802FDF4, 10);
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
WallyBufferExecCompleted();
}
@@ -378,24 +378,24 @@ static void sub_8168818(void)
static void CompleteOnHealthbarDone(void)
{
- s16 hpValue = sub_8074AA0(gActiveBank, gHealthBoxesIds[gActiveBank], HEALTH_BAR, 0);
+ s16 hpValue = sub_8074AA0(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
- SetHealthboxSpriteVisible(gHealthBoxesIds[gActiveBank]);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]);
if (hpValue != -1)
{
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], hpValue, HP_CURRENT);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
}
else
{
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
WallyBufferExecCompleted();
}
}
static void DoHitAnimBlinkSpriteEffect(void)
{
- u8 spriteId = gBankSpriteIds[gActiveBank];
+ u8 spriteId = gBattlerSpriteIds[gActiveBattler];
if (gSprites[spriteId].data[1] == 32)
{
@@ -414,46 +414,46 @@ static void DoHitAnimBlinkSpriteEffect(void)
static void sub_8168A20(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
WallyBufferExecCompleted();
}
}
static void CompleteOnBankSpriteCallbackDummy2(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
WallyBufferExecCompleted();
}
static void CompleteOnFinishedBattleAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animFromTableActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
WallyBufferExecCompleted();
}
static void WallyBufferExecCompleted(void)
{
- gBattleBankFunc[gActiveBank] = WallyBufferRunCommand;
+ gBattlerControllerFuncs[gActiveBattler] = WallyBufferRunCommand;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
u8 playerId = GetMultiplayerId();
PrepareBufferDataTransferLink(2, 4, &playerId);
- gBattleBufferA[gActiveBank][0] = CONTROLLER_TERMINATOR_NOP;
+ gBattleBufferA[gActiveBattler][0] = CONTROLLER_TERMINATOR_NOP;
}
else
{
- gBattleExecBuffer &= ~gBitTable[gActiveBank];
+ gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
}
}
static void CompleteOnFinishedStatusAnimation(void)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
WallyBufferExecCompleted();
}
@@ -464,13 +464,13 @@ static void WallyHandleGetMonData(void)
u8 monToCheck;
s32 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- size += CopyWallyMonData(gBattlePartyID[gActiveBank], monData);
+ size += CopyWallyMonData(gBattlerPartyIndexes[gActiveBattler], monData);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -478,7 +478,7 @@ static void WallyHandleGetMonData(void)
monToCheck >>= 1;
}
}
- EmitDataTransfer(1, size, monData);
+ BtlController_EmitDataTransfer(1, size, monData);
WallyBufferExecCompleted();
}
@@ -492,7 +492,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst)
u32 data32;
s32 size = 0;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
@@ -558,7 +558,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE);
+ data16 = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE);
dst[0] = data16;
dst[1] = data16 >> 8;
size = 2;
@@ -573,7 +573,7 @@ static u32 CopyWallyMonData(u8 monId, u8 *dst)
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE);
+ dst[0] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE);
size = 1;
break;
case REQUEST_OTID_BATTLE:
@@ -798,13 +798,13 @@ static void WallyHandleSetMonData(void)
u8 monToCheck;
u8 i;
- if (gBattleBufferA[gActiveBank][2] == 0)
+ if (gBattleBufferA[gActiveBattler][2] == 0)
{
- SetWallyMonData(gBattlePartyID[gActiveBank]);
+ SetWallyMonData(gBattlerPartyIndexes[gActiveBattler]);
}
else
{
- monToCheck = gBattleBufferA[gActiveBank][2];
+ monToCheck = gBattleBufferA[gActiveBattler][2];
for (i = 0; i < 6; i++)
{
if (monToCheck & 1)
@@ -817,11 +817,11 @@ static void WallyHandleSetMonData(void)
static void SetWallyMonData(u8 monId)
{
- struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBank][3];
- struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBank][3];
+ struct BattlePokemon *battlePokemon = (struct BattlePokemon *)&gBattleBufferA[gActiveBattler][3];
+ struct MovePpInfo *moveData = (struct MovePpInfo *)&gBattleBufferA[gActiveBattler][3];
s32 i;
- switch (gBattleBufferA[gActiveBank][1])
+ switch (gBattleBufferA[gActiveBattler][1])
{
case REQUEST_ALL_BATTLE:
{
@@ -862,10 +862,10 @@ static void SetWallyMonData(u8 monId)
}
break;
case REQUEST_SPECIES_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HELDITEM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MOVES_PP_BATTLE:
for (i = 0; i < 4; i++)
@@ -879,158 +879,158 @@ static void SetWallyMonData(u8 monId)
case REQUEST_MOVE2_BATTLE:
case REQUEST_MOVE3_BATTLE:
case REQUEST_MOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBank][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + gBattleBufferA[gActiveBattler][1] - REQUEST_MOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PP_DATA_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBank][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP2, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP3, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP4, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES, &gBattleBufferA[gActiveBattler][7]);
break;
case REQUEST_PPMOVE1_BATTLE:
case REQUEST_PPMOVE2_BATTLE:
case REQUEST_PPMOVE3_BATTLE:
case REQUEST_PPMOVE4_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBank][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + gBattleBufferA[gActiveBattler][1] - REQUEST_PPMOVE1_BATTLE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_OTID_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_OT_ID, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_EXP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_EXP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_EV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_EV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_FRIENDSHIP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_FRIENDSHIP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKERUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKERUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LOCATION_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LOCATION, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MET_GAME_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MET_GAME, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_POKEBALL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_POKEBALL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ALL_IVS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][4]);
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][5]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][6]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][7]);
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][8]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][4]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][5]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][6]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][7]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][8]);
break;
case REQUEST_HP_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_IV_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF_IV, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_PERSONALITY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CHECKSUM_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CHECKSUM, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_STATUS_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_STATUS, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_LEVEL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_LEVEL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_MAX_HP_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_MAX_HP, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_ATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_ATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_DEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_DEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPEED_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPEED, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPATK_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPATK, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SPDEF_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SPDEF, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SHEEN_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SHEEN, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_COOL_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_COOL_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_BEAUTY_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_BEAUTY_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_CUTE_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_CUTE_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_SMART_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_SMART_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
case REQUEST_TOUGH_RIBBON_BATTLE:
- SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBank][3]);
+ SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]);
break;
}
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
}
static void WallyHandleSetRawMonData(void)
@@ -1050,48 +1050,48 @@ static void WallyHandleSwitchInAnim(void)
static void WallyHandleReturnMonToBall(void)
{
- if (gBattleBufferA[gActiveBank][1] == 0)
+ if (gBattleBufferA[gActiveBattler][1] == 0)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SWITCH_OUT_PLAYER_MON);
- gBattleBankFunc[gActiveBank] = sub_8168A20;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SWITCH_OUT_PLAYER_MON);
+ gBattlerControllerFuncs[gActiveBattler] = sub_8168A20;
}
else
{
- FreeSpriteOamMatrix(&gSprites[gBankSpriteIds[gActiveBank]]);
- DestroySprite(&gSprites[gBankSpriteIds[gActiveBank]]);
- SetHealthboxSpriteInvisible(gHealthBoxesIds[gActiveBank]);
+ FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
WallyBufferExecCompleted();
}
}
static void WallyHandleDrawTrainerPic(void)
{
- DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank);
- sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
+ DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler);
+ sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
80,
80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords),
30);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy;
}
static void WallyHandleTrainerSlide(void)
{
- DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBank);
- sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(gActiveBank));
- gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C,
+ DecompressTrainerBackPic(BACK_PIC_WALLY, gActiveBattler);
+ sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler));
+ gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gUnknown_0202499C,
80,
80 + 4 * (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords),
30);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank;
- gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96;
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC;
- gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_805D7AC;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnBankSpriteCallbackDummy2;
}
static void WallyHandleTrainerSlideBack(void)
@@ -1113,18 +1113,18 @@ static void WallyHandleSuccessBallThrowAnim(void)
{
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation;
}
static void WallyHandleBallThrowAnim(void)
{
- u8 ballThrowCaseId = gBattleBufferA[gActiveBank][1];
+ u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1];
gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId;
gDoingBattleAnim = TRUE;
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, GetBankByIdentity(IDENTITY_OPPONENT_MON1), B_ANIM_SAFARI_BALL_THROW);
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedAnimation;
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW);
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedAnimation;
}
static void WallyHandlePause(void)
@@ -1134,46 +1134,46 @@ static void WallyHandlePause(void)
static void WallyHandleMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
- gAnimMoveTurn = gBattleBufferA[gActiveBank][3];
- gAnimMovePower = gBattleBufferA[gActiveBank][4] | (gBattleBufferA[gActiveBank][5] << 8);
- gAnimMoveDmg = gBattleBufferA[gActiveBank][6] | (gBattleBufferA[gActiveBank][7] << 8) | (gBattleBufferA[gActiveBank][8] << 16) | (gBattleBufferA[gActiveBank][9] << 24);
- gAnimFriendship = gBattleBufferA[gActiveBank][10];
- gWeatherMoveAnim = gBattleBufferA[gActiveBank][12] | (gBattleBufferA[gActiveBank][13] << 8);
- gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBank][16];
- gTransformedPersonalities[gActiveBank] = gAnimDisableStructPtr->transformedMonPersonality;
+ gAnimMoveTurn = gBattleBufferA[gActiveBattler][3];
+ gAnimMovePower = gBattleBufferA[gActiveBattler][4] | (gBattleBufferA[gActiveBattler][5] << 8);
+ gAnimMoveDmg = gBattleBufferA[gActiveBattler][6] | (gBattleBufferA[gActiveBattler][7] << 8) | (gBattleBufferA[gActiveBattler][8] << 16) | (gBattleBufferA[gActiveBattler][9] << 24);
+ gAnimFriendship = gBattleBufferA[gActiveBattler][10];
+ gWeatherMoveAnim = gBattleBufferA[gActiveBattler][12] | (gBattleBufferA[gActiveBattler][13] << 8);
+ gAnimDisableStructPtr = (struct DisableStruct *)&gBattleBufferA[gActiveBattler][16];
+ gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
{
WallyBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
- gBattleBankFunc[gActiveBank] = WallyDoMoveAnimation;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
+ gBattlerControllerFuncs[gActiveBattler] = WallyDoMoveAnimation;
}
}
static void WallyDoMoveAnimation(void)
{
- u16 move = gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8);
+ u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
- switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState)
+ switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
{
case 0:
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_SUBSTITUTE_TO_MON);
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1;
break;
case 1:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
sub_805EB9C(0);
DoMoveAnim(move);
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 2;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2;
}
break;
case 2:
@@ -1181,19 +1181,19 @@ static void WallyDoMoveAnimation(void)
if (!gAnimScriptActive)
{
sub_805EB9C(1);
- if (gBattleSpritesDataPtr->bankData[gActiveBank].behindSubstitute)
+ if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute)
{
- InitAndLaunchSpecialAnimation(gActiveBank, gActiveBank, gActiveBank, B_ANIM_MON_TO_SUBSTITUTE);
+ InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE);
}
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 3;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3;
}
break;
case 3:
- if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].specialAnimActive)
+ if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
{
CopyAllBattleSpritesInvisibilities();
- TrySetBehindSubstituteSpriteBit(gActiveBank, gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0;
+ TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
WallyBufferExecCompleted();
}
break;
@@ -1206,15 +1206,15 @@ static void WallyHandlePrintString(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- stringId = (u16*)(&gBattleBufferA[gActiveBank][2]);
+ stringId = (u16*)(&gBattleBufferA[gActiveBattler][2]);
BufferStringBattle(*stringId);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 0);
- gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
}
static void WallyHandlePrintSelectionString(void)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
WallyHandlePrintString();
else
WallyBufferExecCompleted();
@@ -1226,7 +1226,7 @@ static void HandleChooseActionAfterDma3(void)
{
gBattle_BG0_X = 0;
gBattle_BG0_Y = 160;
- gBattleBankFunc[gActiveBank] = WallyHandleActions;
+ gBattlerControllerFuncs[gActiveBattler] = WallyHandleActions;
}
}
@@ -1234,13 +1234,13 @@ static void WallyHandleChooseAction(void)
{
s32 i;
- gBattleBankFunc[gActiveBank] = HandleChooseActionAfterDma3;
+ gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattleHandleAddTextPrinter(gText_BattleMenu, 2);
for (i = 0; i < 4; i++)
ActionSelectionDestroyCursorAt(i);
- ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBank], 0);
+ ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillWallyDo);
BattleHandleAddTextPrinter(gDisplayedStringBattle, 1);
}
@@ -1271,7 +1271,7 @@ static void WallyHandleChooseMove(void)
if (--gBattleStruct->wallyMoveFrames == 0)
{
PlaySE(SE_SELECT);
- EmitTwoReturnValues(1, 10, 0x100);
+ BtlController_EmitTwoReturnValues(1, 10, 0x100);
WallyBufferExecCompleted();
}
break;
@@ -1281,8 +1281,8 @@ static void WallyHandleChooseMove(void)
static void WallyHandleChooseItem(void)
{
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
- gBattleBankFunc[gActiveBank] = OpenBagAfterPaletteFade;
- gBankInMenu = gActiveBank;
+ gBattlerControllerFuncs[gActiveBattler] = OpenBagAfterPaletteFade;
+ gBankInMenu = gActiveBattler;
}
static void WallyHandleChoosePokemon(void)
@@ -1300,24 +1300,24 @@ static void WallyHandleHealthBarUpdate(void)
s16 hpVal;
LoadBattleBarGfx(0);
- hpVal = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
if (hpVal != INSTANT_HP_BAR_DROP)
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
- u32 curHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
+ u32 curHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, curHP, hpVal);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, curHP, hpVal);
}
else
{
- u32 maxHP = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MAX_HP);
+ u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP);
- SetBattleBarStruct(gActiveBank, gHealthBoxesIds[gActiveBank], maxHP, 0, hpVal);
- UpdateHpTextInHealthbox(gHealthBoxesIds[gActiveBank], 0, HP_CURRENT);
+ SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal);
+ UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], 0, HP_CURRENT);
}
- gBattleBankFunc[gActiveBank] = CompleteOnHealthbarDone;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
}
static void WallyHandleExpUpdate(void)
@@ -1402,16 +1402,16 @@ static void WallyHandleCmd40(void)
static void WallyHandleHitAnimation(void)
{
- if (gSprites[gBankSpriteIds[gActiveBank]].invisible == TRUE)
+ if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
{
WallyBufferExecCompleted();
}
else
{
gDoingBattleAnim = TRUE;
- gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0;
- DoHitAnimHealthboxEffect(gActiveBank);
- gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0;
+ DoHitAnimHealthboxEffect(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = DoHitAnimBlinkSpriteEffect;
}
}
@@ -1422,20 +1422,20 @@ static void WallyHandleCmd42(void)
static void WallyHandlePlaySE(void)
{
- PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlaySE(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
WallyBufferExecCompleted();
}
static void WallyHandlePlayFanfareOrBGM(void)
{
- if (gBattleBufferA[gActiveBank][3])
+ if (gBattleBufferA[gActiveBattler][3])
{
BattleStopLowHpSound();
- PlayBGM(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayBGM(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
else
{
- PlayFanfare(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
+ PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
}
WallyBufferExecCompleted();
@@ -1443,7 +1443,7 @@ static void WallyHandlePlayFanfareOrBGM(void)
static void WallyHandleFaintingCry(void)
{
- u16 species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES);
+ u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
PlayCry1(species, 25);
WallyBufferExecCompleted();
@@ -1451,7 +1451,7 @@ static void WallyHandleFaintingCry(void)
static void WallyHandleIntroSlide(void)
{
- HandleIntroSlide(gBattleBufferA[gActiveBank][1]);
+ HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
gUnknown_020243FC |= 1;
WallyBufferExecCompleted();
}
@@ -1461,55 +1461,55 @@ static void WallyHandleIntroTrainerBallThrow(void)
u8 paletteNum;
u8 taskId;
- oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]);
+ oamt_add_pos2_onto_pos1(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
- gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50;
- gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40;
- gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y;
- gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC;
- gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.y;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].callback = sub_80A6EEC;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler;
- StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00);
- StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1);
+ StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_805CC00);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1);
paletteNum = AllocSpritePalette(0xD6F8);
LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_WALLY].data, 0x100 + paletteNum * 16, 32);
- gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = paletteNum;
+ gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum;
taskId = CreateTask(sub_816AC04, 5);
- gTasks[taskId].data[0] = gActiveBank;
+ gTasks[taskId].data[0] = gActiveBattler;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1)
- gTasks[gUnknown_020244B4[gActiveBank]].func = sub_8073C30;
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1)
+ gTasks[gUnknown_020244B4[gActiveBattler]].func = sub_8073C30;
gBattleSpritesDataPtr->animationData->field_9_x1 = 1;
- gBattleBankFunc[gActiveBank] = nullsub_21;
+ gBattlerControllerFuncs[gActiveBattler] = nullsub_21;
}
static void sub_816AA80(u8 bank)
{
u16 species;
- gBattleSpritesDataPtr->bankData[bank].transformSpecies = 0;
- gBattlePartyID[bank] = gBattleBufferA[bank][1];
- species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ gBattleSpritesDataPtr->battlerData[bank].transformSpecies = 0;
+ gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714);
- sub_806A068(species, GetBankIdentity(bank));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
- GetBankPosition(bank, 2),
- GetBankSpriteDefault_Y(bank),
+ sub_806A068(species, GetBattlerPosition(bank));
+ gBattlerSpriteIds[bank] = CreateSprite(&gUnknown_0202499C,
+ GetBattlerSpriteCoord(bank, 2),
+ GetBattlerSpriteDefault_Y(bank),
sub_80A82E4(bank));
- gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank];
+ gSprites[gUnknown_03005D7C[bank]].data[1] = gBattlerSpriteIds[bank];
gSprites[gUnknown_03005D7C[bank]].data[2] = bank;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = species;
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[bank]].data[2] = species;
+ gSprites[gBattlerSpriteIds[bank]].oam.paletteNum = bank;
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
- gSprites[gBankSpriteIds[bank]].invisible = TRUE;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
+ gSprites[gBattlerSpriteIds[bank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[bank]].callback = SpriteCallbackDummy;
gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
}
@@ -1521,27 +1521,27 @@ static void sub_816AC04(u8 taskId)
}
else
{
- u8 savedActiveBank = gActiveBank;
+ u8 savedActiveBank = gActiveBattler;
- gActiveBank = gTasks[taskId].data[0];
- gBattleBufferA[gActiveBank][1] = gBattlePartyID[gActiveBank];
- sub_816AA80(gActiveBank);
- gBattleBankFunc[gActiveBank] = sub_816864C;
- gActiveBank = savedActiveBank;
+ gActiveBattler = gTasks[taskId].data[0];
+ gBattleBufferA[gActiveBattler][1] = gBattlerPartyIndexes[gActiveBattler];
+ sub_816AA80(gActiveBattler);
+ gBattlerControllerFuncs[gActiveBattler] = sub_816864C;
+ gActiveBattler = savedActiveBank;
DestroyTask(taskId);
}
}
static void WallyHandleDrawPartyStatusSummary(void)
{
- if (gBattleBufferA[gActiveBank][1] != 0 && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
WallyBufferExecCompleted();
}
else
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x1 = 1;
- gUnknown_020244B4[gActiveBank] = CreatePartyStatusSummarySprites(gActiveBank, (struct HpAndStatus *)&gBattleBufferA[gActiveBank][4], gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][2]);
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x1 = 1;
+ gUnknown_020244B4[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]);
WallyBufferExecCompleted();
}
}
@@ -1563,13 +1563,13 @@ static void WallyHandleSpriteInvisibility(void)
static void WallyHandleBattleAnimation(void)
{
- u8 animationId = gBattleBufferA[gActiveBank][1];
- u16 argument = gBattleBufferA[gActiveBank][2] | (gBattleBufferA[gActiveBank][3] << 8);
+ u8 animationId = gBattleBufferA[gActiveBattler][1];
+ u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
- if (TryHandleLaunchBattleTableAnimation(gActiveBank, gActiveBank, gActiveBank, animationId, argument))
+ if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
WallyBufferExecCompleted();
else
- gBattleBankFunc[gActiveBank] = CompleteOnFinishedBattleAnimation;
+ gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
}
static void WallyHandleLinkStandbyMsg(void)
@@ -1584,13 +1584,13 @@ static void WallyHandleResetActionMoveSelection(void)
static void WallyHandleCmd55(void)
{
- gBattleOutcome = gBattleBufferA[gActiveBank][1];
+ gBattleOutcome = gBattleBufferA[gActiveBattler][1];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
WallyBufferExecCompleted();
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD) && gBattleTypeFlags & BATTLE_TYPE_LINK)
- gBattleBankFunc[gActiveBank] = sub_80587B0;
+ gBattlerControllerFuncs[gActiveBattler] = sub_80587B0;
}
static void nullsub_118(void)
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index c6d47e71e..4f523cfa0 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -13,36 +13,36 @@
#include "battle_message.h"
extern u32 gBattleTypeFlags;
-extern u32 gBattleExecBuffer;
+extern u32 gBattleControllerExecFlags;
extern void (*gBattleMainFunc)(void);
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
-extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT];
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
-extern u8 gActiveBank;
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
+extern u8 gActiveBattler;
extern u8 gUnknown_0202428C;
extern u32 gUnknown_02022FF4;
extern u8 gUnknown_0203C7B4;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
extern u8 gBattleBuffersTransferData[0x100];
extern u8 gUnknown_02022D08;
extern u8 gUnknown_02022D09;
extern u8 gUnknown_02022D0A;
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u8 gEffectBank;
extern u16 gBattleWeather;
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
extern u16 gCurrentMove;
extern u16 gChosenMove;
extern u16 gLastUsedItem;
extern u8 gBattleOutcome;
extern u8 gLastUsedAbility;
-extern u8 gStringBank;
+extern u8 gStringBattler;
extern const struct BattleMove gBattleMoves[];
@@ -51,8 +51,8 @@ extern void sub_81B8D64(u8 bank, u8 arg1); // party_menu
// this file's funcionts
static void CreateTasksForSendRecvLinkBuffers(void);
-static void SetControllersVariablesInLinkBattle(void);
-static void SetControllersVariables(void);
+static void InitLinkBtlControllers(void);
+static void InitSinglePlayerBtlControllers(void);
static void SetBattlePartyIds(void);
static void Task_HandleSendLinkBuffersData(u8 taskId);
static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId);
@@ -64,7 +64,7 @@ void HandleLinkBattleSetup(void)
if (gLinkVSyncDisabled)
sub_800B488();
if (!gReceivedRemoteLinkPlayers)
- sub_8009734();
+ OpenLink();
CreateTask(task00_08081A90, 0);
CreateTasksForSendRecvLinkBuffers();
}
@@ -76,16 +76,16 @@ void SetUpBattleVarsAndBirchZigzagoon(void)
gBattleMainFunc = nullsub_20;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- gBattleBankFunc[i] = nullsub_21;
- gBanksByIdentity[i] = 0xFF;
+ gBattlerControllerFuncs[i] = nullsub_21;
+ gBattlerPositions[i] = 0xFF;
gActionSelectionCursor[i] = 0;
gMoveSelectionCursor[i] = 0;
}
HandleLinkBattleSetup();
- gBattleExecBuffer = 0;
+ gBattleControllerExecFlags = 0;
ClearBattleAnimationVars();
ClearBattleMonForms();
BattleAI_HandleItemUseBeforeAISetup(0xF);
@@ -116,15 +116,15 @@ void sub_8032768(void)
RecordedBattle_SaveParties();
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- SetControllersVariablesInLinkBattle();
+ InitLinkBtlControllers();
else
- SetControllersVariables();
+ InitSinglePlayerBtlControllers();
SetBattlePartyIds();
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
sub_81B8D64(i, 0);
}
@@ -135,7 +135,7 @@ void sub_8032768(void)
*(gBattleStruct->field_204 + i) = 0;
}
-static void SetControllersVariables(void)
+static void InitSinglePlayerBtlControllers(void)
{
s32 i;
@@ -145,62 +145,62 @@ static void SetControllersVariables(void)
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
- gBattleBankFunc[0] = SetControllerToRecordedPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToPlayerPartner;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToPlayerPartner;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
}
else
{
- gBattleBankFunc[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToPlayerPartner;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToPlayerPartner;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
}
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
sub_81B8D64(0, 0);
sub_81B8D64(1, 0);
sub_81B8D64(2, 1);
sub_81B8D64(3, 1);
- gBattlePartyID[0] = 0;
- gBattlePartyID[1] = 0;
- gBattlePartyID[2] = 3;
- gBattlePartyID[3] = 3;
+ gBattlerPartyIndexes[0] = 0;
+ gBattlerPartyIndexes[1] = 0;
+ gBattlerPartyIndexes[2] = 3;
+ gBattlerPartyIndexes[3] = 3;
}
else if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
gBattleMainFunc = BeginBattleIntro;
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
- gBattleBankFunc[0] = SetControllerToSafari;
+ gBattlerControllerFuncs[0] = SetControllerToSafari;
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
- gBattleBankFunc[0] = SetControllerToWally;
+ gBattlerControllerFuncs[0] = SetControllerToWally;
else
- gBattleBankFunc[0] = SetControllerToPlayer;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gNoOfAllBanks = 2;
+ gBattlersCount = 2;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
@@ -210,32 +210,32 @@ static void SetControllersVariables(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToRecordedPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToRecordedOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gNoOfAllBanks = 2;
+ gBattlersCount = 2;
}
else // see how the banks are switched
{
- gBattleBankFunc[1] = SetControllerToRecordedPlayer;
- gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToRecordedPlayer;
+ gBattlerPositions[1] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[0] = SetControllerToRecordedOpponent;
- gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent;
+ gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
- gNoOfAllBanks = 2;
+ gBattlersCount = 2;
}
}
else
{
- gBattleBankFunc[0] = SetControllerToRecordedPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
}
}
}
@@ -243,19 +243,19 @@ static void SetControllersVariables(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToPlayer;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToPlayer;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
@@ -263,35 +263,35 @@ static void SetControllersVariables(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToRecordedPlayer;
- gBanksByIdentity[0] = 0;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer;
+ gBattlerPositions[0] = 0;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = 1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = 1;
- gBattleBankFunc[2] = SetControllerToRecordedPlayer;
- gBanksByIdentity[2] = 2;
+ gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer;
+ gBattlerPositions[2] = 2;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = 3;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = 3;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
sub_81B8D64(0, 0);
sub_81B8D64(1, 0);
sub_81B8D64(2, 1);
sub_81B8D64(3, 1);
- gBattlePartyID[0] = 0;
- gBattlePartyID[1] = 0;
- gBattlePartyID[2] = 3;
- gBattlePartyID[3] = 3;
+ gBattlerPartyIndexes[0] = 0;
+ gBattlerPartyIndexes[1] = 0;
+ gBattlerPartyIndexes[2] = 3;
+ gBattlerPartyIndexes[3] = 3;
}
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
u8 var; // multiplayer Id in a recorded battle?
- for (var = gUnknown_0203C7B4, i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (var = gUnknown_0203C7B4, i = 0; i < MAX_BATTLERS_COUNT; i++)
{
switch (gLinkPlayers[i].lp_field_18)
{
@@ -307,53 +307,53 @@ static void SetControllersVariables(void)
if (i == var)
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1))
|| ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1)))
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedPlayer;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_PLAYER_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
else
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToRecordedOpponent;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON1;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_LEFT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON2;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = B_POSITION_OPPONENT_RIGHT;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
@@ -361,59 +361,59 @@ static void SetControllersVariables(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_WILD)
{
- gBattleBankFunc[0] = SetControllerToRecordedPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[2] = SetControllerToRecordedPlayer;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToRecordedPlayer;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
- gBattleBankFunc[1] = SetControllerToRecordedOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToRecordedOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[3] = SetControllerToRecordedOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToRecordedOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
}
else
{
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
}
}
else
{
- gBattleBankFunc[1] = SetControllerToRecordedPlayer;
- gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToRecordedPlayer;
+ gBattlerPositions[1] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[3] = SetControllerToRecordedPlayer;
- gBanksByIdentity[3] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToRecordedPlayer;
+ gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT;
if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
- gBattleBankFunc[0] = SetControllerToRecordedOpponent;
- gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToRecordedOpponent;
+ gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToRecordedOpponent;
- gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToRecordedOpponent;
+ gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT;
}
else
{
- gBattleBankFunc[0] = SetControllerToOpponent;
- gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToOpponent;
+ gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToOpponent;
- gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToOpponent;
+ gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT;
}
}
}
}
}
-static void SetControllersVariablesInLinkBattle(void)
+static void InitLinkBtlControllers(void)
{
s32 i;
u8 multiplayerId;
@@ -424,23 +424,23 @@ static void SetControllersVariablesInLinkBattle(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToLinkOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToLinkOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gNoOfAllBanks = 2;
+ gBattlersCount = 2;
}
else
{
- gBattleBankFunc[1] = SetControllerToPlayer;
- gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToPlayer;
+ gBattlerPositions[1] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[0] = SetControllerToLinkOpponent;
- gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToLinkOpponent;
+ gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
- gNoOfAllBanks = 2;
+ gBattlersCount = 2;
}
}
else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -449,35 +449,35 @@ static void SetControllersVariablesInLinkBattle(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToLinkOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToLinkOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToPlayer;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToPlayer;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToLinkOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToLinkOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
}
else
{
- gBattleBankFunc[1] = SetControllerToPlayer;
- gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToPlayer;
+ gBattlerPositions[1] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[0] = SetControllerToLinkOpponent;
- gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToLinkOpponent;
+ gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[3] = SetControllerToPlayer;
- gBanksByIdentity[3] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToPlayer;
+ gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[2] = SetControllerToLinkOpponent;
- gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToLinkOpponent;
+ gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
}
}
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
@@ -486,45 +486,45 @@ static void SetControllersVariablesInLinkBattle(void)
{
gBattleMainFunc = BeginBattleIntro;
- gBattleBankFunc[0] = SetControllerToPlayer;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToPlayer;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToLinkPartner;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToLinkPartner;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
}
else
{
- gBattleBankFunc[0] = SetControllerToLinkPartner;
- gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+ gBattlerControllerFuncs[0] = SetControllerToLinkPartner;
+ gBattlerPositions[0] = B_POSITION_PLAYER_LEFT;
- gBattleBankFunc[1] = SetControllerToLinkOpponent;
- gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ gBattlerControllerFuncs[1] = SetControllerToLinkOpponent;
+ gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT;
- gBattleBankFunc[2] = SetControllerToPlayer;
- gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+ gBattlerControllerFuncs[2] = SetControllerToPlayer;
+ gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT;
- gBattleBankFunc[3] = SetControllerToLinkOpponent;
- gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ gBattlerControllerFuncs[3] = SetControllerToLinkOpponent;
+ gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT;
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
}
sub_81B8D64(0, 0);
sub_81B8D64(1, 0);
sub_81B8D64(2, 1);
sub_81B8D64(3, 1);
- gBattlePartyID[0] = 0;
- gBattlePartyID[1] = 0;
- gBattlePartyID[2] = 3;
- gBattlePartyID[3] = 3;
+ gBattlerPartyIndexes[0] = 0;
+ gBattlerPartyIndexes[1] = 0;
+ gBattlerPartyIndexes[2] = 3;
+ gBattlerPartyIndexes[3] = 3;
}
else
{
@@ -533,7 +533,7 @@ static void SetControllersVariablesInLinkBattle(void)
if (gBattleTypeFlags & BATTLE_TYPE_WILD)
gBattleMainFunc = BeginBattleIntro;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
switch (gLinkPlayers[i].lp_field_18)
{
@@ -549,18 +549,18 @@ static void SetControllersVariablesInLinkBattle(void)
if (i == multiplayerId)
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToPlayer;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
@@ -569,42 +569,42 @@ static void SetControllersVariablesInLinkBattle(void)
if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1))
|| ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1)))
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkPartner;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 2;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
else
{
- gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent;
+ gBattlerControllerFuncs[gLinkPlayers[i].lp_field_18] = SetControllerToLinkOpponent;
switch (gLinkPlayers[i].lp_field_18)
{
case 0:
case 3:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 1;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 1;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 0;
break;
case 1:
case 2:
- gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 3;
- gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPositions[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlerPartyIndexes[gLinkPlayers[i].lp_field_18] = 3;
break;
}
}
}
}
- gNoOfAllBanks = 4;
+ gBattlersCount = 4;
}
}
@@ -614,20 +614,20 @@ static void SetBattlePartyIds(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
for (j = 0; j < 6; j++)
{
if (i < 2)
{
- if (GET_BANK_SIDE2(i) == SIDE_PLAYER)
+ if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER)
{
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0)
{
- gBattlePartyID[i] = j;
+ gBattlerPartyIndexes[i] = j;
break;
}
}
@@ -638,22 +638,22 @@ static void SetBattlePartyIds(void)
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0)
{
- gBattlePartyID[i] = j;
+ gBattlerPartyIndexes[i] = j;
break;
}
}
}
else
{
- if (GET_BANK_SIDE2(i) == SIDE_PLAYER)
+ if (GET_BATTLER_SIDE2(i) == B_SIDE_PLAYER)
{
if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2.
&& GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0
- && gBattlePartyID[i - 2] != j)
+ && gBattlerPartyIndexes[i - 2] != j)
{
- gBattlePartyID[i] = j;
+ gBattlerPartyIndexes[i] = j;
break;
}
}
@@ -663,9 +663,9 @@ static void SetBattlePartyIds(void)
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
&& GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
&& GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0
- && gBattlePartyID[i - 2] != j)
+ && gBattlerPartyIndexes[i - 2] != j)
{
- gBattlePartyID[i] = j;
+ gBattlerPartyIndexes[i] = j;
break;
}
}
@@ -674,7 +674,7 @@ static void SetBattlePartyIds(void)
}
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
- gBattlePartyID[1] = 0, gBattlePartyID[3] = 3;
+ gBattlerPartyIndexes[1] = 0, gBattlerPartyIndexes[3] = 3;
}
}
@@ -693,14 +693,14 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size)
case 0:
for (i = 0; i < size; i++)
{
- gBattleBufferA[gActiveBank][i] = *data;
+ gBattleBufferA[gActiveBattler][i] = *data;
data++;
}
break;
case 1:
for (i = 0; i < size; i++)
{
- gBattleBufferB[gActiveBank][i] = *data;
+ gBattleBufferB[gActiveBattler][i] = *data;
data++;
}
break;
@@ -751,12 +751,12 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data)
gTasks[gUnknown_02022D08].data[14] = 0;
}
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId;
- gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank;
- gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker;
- gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankTarget;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBattler;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBattlerAttacker;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBattlerTarget;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8;
- gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBattlerFlags;
gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BANK] = gEffectBank;
for (i = 0; i < size; i++)
@@ -793,9 +793,9 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
else
var = (gBattleTypeFlags & BATTLE_TYPE_MULTI) ? 4 : 2;
- if (sub_800ABAC() >= var)
+ if (GetLinkPlayerCount_2() >= var)
{
- if (sub_800ABBC())
+ if (IsLinkMaster())
{
sub_800A620();
gTasks[taskId].data[11]++;
@@ -912,7 +912,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0])
{
case 0:
- if (gBattleExecBuffer & gBitTable[bank])
+ if (gBattleControllerExecFlags & gBitTable[bank])
return;
memcpy(gBattleBufferA[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize);
@@ -920,9 +920,9 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
{
- gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2];
- gBankTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3];
- gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6];
+ gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2];
+ gBattlerTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3];
+ gAbsentBattlerFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6];
gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7];
}
break;
@@ -931,7 +931,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
break;
case 2:
var = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA];
- gBattleExecBuffer &= ~(gBitTable[bank] << (var * 4));
+ gBattleControllerExecFlags &= ~(gBitTable[bank] << (var * 4));
break;
}
@@ -939,7 +939,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
}
}
-void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
+void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
{
gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
gBattleBuffersTransferData[1] = requestId;
@@ -948,7 +948,7 @@ void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
+void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
{
gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
gBattleBuffersTransferData[1] = monId;
@@ -957,7 +957,7 @@ void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
+void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data)
{
s32 i;
@@ -969,7 +969,7 @@ void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *da
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes);
}
-void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
+void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
{
s32 i;
@@ -981,7 +981,7 @@ void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3);
}
-void EmitLoadMonSprite(u8 bufferId)
+void BtlController_EmitLoadMonSprite(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
gBattleBuffersTransferData[1] = CONTROLLER_LOADMONSPRITE;
@@ -990,7 +990,7 @@ void EmitLoadMonSprite(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
+void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
{
gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
gBattleBuffersTransferData[1] = partyId;
@@ -999,14 +999,14 @@ void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitReturnMonToBall(u8 bufferId, u8 arg1)
+void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
gBattleBuffersTransferData[1] = arg1;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitDrawTrainerPic(u8 bufferId)
+void BtlController_EmitDrawTrainerPic(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
gBattleBuffersTransferData[1] = CONTROLLER_DRAWTRAINERPIC;
@@ -1015,7 +1015,7 @@ void EmitDrawTrainerPic(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitTrainerSlide(u8 bufferId)
+void BtlController_EmitTrainerSlide(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDE;
@@ -1024,7 +1024,7 @@ void EmitTrainerSlide(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitTrainerSlideBack(u8 bufferId)
+void BtlController_EmitTrainerSlideBack(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
gBattleBuffersTransferData[1] = CONTROLLER_TRAINERSLIDEBACK;
@@ -1033,7 +1033,7 @@ void EmitTrainerSlideBack(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitFaintAnimation(u8 bufferId)
+void BtlController_EmitFaintAnimation(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTANIMATION;
@@ -1042,7 +1042,7 @@ void EmitFaintAnimation(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitPaletteFade(u8 bufferId)
+void BtlController_EmitPaletteFade(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE;
gBattleBuffersTransferData[1] = CONTROLLER_PALETTEFADE;
@@ -1051,7 +1051,7 @@ void EmitPaletteFade(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitSuccessBallThrowAnim(u8 bufferId)
+void BtlController_EmitSuccessBallThrowAnim(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM;
gBattleBuffersTransferData[1] = CONTROLLER_SUCCESSBALLTHROWANIM;
@@ -1060,14 +1060,14 @@ void EmitSuccessBallThrowAnim(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitBallThrowAnim(u8 bufferId, u8 caseId)
+void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId)
{
gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROWANIM;
gBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitPause(u8 bufferId, u8 toWait, void *data)
+void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data)
{
s32 i;
@@ -1078,7 +1078,7 @@ void EmitPause(u8 bufferId, u8 toWait, void *data)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2);
}
-void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit)
+void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit)
{
gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
gBattleBuffersTransferData[1] = move;
@@ -1108,7 +1108,7 @@ void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
}
-void EmitPrintString(u8 bufferId, u16 stringID)
+void BtlController_EmitPrintString(u8 bufferId, u16 stringID)
{
s32 i;
struct StringInfoBattle* stringInfo;
@@ -1123,13 +1123,13 @@ void EmitPrintString(u8 bufferId, u16 stringID)
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
- stringInfo->scrActive = gBattleScripting.bank;
+ stringInfo->scrActive = gBattleScripting.battler;
stringInfo->unk1605E = gBattleStruct->field_52;
stringInfo->hpScale = gBattleStruct->hpScale;
- stringInfo->StringBank = gStringBank;
+ stringInfo->StringBank = gStringBattler;
stringInfo->moveType = gBattleMoves[gCurrentMove].type;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
stringInfo->abilities[i] = gBattleMons[i].ability;
for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++)
{
@@ -1140,7 +1140,7 @@ void EmitPrintString(u8 bufferId, u16 stringID)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
}
-void EmitPrintSelectionString(u8 bufferId, u16 stringID)
+void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID)
{
s32 i;
struct StringInfoBattle *stringInfo;
@@ -1155,10 +1155,10 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID)
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
- stringInfo->scrActive = gBattleScripting.bank;
+ stringInfo->scrActive = gBattleScripting.battler;
stringInfo->unk1605E = gBattleStruct->field_52;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
stringInfo->abilities[i] = gBattleMons[i].ability;
for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++)
{
@@ -1169,7 +1169,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
}
-void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
+void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
{
gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
gBattleBuffersTransferData[1] = arg1;
@@ -1178,7 +1178,7 @@ void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitUnknownYesNoBox(u8 bufferId)
+void BtlController_EmitUnknownYesNoBox(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX;
gBattleBuffersTransferData[1] = CONTROLLER_UNKNOWNYESNOBOX;
@@ -1187,7 +1187,7 @@ void EmitUnknownYesNoBox(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
+void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
{
s32 i;
@@ -1200,7 +1200,7 @@ void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4);
}
-void EmitChooseItem(u8 bufferId, u8 *arg1)
+void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1)
{
s32 i;
@@ -1210,7 +1210,7 @@ void EmitChooseItem(u8 bufferId, u8 *arg1)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
+void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
{
s32 i;
@@ -1223,7 +1223,7 @@ void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written
}
-void EmitCmd23(u8 bufferId)
+void BtlController_EmitCmd23(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_23;
gBattleBuffersTransferData[1] = CONTROLLER_23;
@@ -1233,7 +1233,7 @@ void EmitCmd23(u8 bufferId)
}
// why is the argument u16 if it's being cast to s16 anyway?
-void EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
+void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
{
gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
gBattleBuffersTransferData[1] = 0;
@@ -1243,7 +1243,7 @@ void EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
}
// why is the argument u16 if it's being cast to s16 anyway?
-void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
+void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
{
gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
gBattleBuffersTransferData[1] = partyId;
@@ -1252,7 +1252,7 @@ void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
+void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
gBattleBuffersTransferData[1] = status1;
@@ -1266,7 +1266,7 @@ void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9);
}
-void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
+void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
gBattleBuffersTransferData[1] = status2;
@@ -1277,14 +1277,14 @@ void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6);
}
-void EmitStatusXor(u8 bufferId, u8 b)
+void BtlController_EmitStatusXor(u8 bufferId, u8 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
gBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitDataTransfer(u8 bufferId, u16 size, void *data)
+void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data)
{
s32 i;
@@ -1297,7 +1297,7 @@ void EmitDataTransfer(u8 bufferId, u16 size, void *data)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4);
}
-void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
+void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
{
s32 i;
@@ -1313,7 +1313,7 @@ void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7);
}
-void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
+void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
{
s32 i;
@@ -1325,7 +1325,7 @@ void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3);
}
-void EmitCmd32(u8 bufferId, u16 size, void *data)
+void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data)
{
s32 i;
@@ -1337,7 +1337,7 @@ void EmitCmd32(u8 bufferId, u16 size, void *data)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3);
}
-void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
+void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
{
gBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES;
gBattleBuffersTransferData[1] = arg1;
@@ -1346,7 +1346,7 @@ void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
+void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
{
s32 i;
@@ -1357,7 +1357,7 @@ void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5);
}
-void EmitOneReturnValue(u8 bufferId, u16 arg1)
+void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE;
gBattleBuffersTransferData[1] = arg1;
@@ -1366,7 +1366,7 @@ void EmitOneReturnValue(u8 bufferId, u16 arg1)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
+void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE;
gBattleBuffersTransferData[1] = b;
@@ -1375,7 +1375,7 @@ void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitCmd37(u8 bufferId)
+void BtlController_EmitCmd37(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_37;
gBattleBuffersTransferData[1] = CONTROLLER_37;
@@ -1384,14 +1384,14 @@ void EmitCmd37(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitCmd38(u8 bufferId, u8 b)
+void BtlController_EmitCmd38(u8 bufferId, u8 b)
{
gBattleBuffersTransferData[0] = CONTROLLER_38;
gBattleBuffersTransferData[1] = b;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitCmd39(u8 bufferId)
+void BtlController_EmitCmd39(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_39;
gBattleBuffersTransferData[1] = CONTROLLER_39;
@@ -1400,7 +1400,7 @@ void EmitCmd39(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitCmd40(u8 bufferId)
+void BtlController_EmitCmd40(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_40;
gBattleBuffersTransferData[1] = CONTROLLER_40;
@@ -1409,7 +1409,7 @@ void EmitCmd40(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitHitAnimation(u8 bufferId)
+void BtlController_EmitHitAnimation(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
gBattleBuffersTransferData[1] = CONTROLLER_HITANIMATION;
@@ -1418,7 +1418,7 @@ void EmitHitAnimation(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitCmd42(u8 bufferId)
+void BtlController_EmitCmd42(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_42;
gBattleBuffersTransferData[1] = CONTROLLER_42;
@@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitPlaySE(u8 bufferId, u16 songId)
+void BtlController_EmitPlaySE(u8 bufferId, u16 songId)
{
gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
gBattleBuffersTransferData[1] = songId;
@@ -1436,7 +1436,7 @@ void EmitPlaySE(u8 bufferId, u16 songId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
+void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
{
gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
gBattleBuffersTransferData[1] = songId;
@@ -1445,7 +1445,7 @@ void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitFaintingCry(u8 bufferId)
+void BtlController_EmitFaintingCry(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
gBattleBuffersTransferData[1] = CONTROLLER_FAINTINGCRY;
@@ -1454,14 +1454,14 @@ void EmitFaintingCry(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitIntroSlide(u8 bufferId, u8 terrainId)
+void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId)
{
gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
gBattleBuffersTransferData[1] = terrainId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitIntroTrainerBallThrow(u8 bufferId)
+void BtlController_EmitIntroTrainerBallThrow(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
gBattleBuffersTransferData[1] = CONTROLLER_INTROTRAINERBALLTHROW;
@@ -1470,7 +1470,7 @@ void EmitIntroTrainerBallThrow(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
+void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
{
s32 i;
@@ -1483,7 +1483,7 @@ void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
}
-void EmitCmd49(u8 bufferId)
+void BtlController_EmitCmd49(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_49;
gBattleBuffersTransferData[1] = CONTROLLER_49;
@@ -1492,7 +1492,7 @@ void EmitCmd49(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitCmd50(u8 bufferId)
+void BtlController_EmitCmd50(u8 bufferId)
{
gBattleBuffersTransferData[0] = CONTROLLER_50;
gBattleBuffersTransferData[1] = CONTROLLER_50;
@@ -1501,7 +1501,7 @@ void EmitCmd50(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
+void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
{
gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
gBattleBuffersTransferData[1] = isInvisible;
@@ -1510,7 +1510,7 @@ void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
+void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
{
gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
gBattleBuffersTransferData[1] = animationId;
@@ -1519,7 +1519,7 @@ void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
-void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
+void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
{
bool8 arg2_ = arg2;
gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
@@ -1533,14 +1533,14 @@ void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4);
}
-void EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
+void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
{
gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
gBattleBuffersTransferData[1] = caseId;
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
}
-void EmitCmd55(u8 bufferId, u8 arg1)
+void BtlController_EmitCmd55(u8 bufferId, u8 arg1)
{
gBattleBuffersTransferData[0] = CONTROLLER_55;
gBattleBuffersTransferData[1] = arg1;
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 775578ca2..7958d07b3 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -23,17 +23,17 @@
#include "contest.h"
#include "constants/songs.h"
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gActiveBank;
-extern u8 gNoOfAllBanks;
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gActiveBattler;
+extern u8 gBattlersCount;
extern u16 gUnknown_020243FC;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT];
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
-extern u32 gTransformedPersonalities[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
+extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
@@ -109,7 +109,7 @@ static const struct CompressedSpriteSheet gUnknown_0832C100 =
gUnknown_08C1F8E8, 0x1000, TAG_HEALTHBOX_SAFARI_TILE
};
-static const struct CompressedSpriteSheet gUnknown_0832C108[BATTLE_BANKS_COUNT] =
+static const struct CompressedSpriteSheet gUnknown_0832C108[MAX_BATTLERS_COUNT] =
{
{gBlankGfxCompressed, 0x0100, 0xd704},
{gBlankGfxCompressed, 0x0120, 0xd705},
@@ -127,10 +127,10 @@ static const struct SpritePalette gUnknown_0832C128[2] =
void AllocateBattleSpritesData(void)
{
gBattleSpritesDataPtr = AllocZeroed(sizeof(struct BattleSpriteData));
- gBattleSpritesDataPtr->bankData = AllocZeroed(sizeof(struct BattleSpriteInfo) * BATTLE_BANKS_COUNT);
- gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * BATTLE_BANKS_COUNT);
+ gBattleSpritesDataPtr->battlerData = AllocZeroed(sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT);
+ gBattleSpritesDataPtr->healthBoxesData = AllocZeroed(sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT);
gBattleSpritesDataPtr->animationData = AllocZeroed(sizeof(struct BattleAnimationInfo));
- gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * BATTLE_BANKS_COUNT);
+ gBattleSpritesDataPtr->battleBars = AllocZeroed(sizeof(struct BattleBarInfo) * MAX_BATTLERS_COUNT);
}
void FreeBattleSpritesData(void)
@@ -141,7 +141,7 @@ void FreeBattleSpritesData(void)
FREE_AND_SET_NULL(gBattleSpritesDataPtr->battleBars);
FREE_AND_SET_NULL(gBattleSpritesDataPtr->animationData);
FREE_AND_SET_NULL(gBattleSpritesDataPtr->healthBoxesData);
- FREE_AND_SET_NULL(gBattleSpritesDataPtr->bankData);
+ FREE_AND_SET_NULL(gBattleSpritesDataPtr->battlerData);
FREE_AND_SET_NULL(gBattleSpritesDataPtr);
}
@@ -149,17 +149,17 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
{
s32 i, var1, var2;
s32 chosenMoveId = -1;
- struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
- u8 unusableMovesBits = CheckMoveLimitations(gActiveBank, 0, 0xFF);
+ struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
+ u8 unusableMovesBits = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
s32 percent = Random() % 100;
- i = (gBattleStruct->field_92 & gBitTable[gActiveBank]) ? 2 : 0;
+ i = (gBattleStruct->field_92 & gBitTable[gActiveBattler]) ? 2 : 0;
var2 = i;
var1 = i + 2;
for (; i < var1; i++)
{
- if (gUnknown_0831C494[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)][i] > percent)
+ if (gUnknown_0831C494[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)][i] > percent)
break;
}
@@ -234,13 +234,13 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
if (Random() % 100 > 49)
{
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
return 0;
}
}
else
{
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
return 0;
}
}
@@ -258,11 +258,11 @@ u16 ChooseMoveAndTargetInBattlePalace(void)
}
if (var1 & MOVE_TARGET_x10)
- chosenMoveId |= (gActiveBank << 8);
+ chosenMoveId |= (gActiveBattler << 8);
else if (var1 == MOVE_TARGET_SELECTED)
chosenMoveId |= (BattlePalaceGetTargetRetValue());
else
- chosenMoveId |= (GetBankByIdentity((GetBankIdentity(gActiveBank) & BIT_SIDE) ^ BIT_SIDE) << 8);
+ chosenMoveId |= (GetBattlerAtPosition((GetBattlerPosition(gActiveBattler) & BIT_SIDE) ^ BIT_SIDE) << 8);
return chosenMoveId;
}
@@ -297,21 +297,21 @@ static u16 BattlePalaceGetTargetRetValue(void)
{
u8 opposing1, opposing2;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
- opposing1 = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- opposing2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ opposing1 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ opposing2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
else
{
- opposing1 = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- opposing2 = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ opposing1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ opposing2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
if (gBattleMons[opposing1].hp == gBattleMons[opposing2].hp)
- return (((gActiveBank & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
+ return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
- switch (gUnknown_0831C604[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)])
+ switch (gUnknown_0831C604[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)])
{
case 0:
if (gBattleMons[opposing1].hp > gBattleMons[opposing2].hp)
@@ -324,11 +324,11 @@ static u16 BattlePalaceGetTargetRetValue(void)
else
return opposing2 << 8;
case 2:
- return (((gActiveBank & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
+ return (((gActiveBattler & BIT_SIDE) ^ BIT_SIDE) + (Random() & 2)) << 8;
}
}
- return (gActiveBank ^ BIT_SIDE) << 8;
+ return (gActiveBattler ^ BIT_SIDE) << 8;
}
void sub_805D714(struct Sprite *sprite)
@@ -388,36 +388,36 @@ static void sub_805D7EC(struct Sprite *sprite)
void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status)
{
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 1;
if (!isStatus2)
{
- if (status == STATUS_FREEZE)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_FRZ);
- else if (status == STATUS_POISON || status & STATUS_TOXIC_POISON)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PSN);
- else if (status == STATUS_BURN)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_BRN);
- else if (status & STATUS_SLEEP)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_SLP);
- else if (status == STATUS_PARALYSIS)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_PRZ);
+ if (status == STATUS1_FREEZE)
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_FRZ);
+ else if (status == STATUS1_POISON || status & STATUS1_TOXIC_POISON)
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PSN);
+ else if (status == STATUS1_BURN)
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_BRN);
+ else if (status & STATUS1_SLEEP)
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_SLP);
+ else if (status == STATUS1_PARALYSIS)
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_PRZ);
else // no animation
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0;
}
else
{
if (status & STATUS2_INFATUATION)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_INFATUATION);
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_INFATUATION);
else if (status & STATUS2_CONFUSION)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_CONFUSION);
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CONFUSION);
else if (status & STATUS2_CURSED)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_CURSED);
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_CURSED);
else if (status & STATUS2_NIGHTMARE)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_NIGHTMARE);
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_NIGHTMARE);
else if (status & STATUS2_WRAPPED)
- LaunchStatusAnimation(gActiveBank, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist
+ LaunchStatusAnimation(gActiveBattler, B_ANIM_STATUS_WRAPPED); // this animation doesn't actually exist
else // no animation
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].statusAnimActive = 0;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive = 0;
}
}
@@ -432,22 +432,22 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank,
gBattleMonForms[activeBank] = (argument & ~(0x80));
return TRUE;
}
- if (gBattleSpritesDataPtr->bankData[activeBank].behindSubstitute
+ if (gBattleSpritesDataPtr->battlerData[activeBank].behindSubstitute
&& !ShouldAnimBeDoneRegardlessOfSubsitute(tableId))
{
return TRUE;
}
- if (gBattleSpritesDataPtr->bankData[activeBank].behindSubstitute
+ if (gBattleSpritesDataPtr->battlerData[activeBank].behindSubstitute
&& tableId == B_ANIM_SUBSTITUTE_FADE
- && gSprites[gBankSpriteIds[activeBank]].invisible)
+ && gSprites[gBattlerSpriteIds[activeBank]].invisible)
{
- LoadBattleMonGfxAndAnimate(activeBank, TRUE, gBankSpriteIds[activeBank]);
+ LoadBattleMonGfxAndAnimate(activeBank, TRUE, gBattlerSpriteIds[activeBank]);
ClearBehindSubstituteBit(activeBank);
return TRUE;
}
- gAnimBankAttacker = atkBank;
- gAnimBankTarget = defBank;
+ gBattleAnimAttacker = atkBank;
+ gBattleAnimTarget = defBank;
gBattleSpritesDataPtr->animationData->animArg = argument;
LaunchBattleAnimation(gBattleAnims_VariousTable, tableId, FALSE);
taskId = CreateTask(Task_ClearBitWhenBattleTableAnimDone, 10);
@@ -491,8 +491,8 @@ void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tab
{
u8 taskId;
- gAnimBankAttacker = atkBank;
- gAnimBankTarget = defBank;
+ gBattleAnimAttacker = atkBank;
+ gBattleAnimTarget = defBank;
LaunchBattleAnimation(gBattleAnims_Special, tableId, FALSE);
taskId = CreateTask(Task_ClearBitWhenSpecialAnimDone, 10);
gTasks[taskId].tBank = activeBank;
@@ -524,7 +524,7 @@ bool8 mplay_80342A4(u8 bank)
if (IsSEPlaying())
{
gBattleSpritesDataPtr->healthBoxesData[bank].field_8++;
- if (gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_8 < 30)
+ if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_8 < 30)
return TRUE;
m4aMPlayStop(&gMPlayInfo_SE1);
@@ -543,32 +543,32 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank)
{
u32 monsPersonality, currentPersonality, otId;
u16 species;
- u8 identity;
+ u8 position;
u16 paletteOffset;
const void *lzPaletteData;
monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY);
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE)
{
species = GetMonData(mon, MON_DATA_SPECIES);
currentPersonality = monsPersonality;
}
else
{
- species = gBattleSpritesDataPtr->bankData[bank].transformSpecies;
+ species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies;
currentPersonality = gTransformedPersonalities[bank];
}
otId = GetMonData(mon, MON_DATA_OT_ID);
- identity = GetBankIdentity(bank);
+ position = GetBattlerPosition(bank);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
species, currentPersonality);
paletteOffset = 0x100 + bank * 16;
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE)
lzPaletteData = GetMonFrontSpritePal(mon);
else
lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
@@ -585,7 +585,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank)
}
// transform's pink color
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -596,42 +596,42 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank)
{
u32 monsPersonality, currentPersonality, otId;
u16 species;
- u8 identity;
+ u8 position;
u16 paletteOffset;
const void *lzPaletteData;
monsPersonality = GetMonData(mon, MON_DATA_PERSONALITY);
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE)
{
species = GetMonData(mon, MON_DATA_SPECIES);
currentPersonality = monsPersonality;
}
else
{
- species = gBattleSpritesDataPtr->bankData[bank].transformSpecies;
+ species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies;
currentPersonality = gTransformedPersonalities[bank];
}
otId = GetMonData(mon, MON_DATA_OT_ID);
- identity = GetBankIdentity(bank);
+ position = GetBattlerPosition(bank);
- if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE)
+ if (sub_80688F8(1, bank) == 1 || gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE)
{
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
species, currentPersonality);
}
else
{
HandleLoadSpecialPokePic(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
species, currentPersonality);
}
paletteOffset = 0x100 + bank * 16;
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies == SPECIES_NONE)
lzPaletteData = GetMonFrontSpritePal(mon);
else
lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(species, otId, monsPersonality);
@@ -648,7 +648,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank)
}
// transform's pink color
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -665,18 +665,18 @@ void nullsub_24(u16 species)
void DecompressTrainerFrontPic(u16 frontPicId, u8 bank)
{
- u8 identity = GetBankIdentity(bank);
+ u8 position = GetBattlerPosition(bank);
DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
SPECIES_NONE);
LoadCompressedObjectPalette(&gTrainerFrontPicPaletteTable[frontPicId]);
}
void DecompressTrainerBackPic(u16 backPicId, u8 bank)
{
- u8 identity = GetBankIdentity(bank);
+ u8 position = GetBattlerPosition(bank);
DecompressPicFromTable_2(&gTrainerBackPicTable[backPicId],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
SPECIES_NONE);
LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data,
0x100 + 16 * bank, 0x20);
@@ -713,7 +713,7 @@ void sub_805DFFC(void)
numberOfBanks = 4;
}
for (i = 0; i < numberOfBanks; i++)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[i]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[i]]);
}
bool8 BattleLoadAllHealthBoxesGfx(u8 state)
@@ -739,9 +739,9 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
else if (state == 3)
LoadCompressedObjectPic(&gUnknown_0832C0D8);
else if (state == 4)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[0]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]);
else if (state == 5)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[1]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]);
else
retVal = TRUE;
}
@@ -756,13 +756,13 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
else if (state == 5)
LoadCompressedObjectPic(&gUnknown_0832C0F0[1]);
else if (state == 6)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[0]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]);
else if (state == 7)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[1]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]);
else if (state == 8)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[2]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[2]]);
else if (state == 9)
- LoadCompressedObjectPic(&gUnknown_0832C108[gBanksByIdentity[3]]);
+ LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[3]]);
else
retVal = TRUE;
}
@@ -802,44 +802,44 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank)
break;
case 3:
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) && *bank == 0)
- gHealthBoxesIds[*bank] = CreateSafariPlayerHealthboxSprites();
+ gHealthboxSpriteIds[*bank] = CreateSafariPlayerHealthboxSprites();
else
- gHealthBoxesIds[*bank] = CreateBankHealthboxSprites(*bank);
+ gHealthboxSpriteIds[*bank] = CreateBattlerHealthboxSprites(*bank);
(*bank)++;
- if (*bank == gNoOfAllBanks)
+ if (*bank == gBattlersCount)
{
*bank = 0;
(*state1)++;
}
break;
case 4:
- SetBankHealthboxSpritePos(*bank);
- if (gBanksByIdentity[*bank] <= 1)
- DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], FALSE);
+ InitBattlerHealthboxCoords(*bank);
+ if (gBattlerPositions[*bank] <= 1)
+ DummyBattleInterfaceFunc(gHealthboxSpriteIds[*bank], FALSE);
else
- DummyBattleInterfaceFunc(gHealthBoxesIds[*bank], TRUE);
+ DummyBattleInterfaceFunc(gHealthboxSpriteIds[*bank], TRUE);
(*bank)++;
- if (*bank == gNoOfAllBanks)
+ if (*bank == gBattlersCount)
{
*bank = 0;
(*state1)++;
}
break;
case 5:
- if (GetBankSide(*bank) == SIDE_PLAYER)
+ if (GetBattlerSide(*bank) == B_SIDE_PLAYER)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
- UpdateHealthboxAttribute(gHealthBoxesIds[*bank], &gPlayerParty[gBattlePartyID[*bank]], HEALTHBOX_ALL);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[*bank], &gPlayerParty[gBattlerPartyIndexes[*bank]], HEALTHBOX_ALL);
}
else
{
- UpdateHealthboxAttribute(gHealthBoxesIds[*bank], &gEnemyParty[gBattlePartyID[*bank]], HEALTHBOX_ALL);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[*bank], &gEnemyParty[gBattlerPartyIndexes[*bank]], HEALTHBOX_ALL);
}
- SetHealthboxSpriteInvisible(gHealthBoxesIds[*bank]);
+ SetHealthboxSpriteInvisible(gHealthboxSpriteIds[*bank]);
(*bank)++;
- if (*bank == gNoOfAllBanks)
+ if (*bank == gBattlersCount)
{
*bank = 0;
(*state1)++;
@@ -857,27 +857,27 @@ bool8 BattleInitAllSprites(u8 *state1, u8 *bank)
void ClearSpritesHealthboxAnimData(void)
{
- memset(gBattleSpritesDataPtr->healthBoxesData, 0, sizeof(struct BattleHealthboxInfo) * BATTLE_BANKS_COUNT);
+ memset(gBattleSpritesDataPtr->healthBoxesData, 0, sizeof(struct BattleHealthboxInfo) * MAX_BATTLERS_COUNT);
memset(gBattleSpritesDataPtr->animationData, 0, sizeof(struct BattleAnimationInfo));
}
static void ClearSpritesBankHealthboxAnimData(void)
{
ClearSpritesHealthboxAnimData();
- memset(gBattleSpritesDataPtr->bankData, 0, sizeof(struct BattleSpriteInfo) * BATTLE_BANKS_COUNT);
+ memset(gBattleSpritesDataPtr->battlerData, 0, sizeof(struct BattleSpriteInfo) * MAX_BATTLERS_COUNT);
}
void CopyAllBattleSpritesInvisibilities(void)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
- gBattleSpritesDataPtr->bankData[i].invisible = gSprites[gBankSpriteIds[i]].invisible;
+ for (i = 0; i < gBattlersCount; i++)
+ gBattleSpritesDataPtr->battlerData[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible;
}
void CopyBattleSpriteInvisibility(u8 bank)
{
- gBattleSpritesDataPtr->bankData[bank].invisible = gSprites[gBankSpriteIds[bank]].invisible;
+ gBattleSpritesDataPtr->battlerData[bank].invisible = gSprites[gBattlerSpriteIds[bank]].invisible;
}
void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
@@ -885,21 +885,21 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
u16 paletteOffset;
u32 personalityValue;
u32 otId;
- u8 identity;
+ u8 position;
const u8 *lzPaletteData;
if (notTransform)
{
- StartSpriteAnim(&gSprites[gBankSpriteIds[bankAtk]], gBattleSpritesDataPtr->animationData->animArg);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bankAtk]], gBattleSpritesDataPtr->animationData->animArg);
paletteOffset = 0x100 + bankAtk * 16;
LoadPalette(gBattleStruct->castformPalette[gBattleSpritesDataPtr->animationData->animArg], paletteOffset, 32);
gBattleMonForms[bankAtk] = gBattleSpritesDataPtr->animationData->animArg;
- if (gBattleSpritesDataPtr->bankData[bankAtk].transformSpecies != SPECIES_NONE)
+ if (gBattleSpritesDataPtr->battlerData[bankAtk].transformSpecies != SPECIES_NONE)
{
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
}
- gSprites[gBankSpriteIds[bankAtk]].pos1.y = GetBankSpriteDefault_Y(bankAtk);
+ gSprites[gBattlerSpriteIds[bankAtk]].pos1.y = GetBattlerSpriteDefault_Y(bankAtk);
}
else
{
@@ -909,7 +909,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
if (IsContest())
{
- identity = 0;
+ position = 0;
targetSpecies = gContestResources->field_18->field_2;
personalityValue = gContestResources->field_18->field_8;
otId = gContestResources->field_18->field_C;
@@ -921,37 +921,37 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
}
else
{
- identity = GetBankIdentity(bankAtk);
+ position = GetBattlerPosition(bankAtk);
- if (GetBankSide(bankDef) == SIDE_OPPONENT)
- targetSpecies = GetMonData(&gEnemyParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES);
+ if (GetBattlerSide(bankDef) == B_SIDE_OPPONENT)
+ targetSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankDef]], MON_DATA_SPECIES);
else
- targetSpecies = GetMonData(&gPlayerParty[gBattlePartyID[bankDef]], MON_DATA_SPECIES);
+ targetSpecies = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankDef]], MON_DATA_SPECIES);
- if (GetBankSide(bankAtk) == SIDE_PLAYER)
+ if (GetBattlerSide(bankAtk) == B_SIDE_PLAYER)
{
- personalityValue = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gPlayerParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID);
+ personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_OT_ID);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
targetSpecies,
gTransformedPersonalities[bankAtk]);
}
else
{
- personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bankAtk]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gEnemyParty[gBattlePartyID[bankAtk]], MON_DATA_OT_ID);
+ personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bankAtk]], MON_DATA_OT_ID);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies],
- gMonSpritesGfxPtr->sprites[identity],
+ gMonSpritesGfxPtr->sprites[position],
targetSpecies,
gTransformedPersonalities[bankAtk]);
}
}
- src = gMonSpritesGfxPtr->sprites[identity];
- dst = (void *)(VRAM + 0x10000 + gSprites[gBankSpriteIds[bankAtk]].oam.tileNum * 32);
+ src = gMonSpritesGfxPtr->sprites[position];
+ dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[bankAtk]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + bankAtk * 16;
lzPaletteData = GetFrontSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
@@ -960,7 +960,7 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
if (targetSpecies == SPECIES_CASTFORM)
{
- gSprites[gBankSpriteIds[bankAtk]].anims = gMonAnimationsSpriteAnimsPtrTable[targetSpecies];
+ gSprites[gBattlerSpriteIds[bankAtk]].anims = gMonAnimationsSpriteAnimsPtrTable[targetSpecies];
LZDecompressWram(lzPaletteData, gBattleStruct->castformPalette[0]);
LoadPalette(gBattleStruct->castformPalette[0] + gBattleMonForms[bankDef] * 16, paletteOffset, 32);
}
@@ -970,18 +970,18 @@ void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform)
if (!IsContest())
{
- gBattleSpritesDataPtr->bankData[bankAtk].transformSpecies = targetSpecies;
+ gBattleSpritesDataPtr->battlerData[bankAtk].transformSpecies = targetSpecies;
gBattleMonForms[bankAtk] = gBattleMonForms[bankDef];
}
- gSprites[gBankSpriteIds[bankAtk]].pos1.y = GetBankSpriteDefault_Y(bankAtk);
- StartSpriteAnim(&gSprites[gBankSpriteIds[bankAtk]], gBattleMonForms[bankAtk]);
+ gSprites[gBattlerSpriteIds[bankAtk]].pos1.y = GetBattlerSpriteDefault_Y(bankAtk);
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[bankAtk]], gBattleMonForms[bankAtk]);
}
}
void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite)
{
- u8 identity;
+ u8 position;
s32 i;
u32 var;
const void *substitutePal;
@@ -989,23 +989,23 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite)
if (!loadMonSprite)
{
if (IsContest())
- identity = 0;
+ position = 0;
else
- identity = GetBankIdentity(bank);
+ position = GetBattlerPosition(bank);
if (IsContest())
- LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[identity]);
- else if (GetBankSide(bank) != SIDE_PLAYER)
- LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[identity]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]);
+ else if (GetBattlerSide(bank) != B_SIDE_PLAYER)
+ LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]);
else
- LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[identity]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]);
i = 1;
var = bank * 16;
substitutePal = gSubstituteDollPal;
for (; i < 4; i++)
{
- register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[identity];
+ register void *dmaSrc asm("r0") = gMonSpritesGfxPtr->sprites[position];
void *dmaDst = (i * 0x800) + dmaSrc;
u32 dmaSize = 0x800;
DmaCopy32(3, dmaSrc, dmaDst, dmaSize);
@@ -1018,10 +1018,10 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite)
{
if (!IsContest())
{
- if (GetBankSide(bank) != SIDE_PLAYER)
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
else
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[bank]], bank);
}
}
}
@@ -1034,18 +1034,18 @@ void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId)
if (!loadMonSprite)
gSprites[spriteId].pos1.y = GetSubstituteSpriteDefault_Y(bank);
else
- gSprites[spriteId].pos1.y = GetBankSpriteDefault_Y(bank);
+ gSprites[spriteId].pos1.y = GetBattlerSpriteDefault_Y(bank);
}
void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move)
{
if (move == MOVE_SUBSTITUTE)
- gBattleSpritesDataPtr->bankData[bank].behindSubstitute = 1;
+ gBattleSpritesDataPtr->battlerData[bank].behindSubstitute = 1;
}
void ClearBehindSubstituteBit(u8 bank)
{
- gBattleSpritesDataPtr->bankData[bank].behindSubstitute = 0;
+ gBattleSpritesDataPtr->battlerData[bank].behindSubstitute = 0;
}
void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank)
@@ -1055,22 +1055,22 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank)
if (GetHPBarLevel(hp, maxHP) == HP_BAR_RED)
{
- if (!gBattleSpritesDataPtr->bankData[bank].lowHpSong)
+ if (!gBattleSpritesDataPtr->battlerData[bank].lowHpSong)
{
- if (!gBattleSpritesDataPtr->bankData[bank ^ BIT_MON].lowHpSong)
+ if (!gBattleSpritesDataPtr->battlerData[bank ^ BIT_FLANK].lowHpSong)
PlaySE(SE_HINSI);
- gBattleSpritesDataPtr->bankData[bank].lowHpSong = 1;
+ gBattleSpritesDataPtr->battlerData[bank].lowHpSong = 1;
}
}
else
{
- gBattleSpritesDataPtr->bankData[bank].lowHpSong = 0;
+ gBattleSpritesDataPtr->battlerData[bank].lowHpSong = 0;
if (!IsDoubleBattle())
{
m4aSongNumStop(SE_HINSI);
return;
}
- if (IsDoubleBattle() && !gBattleSpritesDataPtr->bankData[bank ^ BIT_MON].lowHpSong)
+ if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[bank ^ BIT_FLANK].lowHpSong)
{
m4aSongNumStop(SE_HINSI);
return;
@@ -1080,11 +1080,11 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank)
void BattleStopLowHpSound(void)
{
- u8 playerBank = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ u8 playerBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
- gBattleSpritesDataPtr->bankData[playerBank].lowHpSong = 0;
+ gBattleSpritesDataPtr->battlerData[playerBank].lowHpSong = 0;
if (IsDoubleBattle())
- gBattleSpritesDataPtr->bankData[playerBank ^ BIT_MON].lowHpSong = 0;
+ gBattleSpritesDataPtr->battlerData[playerBank ^ BIT_FLANK].lowHpSong = 0;
m4aSongNumStop(SE_HINSI);
}
@@ -1101,10 +1101,10 @@ void sub_805EAE8(void)
{
if (gMain.inBattle)
{
- u8 playerBank1 = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- u8 playerBank2 = GetBankByIdentity(IDENTITY_PLAYER_MON2);
- u8 bank1PartyId = pokemon_order_func(gBattlePartyID[playerBank1]);
- u8 bank2PartyId = pokemon_order_func(gBattlePartyID[playerBank2]);
+ u8 playerBank1 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ u8 playerBank2 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ u8 bank1PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBank1]);
+ u8 bank2PartyId = pokemon_order_func(gBattlerPartyIndexes[playerBank2]);
if (GetMonData(&gPlayerParty[bank1PartyId], MON_DATA_HP) != 0)
HandleLowHpMusicChange(&gPlayerParty[bank1PartyId], playerBank1);
@@ -1117,19 +1117,19 @@ void sub_805EB9C(u8 affineMode)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (IsBankSpritePresent(i))
+ if (IsBattlerSpritePresent(i))
{
- gSprites[gBankSpriteIds[i]].oam.affineMode = affineMode;
+ gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode;
if (affineMode == 0)
{
- gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBankSpriteIds[i]].oam.matrixNum;
- gSprites[gBankSpriteIds[i]].oam.matrixNum = 0;
+ gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
+ gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0;
}
else
{
- gSprites[gBankSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6;
+ gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6;
}
}
}
@@ -1143,14 +1143,14 @@ void LoadAndCreateEnemyShadowSprites(void)
LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow);
- bank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8);
+ bank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(bank, 0), GetBattlerSpriteCoord(bank, 1) + 29, 0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank;
if (IsDoubleBattle())
{
- bank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
- gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8);
+ bank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(bank, 0), GetBattlerSpriteCoord(bank, 1) + 29, 0xC8);
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank;
}
}
@@ -1159,20 +1159,20 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite)
{
bool8 invisible = FALSE;
u8 bank = shadowSprite->tBank;
- struct Sprite *bankSprite = &gSprites[gBankSpriteIds[bank]];
+ struct Sprite *bankSprite = &gSprites[gBattlerSpriteIds[bank]];
- if (!bankSprite->inUse || !IsBankSpritePresent(bank))
+ if (!bankSprite->inUse || !IsBattlerSpritePresent(bank))
{
shadowSprite->callback = SpriteCB_SetInvisible;
return;
}
if (gAnimScriptActive || bankSprite->invisible)
invisible = TRUE;
- else if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE
- && gEnemyMonElevation[gBattleSpritesDataPtr->bankData[bank].transformSpecies] == 0)
+ else if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE
+ && gEnemyMonElevation[gBattleSpritesDataPtr->battlerData[bank].transformSpecies] == 0)
invisible = TRUE;
- if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
+ if (gBattleSpritesDataPtr->battlerData[bank].behindSubstitute)
invisible = TRUE;
shadowSprite->pos1.x = bankSprite->pos1.x;
@@ -1187,13 +1187,14 @@ void SpriteCB_SetInvisible(struct Sprite *sprite)
sprite->invisible = 1;
}
-void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species)
+void SetBattlerShadowSpriteCallback(u8 bank, u16 species)
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ // The player's shadow is never seen
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
return;
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != SPECIES_NONE)
- species = gBattleSpritesDataPtr->bankData[bank].transformSpecies;
+ if (gBattleSpritesDataPtr->battlerData[bank].transformSpecies != SPECIES_NONE)
+ species = gBattleSpritesDataPtr->battlerData[bank].transformSpecies;
if (gEnemyMonElevation[species] != 0)
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_EnemyShadow;
@@ -1201,7 +1202,7 @@ void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species)
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_SetInvisible;
}
-void EnemyShadowCallbackToSetInvisible(u8 bank)
+void HideBattlerShadowSprite(u8 bank)
{
gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].callback = SpriteCB_SetInvisible;
}
@@ -1231,7 +1232,7 @@ void sub_805EF14(void)
void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute)
{
- gBattleSpritesDataPtr->bankData[bank].transformSpecies = SPECIES_NONE;
+ gBattleSpritesDataPtr->battlerData[bank].transformSpecies = SPECIES_NONE;
gBattleMonForms[bank] = 0;
if (!dontClearSubstitute)
ClearBehindSubstituteBit(bank);
@@ -1245,7 +1246,7 @@ void AllocateMonSpritesGfx(void)
gMonSpritesGfxPtr = AllocZeroed(sizeof(*gMonSpritesGfxPtr));
gMonSpritesGfxPtr->firstDecompressed = AllocZeroed(0x8000);
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000);
*(gMonSpritesGfxPtr->templates + i) = gUnknown_08329D98[i];
@@ -1286,7 +1287,7 @@ bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon)
s16 hp, maxHP;
s32 barLevel;
- if (GetMonData(mon, MON_DATA_STATUS) & (STATUS_ANY | STATUS_TOXIC_COUNTER))
+ if (GetMonData(mon, MON_DATA_STATUS) & (STATUS1_ANY | STATUS1_TOXIC_COUNTER))
return FALSE;
hp = GetMonData(mon, MON_DATA_HP);
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 0917f0cfc..ce37564b7 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -20,6 +20,7 @@
#include "international_string_util.h"
#include "safari_zone.h"
#include "battle_anim.h"
+#include "constants/rgb.h"
struct TestingBar
{
@@ -152,10 +153,10 @@ enum
HEALTHBOX_GFX_117,
};
-extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT];
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern const u8 * const gNatureNamePointers[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
@@ -555,13 +556,13 @@ enum
PAL_STATUS_BRN
};
-static const u16 sStatusIconPalettes[] =
+static const u16 sStatusIconColors[] =
{
- 0x6198, // PAL_STATUS_PSN
- 0xEF7, // PAL_STATUS_PAR
- 0x4694, // PAL_STATUS_SLP
- 0x72D1, // PAL_STATUS_FRZ
- 0x29DC // PAL_STATUS_BRN
+ RGB(24, 12, 24), // PAL_STATUS_PSN
+ RGB(23, 23, 3), // PAL_STATUS_PAR
+ RGB(20, 20, 17), // PAL_STATUS_SLP
+ RGB(17, 22, 28), // PAL_STATUS_FRZ
+ RGB(28, 14, 10) // PAL_STATUS_BRN
};
static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2
@@ -897,7 +898,7 @@ void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2)
// healthboxSpriteId_2 refers to the other part
// there's also one other sprite that appears to be a black square? dont fully understand its role
-u8 CreateBankHealthboxSprites(u8 bank)
+u8 CreateBattlerHealthboxSprites(u8 battler)
{
s16 data6 = 0;
u8 healthboxSpriteId_1, healthboxSpriteId_2;
@@ -906,7 +907,7 @@ u8 CreateBankHealthboxSprites(u8 bank)
if (!IsDoubleBattle())
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
@@ -931,10 +932,10 @@ u8 CreateBankHealthboxSprites(u8 bank)
}
else
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
- healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
- healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1);
gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
@@ -946,8 +947,8 @@ u8 CreateBankHealthboxSprites(u8 bank)
}
else
{
- healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
- healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBattlerPosition(battler) / 2], 240, 160, 1);
gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
@@ -959,16 +960,16 @@ u8 CreateBankHealthboxSprites(u8 bank)
}
}
- unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBanksByIdentity[bank]], 140, 60, 0);
+ unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBattlerPositions[battler]], 140, 60, 0);
unkSpritePtr = &gSprites[unkSpriteId];
- SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]);
+ SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBattlerSide(battler)]);
unkSpritePtr->subspriteMode = 2;
unkSpritePtr->oam.priority = 1;
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64);
gSprites[healthboxSpriteId_1].data[5] = unkSpriteId;
- gSprites[healthboxSpriteId_1].data[6] = bank;
+ gSprites[healthboxSpriteId_1].data[6] = battler;
gSprites[healthboxSpriteId_1].invisible = 1;
gSprites[healthboxSpriteId_2].invisible = 1;
@@ -1086,11 +1087,11 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- u8 healthboxSpriteId_1 = gHealthBoxesIds[i];
- u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam;
- u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data[5];
+ u8 healthboxSpriteId_1 = gHealthboxSpriteIds[i];
+ u8 healthboxSpriteId_2 = gSprites[gHealthboxSpriteIds[i]].oam.affineParam;
+ u8 healthboxSpriteId_3 = gSprites[gHealthboxSpriteIds[i]].data[5];
gSprites[healthboxSpriteId_1].oam.priority = priority;
gSprites[healthboxSpriteId_2].oam.priority = priority;
@@ -1098,37 +1099,37 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority)
}
}
-void SetBankHealthboxSpritePos(u8 bank)
+void InitBattlerHealthboxCoords(u8 battler)
{
s16 x = 0, y = 0;
if (!IsDoubleBattle())
{
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
x = 44, y = 30;
else
x = 158, y = 88;
}
else
{
- switch (GetBankIdentity(bank))
+ switch (GetBattlerPosition(battler))
{
- case IDENTITY_PLAYER_MON1:
+ case B_POSITION_PLAYER_LEFT:
x = 159, y = 76;
break;
- case IDENTITY_PLAYER_MON2:
+ case B_POSITION_PLAYER_RIGHT:
x = 171, y = 101;
break;
- case IDENTITY_OPPONENT_MON1:
+ case B_POSITION_OPPONENT_LEFT:
x = 44, y = 19;
break;
- case IDENTITY_OPPONENT_MON2:
+ case B_POSITION_OPPONENT_RIGHT:
x = 32, y = 44;
break;
}
}
- UpdateSpritePos(gHealthBoxesIds[bank], x, y);
+ UpdateSpritePos(gHealthboxSpriteIds[battler], x, y);
}
static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
@@ -1155,7 +1156,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId);
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER)
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{
objVram = (void*)(OBJ_VRAM0);
if (!IsDoubleBattle())
@@ -1179,7 +1180,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
u8 text[32];
void *objVram;
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER && !IsDoubleBattle())
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER && !IsDoubleBattle())
{
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
if (maxOrCurrent != HP_CURRENT) // singles, max
@@ -1209,11 +1210,11 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
}
else
{
- u8 bank;
+ u8 battler;
memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
- bank = gSprites[healthboxSpriteId].data[6];
- if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT)
+ battler = gSprites[healthboxSpriteId].data[6];
+ if (IsDoubleBattle() == TRUE || GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent);
}
@@ -1222,7 +1223,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
u32 var;
u8 i;
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER)
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{
if (maxOrCurrent == HP_CURRENT)
var = 29;
@@ -1257,9 +1258,9 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
u8 text[32];
void *objVram;
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER)
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{
- if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible
+ if (gBattleSpritesDataPtr->battlerData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible
{
spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * 32;
objVram = (void*)(OBJ_VRAM0) + spriteTileNum;
@@ -1293,7 +1294,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8));
bank = gSprites[healthboxSpriteId].data[6];
- if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible
+ if (gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars) // don't print text if only bars are visible
{
u8 var = 4;
u8 r7;
@@ -1334,7 +1335,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8
}
else
{
- if (GetBankSide(bank) == SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side
{
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116),
(void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * 32),
@@ -1353,7 +1354,7 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon)
u8 i, var, nature, healthboxSpriteId_2;
memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
- barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data[6]) * 384)];
+ barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBattlerPosition(gSprites[healthboxSpriteId].data[6]) * 384)];
var = 5;
nature = GetNature(mon);
StringCopy(text + 6, gNatureNamePointers[nature]);
@@ -1414,17 +1415,17 @@ void SwapHpBarsWithHpText(void)
s32 i;
u8 spriteId;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy
- && GetBankSide(i) != SIDE_OPPONENT
- && (IsDoubleBattle() || GetBankSide(i) != SIDE_PLAYER))
+ if (gSprites[gHealthboxSpriteIds[i]].callback == SpriteCallbackDummy
+ && GetBattlerSide(i) != B_SIDE_OPPONENT
+ && (IsDoubleBattle() || GetBattlerSide(i) != B_SIDE_PLAYER))
{
bool8 noBars;
- gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1;
- noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars;
- if (GetBankSide(i) == SIDE_PLAYER)
+ gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars ^= 1;
+ noBars = gBattleSpritesDataPtr->battlerData[i].hpNumbersNoBars;
+ if (GetBattlerSide(i) == B_SIDE_PLAYER)
{
if (!IsDoubleBattle())
continue;
@@ -1433,17 +1434,17 @@ void SwapHpBarsWithHpText(void)
if (noBars == TRUE) // bars to text
{
- spriteId = gSprites[gHealthBoxesIds[i]].data[5];
+ spriteId = gSprites[gHealthboxSpriteIds[i]].data[5];
CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
- UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT);
- UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX);
+ UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT);
+ UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gPlayerParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX);
}
else // text to bars
{
- UpdateStatusIconInHealthbox(gHealthBoxesIds[i]);
- UpdateHealthboxAttribute(gHealthBoxesIds[i], &gPlayerParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR);
- CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthBoxesIds[i]].oam.tileNum * 32), 32);
+ UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gPlayerParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxSpriteIds[i]].oam.tileNum * 32), 32);
}
}
else
@@ -1452,26 +1453,26 @@ void SwapHpBarsWithHpText(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
{
- sub_80730D4(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]]);
+ sub_80730D4(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]]);
}
else
{
- spriteId = gSprites[gHealthBoxesIds[i]].data[5];
+ spriteId = gSprites[gHealthboxSpriteIds[i]].data[5];
CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
- UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT);
- UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX);
+ UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_HP), HP_CURRENT);
+ UpdateHpTextInHealthboxInDoubles(gHealthboxSpriteIds[i], GetMonData(&gEnemyParty[gBattlerPartyIndexes[i]], MON_DATA_MAX_HP), HP_MAX);
}
}
else // text to bars
{
- UpdateStatusIconInHealthbox(gHealthBoxesIds[i]);
- UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR);
+ UpdateStatusIconInHealthbox(gHealthboxSpriteIds[i]);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_HEALTH_BAR);
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
- UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[i], &gEnemyParty[gBattlerPartyIndexes[i]], HEALTHBOX_NICK);
}
}
- gSprites[gHealthBoxesIds[i]].data[7] ^= 1;
+ gSprites[gHealthboxSpriteIds[i]].data[7] ^= 1;
}
}
}
@@ -1485,9 +1486,9 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar
u8 ballIconSpritesIds[6];
u8 taskId;
- if (!arg2 || GetBankIdentity(bank) != IDENTITY_OPPONENT_MON2)
+ if (!arg2 || GetBattlerPosition(bank) != B_POSITION_OPPONENT_RIGHT)
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
{
isOpponent = FALSE;
bar_X = 136, bar_Y = 96;
@@ -1566,7 +1567,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar
gSprites[ballIconSpritesIds[i]].data[2] = isOpponent;
}
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
@@ -1711,7 +1712,7 @@ void sub_8073C30(u8 taskId)
{
for (i = 0; i < 6; i++)
{
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
{
gSprites[sp[5 - i]].data[1] = 7 * i;
gSprites[sp[5 - i]].data[3] = 0;
@@ -1963,7 +1964,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER)
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{
sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6);
ptr = (void*)(OBJ_VRAM0);
@@ -1991,9 +1992,9 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
return;
bank = gSprites[healthboxSpriteId].data[6];
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
return;
- if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
+ if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
return;
healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5];
@@ -2015,9 +2016,9 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
bank = gSprites[healthboxSpriteId].data[6];
healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5];
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
{
- status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS);
+ status = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS);
if (!IsDoubleBattle())
tileNumAdder = 0x1A;
else
@@ -2025,31 +2026,31 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
}
else
{
- status = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_STATUS);
+ status = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_STATUS);
tileNumAdder = 0x11;
}
- if (status & STATUS_SLEEP)
+ if (status & STATUS1_SLEEP)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank));
statusPalId = PAL_STATUS_SLP;
}
- else if (status & STATUS_PSN_ANY)
+ else if (status & STATUS1_PSN_ANY)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank));
statusPalId = PAL_STATUS_PSN;
}
- else if (status & STATUS_BURN)
+ else if (status & STATUS1_BURN)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank));
statusPalId = PAL_STATUS_BRN;
}
- else if (status & STATUS_FREEZE)
+ else if (status & STATUS1_FREEZE)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank));
statusPalId = PAL_STATUS_FRZ;
}
- else if (status & STATUS_PARALYSIS)
+ else if (status & STATUS1_PARALYSIS)
{
statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank));
statusPalId = PAL_STATUS_PAR;
@@ -2061,7 +2062,7 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
for (i = 0; i < 3; i++)
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * 32), 32);
- if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)
+ if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars)
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 64);
TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE);
@@ -2071,12 +2072,12 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16;
pltAdder += bank + 12;
- FillPalette(sStatusIconPalettes[statusPalId], pltAdder + 0x100, 2);
+ FillPalette(sStatusIconColors[statusPalId], pltAdder + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2);
CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96);
- if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT)
+ if (IsDoubleBattle() == TRUE || GetBattlerSide(bank) == B_SIDE_OPPONENT)
{
- if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)
+ if (!gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars)
{
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 32);
CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 1) * 32), 32);
@@ -2180,9 +2181,9 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
u8 bank = gSprites[healthboxSpriteId].data[6];
if (elementId == HEALTHBOX_ALL && !IsDoubleBattle())
- GetBankSide(bank); // pointless function call
+ GetBattlerSide(bank); // pointless function call
- if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER)
+ if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
{
u8 isDoubles;
@@ -2274,7 +2275,7 @@ s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3)
8, expFraction);
}
- if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars))
+ if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->battlerData[bank].hpNumbersNoBars))
sub_8074B9C(bank, whichBar);
if (var == -1)
@@ -2322,7 +2323,7 @@ static void sub_8074B9C(u8 bank, u8 whichBar)
gBattleSpritesDataPtr->battleBars[bank].receivedValue,
&gBattleSpritesDataPtr->battleBars[bank].field_10,
array, 8);
- level = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_LEVEL);
+ level = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_LEVEL);
if (level == MAX_MON_LEVEL)
{
for (i = 0; i < 8; i++)
diff --git a/src/battle_2.c b/src/battle_main.c
index 61e39b39f..3704ff3b4 100644
--- a/src/battle_2.c
+++ b/src/battle_main.c
@@ -4,7 +4,7 @@
#include "main.h"
#include "load_save.h"
#include "gpu_regs.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "battle_setup.h"
#include "battle_scripts.h"
#include "pokemon.h"
@@ -46,13 +46,6 @@
#include "battle_string_ids.h"
#include "data2.h"
-struct UnknownStruct6
-{
- u16 unk0[0xA0];
- u8 fillerA0[0x640];
- u16 unk780[0xA0];
-};
-
struct UnknownPokemonStruct2
{
/*0x00*/ u16 species;
@@ -84,66 +77,64 @@ extern u16 gBattle_WIN1H;
extern u16 gBattle_WIN1V;
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
-extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
extern void (*gPreBattleCallback1)(void);
extern void (*gBattleMainFunc)(void);
extern void (*gCB2_AfterEvolution)(void);
extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for?
extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for?
-extern u8 gUnknown_02039B28[]; // possibly a struct?
-extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document
extern struct MusicPlayerInfo gMPlayInfo_SE1;
extern struct MusicPlayerInfo gMPlayInfo_SE2;
extern u8 gDecompressionBuffer[];
extern u16 gUnknown_020243FC;
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
-extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern u8 gStringBank;
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
+extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern u8 gStringBattler;
extern u32 gUnknown_02022F88;
extern u32 gHitMarker;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
extern u16 gPaydayMoney;
extern u16 gBattleWeather;
extern u16 gPauseCounterBattle;
extern u16 gRandomTurnNumber;
-extern u8 gActiveBank;
-extern u8 gNoOfAllBanks;
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
+extern u8 gActiveBattler;
+extern u8 gBattlersCount;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
extern u8 gLeveledUpInBattle;
-extern u8 gAbsentBankFlags;
-extern u32 gBattleExecBuffer;
+extern u8 gAbsentBattlerFlags;
+extern u32 gBattleControllerExecFlags;
extern u8 gMultiHitCounter;
-extern u8 gBattleMoveFlags;
+extern u8 gMoveResultFlags;
extern s32 gBattleMoveDamage;
-extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT];
-extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT];
-extern u16 gLastMoves[BATTLE_BANKS_COUNT];
-extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
-extern u16 gLastHitByType[BATTLE_BANKS_COUNT];
-extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT];
-extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
-extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
-extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT];
-extern u32 gStatuses3[BATTLE_BANKS_COUNT];
-extern u16 gSideAffecting[2];
+extern const u8* gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT];
+extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastHitByType[MAX_BATTLERS_COUNT];
+extern u16 gLastResultingMoves[MAX_BATTLERS_COUNT];
+extern u16 gLockedMoves[MAX_BATTLERS_COUNT];
+extern u8 gLastHitBy[MAX_BATTLERS_COUNT];
+extern u8 gUnknown_02024284[MAX_BATTLERS_COUNT];
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
+extern u16 gSideStatuses[2];
extern u16 gCurrentMove;
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
-extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT];
-extern u8 gActionForBanks[BATTLE_BANKS_COUNT];
-extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
+extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
extern u8 gCurrentActionFuncId;
extern u8 gLastUsedAbility;
extern u8 gUnknown_0203CF00[];
-extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT];
+extern const u8* gSelectionBattleScripts[MAX_BATTLERS_COUNT];
extern const u8* gBattlescriptCurrInstr;
-extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT];
+extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u8 gCurrentTurnActionNumber;
extern u16 gDynamicBasePower;
extern u8 gCritMultiplier;
@@ -162,6 +153,7 @@ extern const u8 * const gBattlescriptsForBallThrow[];
extern const u8 * const gBattlescriptsForRunningByItem[];
extern const u8 * const gBattlescriptsForUsingItem[];
extern const u8 * const gBattlescriptsForSafariActions[];
+extern const struct ScanlineEffectParams gUnknown_0831AC70;
// strings
extern const u8 gText_LinkStandby3[];
@@ -180,7 +172,7 @@ extern const u8 gText_Confusion[];
extern const u8 gText_Love[];
// functions
-extern void dp12_8087EA4(void);
+extern void ScanlineEffect_Clear(void);
extern void sub_80356D0(void);
extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower
extern void sub_8166188(void); // battle tower, sets link battle mons level but why?
@@ -272,35 +264,35 @@ static void HandleAction_ActionFinished(void);
// rom const data
static void (* const sTurnActionsFuncsTable[])(void) =
{
- HandleAction_UseMove, // ACTION_USE_MOVE
- HandleAction_UseItem, // ACTION_USE_ITEM
- HandleAction_Switch, // ACTION_SWITCH
- HandleAction_Run, // ACTION_RUN
- HandleAction_WatchesCarefully, // ACTION_WATCHES_CAREFULLY
- HandleAction_SafariZoneBallThrow, // ACTION_SAFARI_ZONE_BALL
- HandleAction_ThrowPokeblock, // ACTION_POKEBLOCK_CASE
- HandleAction_GoNear, // ACTION_GO_NEAR
- HandleAction_SafriZoneRun, // ACTION_SAFARI_ZONE_RUN
- HandleAction_Action9, // ACTION_9
- HandleAction_RunBattleScript, // ACTION_RUN_BATTLESCRIPT
+ HandleAction_UseMove, // B_ACTION_USE_MOVE
+ HandleAction_UseItem, // B_ACTION_USE_ITEM
+ HandleAction_Switch, // B_ACTION_SWITCH
+ HandleAction_Run, // B_ACTION_RUN
+ HandleAction_WatchesCarefully, // B_ACTION_SAFARI_WATCH_CAREFULLY
+ HandleAction_SafariZoneBallThrow, // B_ACTION_SAFARI_BALL
+ HandleAction_ThrowPokeblock, // B_ACTION_SAFARI_POKEBLOCK
+ HandleAction_GoNear, // B_ACTION_SAFARI_GO_NEAR
+ HandleAction_SafriZoneRun, // B_ACTION_SAFARI_RUN
+ HandleAction_Action9, // B_ACTION_UNKNOWN9
+ HandleAction_RunBattleScript, // B_ACTION_EXEC_SCRIPT
HandleAction_Action11, // not sure about this one
- HandleAction_ActionFinished, // ACTION_FINISHED
- HandleAction_NothingIsFainted, // ACTION_NOTHING_FAINTED
+ HandleAction_ActionFinished, // B_ACTION_FINISHED
+ HandleAction_NothingIsFainted, // B_ACTION_NOTHING_FAINTED
};
static void (* const sEndTurnFuncsTable[])(void) =
{
HandleEndTurn_ContinueBattle, // battle outcome 0
- HandleEndTurn_BattleWon, // BATTLE_WON
- HandleEndTurn_BattleLost, // BATTLE_LOST
- HandleEndTurn_BattleLost, // BATTLE_DREW
- HandleEndTurn_RanFromBattle, // BATTLE_RAN
- HandleEndTurn_FinishBattle, // BATTLE_PLAYER_TELEPORTED
- HandleEndTurn_MonFled, // BATTLE_POKE_FLED
- HandleEndTurn_FinishBattle, // BATTLE_CAUGHT
+ HandleEndTurn_BattleWon, // B_OUTCOME_WON
+ HandleEndTurn_BattleLost, // B_OUTCOME_LOST
+ HandleEndTurn_BattleLost, // B_OUTCOME_DREW
+ HandleEndTurn_RanFromBattle, // B_OUTCOME_RAN
+ HandleEndTurn_FinishBattle, // B_OUTCOME_PLAYER_TELEPORTED
+ HandleEndTurn_MonFled, // B_OUTCOME_POKE_FLED
+ HandleEndTurn_FinishBattle, // B_OUTCOME_CAUGHT_POKE
HandleEndTurn_FinishBattle, // battle outcome 8
- HandleEndTurn_FinishBattle, // BATTLE_FORFEITED
- HandleEndTurn_FinishBattle, // BATTLE_OPPONENT_TELEPORTED
+ HandleEndTurn_FinishBattle, // B_OUTCOME_FORFEITED
+ HandleEndTurn_FinishBattle, // B_OUTCOME_POKE_TELEPORTED
};
const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
@@ -383,24 +375,21 @@ static void CB2_InitBattleInternal(void)
else
{
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
- gUnknown_02038C28.unk0[i] = 0xF0;
- gUnknown_02038C28.unk780[i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
- #ifndef NONMATCHING
- asm(""::"r"(i)); // needed to match
- #endif // NONMATCHING
-
- gUnknown_02038C28.unk0[i] = 0xFF10;
- gUnknown_02038C28.unk780[i] = 0xFF10;
+ asm(""::"r"(i));
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
- sub_80BA038(gUnknown_0831AC70);
+ ScanlineEffect_SetParams(gUnknown_0831AC70);
}
ResetPaletteFade();
@@ -1586,7 +1575,7 @@ void BattleMainCB2(void)
if (gMain.heldKeys & B_BUTTON && gBattleTypeFlags & BATTLE_TYPE_RECORDED && sub_8186450())
{
- gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED;
+ gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED;
ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle);
@@ -1596,7 +1585,7 @@ void BattleMainCB2(void)
static void FreeRestoreBattleData(void)
{
gMain.callback1 = gPreBattleCallback1;
- gUnknown_02039B28[0x15] = 3;
+ gScanlineEffect.state = 3;
gMain.inBattle = 0;
ZeroEnemyPartyMons();
m4aSongNumStop(0x5A);
@@ -1814,7 +1803,7 @@ void VBlankCB_Battle(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_80BA0A8();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void nullsub_17(void)
@@ -1952,18 +1941,18 @@ void sub_8038D64(void)
SetGpuReg(REG_OFFSET_WINOUT, 0);
gBattle_WIN0H = 0xF0;
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
- gUnknown_02038C28.unk0[i] = 0xF0;
- gUnknown_02038C28.unk780[i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_02038C28.unk0[i] = 0xFF10;
- gUnknown_02038C28.unk780[i] = 0xFF10;
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
ResetPaletteFade();
@@ -2382,8 +2371,8 @@ u32 sub_80397C4(u32 setId, u32 tableId)
return gUnknown_0831ABA0[setId][tableId].width * 8;
}
-#define tBank data[0]
-#define tSpeciesId data[2]
+#define sBattler data[0]
+#define sSpeciesId data[2]
void oac_poke_opponent(struct Sprite *sprite)
{
@@ -2408,8 +2397,8 @@ static void sub_8039838(struct Sprite *sprite)
{
if (sprite->animEnded)
{
- sub_8076918(sprite->tBank);
- SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]);
+ sub_8076918(sprite->sBattler);
+ SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]);
sprite->callback = sub_8039894;
StartSpriteAnimIfDifferent(sprite, 0);
BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108);
@@ -2420,7 +2409,7 @@ static void sub_8039894(struct Sprite *sprite)
{
if (!gPaletteFade.active)
{
- BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, FALSE, 1);
+ BattleAnimateFrontSprite(sprite, sprite->sSpeciesId, FALSE, 1);
}
}
@@ -2458,20 +2447,20 @@ extern const struct MonCoords gCastformFrontSpriteCoords[];
void sub_8039934(struct Sprite *sprite)
{
- u8 bank = sprite->tBank;
+ u8 battler = sprite->sBattler;
u16 species;
u8 yOffset;
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies != 0)
- species = gBattleSpritesDataPtr->bankData[bank].transformSpecies;
+ if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != 0)
+ species = gBattleSpritesDataPtr->battlerData[battler].transformSpecies;
else
- species = sprite->tSpeciesId;
+ species = sprite->sSpeciesId;
- GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY); // Unused return value
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); // Unused return value
if (species == SPECIES_UNOWN)
{
- u32 personalityValue = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_PERSONALITY);
+ u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY);
u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C);
u16 unownSpecies;
@@ -2484,7 +2473,7 @@ void sub_8039934(struct Sprite *sprite)
}
else if (species == SPECIES_CASTFORM)
{
- yOffset = gCastformFrontSpriteCoords[gBattleMonForms[bank]].y_offset;
+ yOffset = gCastformFrontSpriteCoords[gBattleMonForms[battler]].y_offset;
}
else if (species > NUM_SPECIES)
{
@@ -2517,12 +2506,12 @@ static void sub_8039A48(struct Sprite *sprite)
}
else
{
- u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankIdentity(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8);
+ u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
for (i = 0; i < 0x100; i++)
*(dst++) = 0;
- StartSpriteAnim(sprite, gBattleMonForms[sprite->tBank]);
+ StartSpriteAnim(sprite, gBattleMonForms[sprite->sBattler]);
}
}
}
@@ -2557,10 +2546,10 @@ void sub_8039B58(struct Sprite *sprite)
{
if (!(gHitMarker & HITMARKER_NO_ANIMATIONS) || gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
{
- if (HasTwoFramesAnimation(sprite->tSpeciesId))
+ if (HasTwoFramesAnimation(sprite->sSpeciesId))
StartSpriteAnim(sprite, 1);
}
- BattleAnimateFrontSprite(sprite, sprite->tSpeciesId, TRUE, 1);
+ BattleAnimateFrontSprite(sprite, sprite->sSpeciesId, TRUE, 1);
}
}
@@ -2600,35 +2589,35 @@ void sub_8039C00(struct Sprite *sprite)
}
}
-void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d)
+void dp11b_obj_instanciate(u8 battler, u8 b, s8 c, s8 d)
{
u8 bounceHealthBoxSpriteId;
u8 spriteId2;
if (b)
{
- if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2)
+ if (gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2)
return;
}
else
{
- if (gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4)
+ if (gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4)
return;
}
bounceHealthBoxSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HealthBoxBounce);
if (b == TRUE)
{
- spriteId2 = gHealthBoxesIds[bank];
- gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId;
- gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1;
+ spriteId2 = gHealthboxSpriteIds[battler];
+ gBattleSpritesDataPtr->healthBoxesData[battler].field_2 = bounceHealthBoxSpriteId;
+ gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2 = 1;
gSprites[bounceHealthBoxSpriteId].data[0] = 0x80;
}
else
{
- spriteId2 = gBankSpriteIds[bank];
- gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId;
- gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1;
+ spriteId2 = gBattlerSpriteIds[battler];
+ gBattleSpritesDataPtr->healthBoxesData[battler].field_3 = bounceHealthBoxSpriteId;
+ gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4 = 1;
gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0;
}
gSprites[bounceHealthBoxSpriteId].data[1] = c;
@@ -2639,27 +2628,27 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d)
gSprites[spriteId2].pos2.y = 0;
}
-void dp11b_obj_free(u8 bank, bool8 b)
+void dp11b_obj_free(u8 battler, bool8 b)
{
u8 r4;
if (b == TRUE)
{
- if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2)
+ if (!gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2)
return;
- r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data[3];
- DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2]);
- gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 0;
+ r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_2].data[3];
+ DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_2]);
+ gBattleSpritesDataPtr->healthBoxesData[battler].flag_x2 = 0;
}
else
{
- if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4)
+ if (!gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4)
return;
- r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data[3];
- DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3]);
- gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 0;
+ r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_3].data[3];
+ DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].field_3]);
+ gBattleSpritesDataPtr->healthBoxesData[battler].flag_x4 = 0;
}
gSprites[r4].pos2.x = 0;
gSprites[r4].pos2.y = 0;
@@ -2682,7 +2671,7 @@ static void SpriteCB_HealthBoxBounce(struct Sprite *sprite)
void sub_8039E44(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
- BattleAnimateBackSprite(sprite, sprite->tSpeciesId);
+ BattleAnimateBackSprite(sprite, sprite->sSpeciesId);
}
void sub_8039E60(struct Sprite *sprite)
@@ -2720,8 +2709,8 @@ static void BattleMainCB1(void)
{
gBattleMainFunc();
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
- gBattleBankFunc[gActiveBank]();
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ gBattlerControllerFuncs[gActiveBattler]();
}
static void BattleStartClearSetData(void)
@@ -2733,7 +2722,7 @@ static void BattleStartClearSetData(void)
TurnValuesCleanUp(FALSE);
SpecialStatusesClear();
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
gStatuses3[i] = 0;
@@ -2756,15 +2745,15 @@ static void BattleStartClearSetData(void)
for (i = 0; i < 2; i++)
{
- gSideAffecting[i] = 0;
+ gSideStatuses[i] = 0;
dataPtr = (u8 *)&gSideTimers[i];
for (j = 0; j < sizeof(struct SideTimer); j++)
dataPtr[j] = 0;
}
- gBankAttacker = 0;
- gBankTarget = 0;
+ gBattlerAttacker = 0;
+ gBattlerTarget = 0;
gBattleWeather = 0;
dataPtr = (u8 *)&gWishFutureKnock;
@@ -2785,7 +2774,7 @@ static void BattleStartClearSetData(void)
gMultiHitCounter = 0;
gBattleOutcome = 0;
- gBattleExecBuffer = 0;
+ gBattleControllerExecFlags = 0;
gPaydayMoney = 0;
gBattleResources->battleScriptsStack->size = 0;
gBattleResources->battleCallbackStack->size = 0;
@@ -2799,7 +2788,7 @@ static void BattleStartClearSetData(void)
gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0;
gLeveledUpInBattle = 0;
- gAbsentBankFlags = 0;
+ gAbsentBattlerFlags = 0;
gBattleStruct->runTries = 0;
gBattleStruct->field_79 = 0;
gBattleStruct->field_7A = 0;
@@ -2820,7 +2809,7 @@ static void BattleStartClearSetData(void)
*(i + 3 * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
}
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
*(gBattleStruct->AI_monToSwitchIntoId + i) = 6;
}
@@ -2842,35 +2831,35 @@ static void BattleStartClearSetData(void)
void SwitchInClearSetData(void)
{
- struct DisableStruct disableStructCopy = gDisableStructs[gActiveBank];
+ struct DisableStruct disableStructCopy = gDisableStructs[gActiveBattler];
s32 i;
u8 *ptr;
if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
{
for (i = 0; i < BATTLE_STATS_NO; i++)
- gBattleMons[gActiveBank].statStages[i] = 6;
- for (i = 0; i < gNoOfAllBanks; i++)
+ gBattleMons[gActiveBattler].statStages[i] = 6;
+ for (i = 0; i < gBattlersCount; i++)
{
- if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank)
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
- if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].bankWithSureHit == gActiveBank)
+ if ((gStatuses3[i] & STATUS3_ALWAYS_HITS) && gDisableStructs[i].battlerWithSureHit == gActiveBattler)
{
gStatuses3[i] &= ~STATUS3_ALWAYS_HITS;
- gDisableStructs[i].bankWithSureHit = 0;
+ gDisableStructs[i].battlerWithSureHit = 0;
}
}
}
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gBattleMons[gActiveBank].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
- gStatuses3[gActiveBank] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
+ gBattleMons[gActiveBattler].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED);
+ gStatuses3[gActiveBattler] &= (STATUS3_LEECHSEED_BANK | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (GetBankSide(gActiveBank) != GetBankSide(i)
+ if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i)
&& (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0
- && (gDisableStructs[i].bankWithSureHit == gActiveBank))
+ && (gDisableStructs[i].battlerWithSureHit == gActiveBattler))
{
gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS);
gStatuses3[i] |= 0x10;
@@ -2879,77 +2868,77 @@ void SwitchInClearSetData(void)
}
else
{
- gBattleMons[gActiveBank].status2 = 0;
- gStatuses3[gActiveBank] = 0;
+ gBattleMons[gActiveBattler].status2 = 0;
+ gStatuses3[gActiveBattler] = 0;
}
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank))
- gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank));
- if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank)
+ if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler))
+ gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler));
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler)
gBattleMons[i].status2 &= ~(STATUS2_WRAPPED);
}
- gActionSelectionCursor[gActiveBank] = 0;
- gMoveSelectionCursor[gActiveBank] = 0;
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
+ ptr = (u8 *)&gDisableStructs[gActiveBattler];
for (i = 0; i < sizeof(struct DisableStruct); i++)
ptr[i] = 0;
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
- gDisableStructs[gActiveBank].substituteHP = disableStructCopy.substituteHP;
- gDisableStructs[gActiveBank].bankWithSureHit = disableStructCopy.bankWithSureHit;
- gDisableStructs[gActiveBank].perishSongTimer1 = disableStructCopy.perishSongTimer1;
- gDisableStructs[gActiveBank].perishSongTimer2 = disableStructCopy.perishSongTimer2;
- gDisableStructs[gActiveBank].bankPreventingEscape = disableStructCopy.bankPreventingEscape;
+ gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP;
+ gDisableStructs[gActiveBattler].battlerWithSureHit = disableStructCopy.battlerWithSureHit;
+ gDisableStructs[gActiveBattler].perishSongTimer1 = disableStructCopy.perishSongTimer1;
+ gDisableStructs[gActiveBattler].perishSongTimer2 = disableStructCopy.perishSongTimer2;
+ gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape;
}
- gBattleMoveFlags = 0;
- gDisableStructs[gActiveBank].isFirstTurn = 2;
- gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit;
- gLastMoves[gActiveBank] = 0;
- gLastLandedMoves[gActiveBank] = 0;
- gLastHitByType[gActiveBank] = 0;
- gLastResultingMoves[gActiveBank] = 0;
- gLastPrintedMoves[gActiveBank] = 0;
- gLastHitBy[gActiveBank] = 0xFF;
+ gMoveResultFlags = 0;
+ gDisableStructs[gActiveBattler].isFirstTurn = 2;
+ gDisableStructs[gActiveBattler].truantUnknownBit = disableStructCopy.truantUnknownBit;
+ gLastMoves[gActiveBattler] = 0;
+ gLastLandedMoves[gActiveBattler] = 0;
+ gLastHitByType[gActiveBattler] = 0;
+ gLastResultingMoves[gActiveBattler] = 0;
+ gLastPrintedMoves[gActiveBattler] = 0;
+ gLastHitBy[gActiveBattler] = 0xFF;
- *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0;
- *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0;
+ *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]);
+ gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank))
+ if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
{
*(gBattleStruct->mirrorMoves + i * 2 + 0) = 0;
*(gBattleStruct->mirrorMoves + i * 2 + 1) = 0;
}
- *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
}
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0;
- gBattleResources->flags->flags[gActiveBank] = 0;
+ gBattleResources->flags->flags[gActiveBattler] = 0;
gCurrentMove = 0;
gBattleStruct->field_DA = 0xFF;
- ClearBankMoveHistory(gActiveBank);
- ClearBankAbilityHistory(gActiveBank);
+ ClearBattlerMoveHistory(gActiveBattler);
+ ClearBattlerAbilityHistory(gActiveBattler);
}
void FaintClearSetData(void)
@@ -2958,91 +2947,91 @@ void FaintClearSetData(void)
u8 *ptr;
for (i = 0; i < BATTLE_STATS_NO; i++)
- gBattleMons[gActiveBank].statStages[i] = 6;
+ gBattleMons[gActiveBattler].statStages[i] = 6;
- gBattleMons[gActiveBank].status2 = 0;
- gStatuses3[gActiveBank] = 0;
+ gBattleMons[gActiveBattler].status2 = 0;
+ gStatuses3[gActiveBattler] = 0;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].bankPreventingEscape == gActiveBank)
+ if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
- if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBank))
- gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBank));
- if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBank)
+ if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler))
+ gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler));
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler)
gBattleMons[i].status2 &= ~(STATUS2_WRAPPED);
}
- gActionSelectionCursor[gActiveBank] = 0;
- gMoveSelectionCursor[gActiveBank] = 0;
+ gActionSelectionCursor[gActiveBattler] = 0;
+ gMoveSelectionCursor[gActiveBattler] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
+ ptr = (u8 *)&gDisableStructs[gActiveBattler];
for (i = 0; i < sizeof(struct DisableStruct); i++)
ptr[i] = 0;
- gProtectStructs[gActiveBank].protected = 0;
- gProtectStructs[gActiveBank].endured = 0;
- gProtectStructs[gActiveBank].onlyStruggle = 0;
- gProtectStructs[gActiveBank].helpingHand = 0;
- gProtectStructs[gActiveBank].bounceMove = 0;
- gProtectStructs[gActiveBank].stealMove = 0;
- gProtectStructs[gActiveBank].flag0Unknown = 0;
- gProtectStructs[gActiveBank].prlzImmobility = 0;
- gProtectStructs[gActiveBank].confusionSelfDmg = 0;
- gProtectStructs[gActiveBank].targetNotAffected = 0;
- gProtectStructs[gActiveBank].chargingTurn = 0;
- gProtectStructs[gActiveBank].fleeFlag = 0;
- gProtectStructs[gActiveBank].usedImprisionedMove = 0;
- gProtectStructs[gActiveBank].loveImmobility = 0;
- gProtectStructs[gActiveBank].usedDisabledMove = 0;
- gProtectStructs[gActiveBank].usedTauntedMove = 0;
- gProtectStructs[gActiveBank].flag2Unknown = 0;
- gProtectStructs[gActiveBank].flinchImmobility = 0;
- gProtectStructs[gActiveBank].notFirstStrike = 0;
-
- gDisableStructs[gActiveBank].isFirstTurn = 2;
-
- gLastMoves[gActiveBank] = 0;
- gLastLandedMoves[gActiveBank] = 0;
- gLastHitByType[gActiveBank] = 0;
- gLastResultingMoves[gActiveBank] = 0;
- gLastPrintedMoves[gActiveBank] = 0;
- gLastHitBy[gActiveBank] = 0xFF;
-
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0;
-
- *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0;
- *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0;
- *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(0 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(1 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(2 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
- *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(3 * 2 + gActiveBank * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
-
- gBattleStruct->field_92 &= ~(gBitTable[gActiveBank]);
-
- for (i = 0; i < gNoOfAllBanks; i++)
- {
- if (i != gActiveBank && GetBankSide(i) != GetBankSide(gActiveBank))
+ gProtectStructs[gActiveBattler].protected = 0;
+ gProtectStructs[gActiveBattler].endured = 0;
+ gProtectStructs[gActiveBattler].onlyStruggle = 0;
+ gProtectStructs[gActiveBattler].helpingHand = 0;
+ gProtectStructs[gActiveBattler].bounceMove = 0;
+ gProtectStructs[gActiveBattler].stealMove = 0;
+ gProtectStructs[gActiveBattler].flag0Unknown = 0;
+ gProtectStructs[gActiveBattler].prlzImmobility = 0;
+ gProtectStructs[gActiveBattler].confusionSelfDmg = 0;
+ gProtectStructs[gActiveBattler].targetNotAffected = 0;
+ gProtectStructs[gActiveBattler].chargingTurn = 0;
+ gProtectStructs[gActiveBattler].fleeFlag = 0;
+ gProtectStructs[gActiveBattler].usedImprisionedMove = 0;
+ gProtectStructs[gActiveBattler].loveImmobility = 0;
+ gProtectStructs[gActiveBattler].usedDisabledMove = 0;
+ gProtectStructs[gActiveBattler].usedTauntedMove = 0;
+ gProtectStructs[gActiveBattler].flag2Unknown = 0;
+ gProtectStructs[gActiveBattler].flinchImmobility = 0;
+ gProtectStructs[gActiveBattler].notFirstStrike = 0;
+
+ gDisableStructs[gActiveBattler].isFirstTurn = 2;
+
+ gLastMoves[gActiveBattler] = 0;
+ gLastLandedMoves[gActiveBattler] = 0;
+ gLastHitByType[gActiveBattler] = 0;
+ gLastResultingMoves[gActiveBattler] = 0;
+ gLastPrintedMoves[gActiveBattler] = 0;
+ gLastHitBy[gActiveBattler] = 0xFF;
+
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = 0;
+
+ *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 0) = 0;
+ *(gBattleStruct->mirrorMoves + gActiveBattler * 2 + 1) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(0 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(1 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(2 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(3 * 2 + gActiveBattler * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+
+ gBattleStruct->field_92 &= ~(gBitTable[gActiveBattler]);
+
+ for (i = 0; i < gBattlersCount; i++)
+ {
+ if (i != gActiveBattler && GetBattlerSide(i) != GetBattlerSide(gActiveBattler))
{
*(gBattleStruct->mirrorMoves + i * 2 + 0) = 0;
*(gBattleStruct->mirrorMoves + i * 2 + 1) = 0;
}
- *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
- *(i * 8 + gActiveBank * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = 0;
+ *(i * 8 + gActiveBattler * 2 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = 0;
}
- gBattleResources->flags->flags[gActiveBank] = 0;
+ gBattleResources->flags->flags[gActiveBattler] = 0;
- gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
- gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
+ gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
+ gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
- ClearBankMoveHistory(gActiveBank);
- ClearBankAbilityHistory(gActiveBank);
+ ClearBattlerMoveHistory(gActiveBattler);
+ ClearBattlerAbilityHistory(gActiveBattler);
}
static void BattleIntroGetMonsData(void)
@@ -3050,16 +3039,16 @@ static void BattleIntroGetMonsData(void)
switch (gBattleCommunication[MULTIUSE_STATE])
{
case 0:
- gActiveBank = gBattleCommunication[1];
- EmitGetMonData(0, 0, 0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattleCommunication[1];
+ BtlController_EmitGetMonData(0, 0, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleCommunication[MULTIUSE_STATE]++;
break;
case 1:
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
gBattleCommunication[1]++;
- if (gBattleCommunication[1] == gNoOfAllBanks)
+ if (gBattleCommunication[1] == gBattlersCount)
gBattleMainFunc = BattleIntroPrepareBackgroundSlide;
else
gBattleCommunication[MULTIUSE_STATE] = 0;
@@ -3070,11 +3059,11 @@ static void BattleIntroGetMonsData(void)
static void BattleIntroPrepareBackgroundSlide(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBankByIdentity(0);
- EmitIntroSlide(0, gBattleTerrain);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(0);
+ BtlController_EmitIntroSlide(0, gBattleTerrain);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites;
gBattleCommunication[0] = 0;
gBattleCommunication[1] = 0;
@@ -3086,15 +3075,15 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
u8 *ptr;
s32 i;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
- && GetBankSide(gActiveBank) == SIDE_PLAYER)
+ && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
- ptr = (u8 *)&gBattleMons[gActiveBank];
+ ptr = (u8 *)&gBattleMons[gActiveBattler];
for (i = 0; i < sizeof(struct BattlePokemon); i++)
ptr[i] = 0;
}
@@ -3102,46 +3091,46 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
{
u16* hpOnSwitchout;
- ptr = (u8 *)&gBattleMons[gActiveBank];
+ ptr = (u8 *)&gBattleMons[gActiveBattler];
for (i = 0; i < sizeof(struct BattlePokemon); i++)
- ptr[i] = gBattleBufferB[gActiveBank][4 + i];
+ ptr[i] = gBattleBufferB[gActiveBattler][4 + i];
- gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
- gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
- gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility);
- hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(gActiveBank)];
- *hpOnSwitchout = gBattleMons[gActiveBank].hp;
+ gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
+ gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
+ gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility);
+ hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)];
+ *hpOnSwitchout = gBattleMons[gActiveBattler].hp;
for (i = 0; i < BATTLE_STATS_NO; i++)
- gBattleMons[gActiveBank].statStages[i] = 6;
- gBattleMons[gActiveBank].status2 = 0;
+ gBattleMons[gActiveBattler].statStages[i] = 6;
+ gBattleMons[gActiveBattler].status2 = 0;
}
- if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT)
{
- EmitDrawTrainerPic(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON1)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT)
{
- EmitDrawTrainerPic(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_x4000000)))
{
- HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality);
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
}
}
else
{
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
{
if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER
@@ -3149,28 +3138,28 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_x4000000)))
{
- HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality);
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
}
- EmitLoadMonSprite(0);
- MarkBufferBankForExecution(gActiveBank);
- gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL);
+ BtlController_EmitLoadMonSprite(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL);
}
}
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2
- || GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2)
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT
+ || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
{
- EmitDrawTrainerPic(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
- if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankIdentity(gActiveBank) == IDENTITY_OPPONENT_MON2)
+ if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
{
- EmitDrawTrainerPic(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
@@ -3184,7 +3173,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
s32 i;
struct HpAndStatus hpStatus[6];
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
@@ -3203,9 +3192,9 @@ static void BattleIntroDrawPartySummaryScreens(void)
hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
+ MarkBattlerForControllerExec(gActiveBattler);
for (i = 0; i < PARTY_SIZE; i++)
{
@@ -3221,9 +3210,9 @@ static void BattleIntroDrawPartySummaryScreens(void)
hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
- gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle;
}
@@ -3255,17 +3244,17 @@ static void BattleIntroDrawPartySummaryScreens(void)
static void BattleIntroPrintTrainerWantsToBattle(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- PrepareStringBattle(STRINGID_INTROMSG, gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ PrepareStringBattle(STRINGID_INTROMSG, gActiveBattler);
gBattleMainFunc = BattleIntroPrintOpponentSendsOut;
}
}
static void BattleIntroPrintWildMonAttacked(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
PrepareStringBattle(STRINGID_INTROMSG, 0);
@@ -3274,49 +3263,49 @@ static void BattleIntroPrintWildMonAttacked(void)
static void BattleIntroPrintOpponentSendsOut(void)
{
- u32 identity;
+ u32 position;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
else
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
}
else
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
- PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity));
+ PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position));
gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation;
}
static void BattleIntroOpponent2SendsOutMonAnimation(void)
{
- u32 identity;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_OPPONENT_MON2;
+ position = B_POSITION_OPPONENT_RIGHT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_OPPONENT_MON2;
+ position = B_POSITION_OPPONENT_RIGHT;
else
- identity = IDENTITY_PLAYER_MON2;
+ position = B_POSITION_PLAYER_RIGHT;
}
else
- identity = IDENTITY_OPPONENT_MON2;
+ position = B_POSITION_OPPONENT_RIGHT;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankIdentity(gActiveBank) == identity)
+ if (GetBattlerPosition(gActiveBattler) == position)
{
- EmitIntroTrainerBallThrow(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
@@ -3326,29 +3315,29 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void)
#ifdef NONMATCHING
static void BattleIntroOpponent1SendsOutMonAnimation(void)
{
- u32 identity;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
else
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
}
else
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankIdentity(gActiveBank) == identity)
+ if (GetBattlerPosition(gActiveBattler) == position)
{
- EmitIntroTrainerBallThrow(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS))
{
gBattleMainFunc = BattleIntroOpponent2SendsOutMonAnimation;
@@ -3394,13 +3383,13 @@ _0803B288:\n\
_0803B298:\n\
movs r5, 0x1\n\
_0803B29A:\n\
- ldr r0, =gBattleExecBuffer\n\
+ ldr r0, =gBattleControllerExecFlags\n\
ldr r2, [r0]\n\
cmp r2, 0\n\
bne _0803B2F2\n\
- ldr r0, =gActiveBank\n\
+ ldr r0, =gActiveBattler\n\
strb r2, [r0]\n\
- ldr r1, =gNoOfAllBanks\n\
+ ldr r1, =gBattlersCount\n\
adds r4, r0, 0\n\
ldrb r1, [r1]\n\
cmp r2, r1\n\
@@ -3408,15 +3397,15 @@ _0803B29A:\n\
adds r6, r4, 0\n\
_0803B2B2:\n\
ldrb r0, [r4]\n\
- bl GetBankIdentity\n\
+ bl GetBattlerPosition\n\
lsls r0, 24\n\
lsrs r0, 24\n\
cmp r0, r5\n\
bne _0803B2D8\n\
movs r0, 0\n\
- bl EmitIntroTrainerBallThrow\n\
+ bl BtlController_EmitIntroTrainerBallThrow\n\
ldrb r0, [r4]\n\
- bl MarkBufferBankForExecution\n\
+ bl MarkBattlerForControllerExec\n\
ldr r0, =gBattleTypeFlags\n\
ldr r0, [r0]\n\
ldr r1, =0x00008040\n\
@@ -3427,10 +3416,10 @@ _0803B2D8:\n\
ldrb r0, [r6]\n\
adds r0, 0x1\n\
strb r0, [r6]\n\
- ldr r1, =gNoOfAllBanks\n\
+ ldr r1, =gBattlersCount\n\
lsls r0, 24\n\
lsrs r0, 24\n\
- ldr r4, =gActiveBank\n\
+ ldr r4, =gActiveBattler\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
bcc _0803B2B2\n\
@@ -3451,18 +3440,18 @@ _0803B2F2:\n\
static void BattleIntroRecordMonsToDex(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_x4000000)))
{
- HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality);
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
}
}
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
@@ -3471,30 +3460,30 @@ static void BattleIntroRecordMonsToDex(void)
void sub_803B3AC(void) // unused
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
}
static void BattleIntroPrintPlayerSendsOut(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- u8 identity;
+ u8 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
else
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
}
else
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
- PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity));
+ PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position));
gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation;
}
@@ -3502,26 +3491,26 @@ static void BattleIntroPrintPlayerSendsOut(void)
static void BattleIntroPlayer2SendsOutMonAnimation(void)
{
- u32 identity;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_PLAYER_MON2;
+ position = B_POSITION_PLAYER_RIGHT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_PLAYER_MON2;
+ position = B_POSITION_PLAYER_RIGHT;
else
- identity = IDENTITY_OPPONENT_MON2;
+ position = B_POSITION_OPPONENT_RIGHT;
}
else
- identity = IDENTITY_PLAYER_MON2;
+ position = B_POSITION_PLAYER_RIGHT;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankIdentity(gActiveBank) == identity)
+ if (GetBattlerPosition(gActiveBattler) == position)
{
- EmitIntroTrainerBallThrow(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
@@ -3534,29 +3523,29 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void)
static void BattleIntroPlayer1SendsOutMonAnimation(void)
{
- u32 identity;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
else if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
{
if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
else
- identity = IDENTITY_OPPONENT_MON1;
+ position = B_POSITION_OPPONENT_LEFT;
}
else
- identity = IDENTITY_PLAYER_MON1;
+ position = B_POSITION_PLAYER_LEFT;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankIdentity(gActiveBank) == identity)
+ if (GetBattlerPosition(gActiveBattler) == position)
{
- EmitIntroTrainerBallThrow(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitIntroTrainerBallThrow(0);
+ MarkBattlerForControllerExec(gActiveBattler);
if (gBattleTypeFlags & (BATTLE_TYPE_MULTI))
{
gBattleMainFunc = BattleIntroPlayer2SendsOutMonAnimation;
@@ -3574,14 +3563,14 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void)
void sub_803B598(void) // unused
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
- EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], FALSE);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
@@ -3599,18 +3588,18 @@ static void TryDoEventsBeforeFirstTurn(void)
s32 j;
u8 effect = 0;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (gBattleStruct->switchInAbilitiesCounter == 0)
{
- for (i = 0; i < gNoOfAllBanks; i++)
- gBanksByTurnOrder[i] = i;
- for (i = 0; i < gNoOfAllBanks - 1; i++)
+ for (i = 0; i < gBattlersCount; i++)
+ gBattleTurnOrder[i] = i;
+ for (i = 0; i < gBattlersCount - 1; i++)
{
- for (j = i + 1; j < gNoOfAllBanks; j++)
+ for (j = i + 1; j < gBattlersCount; j++)
{
- if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], TRUE) != 0)
+ if (GetWhoStrikesFirst(gBattleTurnOrder[i], gBattleTurnOrder[j], TRUE) != 0)
SwapTurnOrder(i, j);
}
}
@@ -3622,9 +3611,9 @@ static void TryDoEventsBeforeFirstTurn(void)
return;
}
// check all switch in abilities happening from the fastest mon to slowest
- while (gBattleStruct->switchInAbilitiesCounter < gNoOfAllBanks)
+ while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount)
{
- if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBanksByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattleTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0)
effect++;
gBattleStruct->switchInAbilitiesCounter++;
@@ -3637,9 +3626,9 @@ static void TryDoEventsBeforeFirstTurn(void)
if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0)
return;
// check all switch in items having effect from the fastest mon to slowest
- while (gBattleStruct->switchInItemsCounter < gNoOfAllBanks)
+ while (gBattleStruct->switchInItemsCounter < gBattlersCount)
{
- if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBanksByTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0)
+ if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattleTurnOrder[gBattleStruct->switchInItemsCounter], 0) != 0)
effect++;
gBattleStruct->switchInItemsCounter++;
@@ -3647,15 +3636,15 @@ static void TryDoEventsBeforeFirstTurn(void)
if (effect)
return;
}
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
*(gBattleStruct->monToSwitchIntoId + i) = 6;
- gActionForBanks[i] = ACTION_INIT_VALUE;
- gChosenMovesByBanks[i] = MOVE_NONE;
+ gChosenActionByBattler[i] = B_ACTION_NONE;
+ gChosenMoveByBattler[i] = MOVE_NONE;
}
TurnValuesCleanUp(FALSE);
SpecialStatusesClear();
- *(&gBattleStruct->field_91) = gAbsentBankFlags;
+ *(&gBattleStruct->field_91) = gAbsentBattlerFlags;
BattleHandleAddTextPrinter(gText_EmptyString3, 0);
gBattleMainFunc = HandleTurnActionSelectionState;
ResetSentPokesToOpponentValue();
@@ -3663,7 +3652,7 @@ static void TryDoEventsBeforeFirstTurn(void)
for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++)
gBattleCommunication[i] = 0;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
*(&gBattleStruct->turnEffectsTracker) = 0;
@@ -3673,7 +3662,7 @@ static void TryDoEventsBeforeFirstTurn(void)
gBattleScripting.atk49_state = 0;
gBattleStruct->faintedActionsState = 0;
gBattleStruct->turncountersTracker = 0;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gRandomTurnNumber = Random();
@@ -3688,15 +3677,15 @@ static void HandleEndTurn_ContinueBattle(void)
{
s32 i;
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
gBattleMainFunc = BattleTurnPassed;
for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++)
gBattleCommunication[i] = 0;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
gBattleMons[i].status2 &= ~(STATUS2_FLINCHED);
- if ((gBattleMons[i].status1 & STATUS_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS))
+ if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS))
CancelMultiTurnMoves(i);
}
gBattleStruct->turnEffectsTracker = 0;
@@ -3704,7 +3693,7 @@ static void HandleEndTurn_ContinueBattle(void)
gBattleStruct->wishPerishSongState = 0;
gBattleStruct->wishPerishSongBank = 0;
gBattleStruct->turncountersTracker = 0;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
}
}
@@ -3735,7 +3724,7 @@ void BattleTurnPassed(void)
gBattleScripting.animTargetsHit = 0;
gBattleScripting.atk49_state = 0;
gBattleMoveDamage = 0;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
for (i = 0; i < 5; i++)
gBattleCommunication[i] = 0;
@@ -3753,16 +3742,16 @@ void BattleTurnPassed(void)
gBattleStruct->field_DA++;
}
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- gActionForBanks[i] = ACTION_INIT_VALUE;
- gChosenMovesByBanks[i] = MOVE_NONE;
+ gChosenActionByBattler[i] = B_ACTION_NONE;
+ gChosenMoveByBattler[i] = MOVE_NONE;
}
for (i = 0; i < 4; i++)
*(gBattleStruct->monToSwitchIntoId + i) = 6;
- *(&gBattleStruct->field_91) = gAbsentBankFlags;
+ *(&gBattleStruct->field_91) = gAbsentBattlerFlags;
BattleHandleAddTextPrinter(gText_EmptyString3, 0);
gBattleMainFunc = HandleTurnActionSelectionState;
gRandomTurnNumber = Random();
@@ -3779,54 +3768,54 @@ u8 IsRunningFromBattleImpossible(void)
u8 side;
s32 i;
- if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY)
- holdEffect = gEnigmaBerries[gActiveBank].holdEffect;
+ if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[gActiveBattler].holdEffect;
else
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item);
- gStringBank = gActiveBank;
+ gStringBattler = gActiveBattler;
if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
return 0;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
return 0;
- if (gBattleMons[gActiveBank].ability == ABILITY_RUN_AWAY)
+ if (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY)
return 0;
- side = GetBankSide(gActiveBank);
+ side = GetBattlerSide(gActiveBattler);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (side != GetBankSide(i)
+ if (side != GetBattlerSide(i)
&& gBattleMons[i].ability == ABILITY_SHADOW_TAG)
{
- gBattleScripting.bank = i;
+ gBattleScripting.battler = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return 2;
}
- if (side != GetBankSide(i)
- && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE
- && gBattleMons[gActiveBank].type1 != TYPE_FLYING
- && gBattleMons[gActiveBank].type2 != TYPE_FLYING
+ if (side != GetBattlerSide(i)
+ && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE
+ && gBattleMons[gActiveBattler].type1 != TYPE_FLYING
+ && gBattleMons[gActiveBattler].type2 != TYPE_FLYING
&& gBattleMons[i].ability == ABILITY_ARENA_TRAP)
{
- gBattleScripting.bank = i;
+ gBattleScripting.battler = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return 2;
}
}
- i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0);
- if (i != 0 && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL))
+ i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0);
+ if (i != 0 && (gBattleMons[gActiveBattler].type1 == TYPE_STEEL || gBattleMons[gActiveBattler].type2 == TYPE_STEEL))
{
- gBattleScripting.bank = i - 1;
+ gBattleScripting.battler = i - 1;
gLastUsedAbility = gBattleMons[i - 1].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
return 2;
}
- if ((gBattleMons[gActiveBank].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))
- || (gStatuses3[gActiveBank] & STATUS3_ROOTED))
+ if ((gBattleMons[gActiveBattler].status2 & (STATUS2_ESCAPE_PREVENTION | STATUS2_WRAPPED))
+ || (gStatuses3[gActiveBattler] & STATUS3_ROOTED))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
return 1;
@@ -3839,34 +3828,34 @@ u8 IsRunningFromBattleImpossible(void)
return 0;
}
-void sub_803BDA0(u8 bank)
+void sub_803BDA0(u8 battler)
{
s32 i;
u8 r4;
u8 r1;
- // gBattleStruct->field_60[bank][i]
+ // gBattleStruct->field_60[battler][i]
for (i = 0; i < 3; i++)
- gUnknown_0203CF00[i] = *(bank * 3 + i + (u8*)(gBattleStruct->field_60));
+ gUnknown_0203CF00[i] = *(battler * 3 + i + (u8*)(gBattleStruct->field_60));
- r4 = pokemon_order_func(gBattlePartyID[bank]);
- r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + bank));
+ r4 = pokemon_order_func(gBattlerPartyIndexes[battler]);
+ r1 = pokemon_order_func(*(gBattleStruct->monToSwitchIntoId + battler));
sub_81B8FB0(r4, r1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
for (i = 0; i < 3; i++)
{
- *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
- *((bank ^ BIT_MON) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
+ *(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
+ *(BATTLE_PARTNER(battler) * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
}
}
else
{
for (i = 0; i < 3; i++)
{
- *(bank * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
+ *(battler * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
}
}
}
@@ -3889,235 +3878,235 @@ static void HandleTurnActionSelectionState(void)
s32 i;
gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- u8 identity = GetBankIdentity(gActiveBank);
- switch (gBattleCommunication[gActiveBank])
+ u8 position = GetBattlerPosition(gActiveBattler);
+ switch (gBattleCommunication[gActiveBattler])
{
case STATE_TURN_START_RECORD: // recorded battle related on start of every turn
RecordedBattle_CopyBankMoves();
- gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN;
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
break;
case STATE_BEFORE_ACTION_CHOSEN: // choose an action
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
if (gBattleTypeFlags & BATTLE_TYPE_MULTI
- || !(identity & BIT_MON)
- || gBattleStruct->field_91 & gBitTable[GetBankByIdentity(identity ^ BIT_MON)]
- || gBattleCommunication[GetBankByIdentity(identity ^ BIT_MON)] == 5)
+ || !(position & BIT_FLANK)
+ || gBattleStruct->field_91 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]
+ || gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] == 5)
{
- if (gBattleStruct->field_91 & gBitTable[gActiveBank])
+ if (gBattleStruct->field_91 & gBitTable[gActiveBattler])
{
- gActionForBanks[gActiveBank] = ACTION_NOTHING_FAINTED;
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_NOTHING_FAINTED;
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
- gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED;
else
- gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
}
else
{
- if (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS
- || gBattleMons[gActiveBank].status2 & STATUS2_RECHARGE)
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS
+ || gBattleMons[gActiveBattler].status2 & STATUS2_RECHARGE)
{
- gActionForBanks[gActiveBank] = ACTION_USE_MOVE;
- gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_USE_MOVE;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
}
else
{
- EmitChooseAction(0, gActionForBanks[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8));
- MarkBufferBankForExecution(gActiveBank);
- gBattleCommunication[gActiveBank]++;
+ BtlController_EmitChooseAction(0, gChosenActionByBattler[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8));
+ MarkBattlerForControllerExec(gActiveBattler);
+ gBattleCommunication[gActiveBattler]++;
}
}
}
break;
case STATE_WAIT_ACTION_CHOSEN: // try to perform an action
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
- RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]);
- gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1];
+ RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]);
+ gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1];
- switch (gBattleBufferB[gActiveBank][1])
+ switch (gBattleBufferB[gActiveBattler][1])
{
- case ACTION_USE_MOVE:
+ case B_ACTION_USE_MOVE:
if (AreAllMovesUnusable())
{
- gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
- *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3];
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3];
return;
}
- else if (gDisableStructs[gActiveBank].encoredMove != 0)
+ else if (gDisableStructs[gActiveBattler].encoredMove != 0)
{
- gChosenMovesByBanks[gActiveBank] = gDisableStructs[gActiveBank].encoredMove;
- *(gBattleStruct->chosenMovePositions + gActiveBank) = gDisableStructs[gActiveBank].encoredMovePos;
- gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ gChosenMoveByBattler[gActiveBattler] = gDisableStructs[gActiveBattler].encoredMove;
+ *(gBattleStruct->chosenMovePositions + gActiveBattler) = gDisableStructs[gActiveBattler].encoredMovePos;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
return;
}
else
{
struct ChooseMoveStruct moveInfo;
- moveInfo.species = gBattleMons[gActiveBank].species;
- moveInfo.monType1 = gBattleMons[gActiveBank].type1;
- moveInfo.monType2 = gBattleMons[gActiveBank].type2;
+ moveInfo.species = gBattleMons[gActiveBattler].species;
+ moveInfo.monType1 = gBattleMons[gActiveBattler].type1;
+ moveInfo.monType2 = gBattleMons[gActiveBattler].type2;
for (i = 0; i < 4; i++)
{
- moveInfo.moves[i] = gBattleMons[gActiveBank].moves[i];
- moveInfo.currentPp[i] = gBattleMons[gActiveBank].pp[i];
+ moveInfo.moves[i] = gBattleMons[gActiveBattler].moves[i];
+ moveInfo.currentPp[i] = gBattleMons[gActiveBattler].pp[i];
moveInfo.maxPp[i] = CalculatePPWithBonus(
- gBattleMons[gActiveBank].moves[i],
- gBattleMons[gActiveBank].ppBonuses,
+ gBattleMons[gActiveBattler].moves[i],
+ gBattleMons[gActiveBattler].ppBonuses,
i);
}
- EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitChooseMove(0, (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) != 0, FALSE, &moveInfo);
+ MarkBattlerForControllerExec(gActiveBattler);
}
break;
- case ACTION_USE_ITEM:
+ case B_ACTION_USE_ITEM:
if (gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_FRONTIER_NO_PYRAMID
| BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_x2000000))
{
- RecordedBattle_ClearBankAction(gActiveBank, 1);
- gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed;
- gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
return;
}
else
{
- EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
break;
- case ACTION_SWITCH:
- *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
- if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)
+ case B_ACTION_SWITCH:
+ *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
+ if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)
|| gBattleTypeFlags & BATTLE_TYPE_ARENA
- || gStatuses3[gActiveBank] & STATUS3_ROOTED)
+ || gStatuses3[gActiveBattler] & STATUS3_ROOTED)
{
- EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
+ BtlController_EmitChoosePokemon(0, 2, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
}
- else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0))
- || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0))
- && gBattleMons[gActiveBank].type1 != TYPE_FLYING
- && gBattleMons[gActiveBank].type2 != TYPE_FLYING
- && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE)
- || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBank, ABILITY_MAGNET_PULL, 0, 0))
- && (gBattleMons[gActiveBank].type1 == TYPE_STEEL
- || gBattleMons[gActiveBank].type2 == TYPE_STEEL)))
+ else if ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_SHADOW_TAG, 0, 0))
+ || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBattler, ABILITY_ARENA_TRAP, 0, 0))
+ && gBattleMons[gActiveBattler].type1 != TYPE_FLYING
+ && gBattleMons[gActiveBattler].type2 != TYPE_FLYING
+ && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE)
+ || ((i = AbilityBattleEffects(ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0))
+ && (gBattleMons[gActiveBattler].type1 == TYPE_STEEL
+ || gBattleMons[gActiveBattler].type2 == TYPE_STEEL)))
{
- EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBank]);
+ BtlController_EmitChoosePokemon(0, ((i - 1) << 4) | 4, 6, gLastUsedAbility, gBattleStruct->field_60[gActiveBattler]);
}
else
{
- if (gActiveBank == 2 && gActionForBanks[0] == ACTION_SWITCH)
- EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
- else if (gActiveBank == 3 && gActionForBanks[1] == ACTION_SWITCH)
- EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
+ if (gActiveBattler == 2 && gChosenActionByBattler[0] == B_ACTION_SWITCH)
+ BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 0), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
+ else if (gActiveBattler == 3 && gChosenActionByBattler[1] == B_ACTION_SWITCH)
+ BtlController_EmitChoosePokemon(0, 0, *(gBattleStruct->monToSwitchIntoId + 1), ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
else
- EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBank]);
+ BtlController_EmitChoosePokemon(0, 0, 6, ABILITY_NONE, gBattleStruct->field_60[gActiveBattler]);
}
- MarkBufferBankForExecution(gActiveBank);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
- case ACTION_SAFARI_ZONE_BALL:
+ case B_ACTION_SAFARI_BALL:
if (IsPlayerPartyAndPokemonStorageFull())
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox;
- gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintFullBox;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
return;
}
break;
- case ACTION_POKEBLOCK_CASE:
- EmitChooseItem(0, gBattleStruct->field_60[gActiveBank]);
- MarkBufferBankForExecution(gActiveBank);
+ case B_ACTION_SAFARI_POKEBLOCK:
+ BtlController_EmitChooseItem(0, gBattleStruct->field_60[gActiveBattler]);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
- case ACTION_CANCEL_PARTNER:
- gBattleCommunication[gActiveBank] = 7;
- gBattleCommunication[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] = 1;
- RecordedBattle_ClearBankAction(gActiveBank, 1);
- if (gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS
- || gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE)
+ case B_ACTION_CANCEL_PARTNER:
+ gBattleCommunication[gActiveBattler] = 7;
+ gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] = 1;
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
+ if (gBattleMons[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].status2 & STATUS2_MULTIPLETURNS
+ || gBattleMons[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].status2 & STATUS2_RECHARGE)
{
- EmitCmd50(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitCmd50(0);
+ MarkBattlerForControllerExec(gActiveBattler);
return;
}
- else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_SWITCH)
+ else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_SWITCH)
{
- RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 2);
+ RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 2);
}
- else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_RUN)
+ else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_RUN)
{
- RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1);
+ RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1);
}
- else if (gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE
- && (gProtectStructs[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].onlyStruggle
- || gDisableStructs[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].encoredMove))
+ else if (gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_USE_MOVE
+ && (gProtectStructs[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].onlyStruggle
+ || gDisableStructs[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))].encoredMove))
{
- RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1);
+ RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1);
}
else if (gBattleTypeFlags & BATTLE_TYPE_PALACE
- && gActionForBanks[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)] == ACTION_USE_MOVE)
+ && gChosenActionByBattler[GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler)))] == B_ACTION_USE_MOVE)
{
gRngValue = gBattlePalaceMoveSelectionRngValue;
- RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 1);
+ RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 1);
}
else
{
- RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 3);
+ RecordedBattle_ClearBattlerAction(GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gActiveBattler))), 3);
}
- EmitCmd50(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitCmd50(0);
+ MarkBattlerForControllerExec(gActiveBattler);
return;
}
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
&& gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000)
- && gBattleBufferB[gActiveBank][1] == ACTION_RUN)
+ && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch;
- gBattleCommunication[gActiveBank] = 8;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_AskIfWantsToForfeitMatch;
+ gBattleCommunication[gActiveBattler] = 8;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
return;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
- && gBattleBufferB[gActiveBank][1] == ACTION_RUN)
+ && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
{
BattleScriptExecute(BattleScript_PrintCantRunFromTrainer);
- gBattleCommunication[gActiveBank] = 1;
+ gBattleCommunication[gActiveBattler] = 1;
}
else if (IsRunningFromBattleImpossible()
- && gBattleBufferB[gActiveBank][1] == ACTION_RUN)
+ && gBattleBufferB[gActiveBattler][1] == B_ACTION_RUN)
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle;
- gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle;
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_BEFORE_ACTION_CHOSEN;
return;
}
else
{
- gBattleCommunication[gActiveBank]++;
+ gBattleCommunication[gActiveBattler]++;
}
}
break;
case STATE_WAIT_ACTION_CASE_CHOSEN:
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
- switch (gActionForBanks[gActiveBank])
+ switch (gChosenActionByBattler[gActiveBattler])
{
- case ACTION_USE_MOVE:
- switch (gBattleBufferB[gActiveBank][1])
+ case B_ACTION_USE_MOVE:
+ switch (gBattleBufferB[gActiveBattler][1])
{
case 3:
case 4:
@@ -4126,186 +4115,186 @@ static void HandleTurnActionSelectionState(void)
case 7:
case 8:
case 9:
- gActionForBanks[gActiveBank] = gBattleBufferB[gActiveBank][1];
+ gChosenActionByBattler[gActiveBattler] = gBattleBufferB[gActiveBattler][1];
return;
case 15:
- gActionForBanks[gActiveBank] = ACTION_SWITCH;
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_SWITCH;
sub_803CDF8();
return;
default:
sub_818603C(2);
- if ((gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)) == 0xFFFF)
+ if ((gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8)) == 0xFFFF)
{
- gBattleCommunication[gActiveBank] = 1;
- RecordedBattle_ClearBankAction(gActiveBank, 1);
+ gBattleCommunication[gActiveBattler] = 1;
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
}
else if (TrySetCantSelectMoveBattleScript())
{
- RecordedBattle_ClearBankAction(gActiveBank, 1);
- gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
- *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
- gBattleBufferB[gActiveBank][1] = 0;
- *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_WAIT_ACTION_CHOSEN;
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
+ gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;
+ *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE;
+ gBattleBufferB[gActiveBattler][1] = 0;
+ *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CHOSEN;
return;
}
else
{
if (!(gBattleTypeFlags & BATTLE_TYPE_PALACE))
{
- RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][2]);
- RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][3]);
+ RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][2]);
+ RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][3]);
}
- *(gBattleStruct->chosenMovePositions + gActiveBank) = gBattleBufferB[gActiveBank][2];
- gChosenMovesByBanks[gActiveBank] = gBattleMons[gActiveBank].moves[*(gBattleStruct->chosenMovePositions + gActiveBank)];
- *(gBattleStruct->moveTarget + gActiveBank) = gBattleBufferB[gActiveBank][3];
- gBattleCommunication[gActiveBank]++;
+ *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2];
+ gChosenMoveByBattler[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)];
+ *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3];
+ gBattleCommunication[gActiveBattler]++;
}
break;
}
break;
- case ACTION_USE_ITEM:
- if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) == 0)
+ case B_ACTION_USE_ITEM:
+ if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) == 0)
{
- gBattleCommunication[gActiveBank] = 1;
+ gBattleCommunication[gActiveBattler] = 1;
}
else
{
- gLastUsedItem = (gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8));
- gBattleCommunication[gActiveBank]++;
+ gLastUsedItem = (gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8));
+ gBattleCommunication[gActiveBattler]++;
}
break;
- case ACTION_SWITCH:
- if (gBattleBufferB[gActiveBank][1] == 6)
+ case B_ACTION_SWITCH:
+ if (gBattleBufferB[gActiveBattler][1] == 6)
{
- gBattleCommunication[gActiveBank] = 1;
- RecordedBattle_ClearBankAction(gActiveBank, 1);
+ gBattleCommunication[gActiveBattler] = 1;
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
}
else
{
sub_803CDF8();
- gBattleCommunication[gActiveBank]++;
+ gBattleCommunication[gActiveBattler]++;
}
break;
- case ACTION_RUN:
+ case B_ACTION_RUN:
gHitMarker |= HITMARKER_RUN;
- gBattleCommunication[gActiveBank]++;
+ gBattleCommunication[gActiveBattler]++;
break;
- case ACTION_WATCHES_CAREFULLY:
- gBattleCommunication[gActiveBank]++;
+ case B_ACTION_SAFARI_WATCH_CAREFULLY:
+ gBattleCommunication[gActiveBattler]++;
break;
- case ACTION_SAFARI_ZONE_BALL:
- gBattleCommunication[gActiveBank]++;
+ case B_ACTION_SAFARI_BALL:
+ gBattleCommunication[gActiveBattler]++;
break;
- case ACTION_POKEBLOCK_CASE:
- if ((gBattleBufferB[gActiveBank][1] | (gBattleBufferB[gActiveBank][2] << 8)) != 0)
+ case B_ACTION_SAFARI_POKEBLOCK:
+ if ((gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)) != 0)
{
- gBattleCommunication[gActiveBank]++;
+ gBattleCommunication[gActiveBattler]++;
}
else
{
- gBattleCommunication[gActiveBank] = STATE_BEFORE_ACTION_CHOSEN;
+ gBattleCommunication[gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN;
}
break;
- case ACTION_GO_NEAR:
- gBattleCommunication[gActiveBank]++;
+ case B_ACTION_SAFARI_GO_NEAR:
+ gBattleCommunication[gActiveBattler]++;
break;
- case ACTION_SAFARI_ZONE_RUN:
+ case B_ACTION_SAFARI_RUN:
gHitMarker |= HITMARKER_RUN;
- gBattleCommunication[gActiveBank]++;
+ gBattleCommunication[gActiveBattler]++;
break;
- case ACTION_9:
- gBattleCommunication[gActiveBank]++;
+ case B_ACTION_UNKNOWN9:
+ gBattleCommunication[gActiveBattler]++;
break;
}
}
break;
case STATE_WAIT_ACTION_CONFIRMED_STANDBY:
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
i = (sub_803CDB8() != 0);
if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
- || (identity & BIT_MON)
- || (*(&gBattleStruct->field_91) & gBitTable[GetBankByIdentity(identity ^ BIT_MON)]))
+ || (position & BIT_FLANK)
+ || (*(&gBattleStruct->field_91) & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
{
- EmitLinkStandbyMsg(0, 0, i);
+ BtlController_EmitLinkStandbyMsg(0, 0, i);
}
else
{
- EmitLinkStandbyMsg(0, 1, i);
+ BtlController_EmitLinkStandbyMsg(0, 1, i);
}
- MarkBufferBankForExecution(gActiveBank);
- gBattleCommunication[gActiveBank]++;
+ MarkBattlerForControllerExec(gActiveBattler);
+ gBattleCommunication[gActiveBattler]++;
}
break;
case STATE_WAIT_ACTION_CONFIRMED:
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
gBattleCommunication[ACTIONS_CONFIRMED_COUNT]++;
}
break;
case STATE_SELECTION_SCRIPT:
- if (*(gBattleStruct->selectionScriptFinished + gActiveBank))
+ if (*(gBattleStruct->selectionScriptFinished + gActiveBattler))
{
- gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank);
+ gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler);
}
else
{
- gBankAttacker = gActiveBank;
- gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank];
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ gBattlerAttacker = gActiveBattler;
+ gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler];
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
- gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr;
+ gSelectionBattleScripts[gActiveBattler] = gBattlescriptCurrInstr;
}
break;
case STATE_WAIT_SET_BEFORE_ACTION:
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
- gBattleCommunication[gActiveBank] = 1;
+ gBattleCommunication[gActiveBattler] = 1;
}
break;
case STATE_SELECTION_SCRIPT_MAY_RUN:
- if (*(gBattleStruct->selectionScriptFinished + gActiveBank))
+ if (*(gBattleStruct->selectionScriptFinished + gActiveBattler))
{
- if (gBattleBufferB[gActiveBank][1] == 13)
+ if (gBattleBufferB[gActiveBattler][1] == 13)
{
gHitMarker |= HITMARKER_RUN;
- gActionForBanks[gActiveBank] = ACTION_RUN;
- gBattleCommunication[gActiveBank] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
+ gChosenActionByBattler[gActiveBattler] = B_ACTION_RUN;
+ gBattleCommunication[gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY;
}
else
{
- RecordedBattle_ClearBankAction(gActiveBank, 1);
- gBattleCommunication[gActiveBank] = *(gBattleStruct->stateIdAfterSelScript + gActiveBank);
+ RecordedBattle_ClearBattlerAction(gActiveBattler, 1);
+ gBattleCommunication[gActiveBattler] = *(gBattleStruct->stateIdAfterSelScript + gActiveBattler);
}
}
else
{
- gBankAttacker = gActiveBank;
- gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank];
- if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
+ gBattlerAttacker = gActiveBattler;
+ gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBattler];
+ if (!(gBattleControllerExecFlags & ((gBitTable[gActiveBattler]) | (0xF0000000) | (gBitTable[gActiveBattler] << 4) | (gBitTable[gActiveBattler] << 8) | (gBitTable[gActiveBattler] << 0xC))))
{
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
- gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr;
+ gSelectionBattleScripts[gActiveBattler] = gBattlescriptCurrInstr;
}
break;
}
}
// check if everyone chose actions
- if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gNoOfAllBanks)
+ if (gBattleCommunication[ACTIONS_CONFIRMED_COUNT] == gBattlersCount)
{
sub_818603C(1);
gBattleMainFunc = SetActionsAndBanksTurnOrder;
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gActionForBanks[i] == ACTION_SWITCH)
+ if (gChosenActionByBattler[i] == B_ACTION_SWITCH)
sub_80571DC(i, *(gBattleStruct->monToSwitchIntoId + i));
}
}
@@ -4316,13 +4305,13 @@ static bool8 sub_803CDB8(void)
{
s32 i, var;
- for (var = 0, i = 0; i < gNoOfAllBanks; i++)
+ for (var = 0, i = 0; i < gBattlersCount; i++)
{
if (gBattleCommunication[i] == 5)
var++;
}
- if (var + 1 == gNoOfAllBanks)
+ if (var + 1 == gBattlersCount)
return TRUE;
else
return FALSE;
@@ -4330,18 +4319,18 @@ static bool8 sub_803CDB8(void)
static void sub_803CDF8(void)
{
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1];
- RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]);
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1];
+ RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]);
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF;
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3];
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF;
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBattler][3];
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0);
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3];
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0);
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBattler][3];
}
}
@@ -4351,9 +4340,9 @@ void SwapTurnOrder(u8 id1, u8 id2)
gActionsByTurnOrder[id1] = gActionsByTurnOrder[id2];
gActionsByTurnOrder[id2] = temp;
- temp = gBanksByTurnOrder[id1];
- gBanksByTurnOrder[id1] = gBanksByTurnOrder[id2];
- gBanksByTurnOrder[id2] = temp;
+ temp = gBattleTurnOrder[id1];
+ gBattleTurnOrder[id1] = gBattleTurnOrder[id2];
+ gBattleTurnOrder[id2] = temp;
}
u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
@@ -4403,7 +4392,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
// badge boost
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER))
&& FlagGet(FLAG_BADGE03_GET)
- && GetBankSide(bank1) == SIDE_PLAYER)
+ && GetBattlerSide(bank1) == B_SIDE_PLAYER)
{
speedBank1 = (speedBank1 * 110) / 100;
}
@@ -4411,7 +4400,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
speedBank1 /= 2;
- if (gBattleMons[bank1].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank1].status1 & STATUS1_PARALYSIS)
speedBank1 /= 4;
if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
@@ -4437,7 +4426,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
// badge boost
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER))
&& FlagGet(FLAG_BADGE03_GET)
- && GetBankSide(bank2) == SIDE_PLAYER)
+ && GetBattlerSide(bank2) == B_SIDE_PLAYER)
{
speedBank2 = (speedBank2 * 110) / 100;
}
@@ -4445,7 +4434,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
if (holdEffect == HOLD_EFFECT_MACHO_BRACE)
speedBank2 /= 2;
- if (gBattleMons[bank2].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank2].status1 & STATUS1_PARALYSIS)
speedBank2 /= 4;
if (holdEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (0xFFFF * holdEffectParam) / 100)
@@ -4458,7 +4447,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
}
else
{
- if (gActionForBanks[bank1] == ACTION_USE_MOVE)
+ if (gChosenActionByBattler[bank1] == B_ACTION_USE_MOVE)
{
if (gProtectStructs[bank1].onlyStruggle)
moveBank1 = MOVE_STRUGGLE;
@@ -4468,7 +4457,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves)
else
moveBank1 = MOVE_NONE;
- if (gActionForBanks[bank2] == ACTION_USE_MOVE)
+ if (gChosenActionByBattler[bank2] == B_ACTION_USE_MOVE)
{
if (gProtectStructs[bank2].onlyStruggle)
moveBank2 = MOVE_STRUGGLE;
@@ -4518,10 +4507,10 @@ static void SetActionsAndBanksTurnOrder(void)
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
- gBanksByTurnOrder[var] = gActiveBank;
+ gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler];
+ gBattleTurnOrder[var] = gActiveBattler;
var++;
}
}
@@ -4529,9 +4518,9 @@ static void SetActionsAndBanksTurnOrder(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (gActionForBanks[gActiveBank] == ACTION_RUN)
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
{
var = 5;
break;
@@ -4540,29 +4529,29 @@ static void SetActionsAndBanksTurnOrder(void)
}
else
{
- if (gActionForBanks[0] == ACTION_RUN)
+ if (gChosenActionByBattler[0] == B_ACTION_RUN)
{
- gActiveBank = 0;
+ gActiveBattler = 0;
var = 5;
}
- if (gActionForBanks[2] == ACTION_RUN)
+ if (gChosenActionByBattler[2] == B_ACTION_RUN)
{
- gActiveBank = 2;
+ gActiveBattler = 2;
var = 5;
}
}
if (var == 5)
{
- gActionsByTurnOrder[0] = gActionForBanks[gActiveBank];
- gBanksByTurnOrder[0] = gActiveBank;
+ gActionsByTurnOrder[0] = gChosenActionByBattler[gActiveBattler];
+ gBattleTurnOrder[0] = gActiveBattler;
var = 1;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (i != gActiveBank)
+ if (i != gActiveBattler)
{
- gActionsByTurnOrder[var] = gActionForBanks[i];
- gBanksByTurnOrder[var] = i;
+ gActionsByTurnOrder[var] = gChosenActionByBattler[i];
+ gBattleTurnOrder[var] = i;
var++;
}
}
@@ -4572,34 +4561,34 @@ static void SetActionsAndBanksTurnOrder(void)
}
else
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH)
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
{
- gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
- gBanksByTurnOrder[var] = gActiveBank;
+ gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler];
+ gBattleTurnOrder[var] = gActiveBattler;
var++;
}
}
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH)
+ if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
{
- gActionsByTurnOrder[var] = gActionForBanks[gActiveBank];
- gBanksByTurnOrder[var] = gActiveBank;
+ gActionsByTurnOrder[var] = gChosenActionByBattler[gActiveBattler];
+ gBattleTurnOrder[var] = gActiveBattler;
var++;
}
}
- for (i = 0; i < gNoOfAllBanks - 1; i++)
+ for (i = 0; i < gBattlersCount - 1; i++)
{
- for (j = i + 1; j < gNoOfAllBanks; j++)
+ for (j = i + 1; j < gBattlersCount; j++)
{
- u8 bank1 = gBanksByTurnOrder[i];
- u8 bank2 = gBanksByTurnOrder[j];
- if (gActionsByTurnOrder[i] != ACTION_USE_ITEM
- && gActionsByTurnOrder[j] != ACTION_USE_ITEM
- && gActionsByTurnOrder[i] != ACTION_SWITCH
- && gActionsByTurnOrder[j] != ACTION_SWITCH)
+ u8 bank1 = gBattleTurnOrder[i];
+ u8 bank2 = gBattleTurnOrder[j];
+ if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != B_ACTION_SWITCH
+ && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
{
if (GetWhoStrikesFirst(bank1, bank2, FALSE))
SwapTurnOrder(i, j);
@@ -4617,32 +4606,32 @@ static void TurnValuesCleanUp(bool8 var0)
s32 i;
u8 *dataPtr;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
if (var0)
{
- gProtectStructs[gActiveBank].protected = 0;
- gProtectStructs[gActiveBank].endured = 0;
+ gProtectStructs[gActiveBattler].protected = 0;
+ gProtectStructs[gActiveBattler].endured = 0;
}
else
{
- dataPtr = (u8*)(&gProtectStructs[gActiveBank]);
+ dataPtr = (u8*)(&gProtectStructs[gActiveBattler]);
for (i = 0; i < sizeof(struct ProtectStruct); i++)
dataPtr[i] = 0;
- if (gDisableStructs[gActiveBank].isFirstTurn)
- gDisableStructs[gActiveBank].isFirstTurn--;
+ if (gDisableStructs[gActiveBattler].isFirstTurn)
+ gDisableStructs[gActiveBattler].isFirstTurn--;
- if (gDisableStructs[gActiveBank].rechargeCounter)
+ if (gDisableStructs[gActiveBattler].rechargeCounter)
{
- gDisableStructs[gActiveBank].rechargeCounter--;
- if (gDisableStructs[gActiveBank].rechargeCounter == 0)
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE);
+ gDisableStructs[gActiveBattler].rechargeCounter--;
+ if (gDisableStructs[gActiveBattler].rechargeCounter == 0)
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_RECHARGE);
}
}
- if (gDisableStructs[gActiveBank].substituteHP == 0)
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE);
+ if (gDisableStructs[gActiveBattler].substituteHP == 0)
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_SUBSTITUTE);
}
gSideTimers[0].followmeTimer = 0;
@@ -4651,10 +4640,10 @@ static void TurnValuesCleanUp(bool8 var0)
static void SpecialStatusesClear(void)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
s32 i;
- u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]);
+ u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBattler]);
for (i = 0; i < sizeof(struct SpecialStatus); i++)
dataPtr[i] = 0;
@@ -4665,14 +4654,14 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
{
if (!(gHitMarker & HITMARKER_RUN))
{
- while (gBattleStruct->focusPunchBank < gNoOfAllBanks)
+ while (gBattleStruct->focusPunchBank < gBattlersCount)
{
- gActiveBank = gBankAttacker = gBattleStruct->focusPunchBank;
+ gActiveBattler = gBattlerAttacker = gBattleStruct->focusPunchBank;
gBattleStruct->focusPunchBank++;
- if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH
- && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
- && !(gDisableStructs[gBankAttacker].truantCounter)
- && !(gProtectStructs[gActiveBank].onlyStruggle))
+ if (gChosenMoveByBattler[gActiveBattler] == MOVE_FOCUS_PUNCH
+ && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
+ && !(gDisableStructs[gBattlerAttacker].truantCounter)
+ && !(gProtectStructs[gActiveBattler].onlyStruggle))
{
BattleScriptExecute(BattleScript_FocusPunchSetUp);
return;
@@ -4704,7 +4693,7 @@ static void RunTurnActionsFunctions(void)
*(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber;
sTurnActionsFuncsTable[gCurrentActionFuncId]();
- if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished
+ if (gCurrentTurnActionNumber >= gBattlersCount) // everyone did their actions, turn finished
{
gHitMarker &= ~(HITMARKER_x100000);
gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
@@ -4727,9 +4716,9 @@ static void HandleEndTurn_BattleWon(void)
{
gSpecialVar_Result = gBattleOutcome;
gBattleTextBuff1[0] = gBattleOutcome;
- gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
- gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER
&& gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER))
@@ -4785,24 +4774,24 @@ static void HandleEndTurn_BattleLost(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
{
- if (gBattleOutcome & OUTCOME_LINK_BATTLE_RUN)
+ if (gBattleOutcome & B_OUTCOME_LINK_BATTLE_RAN)
{
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle;
- gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
gSaveBlock2Ptr->field_CA9_b = 1;
}
else
{
gBattlescriptCurrInstr = BattleScript_82DAA0B;
- gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
}
}
else
{
gBattleTextBuff1[0] = gBattleOutcome;
- gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost;
- gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN);
+ gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
}
}
else
@@ -4820,17 +4809,17 @@ static void HandleEndTurn_RanFromBattle(void)
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited;
- gBattleOutcome = BATTLE_FORFEITED;
+ gBattleOutcome = B_OUTCOME_FORFEITED;
gSaveBlock2Ptr->field_CA9_b = 1;
}
else if (gBattleTypeFlags & BATTLE_TYPE_x4000000)
{
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited;
- gBattleOutcome = BATTLE_FORFEITED;
+ gBattleOutcome = B_OUTCOME_FORFEITED;
}
else
{
- switch (gProtectStructs[gBankAttacker].fleeFlag)
+ switch (gProtectStructs[gBattlerAttacker].fleeFlag)
{
default:
gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
@@ -4851,7 +4840,7 @@ static void HandleEndTurn_MonFled(void)
{
gCurrentActionFuncId = 0;
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]);
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]);
gBattlescriptCurrInstr = BattleScript_WildMonFled;
gBattleMainFunc = HandleEndTurn_FinishBattle;
@@ -4869,19 +4858,19 @@ static void HandleEndTurn_FinishBattle(void)
| BATTLE_TYPE_WALLY_TUTORIAL
| BATTLE_TYPE_FRONTIER)))
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
if (gBattleResults.playerMon1Species == SPECIES_NONE)
{
- gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL);
- GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name);
+ gBattleResults.playerMon1Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL);
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon1Name);
}
else
{
- gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL);
- GetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name);
+ gBattleResults.playerMon2Species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL);
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_NICKNAME, gBattleResults.playerMon2Name);
}
}
}
@@ -4909,7 +4898,7 @@ static void HandleEndTurn_FinishBattle(void)
}
else
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
}
@@ -4919,7 +4908,7 @@ static void FreeResetData_ReturnToOvOrDoEvolutions(void)
if (!gPaletteFade.active)
{
ResetSpriteData();
- if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON)
+ if (gLeveledUpInBattle == 0 || gBattleOutcome != B_OUTCOME_WON)
{
gBattleMainFunc = ReturnFromBattleToOverworld;
return;
@@ -4994,7 +4983,7 @@ static void ReturnFromBattleToOverworld(void)
if (gBattleTypeFlags & BATTLE_TYPE_ROAMER)
{
UpdateRoamerHPStatus(&gEnemyParty[0]);
- if ((gBattleOutcome & BATTLE_WON) || gBattleOutcome == BATTLE_CAUGHT)
+ if ((gBattleOutcome & B_OUTCOME_WON) || gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
SetRoamerInactive();
}
@@ -5006,20 +4995,20 @@ void RunBattleScriptCommands_PopCallbacksStack(void)
{
if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC)
{
- if (BATTLE_CALLBACKS_STACK->size != 0)
- BATTLE_CALLBACKS_STACK->size--;
- gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size];
+ if (gBattleResources->battleCallbackStack->size != 0)
+ gBattleResources->battleCallbackStack->size--;
+ gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size];
}
else
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
}
void RunBattleScriptCommands(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
@@ -5028,200 +5017,200 @@ static void HandleAction_UseMove(void)
u8 side;
u8 var = 4;
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
- if (*(&gBattleStruct->field_91) & gBitTable[gBankAttacker])
+ if (*(&gBattleStruct->field_91) & gBitTable[gBattlerAttacker])
{
- gCurrentActionFuncId = ACTION_FINISHED;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
return;
}
gCritMultiplier = 1;
gBattleScripting.dmgMultiplier = 1;
gBattleStruct->atkCancellerTracker = 0;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gMultiHitCounter = 0;
gBattleCommunication[6] = 0;
- gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankAttacker);
+ gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattlerAttacker);
// choose move
- if (gProtectStructs[gBankAttacker].onlyStruggle)
+ if (gProtectStructs[gBattlerAttacker].onlyStruggle)
{
- gProtectStructs[gBankAttacker].onlyStruggle = 0;
+ gProtectStructs[gBattlerAttacker].onlyStruggle = 0;
gCurrentMove = gChosenMove = MOVE_STRUGGLE;
gHitMarker |= HITMARKER_NO_PPDEDUCT;
- *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
}
- else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
+ else if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE)
{
- gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker];
+ gCurrentMove = gChosenMove = gLockedMoves[gBattlerAttacker];
}
// encore forces you to use the same move
- else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
- && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBattlerAttacker].encoredMove == gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos])
{
- gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove;
- gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos;
- *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove;
+ gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattlerAttacker].encoredMovePos;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
}
// check if the encored move wasn't overwritten
- else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
- && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
+ else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE
+ && gDisableStructs[gBattlerAttacker].encoredMove != gBattleMons[gBattlerAttacker].moves[gDisableStructs[gBattlerAttacker].encoredMovePos])
{
- gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos;
- gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
- gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE;
- gDisableStructs[gBankAttacker].encoredMovePos = 0;
- gDisableStructs[gBankAttacker].encoreTimer1 = 0;
- *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBattlerAttacker].encoredMovePos;
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
+ gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE;
+ gDisableStructs[gBattlerAttacker].encoredMovePos = 0;
+ gDisableStructs[gBattlerAttacker].encoreTimer1 = 0;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
}
- else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker])
+ else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMoveByBattler[gBattlerAttacker])
{
- gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
- *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0);
}
else
{
- gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
}
- if (gBattleMons[gBankAttacker].hp != 0)
+ if (gBattleMons[gBattlerAttacker].hp != 0)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
gBattleResults.lastUsedMovePlayer = gCurrentMove;
else
gBattleResults.lastUsedMoveOpponent = gCurrentMove;
}
// choose target
- side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer != 0
&& gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED
- && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget)
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gSideTimers[side].followmeTarget)
&& gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
{
- gBankTarget = gSideTimers[side].followmeTarget;
+ gBattlerTarget = gSideTimers[side].followmeTarget;
}
else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
&& gSideTimers[side].followmeTimer == 0
&& (gBattleMoves[gCurrentMove].power != 0
|| gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10)
- && gBattleMons[*(gBattleStruct->moveTarget + gBankAttacker)].ability != ABILITY_LIGHTNING_ROD
+ && gBattleMons[*(gBattleStruct->moveTarget + gBattlerAttacker)].ability != ABILITY_LIGHTNING_ROD
&& gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
{
- side = GetBankSide(gBankAttacker);
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ side = GetBattlerSide(gBattlerAttacker);
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (side != GetBankSide(gActiveBank)
- && *(gBattleStruct->moveTarget + gBankAttacker) != gActiveBank
- && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD
- && BankGetTurnOrder(gActiveBank) < var)
+ if (side != GetBattlerSide(gActiveBattler)
+ && *(gBattleStruct->moveTarget + gBattlerAttacker) != gActiveBattler
+ && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD
+ && GetBattlerTurnOrderNum(gActiveBattler) < var)
{
- var = BankGetTurnOrder(gActiveBank);
+ var = GetBattlerTurnOrderNum(gActiveBattler);
}
}
if (var == 4)
{
if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
if (Random() & 1)
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
else
{
if (Random() & 1)
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
}
else
{
- gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker);
+ gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
}
- if (gAbsentBankFlags & gBitTable[gBankTarget])
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
{
- if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
}
else
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
}
}
}
else
{
- gActiveBank = gBanksByTurnOrder[var];
- RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability);
- gSpecialStatuses[gActiveBank].lightningRodRedirected = 1;
- gBankTarget = gActiveBank;
+ gActiveBattler = gBattleTurnOrder[var];
+ RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability);
+ gSpecialStatuses[gActiveBattler].lightningRodRedirected = 1;
+ gBattlerTarget = gActiveBattler;
}
}
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
&& gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
if (Random() & 1)
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
else
{
if (Random() & 1)
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
- if (gAbsentBankFlags & gBitTable[gBankTarget]
- && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
}
}
else
{
- gBankTarget = *(gBattleStruct->moveTarget + gBankAttacker);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
+ gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
{
- if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget))
+ if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
}
else
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE);
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerTarget) ^ BIT_FLANK);
}
}
}
// choose battlescript
if (gBattleTypeFlags & BATTLE_TYPE_PALACE
- && gProtectStructs[gBankAttacker].flag_x10)
+ && gProtectStructs[gBattlerAttacker].flag_x10)
{
- if (gBattleMons[gBankAttacker].hp == 0)
+ if (gBattleMons[gBattlerAttacker].hp == 0)
{
- gCurrentActionFuncId = 12;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
return;
}
- else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL)
+ else if (gPalaceSelectionBattleScripts[gBattlerAttacker] != NULL)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
- gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker];
- gPalaceSelectionBattleScripts[gBankAttacker] = NULL;
+ gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBattlerAttacker];
+ gPalaceSelectionBattleScripts[gBattlerAttacker] = NULL;
}
else
{
@@ -5235,24 +5224,24 @@ static void HandleAction_UseMove(void)
}
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
- sub_81A56E8(gBankAttacker);
+ sub_81A56E8(gBattlerAttacker);
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
static void HandleAction_Switch(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- gActionSelectionCursor[gBankAttacker] = 0;
- gMoveSelectionCursor[gBankAttacker] = 0;
+ gActionSelectionCursor[gBattlerAttacker] = 0;
+ gMoveSelectionCursor[gBattlerAttacker] = 0;
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, *(gBattleStruct->field_58 + gBankAttacker))
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, *(gBattleStruct->field_58 + gBattlerAttacker))
- gBattleScripting.bank = gBankAttacker;
+ gBattleScripting.battler = gBattlerAttacker;
gBattlescriptCurrInstr = BattleScript_ActionSwitch;
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
if (gBattleResults.playerSwitchesCounter < 255)
gBattleResults.playerSwitchesCounter++;
@@ -5260,11 +5249,11 @@ static void HandleAction_Switch(void)
static void HandleAction_UseItem(void)
{
- gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattlerTarget = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- ClearFuryCutterDestinyBondGrudge(gBankAttacker);
- gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8);
+ ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
+ gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8);
if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball
{
@@ -5274,38 +5263,38 @@ static void HandleAction_UseItem(void)
{
gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0];
}
- else if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ else if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0];
}
else
{
- gBattleScripting.bank = gBankAttacker;
+ gBattleScripting.battler = gBattlerAttacker;
- switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1)))
+ switch (*(gBattleStruct->AI_itemType + (gBattlerAttacker >> 1)))
{
case AI_ITEM_FULL_RESTORE:
case AI_ITEM_HEAL_HP:
break;
case AI_ITEM_CURE_CONDITION:
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)
{
- if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E)
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E)
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
else
{
- while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1))
+ while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1))
{
- *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1;
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
gBattleCommunication[MULTISTRING_CHOOSER]++;
}
}
break;
case AI_ITEM_X_STAT:
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
- if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80)
+ if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x80)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
@@ -5314,9 +5303,9 @@ static void HandleAction_UseItem(void)
PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK)
PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2)
- while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1))
+ while (!((*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1))) & 1))
{
- *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1;
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
gBattleTextBuff1[2]++;
}
@@ -5332,49 +5321,49 @@ static void HandleAction_UseItem(void)
break;
}
- gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBankAttacker / 2)];
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattlerAttacker / 2)];
}
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
-bool8 TryRunFromBattle(u8 bank)
+bool8 TryRunFromBattle(u8 battler)
{
bool8 effect = FALSE;
u8 holdEffect;
u8 pyramidMultiplier;
u8 speedVar;
- if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY)
- holdEffect = gEnigmaBerries[bank].holdEffect;
+ if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[battler].holdEffect;
else
- holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[battler].item);
- gStringBank = bank;
+ gStringBattler = battler;
if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
{
- gLastUsedItem = gBattleMons[bank].item ;
- gProtectStructs[bank].fleeFlag = 1;
+ gLastUsedItem = gBattleMons[battler].item ;
+ gProtectStructs[battler].fleeFlag = 1;
effect++;
}
- else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY)
+ else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY)
{
if (InBattlePyramid())
{
gBattleStruct->runTries++;
pyramidMultiplier = sub_81A9E28();
- speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30);
+ speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30);
if (speedVar > (Random() & 0xFF))
{
gLastUsedAbility = ABILITY_RUN_AWAY;
- gProtectStructs[bank].fleeFlag = 2;
+ gProtectStructs[battler].fleeFlag = 2;
effect++;
}
}
else
{
gLastUsedAbility = ABILITY_RUN_AWAY;
- gProtectStructs[bank].fleeFlag = 2;
+ gProtectStructs[battler].fleeFlag = 2;
effect++;
}
}
@@ -5389,13 +5378,13 @@ bool8 TryRunFromBattle(u8 bank)
if (InBattlePyramid())
{
pyramidMultiplier = sub_81A9E28();
- speedVar = (gBattleMons[bank].speed * pyramidMultiplier) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30);
+ speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30);
if (speedVar > (Random() & 0xFF))
effect++;
}
- else if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed)
+ else if (gBattleMons[battler].speed < gBattleMons[BATTLE_OPPOSITE(battler)].speed)
{
- speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30);
+ speedVar = (gBattleMons[battler].speed * 128) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30);
if (speedVar > (Random() & 0xFF))
effect++;
}
@@ -5410,8 +5399,8 @@ bool8 TryRunFromBattle(u8 bank)
if (effect)
{
- gCurrentTurnActionNumber = gNoOfAllBanks;
- gBattleOutcome = BATTLE_RAN;
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_RAN;
}
return effect;
@@ -5419,53 +5408,53 @@ bool8 TryRunFromBattle(u8 bank)
static void HandleAction_Run(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
{
- gCurrentTurnActionNumber = gNoOfAllBanks;
+ gCurrentTurnActionNumber = gBattlersCount;
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
- if (gActionForBanks[gActiveBank] == ACTION_RUN)
- gBattleOutcome |= BATTLE_LOST;
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
+ gBattleOutcome |= B_OUTCOME_LOST;
}
else
{
- if (gActionForBanks[gActiveBank] == ACTION_RUN)
- gBattleOutcome |= BATTLE_WON;
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN)
+ gBattleOutcome |= B_OUTCOME_WON;
}
}
- gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN;
+ gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN;
gSaveBlock2Ptr->field_CA9_b = 1;
}
else
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
- if (!TryRunFromBattle(gBankAttacker)) // failed to run away
+ if (!TryRunFromBattle(gBattlerAttacker)) // failed to run away
{
- ClearFuryCutterDestinyBondGrudge(gBankAttacker);
+ ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
gBattleCommunication[MULTISTRING_CHOOSER] = 3;
gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
}
else
{
- if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ if (gBattleMons[gBattlerAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString;
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
else
{
- gCurrentTurnActionNumber = gNoOfAllBanks;
- gBattleOutcome = BATTLE_POKE_FLED;
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_POKE_FLED;
}
}
}
@@ -5473,31 +5462,31 @@ static void HandleAction_Run(void)
static void HandleAction_WatchesCarefully(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0];
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
static void HandleAction_SafariZoneBallThrow(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
gNumSafariBalls--;
gLastUsedItem = ITEM_SAFARI_BALL;
gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL];
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
static void HandleAction_ThrowPokeblock(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1;
- gLastUsedItem = gBattleBufferB[gBankAttacker][2];
+ gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1;
+ gLastUsedItem = gBattleBufferB[gBattlerAttacker][2];
if (gBattleResults.field_1F < 0xFF)
gBattleResults.field_1F++;
@@ -5512,12 +5501,12 @@ static void HandleAction_ThrowPokeblock(void)
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
static void HandleAction_GoNear(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
@@ -5539,28 +5528,28 @@ static void HandleAction_GoNear(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1];
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
static void HandleAction_SafriZoneRun(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
PlaySE(SE_NIGERU);
- gCurrentTurnActionNumber = gNoOfAllBanks;
- gBattleOutcome = BATTLE_RAN;
+ gCurrentTurnActionNumber = gBattlersCount;
+ gBattleOutcome = B_OUTCOME_RAN;
}
static void HandleAction_Action9(void)
{
- gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber];
+ gBattlerAttacker = gBattleTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker])
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker])
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3];
- gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT;
- gActionsByTurnOrder[1] = ACTION_FINISHED;
+ gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
+ gActionsByTurnOrder[1] = B_ACTION_FINISHED;
}
static void HandleAction_Action11(void)
@@ -5568,7 +5557,7 @@ static void HandleAction_Action11(void)
if (!HandleFaintedMonActions())
{
gBattleStruct->faintedActionsState = 0;
- gCurrentActionFuncId = ACTION_FINISHED;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
}
}
@@ -5585,7 +5574,7 @@ static void HandleAction_NothingIsFainted(void)
static void HandleAction_ActionFinished(void)
{
- *(gBattleStruct->monToSwitchIntoId + gBanksByTurnOrder[gCurrentTurnActionNumber]) = 6;
+ *(gBattleStruct->monToSwitchIntoId + gBattleTurnOrder[gCurrentTurnActionNumber]) = 6;
gCurrentTurnActionNumber++;
gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
SpecialStatusesClear();
@@ -5597,11 +5586,11 @@ static void HandleAction_ActionFinished(void)
gCurrentMove = 0;
gBattleMoveDamage = 0;
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0;
- gLastLandedMoves[gBankAttacker] = 0;
- gLastHitByType[gBankAttacker] = 0;
+ gLastLandedMoves[gBattlerAttacker] = 0;
+ gLastHitByType[gBattlerAttacker] = 0;
gBattleStruct->dynamicMoveType = 0;
gDynamicBasePower = 0;
gBattleScripting.atk49_state = 0;
diff --git a/src/battle_message.c b/src/battle_message.c
index 32de3df27..181ad9d9e 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -16,20 +16,20 @@
extern u16 gLastUsedItem;
extern u8 gLastUsedAbility;
-extern u8 gActiveBank;
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
-extern u8 gStringBank;
+extern u8 gActiveBattler;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
+extern u8 gStringBattler;
extern u8 gEffectBank;
-extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT];
+extern u8 gBattlerAbilities[MAX_BATTLERS_COUNT];
extern u32 gBattleTypeFlags;
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
extern u16 gPartnerTrainerId;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
-extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
+extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
extern u8 gUnknown_0203C7B4;
extern struct StringInfoBattle *gStringInfo;
@@ -1430,18 +1430,18 @@ void BufferStringBattle(u16 stringID)
s32 i;
const u8* stringPtr = NULL;
- gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]);
+ gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBattler][4]);
gLastUsedItem = gStringInfo->lastItem;
gLastUsedAbility = gStringInfo->lastAbility;
- gBattleScripting.bank = gStringInfo->scrActive;
+ gBattleScripting.battler = gStringInfo->scrActive;
*(&gBattleStruct->field_52) = gStringInfo->unk1605E;
*(&gBattleStruct->hpScale) = gStringInfo->hpScale;
- gStringBank = gStringInfo->StringBank;
+ gStringBattler = gStringInfo->StringBank;
*(&gBattleStruct->stringMoveType) = gStringInfo->moveType;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- gAbilitiesPerBank[i] = gStringInfo->abilities[i];
+ gBattlerAbilities[i] = gStringInfo->abilities[i];
}
for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++)
{
@@ -1501,7 +1501,7 @@ void BufferStringBattle(u16 stringID)
}
break;
case STRINGID_INTROSENDOUT: // poke first send-out
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
@@ -1546,7 +1546,7 @@ void BufferStringBattle(u16 stringID)
}
break;
case STRINGID_RETURNMON: // sending poke to ball msg
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
if (*(&gBattleStruct->hpScale) == 0)
stringPtr = gText_PkmnThatsEnough;
@@ -1573,7 +1573,7 @@ void BufferStringBattle(u16 stringID)
}
break;
case STRINGID_SWITCHINMON: // switch-in msg
- if (GetBankSide(gBattleScripting.bank) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattleScripting.battler) == B_SIDE_PLAYER)
{
if (*(&gBattleStruct->hpScale) == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
stringPtr = gText_GoPkmn2;
@@ -1590,7 +1590,7 @@ void BufferStringBattle(u16 stringID)
{
if (gBattleTypeFlags & BATTLE_TYPE_x800000)
{
- if (gBattleScripting.bank == 1)
+ if (gBattleScripting.battler == 1)
stringPtr = gText_Trainer1SentOutPkmn2;
else
stringPtr = gText_Trainer2SentOutPkmn;
@@ -1609,7 +1609,7 @@ void BufferStringBattle(u16 stringID)
{
if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (gBattleScripting.bank == 1)
+ if (gBattleScripting.battler == 1)
stringPtr = gText_Trainer1SentOutPkmn2;
else
stringPtr = gText_Trainer2SentOutPkmn;
@@ -1633,13 +1633,13 @@ void BufferStringBattle(u16 stringID)
stringPtr = gText_AttackerUsedX;
break;
case STRINGID_BATTLEEND: // battle end
- if (gBattleTextBuff1[0] & OUTCOME_LINK_BATTLE_RUN)
+ if (gBattleTextBuff1[0] & B_OUTCOME_LINK_BATTLE_RAN)
{
- gBattleTextBuff1[0] &= ~(OUTCOME_LINK_BATTLE_RUN);
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW)
- gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON);
+ gBattleTextBuff1[0] &= ~(B_OUTCOME_LINK_BATTLE_RAN);
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW)
+ gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON);
- if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW)
+ if (gBattleTextBuff1[0] == B_OUTCOME_LOST || gBattleTextBuff1[0] == B_OUTCOME_DREW)
stringPtr = gText_GotAwaySafely;
else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
stringPtr = gText_TwoWildFled;
@@ -1648,23 +1648,23 @@ void BufferStringBattle(u16 stringID)
}
else
{
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW)
- gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON);
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && gBattleTextBuff1[0] != B_OUTCOME_DREW)
+ gBattleTextBuff1[0] ^= (B_OUTCOME_LOST | B_OUTCOME_WON);
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
switch (gBattleTextBuff1[0])
{
- case BATTLE_WON:
+ case B_OUTCOME_WON:
if (gBattleTypeFlags & BATTLE_TYPE_x800000)
stringPtr = gText_TwoInGameTrainersDefeated;
else
stringPtr = gText_TwoLinkTrainersDefeated;
break;
- case BATTLE_LOST:
+ case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostToTwo;
break;
- case BATTLE_DREW:
+ case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawVsTwo;
break;
}
@@ -1673,13 +1673,13 @@ void BufferStringBattle(u16 stringID)
{
switch (gBattleTextBuff1[0])
{
- case BATTLE_WON:
+ case B_OUTCOME_WON:
stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1;
break;
- case BATTLE_LOST:
+ case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostAgainstTrainer1;
break;
- case BATTLE_DREW:
+ case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawTrainer1;
break;
}
@@ -1688,13 +1688,13 @@ void BufferStringBattle(u16 stringID)
{
switch (gBattleTextBuff1[0])
{
- case BATTLE_WON:
+ case B_OUTCOME_WON:
stringPtr = gText_PlayerDefeatedLinkTrainer;
break;
- case BATTLE_LOST:
+ case B_OUTCOME_LOST:
stringPtr = gText_PlayerLostAgainstLinkTrainer;
break;
- case BATTLE_DREW:
+ case B_OUTCOME_DREW:
stringPtr = gText_PlayerBattledToDrawLinkTrainer;
break;
}
@@ -1754,7 +1754,7 @@ static const u8* TryGetStatusString(u8* src)
}
#define HANDLE_NICKNAME_STRING_CASE(bank, monIndex) \
- if (GetBankSide(bank) != SIDE_PLAYER) \
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER) \
{ \
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \
toCpy = gText_FoePkmnPrefix; \
@@ -1836,80 +1836,80 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gStringVar3;
break;
case B_TXT_PLAYER_MON1_NAME: // first player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON1)]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON1)]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_PLAYER_MON2_NAME: // second player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON2)]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON2)]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name
- GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name
- GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]],
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name
- GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]],
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]],
MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1
- HANDLE_NICKNAME_STRING_CASE(gBankAttacker,
- gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker))])
+ HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker,
+ gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker))])
break;
case B_TXT_ATK_PARTNER_NAME: // attacker partner name
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
- GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text);
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text);
else
- GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text);
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text);
StringGetEnd10(text);
toCpy = text;
break;
case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix
- HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker])
+ HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker])
break;
case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix
- HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget])
+ HANDLE_NICKNAME_STRING_CASE(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget])
break;
case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix
- HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank])
+ HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlerPartyIndexes[gEffectBank])
break;
case B_TXT_ACTIVE_NAME_WITH_PREFIX: // active bank name with prefix
- HANDLE_NICKNAME_STRING_CASE(gActiveBank, gBattlePartyID[gActiveBank])
+ HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler])
break;
case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX: // scripting active bank name with prefix
- HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, gBattlePartyID[gBattleScripting.bank])
+ HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, gBattlerPartyIndexes[gBattleScripting.battler])
break;
case B_TXT_CURRENT_MOVE: // current move name
if (gStringInfo->currentMove > LAST_MOVE_INDEX)
@@ -1930,10 +1930,10 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- if ((gBattleScripting.multiplayerId != 0 && (gStringBank & BIT_SIDE))
- || (gBattleScripting.multiplayerId == 0 && !(gStringBank & BIT_SIDE)))
+ if ((gBattleScripting.multiplayerId != 0 && (gStringBattler & BIT_SIDE))
+ || (gBattleScripting.multiplayerId == 0 && !(gStringBattler & BIT_SIDE)))
{
- StringCopy(text, gEnigmaBerries[gStringBank].name);
+ StringCopy(text, gEnigmaBerries[gStringBattler].name);
StringAppend(text, gText_BerrySuffix);
toCpy = text;
}
@@ -1944,9 +1944,9 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
}
else
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBattler)
{
- StringCopy(text, gEnigmaBerries[gStringBank].name);
+ StringCopy(text, gEnigmaBerries[gStringBattler].name);
StringAppend(text, gText_BerrySuffix);
toCpy = text;
}
@@ -1970,16 +1970,16 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gAbilityNames[gLastUsedAbility];
break;
case B_TXT_ATK_ABILITY: // attacker ability
- toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]];
+ toCpy = gAbilityNames[gBattlerAbilities[gBattlerAttacker]];
break;
case B_TXT_DEF_ABILITY: // target ability
- toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]];
+ toCpy = gAbilityNames[gBattlerAbilities[gBattlerTarget]];
break;
case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability
- toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]];
+ toCpy = gAbilityNames[gBattlerAbilities[gBattleScripting.battler]];
break;
case B_TXT_EFF_ABILITY: // effect bank ability
- toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]];
+ toCpy = gAbilityNames[gBattlerAbilities[gEffectBank]];
break;
case B_TXT_TRAINER1_CLASS: // trainer class name
if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
@@ -2039,16 +2039,16 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gLinkPlayers[multiplayerID].name;
break;
case B_TXT_1F: // link partner name?
- toCpy = gLinkPlayers[GetBankMultiplayerId(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
break;
case B_TXT_20: // link opponent 1 name?
- toCpy = gLinkPlayers[GetBankMultiplayerId(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
break;
case B_TXT_21: // link opponent 2 name?
- toCpy = gLinkPlayers[GetBankMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name;
break;
case B_TXT_22: // link scripting active name
- toCpy = gLinkPlayers[GetBankMultiplayerId(gBattleScripting.bank)].name;
+ toCpy = gLinkPlayers[GetBattlerMultiplayerId(gBattleScripting.battler)].name;
break;
case B_TXT_PLAYER_NAME: // player name
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
@@ -2085,7 +2085,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
}
break;
case B_TXT_26: // ?
- HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, *(&gBattleStruct->field_52))
+ HANDLE_NICKNAME_STRING_CASE(gBattleScripting.battler, *(&gBattleStruct->field_52))
break;
case B_TXT_PC_CREATOR_NAME: // lanette pc
if (FlagGet(FLAG_SYS_PC_LANETTE))
@@ -2094,37 +2094,37 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
toCpy = gText_Someones;
break;
case B_TXT_ATK_PREFIX2:
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix2;
else
toCpy = gText_FoePkmnPrefix3;
break;
case B_TXT_DEF_PREFIX2:
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix2;
else
toCpy = gText_FoePkmnPrefix3;
break;
case B_TXT_ATK_PREFIX1:
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix;
else
toCpy = gText_FoePkmnPrefix2;
break;
case B_TXT_DEF_PREFIX1:
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix;
else
toCpy = gText_FoePkmnPrefix2;
break;
case B_TXT_ATK_PREFIX3:
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix3;
else
toCpy = gText_FoePkmnPrefix4;
break;
case B_TXT_DEF_PREFIX3:
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
toCpy = gText_AllyPkmnPrefix3;
else
toCpy = gText_FoePkmnPrefix4;
@@ -2266,7 +2266,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
srcID += 2;
break;
case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix
- if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER)
+ if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER)
{
GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text);
}
@@ -2292,7 +2292,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
srcID += 3;
break;
case B_BUFF_MON_NICK: // poke nick without prefix
- if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER)
+ if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER)
GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst);
else
GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst);
@@ -2313,9 +2313,9 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
{
if (hword == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank)
+ if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBattler)
{
- StringCopy(dst, gEnigmaBerries[gStringBank].name);
+ StringCopy(dst, gEnigmaBerries[gStringBattler].name);
StringAppend(dst, gText_BerrySuffix);
}
else
@@ -2490,10 +2490,10 @@ void BattleHandleAddTextPrinter(const u8 *text, u8 arg1)
void SetPpNumbersPaletteInMoveSelection(void)
{
- struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]);
+ struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBattler][4]);
const u16 *palPtr = gUnknown_08D85620;
- u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBank]],
- chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBank]]);
+ u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]],
+ chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]);
gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0];
gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1];
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 72c637849..b2d460e4f 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -44,49 +44,42 @@
extern u8 gCritMultiplier;
extern s32 gBattleMoveDamage;
-extern u32 gStatuses3[BATTLE_BANKS_COUNT];
-extern u32 gBattleTypeFlags;
-extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u8 gActiveBank;
-extern u32 gBattleExecBuffer;
-extern u8 gNoOfAllBanks;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT];
-extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT];
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u8 gActiveBattler;
+extern u32 gBattleControllerExecFlags;
+extern u8 gBattlersCount;
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
+extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
extern u16 gCurrentMove;
extern u8 gLastUsedAbility;
-extern u16 gBattleWeather;
-extern u8 gStringBank;
+extern u8 gStringBattler;
extern u8 gEffectBank;
-extern u8 gAbsentBankFlags;
+extern u8 gAbsentBattlerFlags;
extern u8 gMultiHitCounter;
-extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
-extern u16 gSideAffecting[2];
+extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
extern u16 gPauseCounterBattle;
extern u16 gPaydayMoney;
extern u16 gRandomTurnNumber;
-extern u8 gBattleOutcome;
-extern u8 gBattleTerrain;
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
extern const u8* gBattlescriptCurrInstr;
extern u8 gCurrMovePos;
extern u8 gCurrentActionFuncId;
-extern u32 gHitMarker;
-extern u8 gBattleMoveFlags;
+extern u8 gMoveResultFlags;
extern u8 gBattleCommunication[];
extern u16 gLastLandedMoves[4];
extern u16 gLastHitByType[4];
extern u16 gLastResultingMoves[4];
extern u8 gLastHitBy[4];
-extern u8 gStringBank;
+extern u8 gStringBattler;
extern u16 gDynamicBasePower;
extern u16 gLastUsedItem;
extern u16 gBattleMovePower;
extern s32 gHpDealt;
-extern s32 gTakenDmg[BATTLE_BANKS_COUNT];
-extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT];
+extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
+extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT];
extern u8 gSentPokesToOpponent[2];
extern u8 gBank1;
extern u16 gExpShareExp;
@@ -96,14 +89,14 @@ extern u8 gPlayerPartyCount;
extern u16 gMoveToLearn;
extern u16 gRandomMove;
extern u8 gBankInMenu;
-extern u8 gActionForBanks[BATTLE_BANKS_COUNT];
+extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
extern u8 gCurrentTurnActionNumber;
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
-extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
+extern u16 gLockedMoves[MAX_BATTLERS_COUNT];
extern u16 gPartnerTrainerId;
extern u16 gChosenMove;
-extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT];
-extern u16 gLastMoves[BATTLE_BANKS_COUNT];
+extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
extern u8 gUnknown_020241E9;
@@ -162,9 +155,10 @@ extern const u8 gText_BattleYesNoChoice[];
#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
-#define TARGET_PROTECT_AFFECTED ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
+#define DEFENDER_IS_PROTECTED ((gProtectStructs[gBattlerTarget].protected) && (gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
-#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)))
+#define TARGET_TURN_DAMAGED (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical != 0 \
+ || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special != 0)
// this file's functions
static bool8 IsTwoTurnsMove(u16 move);
@@ -715,12 +709,12 @@ static const u16 sCriticalHitChance[] = {16, 8, 4, 3, 2};
static const u32 sStatusFlagsForMoveEffects[] =
{
0x00000000,
- STATUS_SLEEP,
- STATUS_POISON,
- STATUS_BURN,
- STATUS_FREEZE,
- STATUS_PARALYSIS,
- STATUS_TOXIC_POISON,
+ STATUS1_SLEEP,
+ STATUS1_POISON,
+ STATUS1_BURN,
+ STATUS1_FREEZE,
+ STATUS1_PARALYSIS,
+ STATUS1_TOXIC_POISON,
STATUS2_CONFUSION,
STATUS2_FLINCHED,
0x00000000,
@@ -1030,10 +1024,10 @@ static void atk00_attackcanceler(void)
if (gBattleOutcome != 0)
{
- gCurrentActionFuncId = ACTION_FINISHED;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
return;
}
- if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
+ if (gBattleMons[gBattlerAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
{
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gBattlescriptCurrInstr = BattleScript_MoveEnd;
@@ -1041,19 +1035,19 @@ static void atk00_attackcanceler(void)
}
if (AtkCanceller_UnableToUseMove())
return;
- if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBankTarget, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_MOVES_BLOCK, gBattlerTarget, 0, 0, 0))
return;
- if (!gBattleMons[gBankAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200)
- && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))
+ if (!gBattleMons[gBattlerAttacker].pp[gCurrMovePos] && gCurrentMove != MOVE_STRUGGLE && !(gHitMarker & 0x800200)
+ && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))
{
gBattlescriptCurrInstr = BattleScript_NoPPForMove;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
return;
}
gHitMarker &= ~(HITMARKER_x800000);
- if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))
+ if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))
{
i = IsMonDisobedient(); // why use the 'i' variable...?
switch (i)
@@ -1064,51 +1058,51 @@ static void atk00_attackcanceler(void)
gHitMarker |= HITMARKER_OBEYS;
return;
default:
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
return;
}
}
gHitMarker |= HITMARKER_OBEYS;
- if (gProtectStructs[gBankTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED)
+ if (gProtectStructs[gBattlerTarget].bounceMove && gBattleMoves[gCurrentMove].flags & FLAG_MAGICCOAT_AFFECTED)
{
- PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT);
- gProtectStructs[gBankTarget].bounceMove = 0;
+ PressurePPLose(gBattlerAttacker, gBattlerTarget, MOVE_MAGIC_COAT);
+ gProtectStructs[gBattlerTarget].bounceMove = 0;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MagicCoatBounce;
return;
}
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
+ if ((gProtectStructs[gBattleTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED)
{
- PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH);
- gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0;
- gBattleScripting.bank = gBanksByTurnOrder[i];
+ PressurePPLose(gBattlerAttacker, gBattleTurnOrder[i], MOVE_SNATCH);
+ gProtectStructs[gBattleTurnOrder[i]].stealMove = 0;
+ gBattleScripting.battler = gBattleTurnOrder[i];
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SnatchedMove;
return;
}
}
- if (gSpecialStatuses[gBankTarget].lightningRodRedirected)
+ if (gSpecialStatuses[gBattlerTarget].lightningRodRedirected)
{
- gSpecialStatuses[gBankTarget].lightningRodRedirected = 0;
+ gSpecialStatuses[gBattlerTarget].lightningRodRedirected = 0;
gLastUsedAbility = ABILITY_LIGHTNING_ROD;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_TookAttack;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- else if (TARGET_PROTECT_AFFECTED
- && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST))
- && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS))))
+ else if (DEFENDER_IS_PROTECTED
+ && (gCurrentMove != MOVE_CURSE || (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST))
+ && ((!IsTwoTurnsMove(gCurrentMove) || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))))
{
- CancelMultiTurnMoves(gBankAttacker);
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- gLastLandedMoves[gBankTarget] = 0;
- gLastHitByType[gBankTarget] = 0;
+ CancelMultiTurnMoves(gBattlerAttacker);
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
+ gLastLandedMoves[gBattlerTarget] = 0;
+ gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = 1;
gBattlescriptCurrInstr++;
}
@@ -1121,16 +1115,16 @@ static void atk00_attackcanceler(void)
static void JumpIfMoveFailed(u8 adder, u16 move)
{
const u8 *BS_ptr = gBattlescriptCurrInstr + adder;
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{
- gLastLandedMoves[gBankTarget] = 0;
- gLastHitByType[gBankTarget] = 0;
+ gLastLandedMoves[gBattlerTarget] = 0;
+ gLastHitByType[gBattlerTarget] = 0;
BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
TrySetDestinyBondToHappen();
- if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move))
+ if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBattlerTarget, 0, 0, move))
return;
}
gBattlescriptCurrInstr = BS_ptr;
@@ -1138,9 +1132,9 @@ static void JumpIfMoveFailed(u8 adder, u16 move)
static void atk40_jumpifaffectedbyprotect(void)
{
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(5, 0);
gBattleCommunication[6] = 1;
}
@@ -1153,9 +1147,9 @@ static void atk40_jumpifaffectedbyprotect(void)
bool8 JumpIfMoveAffectedByProtect(u16 move)
{
bool8 affected = FALSE;
- if (TARGET_PROTECT_AFFECTED)
+ if (DEFENDER_IS_PROTECTED)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
gBattleCommunication[6] = 1;
affected = TRUE;
@@ -1165,33 +1159,33 @@ bool8 JumpIfMoveAffectedByProtect(u16 move)
static bool8 AccuracyCalcHelper(u16 move)
{
- if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
{
JumpIfMoveFailed(7, move);
return TRUE;
}
- if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBankTarget] & STATUS3_ON_AIR)
+ if (!(gHitMarker & HITMARKER_IGNORE_ON_AIR) && gStatuses3[gBattlerTarget] & STATUS3_ON_AIR)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
return TRUE;
}
gHitMarker &= ~HITMARKER_IGNORE_ON_AIR;
- if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBankTarget] & STATUS3_UNDERGROUND)
+ if (!(gHitMarker & HITMARKER_IGNORE_UNDERGROUND) && gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
return TRUE;
}
gHitMarker &= ~HITMARKER_IGNORE_UNDERGROUND;
- if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBankTarget] & STATUS3_UNDERWATER)
+ if (!(gHitMarker & HITMARKER_IGNORE_UNDERWATER) && gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
JumpIfMoveFailed(7, move);
return TRUE;
}
@@ -1214,9 +1208,9 @@ static void atk01_accuracycheck(void)
if (move == 0xFFFE || move == 0xFFFF)
{
- if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker)
+ if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker)
gBattlescriptCurrInstr += 7;
- else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
+ else if (gStatuses3[gBattlerTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
else if (!JumpIfMoveAffectedByProtect(0))
gBattlescriptCurrInstr += 7;
@@ -1237,15 +1231,15 @@ static void atk01_accuracycheck(void)
if (AccuracyCalcHelper(move))
return;
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT)
{
- u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC];
+ u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC];
buff = acc;
}
else
{
- u8 acc = gBattleMons[gBankAttacker].statStages[STAT_STAGE_ACC];
- buff = acc + 6 - gBattleMons[gBankTarget].statStages[STAT_STAGE_EVASION];
+ u8 acc = gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ACC];
+ buff = acc + 6 - gBattleMons[gBattlerTarget].statStages[STAT_STAGE_EVASION];
}
if (buff < 0)
@@ -1261,25 +1255,25 @@ static void atk01_accuracycheck(void)
calc = sAccuracyStageRatios[buff].dividend * moveAcc;
calc /= sAccuracyStageRatios[buff].divisor;
- if (gBattleMons[gBankAttacker].ability == ABILITY_COMPOUND_EYES)
+ if (gBattleMons[gBattlerAttacker].ability == ABILITY_COMPOUND_EYES)
calc = (calc * 130) / 100; // 1.3 compound eyes boost
- if (WEATHER_HAS_EFFECT && gBattleMons[gBankTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY)
+ if (WEATHER_HAS_EFFECT && gBattleMons[gBattlerTarget].ability == ABILITY_SAND_VEIL && gBattleWeather & WEATHER_SANDSTORM_ANY)
calc = (calc * 80) / 100; // 1.2 sand veil loss
- if (gBattleMons[gBankAttacker].ability == ABILITY_HUSTLE && type < 9)
+ if (gBattleMons[gBattlerAttacker].ability == ABILITY_HUSTLE && type < 9)
calc = (calc * 80) / 100; // 1.2 hustle loss
- if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- holdEffect = gEnigmaBerries[gBankTarget].holdEffect;
- quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
- gStringBank = gBankTarget;
+ gStringBattler = gBattlerTarget;
if (holdEffect == HOLD_EFFECT_EVASION_UP)
calc = (calc * (100 - quality)) / 100;
@@ -1287,7 +1281,7 @@ static void atk01_accuracycheck(void)
// final calculation
if ((Random() % 100 + 1) > calc)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE &&
(gBattleMoves[move].target == MOVE_TARGET_BOTH || gBattleMoves[move].target == MOVE_TARGET_FOES_AND_ALLY))
gBattleCommunication[6] = 2;
@@ -1302,11 +1296,11 @@ static void atk01_accuracycheck(void)
static void atk02_attackstring(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED)))
{
- PrepareStringBattle(STRINGID_USEDMOVE, gBankAttacker);
+ PrepareStringBattle(STRINGID_USEDMOVE, gBattlerAttacker);
gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED;
}
gBattlescriptCurrInstr++;
@@ -1317,42 +1311,42 @@ static void atk03_ppreduce(void)
{
s32 ppToDeduct = 1;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- if (!gSpecialStatuses[gBankAttacker].flag20)
+ if (!gSpecialStatuses[gBattlerAttacker].flag20)
{
switch (gBattleMoves[gCurrentMove].target)
{
case MOVE_TARGET_FOES_AND_ALLY:
- ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBankAttacker, ABILITY_PRESSURE, 0, 0);
+ ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_ON_FIELD, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
case MOVE_TARGET_BOTH:
case MOVE_TARGET_OPPONENTS_FIELD:
- ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_PRESSURE, 0, 0);
+ ppToDeduct += AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_PRESSURE, 0, 0);
break;
default:
- if (gBankAttacker != gBankTarget && gBattleMons[gBankTarget].ability == ABILITY_PRESSURE)
+ if (gBattlerAttacker != gBattlerTarget && gBattleMons[gBattlerTarget].ability == ABILITY_PRESSURE)
ppToDeduct++;
break;
}
}
- if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBankAttacker].pp[gCurrMovePos])
+ if (!(gHitMarker & (HITMARKER_NO_PPDEDUCT | HITMARKER_NO_ATTACKSTRING)) && gBattleMons[gBattlerAttacker].pp[gCurrMovePos])
{
- gProtectStructs[gBankAttacker].notFirstStrike = 1;
+ gProtectStructs[gBattlerAttacker].notFirstStrike = 1;
- if (gBattleMons[gBankAttacker].pp[gCurrMovePos] > ppToDeduct)
- gBattleMons[gBankAttacker].pp[gCurrMovePos] -= ppToDeduct;
+ if (gBattleMons[gBattlerAttacker].pp[gCurrMovePos] > ppToDeduct)
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] -= ppToDeduct;
else
- gBattleMons[gBankAttacker].pp[gCurrMovePos] = 0;
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 0;
- if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED)
- && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos]))
+ if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)
+ && !((gDisableStructs[gBattlerAttacker].unk18_b) & gBitTable[gCurrMovePos]))
{
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]);
- MarkBufferBankForExecution(gBankAttacker);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBattlerAttacker].pp[gCurrMovePos]);
+ MarkBattlerForControllerExec(gBattlerAttacker);
}
}
@@ -1365,29 +1359,29 @@ static void atk04_critcalc(void)
u8 holdEffect;
u16 item, critChance;
- item = gBattleMons[gBankAttacker].item;
+ item = gBattleMons[gBattlerAttacker].item;
if (item == ITEM_ENIGMA_BERRY)
- holdEffect = gEnigmaBerries[gBankAttacker].holdEffect;
+ holdEffect = gEnigmaBerries[gBattlerAttacker].holdEffect;
else
holdEffect = ItemId_GetHoldEffect(item);
- gStringBank = gBankAttacker;
+ gStringBattler = gBattlerAttacker;
- critChance = 2 * ((gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0)
+ critChance = 2 * ((gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY) != 0)
+ (gBattleMoves[gCurrentMove].effect == EFFECT_HIGH_CRITICAL)
+ (gBattleMoves[gCurrentMove].effect == EFFECT_SKY_ATTACK)
+ (gBattleMoves[gCurrentMove].effect == EFFECT_BLAZE_KICK)
+ (gBattleMoves[gCurrentMove].effect == EFFECT_POISON_TAIL)
+ (holdEffect == HOLD_EFFECT_SCOPE_LENS)
- + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBankAttacker].species == SPECIES_CHANSEY)
- + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBankAttacker].species == SPECIES_FARFETCHD);
+ + 2 * (holdEffect == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY)
+ + 2 * (holdEffect == HOLD_EFFECT_STICK && gBattleMons[gBattlerAttacker].species == SPECIES_FARFETCHD);
if (critChance > 4)
critChance = 4;
- if ((gBattleMons[gBankTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBankTarget].ability != ABILITY_SHELL_ARMOR)
- && !(gStatuses3[gBankAttacker] & STATUS3_CANT_SCORE_A_CRIT)
+ if ((gBattleMons[gBattlerTarget].ability != ABILITY_BATTLE_ARMOR && gBattleMons[gBattlerTarget].ability != ABILITY_SHELL_ARMOR)
+ && !(gStatuses3[gBattlerAttacker] & STATUS3_CANT_SCORE_A_CRIT)
&& !(gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE))
&& !(Random() % sCriticalHitChance[critChance]))
gCritMultiplier = 2;
@@ -1399,32 +1393,32 @@ static void atk04_critcalc(void)
static void atk05_damagecalc(void)
{
- u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)];
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove,
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)];
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
sideStatus, gDynamicBasePower,
- gBattleStruct->dynamicMoveType, gBankAttacker, gBankTarget);
+ gBattleStruct->dynamicMoveType, gBattlerAttacker, gBattlerTarget);
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier;
- if (gStatuses3[gBankAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ if (gStatuses3[gBattlerAttacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
- if (gProtectStructs[gBankAttacker].helpingHand)
+ if (gProtectStructs[gBattlerAttacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
gBattlescriptCurrInstr++;
}
-void AI_CalcDmg(u8 bankAtk, u8 bankDef)
+void AI_CalcDmg(u8 attacker, u8 defender)
{
- u16 sideStatus = gSideAffecting[GET_BANK_SIDE(bankDef)];
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[bankAtk], &gBattleMons[bankDef], gCurrentMove,
+ u16 sideStatus = gSideStatuses[GET_BATTLER_SIDE(defender)];
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[attacker], &gBattleMons[defender], gCurrentMove,
sideStatus, gDynamicBasePower,
- gBattleStruct->dynamicMoveType, bankAtk, bankDef);
+ gBattleStruct->dynamicMoveType, attacker, defender);
gDynamicBasePower = 0;
gBattleMoveDamage = gBattleMoveDamage * gCritMultiplier * gBattleScripting.dmgMultiplier;
- if (gStatuses3[bankAtk] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
+ if (gStatuses3[attacker] & STATUS3_CHARGED_UP && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC)
gBattleMoveDamage *= 2;
- if (gProtectStructs[bankAtk].helpingHand)
+ if (gProtectStructs[attacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
}
@@ -1437,26 +1431,26 @@ static void ModulateDmgByType(u8 multiplier)
switch (multiplier)
{
case TYPE_MUL_NO_EFFECT:
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
- gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE;
- gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
+ gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
+ gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
case TYPE_MUL_NOT_EFFECTIVE:
- if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE)
- gBattleMoveFlags &= ~MOVESTATUS_SUPEREFFECTIVE;
+ if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
+ gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
else
- gBattleMoveFlags |= MOVESTATUS_NOTVERYEFFECTIVE;
+ gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
case TYPE_MUL_SUPER_EFFECTIVE:
- if (gBattleMoves[gCurrentMove].power && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (gBattleMoves[gCurrentMove].power && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE)
- gBattleMoveFlags &= ~MOVESTATUS_NOTVERYEFFECTIVE;
+ if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
+ gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
else
- gBattleMoveFlags |= MOVESTATUS_SUPEREFFECTIVE;
+ gMoveResultFlags |= MOVE_RESULT_SUPER_EFFECTIVE;
}
break;
}
@@ -1476,20 +1470,20 @@ static void atk06_typecalc(void)
GET_MOVE_TYPE(gCurrentMove, moveType);
// check stab
- if (gBattleMons[gBankAttacker].type1 == moveType || gBattleMons[gBankAttacker].type2 == moveType)
+ if (gBattleMons[gBattlerAttacker].type1 == moveType || gBattleMons[gBattlerAttacker].type2 == moveType)
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gLastLandedMoves[gBankTarget] = 0;
- gLastHitByType[gBankTarget] = 0;
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
+ gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
+ gLastLandedMoves[gBattlerTarget] = 0;
+ gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = moveType;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
{
@@ -1497,7 +1491,7 @@ static void atk06_typecalc(void)
{
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT)
break;
i += 3;
continue;
@@ -1505,30 +1499,30 @@ static void atk06_typecalc(void)
else if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
// check type1
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1)
ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i));
// check type2
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 &&
- gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 &&
+ gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2)
ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i));
}
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)))
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2
+ && (!(gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || ((gMoveResultFlags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[gCurrentMove].power)
{
gLastUsedAbility = ABILITY_WONDER_GUARD;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- gLastLandedMoves[gBankTarget] = 0;
- gLastHitByType[gBankTarget] = 0;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
+ gLastLandedMoves[gBattlerTarget] = 0;
+ gLastHitByType[gBattlerTarget] = 0;
gBattleCommunication[6] = 3;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
- gProtectStructs[gBankAttacker].targetNotAffected = 1;
+ if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
+ gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
gBattlescriptCurrInstr++;
}
@@ -1544,11 +1538,11 @@ static void CheckWonderGuardAndLevitate(void)
GET_MOVE_TYPE(gCurrentMove, moveType);
- if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
gLastUsedAbility = ABILITY_LEVITATE;
gBattleCommunication[6] = moveType;
- RecordAbilityBattle(gBankTarget, ABILITY_LEVITATE);
+ RecordAbilityBattle(gBattlerTarget, ABILITY_LEVITATE);
return;
}
@@ -1556,7 +1550,7 @@ static void CheckWonderGuardAndLevitate(void)
{
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT)
break;
i += 3;
continue;
@@ -1564,46 +1558,46 @@ static void CheckWonderGuardAndLevitate(void)
if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
// check no effect
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT)
{
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
- gProtectStructs[gBankAttacker].targetNotAffected = 1;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
+ gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
}
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2 &&
- gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2 &&
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 &&
+ gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 &&
TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT)
{
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
- gProtectStructs[gBankAttacker].targetNotAffected = 1;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
+ gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
}
// check super effective
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20)
flags |= 1;
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2
- && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2
+ && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE)
flags |= 1;
// check not very effective
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5)
flags |= 2;
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2
- && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2
+ && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE)
flags |= 2;
}
i += 3;
}
- if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2)
{
if (((flags & 2) || !(flags & 1)) && gBattleMoves[gCurrentMove].power)
{
gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleCommunication[6] = 3;
- RecordAbilityBattle(gBankTarget, ABILITY_WONDER_GUARD);
+ RecordAbilityBattle(gBattlerTarget, ABILITY_WONDER_GUARD);
}
}
}
@@ -1617,32 +1611,32 @@ static void ModulateDmgByType2(u8 multiplier, u16 move, u8* flags) // same as Mo
switch (multiplier)
{
case TYPE_MUL_NO_EFFECT:
- *flags |= MOVESTATUS_NOTAFFECTED;
- *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE;
- *flags &= ~MOVESTATUS_SUPEREFFECTIVE;
+ *flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
+ *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
+ *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
break;
case TYPE_MUL_NOT_EFFECTIVE:
- if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT))
+ if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
- if (*flags & MOVESTATUS_SUPEREFFECTIVE)
- *flags &= ~MOVESTATUS_SUPEREFFECTIVE;
+ if (*flags & MOVE_RESULT_SUPER_EFFECTIVE)
+ *flags &= ~MOVE_RESULT_SUPER_EFFECTIVE;
else
- *flags |= MOVESTATUS_NOTVERYEFFECTIVE;
+ *flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
break;
case TYPE_MUL_SUPER_EFFECTIVE:
- if (gBattleMoves[move].power && !(*flags & MOVESTATUS_NOEFFECT))
+ if (gBattleMoves[move].power && !(*flags & MOVE_RESULT_NO_EFFECT))
{
- if (*flags & MOVESTATUS_NOTVERYEFFECTIVE)
- *flags &= ~MOVESTATUS_NOTVERYEFFECTIVE;
+ if (*flags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
+ *flags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE;
else
- *flags |= MOVESTATUS_SUPEREFFECTIVE;
+ *flags |= MOVE_RESULT_SUPER_EFFECTIVE;
}
break;
}
}
-u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef)
+u8 TypeCalc(u16 move, u8 attacker, u8 defender)
{
s32 i = 0;
u8 flags = 0;
@@ -1654,15 +1648,15 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef)
moveType = gBattleMoves[move].type;
// check stab
- if (gBattleMons[bankAtk].type1 == moveType || gBattleMons[bankAtk].type2 == moveType)
+ if (gBattleMons[attacker].type1 == moveType || gBattleMons[attacker].type2 == moveType)
{
gBattleMoveDamage = gBattleMoveDamage * 15;
gBattleMoveDamage = gBattleMoveDamage / 10;
}
- if (gBattleMons[bankDef].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ if (gBattleMons[defender].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- flags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
+ flags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
}
else
{
@@ -1670,7 +1664,7 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef)
{
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
- if (gBattleMons[bankDef].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[defender].status2 & STATUS2_FORESIGHT)
break;
i += 3;
continue;
@@ -1679,23 +1673,23 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef)
else if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
// check type1
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[bankDef].type1)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type1)
ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
// check type2
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[bankDef].type2 &&
- gBattleMons[bankDef].type1 != gBattleMons[bankDef].type2)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type2 &&
+ gBattleMons[defender].type1 != gBattleMons[defender].type2)
ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags);
}
i += 3;
}
}
- if (gBattleMons[bankDef].ability == ABILITY_WONDER_GUARD && !(flags & MOVESTATUS_MISSED)
- && AttacksThisTurn(bankAtk, move) == 2
- && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
+ if (gBattleMons[defender].ability == ABILITY_WONDER_GUARD && !(flags & MOVE_RESULT_MISSED)
+ && AttacksThisTurn(attacker, move) == 2
+ && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[move].power)
{
- flags |= MOVESTATUS_MISSED;
+ flags |= MOVE_RESULT_MISSED;
}
return flags;
}
@@ -1714,7 +1708,7 @@ u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility)
if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED;
+ flags = MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE;
}
else
{
@@ -1738,9 +1732,9 @@ u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility)
}
}
if (targetAbility == ABILITY_WONDER_GUARD
- && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
+ && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[move].power)
- flags |= MOVESTATUS_NOTAFFECTED;
+ flags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
return flags;
}
@@ -1770,42 +1764,42 @@ static void atk07_adjustnormaldamage(void)
ApplyRandomDmgMultiplier();
- if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
- gStringBank = gBankTarget;
+ gStringBattler = gBattlerTarget;
if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
{
- RecordItemEffectBattle(gBankTarget, holdEffect);
- gSpecialStatuses[gBankTarget].focusBanded = 1;
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
+ gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
- if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
goto END;
- if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured
- && !gSpecialStatuses[gBankTarget].focusBanded)
+ if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured
+ && !gSpecialStatuses[gBattlerTarget].focusBanded)
goto END;
- if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
goto END;
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1;
- if (gProtectStructs[gBankTarget].endured)
+ if (gProtectStructs[gBattlerTarget].endured)
{
- gBattleMoveFlags |= MOVESTATUS_ENDURED;
+ gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
}
- else if (gSpecialStatuses[gBankTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
- gBattleMoveFlags |= MOVESTATUS_HUNGON;
- gLastUsedItem = gBattleMons[gBankTarget].item;
+ gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
}
END:
@@ -1818,40 +1812,40 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't
ApplyRandomDmgMultiplier();
- if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
- gStringBank = gBankTarget;
+ gStringBattler = gBattlerTarget;
if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
{
- RecordItemEffectBattle(gBankTarget, holdEffect);
- gSpecialStatuses[gBankTarget].focusBanded = 1;
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
+ gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
- if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
goto END;
- if (!gProtectStructs[gBankTarget].endured && !gSpecialStatuses[gBankTarget].focusBanded)
+ if (!gProtectStructs[gBattlerTarget].endured && !gSpecialStatuses[gBattlerTarget].focusBanded)
goto END;
- if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
goto END;
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1;
- if (gProtectStructs[gBankTarget].endured)
+ if (gProtectStructs[gBattlerTarget].endured)
{
- gBattleMoveFlags |= MOVESTATUS_ENDURED;
+ gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
}
- else if (gSpecialStatuses[gBankTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
- gBattleMoveFlags |= MOVESTATUS_HUNGON;
- gLastUsedItem = gBattleMons[gBankTarget].item;
+ gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
}
END:
@@ -1860,7 +1854,7 @@ static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't
static void atk09_attackanimation(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE))
@@ -1880,17 +1874,17 @@ static void atk09_attackanimation(void)
gBattlescriptCurrInstr++;
return;
}
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
u8 multihit;
- gActiveBank = gBankAttacker;
+ gActiveBattler = gBattlerAttacker;
- if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
multihit = gMultiHitCounter;
else if (gMultiHitCounter != 0 && gMultiHitCounter != 1)
{
- if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage)
multihit = 1;
else
multihit = gMultiHitCounter;
@@ -1898,10 +1892,10 @@ static void atk09_attackanimation(void)
else
multihit = gMultiHitCounter;
- EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBankAttacker].friendship, &gDisableStructs[gBankAttacker], multihit);
+ BtlController_EmitMoveAnimation(0, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker], multihit);
gBattleScripting.animTurn += 1;
gBattleScripting.animTargetsHit += 1;
- MarkBufferBankForExecution(gBankAttacker);
+ MarkBattlerForControllerExec(gBattlerAttacker);
gBattlescriptCurrInstr++;
}
else
@@ -1914,22 +1908,22 @@ static void atk09_attackanimation(void)
static void atk0A_waitanimation(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattlescriptCurrInstr++;
}
static void atk0B_healthbarupdate(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
- PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBank);
+ PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBattler);
}
else
{
@@ -1943,10 +1937,10 @@ static void atk0B_healthbarupdate(void)
else
healthValue = maxPossibleDmgValue;
- EmitHealthBarUpdate(0, healthValue);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitHealthBarUpdate(0, healthValue);
+ MarkBattlerForControllerExec(gActiveBattler);
- if (GetBankSide(gActiveBank) == SIDE_PLAYER && gBattleMoveDamage > 0)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER && gBattleMoveDamage > 0)
gBattleResults.unk5_0 = 1;
}
}
@@ -1958,7 +1952,7 @@ static void atk0C_datahpupdate(void)
{
u32 moveType;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (gBattleStruct->dynamicMoveType == 0)
@@ -1968,27 +1962,27 @@ static void atk0C_datahpupdate(void)
else
moveType = gBattleMoves[gCurrentMove].type;
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBattler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
- if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage)
+ if (gDisableStructs[gActiveBattler].substituteHP >= gBattleMoveDamage)
{
- if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
- gSpecialStatuses[gActiveBank].moveturnLostHP = gBattleMoveDamage;
- gDisableStructs[gActiveBank].substituteHP -= gBattleMoveDamage;
+ if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0)
+ gSpecialStatuses[gActiveBattler].moveturnLostHP = gBattleMoveDamage;
+ gDisableStructs[gActiveBattler].substituteHP -= gBattleMoveDamage;
gHpDealt = gBattleMoveDamage;
}
else
{
- if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
- gSpecialStatuses[gActiveBank].moveturnLostHP = gDisableStructs[gActiveBank].substituteHP;
- gHpDealt = gDisableStructs[gActiveBank].substituteHP;
- gDisableStructs[gActiveBank].substituteHP = 0;
+ if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0)
+ gSpecialStatuses[gActiveBattler].moveturnLostHP = gDisableStructs[gActiveBattler].substituteHP;
+ gHpDealt = gDisableStructs[gActiveBattler].substituteHP;
+ gDisableStructs[gActiveBattler].substituteHP = 0;
}
// check substitute fading
- if (gDisableStructs[gActiveBank].substituteHP == 0)
+ if (gDisableStructs[gActiveBattler].substituteHP == 0)
{
gBattlescriptCurrInstr += 2;
BattleScriptPushCursor();
@@ -2001,9 +1995,9 @@ static void atk0C_datahpupdate(void)
gHitMarker &= ~(HITMARKER_IGNORE_SUBSTITUTE);
if (gBattleMoveDamage < 0) // hp goes up
{
- gBattleMons[gActiveBank].hp -= gBattleMoveDamage;
- if (gBattleMons[gActiveBank].hp > gBattleMons[gActiveBank].maxHP)
- gBattleMons[gActiveBank].hp = gBattleMons[gActiveBank].maxHP;
+ gBattleMons[gActiveBattler].hp -= gBattleMoveDamage;
+ if (gBattleMons[gActiveBattler].hp > gBattleMons[gActiveBattler].maxHP)
+ gBattleMons[gActiveBattler].hp = gBattleMons[gActiveBattler].maxHP;
}
else // hp goes down
@@ -2014,79 +2008,79 @@ static void atk0C_datahpupdate(void)
}
else
{
- gTakenDmg[gActiveBank] += gBattleMoveDamage;
+ gTakenDmg[gActiveBattler] += gBattleMoveDamage;
if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
- gTakenDmgBanks[gActiveBank] = gBankAttacker;
+ gTakenDmgBanks[gActiveBattler] = gBattlerAttacker;
else
- gTakenDmgBanks[gActiveBank] = gBankTarget;
+ gTakenDmgBanks[gActiveBattler] = gBattlerTarget;
}
- if (gBattleMons[gActiveBank].hp > gBattleMoveDamage)
+ if (gBattleMons[gActiveBattler].hp > gBattleMoveDamage)
{
- gBattleMons[gActiveBank].hp -= gBattleMoveDamage;
+ gBattleMons[gActiveBattler].hp -= gBattleMoveDamage;
gHpDealt = gBattleMoveDamage;
}
else
{
- gHpDealt = gBattleMons[gActiveBank].hp;
- gBattleMons[gActiveBank].hp = 0;
+ gHpDealt = gBattleMons[gActiveBattler].hp;
+ gBattleMons[gActiveBattler].hp = 0;
}
- if (!gSpecialStatuses[gActiveBank].moveturnLostHP && !(gHitMarker & HITMARKER_x100000))
- gSpecialStatuses[gActiveBank].moveturnLostHP = gHpDealt;
+ if (!gSpecialStatuses[gActiveBattler].moveturnLostHP && !(gHitMarker & HITMARKER_x100000))
+ gSpecialStatuses[gActiveBattler].moveturnLostHP = gHpDealt;
if (moveType <= 8 && !(gHitMarker & HITMARKER_x100000) && gCurrentMove != MOVE_PAIN_SPLIT)
{
- gProtectStructs[gActiveBank].physicalDmg = gHpDealt;
- gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHpDealt;
+ gProtectStructs[gActiveBattler].physicalDmg = gHpDealt;
+ gSpecialStatuses[gActiveBattler].moveturnLostHP_physical = gHpDealt;
if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
{
- gProtectStructs[gActiveBank].physicalBank = gBankAttacker;
- gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker;
+ gProtectStructs[gActiveBattler].physicalBank = gBattlerAttacker;
+ gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattlerAttacker;
}
else
{
- gProtectStructs[gActiveBank].physicalBank = gBankTarget;
- gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankTarget;
+ gProtectStructs[gActiveBattler].physicalBank = gBattlerTarget;
+ gSpecialStatuses[gActiveBattler].moveturnPhysicalBank = gBattlerTarget;
}
}
else if (moveType > 8 && !(gHitMarker & HITMARKER_x100000))
{
- gProtectStructs[gActiveBank].specialDmg = gHpDealt;
- gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHpDealt;
+ gProtectStructs[gActiveBattler].specialDmg = gHpDealt;
+ gSpecialStatuses[gActiveBattler].moveturnLostHP_special = gHpDealt;
if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
{
- gProtectStructs[gActiveBank].specialBank = gBankAttacker;
- gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker;
+ gProtectStructs[gActiveBattler].specialBank = gBattlerAttacker;
+ gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattlerAttacker;
}
else
{
- gProtectStructs[gActiveBank].specialBank = gBankTarget;
- gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankTarget;
+ gProtectStructs[gActiveBattler].specialBank = gBattlerTarget;
+ gSpecialStatuses[gActiveBattler].moveturnSpecialBank = gBattlerTarget;
}
}
}
gHitMarker &= ~(HITMARKER_x100000);
- EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
else
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
- gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF;
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (gSpecialStatuses[gActiveBattler].moveturnLostHP == 0)
+ gSpecialStatuses[gActiveBattler].moveturnLostHP = 0xFFFF;
}
gBattlescriptCurrInstr += 2;
}
static void atk0D_critmessage(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (gCritMultiplier == 2 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
- PrepareStringBattle(STRINGID_CRITICALHIT, gBankAttacker);
+ PrepareStringBattle(STRINGID_CRITICALHIT, gBattlerAttacker);
gBattleCommunication[MSG_DISPLAY] = 1;
}
gBattlescriptCurrInstr++;
@@ -2095,44 +2089,44 @@ static void atk0D_critmessage(void)
static void atk0E_effectivenesssound(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = gBankTarget;
- if (!(gBattleMoveFlags & MOVESTATUS_MISSED))
+ gActiveBattler = gBattlerTarget;
+ if (!(gMoveResultFlags & MOVE_RESULT_MISSED))
{
- switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED)))
+ switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED)))
{
- case MOVESTATUS_SUPEREFFECTIVE:
- EmitPlaySE(0, SE_KOUKA_H);
- MarkBufferBankForExecution(gActiveBank);
+ case MOVE_RESULT_SUPER_EFFECTIVE:
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
- case MOVESTATUS_NOTVERYEFFECTIVE:
- EmitPlaySE(0, SE_KOUKA_L);
- MarkBufferBankForExecution(gActiveBank);
+ case MOVE_RESULT_NOT_VERY_EFFECTIVE:
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
- case MOVESTATUS_NOTAFFECTED:
- case MOVESTATUS_FAILED:
+ case MOVE_RESULT_DOESNT_AFFECT_FOE:
+ case MOVE_RESULT_FAILED:
// no sound
break;
- case MOVESTATUS_ENDURED:
- case MOVESTATUS_ONEHITKO:
- case MOVESTATUS_HUNGON:
+ case MOVE_RESULT_FOE_ENDURED:
+ case MOVE_RESULT_ONE_HIT_KO:
+ case MOVE_RESULT_FOE_HUNG_ON:
default:
- if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE)
+ if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE)
{
- EmitPlaySE(0, SE_KOUKA_H);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitPlaySE(0, SE_KOUKA_H);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE)
+ else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)
{
- EmitPlaySE(0, SE_KOUKA_L);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitPlaySE(0, SE_KOUKA_L);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED)))
+ else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)))
{
- EmitPlaySE(0, SE_KOUKA_M);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitPlaySE(0, SE_KOUKA_M);
+ MarkBattlerForControllerExec(gActiveBattler);
}
break;
}
@@ -2144,10 +2138,10 @@ static void atk0F_resultmessage(void)
{
u32 stringId = 0;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- if (gBattleMoveFlags & MOVESTATUS_MISSED && (!(gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) || gBattleCommunication[6] > 2))
+ if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[6] > 2))
{
stringId = gMissStringIds[gBattleCommunication[6]];
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2155,64 +2149,64 @@ static void atk0F_resultmessage(void)
else
{
gBattleCommunication[MSG_DISPLAY] = 1;
- switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED)))
+ switch (gMoveResultFlags & (u8)(~(MOVE_RESULT_MISSED)))
{
- case MOVESTATUS_SUPEREFFECTIVE:
+ case MOVE_RESULT_SUPER_EFFECTIVE:
stringId = STRINGID_SUPEREFFECTIVE;
break;
- case MOVESTATUS_NOTVERYEFFECTIVE:
+ case MOVE_RESULT_NOT_VERY_EFFECTIVE:
stringId = STRINGID_NOTVERYEFFECTIVE;
break;
- case MOVESTATUS_ONEHITKO:
+ case MOVE_RESULT_ONE_HIT_KO:
stringId = STRINGID_ONEHITKO;
break;
- case MOVESTATUS_ENDURED:
+ case MOVE_RESULT_FOE_ENDURED:
stringId = STRINGID_PKMNENDUREDHIT;
break;
- case MOVESTATUS_FAILED:
+ case MOVE_RESULT_FAILED:
stringId = STRINGID_BUTITFAILED;
break;
- case MOVESTATUS_NOTAFFECTED:
+ case MOVE_RESULT_DOESNT_AFFECT_FOE:
stringId = STRINGID_ITDOESNTAFFECT;
break;
- case MOVESTATUS_HUNGON:
- gLastUsedItem = gBattleMons[gBankTarget].item;
- gStringBank = gBankTarget;
- gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
+ case MOVE_RESULT_FOE_HUNG_ON:
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
+ gStringBattler = gBattlerTarget;
+ gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
default:
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
+ if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
{
stringId = STRINGID_ITDOESNTAFFECT;
}
- else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO)
+ else if (gMoveResultFlags & MOVE_RESULT_ONE_HIT_KO)
{
- gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO);
- gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE);
- gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE);
+ gMoveResultFlags &= ~(MOVE_RESULT_ONE_HIT_KO);
+ gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE);
+ gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_OneHitKOMsg;
return;
}
- else if (gBattleMoveFlags & MOVESTATUS_ENDURED)
+ else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED)
{
- gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
+ gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_EnduredMsg;
return;
}
- else if (gBattleMoveFlags & MOVESTATUS_HUNGON)
+ else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON)
{
- gLastUsedItem = gBattleMons[gBankTarget].item;
- gStringBank = gBankTarget;
- gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON);
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
+ gStringBattler = gBattlerTarget;
+ gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_HangedOnMsg;
return;
}
- else if (gBattleMoveFlags & MOVESTATUS_FAILED)
+ else if (gMoveResultFlags & MOVE_RESULT_FAILED)
{
stringId = STRINGID_BUTITFAILED;
}
@@ -2224,17 +2218,17 @@ static void atk0F_resultmessage(void)
}
if (stringId)
- PrepareStringBattle(stringId, gBankAttacker);
+ PrepareStringBattle(stringId, gBattlerAttacker);
gBattlescriptCurrInstr++;
}
static void atk10_printstring(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
- PrepareStringBattle(var, gBankAttacker);
+ PrepareStringBattle(var, gBattlerAttacker);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
}
@@ -2242,10 +2236,10 @@ static void atk10_printstring(void)
static void atk11_printselectionstring(void)
{
- gActiveBank = gBankAttacker;
+ gActiveBattler = gBattlerAttacker;
- EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2253,7 +2247,7 @@ static void atk11_printselectionstring(void)
static void atk12_waitmessage(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
if (!gBattleCommunication[MSG_DISPLAY])
{
@@ -2274,12 +2268,12 @@ static void atk12_waitmessage(void)
static void atk13_printfromtable(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
- PrepareStringBattle(*ptr, gBankAttacker);
+ PrepareStringBattle(*ptr, gBattlerAttacker);
gBattlescriptCurrInstr += 5;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2288,26 +2282,26 @@ static void atk13_printfromtable(void)
static void atk14_printselectionstringfromtable(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
const u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
- gActiveBank = gBankAttacker;
- EmitPrintSelectionString(0, *ptr);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitPrintSelectionString(0, *ptr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 5;
gBattleCommunication[MSG_DISPLAY] = 1;
}
}
-u8 BankGetTurnOrder(u8 bank)
+u8 GetBattlerTurnOrderNum(u8 bank)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == bank)
+ if (gBattleTurnOrder[i] == bank)
break;
}
return i;
@@ -2334,22 +2328,22 @@ void SetMoveEffect(bool8 primary, u8 certain)
if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_AFFECTS_USER)
{
- gEffectBank = gBankAttacker; // bank that effects get applied on
+ gEffectBank = gBattlerAttacker; // bank that effects get applied on
gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_AFFECTS_USER);
affectsUser = MOVE_EFFECT_AFFECTS_USER;
- gBattleScripting.bank = gBankTarget; // theoretically the attacker
+ gBattleScripting.battler = gBattlerTarget; // theoretically the attacker
}
else
{
- gEffectBank = gBankTarget;
- gBattleScripting.bank = gBankAttacker;
+ gEffectBank = gBattlerTarget;
+ gBattleScripting.battler = gBattlerAttacker;
}
if (gBattleMons[gEffectBank].ability == ABILITY_SHIELD_DUST && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
&& !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 9)
INCREMENT_RESET_RETURN
- if (gSideAffecting[GET_BANK_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
+ if (gSideStatuses[GET_BATTLER_SIDE(gEffectBank)] & SIDE_STATUS_SAFEGUARD && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
&& !primary && gBattleCommunication[MOVE_EFFECT_BYTE] <= 7)
INCREMENT_RESET_RETURN
@@ -2365,21 +2359,21 @@ void SetMoveEffect(bool8 primary, u8 certain)
{
switch (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]])
{
- case STATUS_SLEEP:
+ case STATUS1_SLEEP:
// check active uproar
if (gBattleMons[gEffectBank].ability != ABILITY_SOUNDPROOF)
{
- for (gActiveBank = 0;
- gActiveBank < gNoOfAllBanks && !(gBattleMons[gActiveBank].status2 & STATUS2_UPROAR);
- gActiveBank++)
+ for (gActiveBattler = 0;
+ gActiveBattler < gBattlersCount && !(gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR);
+ gActiveBattler++)
{}
}
else
- gActiveBank = gNoOfAllBanks;
+ gActiveBattler = gBattlersCount;
if (gBattleMons[gEffectBank].status1)
break;
- if (gActiveBank != gNoOfAllBanks)
+ if (gActiveBattler != gBattlersCount)
break;
if (gBattleMons[gEffectBank].ability == ABILITY_VITAL_SPIRIT)
break;
@@ -2389,7 +2383,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
CancelMultiTurnMoves(gEffectBank);
statusChanged = TRUE;
break;
- case STATUS_POISON:
+ case STATUS1_POISON:
if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY
&& (primary == TRUE || certain == MOVE_EFFECT_CERTAIN))
{
@@ -2436,7 +2430,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
statusChanged = TRUE;
break;
- case STATUS_BURN:
+ case STATUS1_BURN:
if (gBattleMons[gEffectBank].ability == ABILITY_WATER_VEIL
&& (primary == TRUE || certain == MOVE_EFFECT_CERTAIN))
{
@@ -2478,7 +2472,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
statusChanged = TRUE;
break;
- case STATUS_FREEZE:
+ case STATUS1_FREEZE:
if (WEATHER_HAS_EFFECT && gBattleWeather & WEATHER_SUN_ANY)
noSunCanFreeze = FALSE;
if (gBattleMons[gEffectBank].type1 == TYPE_ICE)
@@ -2495,7 +2489,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
CancelMultiTurnMoves(gEffectBank);
statusChanged = TRUE;
break;
- case STATUS_PARALYSIS:
+ case STATUS1_PARALYSIS:
if (gBattleMons[gEffectBank].ability == ABILITY_LIMBER)
{
if (primary == TRUE || certain == MOVE_EFFECT_CERTAIN)
@@ -2525,7 +2519,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
statusChanged = TRUE;
break;
- case STATUS_TOXIC_POISON:
+ case STATUS1_TOXIC_POISON:
if (gBattleMons[gEffectBank].ability == ABILITY_IMMUNITY && (primary == TRUE || certain == MOVE_EFFECT_CERTAIN))
{
gLastUsedAbility = ABILITY_IMMUNITY;
@@ -2567,14 +2561,14 @@ void SetMoveEffect(bool8 primary, u8 certain)
break;
// It's redundant, because at this point we know the status1 value is 0.
- gBattleMons[gEffectBank].status1 &= ~(STATUS_TOXIC_POISON);
- gBattleMons[gEffectBank].status1 &= ~(STATUS_POISON);
+ gBattleMons[gEffectBank].status1 &= ~(STATUS1_TOXIC_POISON);
+ gBattleMons[gEffectBank].status1 &= ~(STATUS1_POISON);
statusChanged = TRUE;
break;
}
else
{
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
}
break;
}
@@ -2582,16 +2576,16 @@ void SetMoveEffect(bool8 primary, u8 certain)
{
BattleScriptPush(gBattlescriptCurrInstr + 1);
- if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP)
+ if (sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS1_SLEEP)
gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2);
else
gBattleMons[gEffectBank].status1 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
- gActiveBank = gEffectBank;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gEffectBank;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD)
{
@@ -2665,7 +2659,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
}
else
{
- if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber)
+ if (GetBattlerTurnOrderNum(gEffectBank) > gCurrentTurnActionNumber)
gBattleMons[gEffectBank].status2 |= sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]];
gBattlescriptCurrInstr++;
}
@@ -2687,10 +2681,10 @@ void SetMoveEffect(bool8 primary, u8 certain)
}
break;
case MOVE_EFFECT_PAYDAY:
- if (GET_BANK_SIDE(gBankAttacker) == SIDE_PLAYER)
+ if (GET_BATTLER_SIDE(gBattlerAttacker) == B_SIDE_PLAYER)
{
u16 PayDay = gPaydayMoney;
- gPaydayMoney += (gBattleMons[gBankAttacker].level * 5);
+ gPaydayMoney += (gBattleMons[gBattlerAttacker].level * 5);
if (PayDay > gPaydayMoney)
gPaydayMoney = 0xFFFF;
}
@@ -2725,7 +2719,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
*(gBattleStruct->wrappedMove + gEffectBank * 2 + 0) = gCurrentMove;
*(gBattleStruct->wrappedMove + gEffectBank * 2 + 1) = gCurrentMove >> 8;
- *(gBattleStruct->wrappedBy + gEffectBank) = gBankAttacker;
+ *(gBattleStruct->wrappedBy + gEffectBank) = gBattlerAttacker;
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = sMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]];
@@ -2838,7 +2832,7 @@ void SetMoveEffect(bool8 primary, u8 certain)
gBattlescriptCurrInstr++;
break;
case MOVE_EFFECT_RAGE:
- gBattleMons[gBankAttacker].status2 |= STATUS2_RAGE;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_RAGE;
gBattlescriptCurrInstr++;
break;
case MOVE_EFFECT_STEAL_ITEM:
@@ -2849,8 +2843,8 @@ void SetMoveEffect(bool8 primary, u8 certain)
break;
}
- side = GetBankSide(gBankAttacker);
- if (GetBankSide(gBankAttacker) == SIDE_OPPONENT
+ side = GetBattlerSide(gBattlerAttacker);
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags &
(BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER
@@ -2866,56 +2860,56 @@ void SetMoveEffect(bool8 primary, u8 certain)
| BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_SECRET_BASE))
- && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlePartyID[gBankAttacker]]))
+ && (gWishFutureKnock.knockedOffPokes[side] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]))
{
gBattlescriptCurrInstr++;
}
- else if (gBattleMons[gBankTarget].item
- && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
+ else if (gBattleMons[gBattlerTarget].item
+ && gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD)
{
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_NoItemSteal;
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- else if (gBattleMons[gBankAttacker].item != 0
- || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY
- || IS_ITEM_MAIL(gBattleMons[gBankTarget].item)
- || gBattleMons[gBankTarget].item == 0)
+ else if (gBattleMons[gBattlerAttacker].item != 0
+ || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY
+ || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item)
+ || gBattleMons[gBattlerTarget].item == 0)
{
gBattlescriptCurrInstr++;
}
else
{
- u16* changedItem = &gBattleStruct->changedItems[gBankAttacker];
- gLastUsedItem = *changedItem = gBattleMons[gBankTarget].item;
- gBattleMons[gBankTarget].item = 0;
+ u16* changedItem = &gBattleStruct->changedItems[gBattlerAttacker];
+ gLastUsedItem = *changedItem = gBattleMons[gBattlerTarget].item;
+ gBattleMons[gBattlerTarget].item = 0;
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
- MarkBufferBankForExecution(gBankAttacker);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem);
+ MarkBattlerForControllerExec(gBattlerAttacker);
- gActiveBank = gBankTarget;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
- MarkBufferBankForExecution(gBankTarget);
+ gActiveBattler = gBattlerTarget;
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item);
+ MarkBattlerForControllerExec(gBattlerTarget);
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_ItemSteal;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 0) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 1) = 0;
}
}
break;
case MOVE_EFFECT_PREVENT_ESCAPE:
- gBattleMons[gBankTarget].status2 |= STATUS2_ESCAPE_PREVENTION;
- gDisableStructs[gBankTarget].bankPreventingEscape = gBankAttacker;
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_ESCAPE_PREVENTION;
+ gDisableStructs[gBattlerTarget].battlerPreventingEscape = gBattlerAttacker;
gBattlescriptCurrInstr++;
break;
case MOVE_EFFECT_NIGHTMARE:
- gBattleMons[gBankTarget].status2 |= STATUS2_NIGHTMARE;
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_NIGHTMARE;
gBattlescriptCurrInstr++;
break;
case MOVE_EFFECT_ALL_STATS_UP:
@@ -2927,17 +2921,17 @@ void SetMoveEffect(bool8 primary, u8 certain)
gBattlescriptCurrInstr = BattleScript_RapidSpinAway;
break;
case MOVE_EFFECT_REMOVE_PARALYSIS: // Smelling salts
- if (!(gBattleMons[gBankTarget].status1 & STATUS_PARALYSIS))
+ if (!(gBattleMons[gBattlerTarget].status1 & STATUS1_PARALYSIS))
{
gBattlescriptCurrInstr++;
}
else
{
- gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS);
+ gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_PARALYSIS);
- gActiveBank = gBankTarget;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerTarget;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal;
@@ -2984,11 +2978,11 @@ void SetMoveEffect(bool8 primary, u8 certain)
}
if (gBattleMons[gEffectBank].item)
{
- side = GetBankSide(gEffectBank);
+ side = GetBattlerSide(gEffectBank);
gLastUsedItem = gBattleMons[gEffectBank].item;
gBattleMons[gEffectBank].item = 0;
- gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]];
+ gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlerPartyIndexes[gEffectBank]];
BattleScriptPush(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
@@ -3016,20 +3010,20 @@ static void atk15_seteffectwithchance(void)
{
u32 percentChance;
- if (gBattleMons[gBankAttacker].ability == ABILITY_SERENE_GRACE)
+ if (gBattleMons[gBattlerAttacker].ability == ABILITY_SERENE_GRACE)
percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance * 2;
else
percentChance = gBattleMoves[gCurrentMove].secondaryEffectChance;
if (gBattleCommunication[MOVE_EFFECT_BYTE] & MOVE_EFFECT_CERTAIN
- && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
gBattleCommunication[MOVE_EFFECT_BYTE] &= ~(MOVE_EFFECT_CERTAIN);
SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
}
else if (Random() % 100 < percentChance
&& gBattleCommunication[MOVE_EFFECT_BYTE]
- && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (percentChance >= 100)
SetMoveEffect(0, MOVE_EFFECT_CERTAIN);
@@ -3057,12 +3051,12 @@ static void atk17_seteffectsecondary(void)
static void atk18_clearstatusfromeffect(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
if (gBattleCommunication[MOVE_EFFECT_BYTE] <= MOVE_EFFECT_TOXIC)
- gBattleMons[gActiveBank].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
+ gBattleMons[gActiveBattler].status1 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
- gBattleMons[gActiveBank].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
+ gBattleMons[gActiveBattler].status2 &= (~sStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattlescriptCurrInstr += 2;
@@ -3075,14 +3069,14 @@ static void atk19_tryfaintmon(void)
if (gBattlescriptCurrInstr[2] != 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{
BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
BattleScriptPop();
gBattlescriptCurrInstr = BS_ptr;
- gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
}
else
{
@@ -3095,58 +3089,58 @@ static void atk19_tryfaintmon(void)
if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER)
{
- gActiveBank = gBankAttacker;
- bank = gBankTarget;
+ gActiveBattler = gBattlerAttacker;
+ bank = gBattlerTarget;
BS_ptr = BattleScript_FaintAttacker;
}
else
{
- gActiveBank = gBankTarget;
- bank = gBankAttacker;
+ gActiveBattler = gBattlerTarget;
+ bank = gBattlerAttacker;
BS_ptr = BattleScript_FaintTarget;
}
- if (!(gAbsentBankFlags & gBitTable[gActiveBank])
- && gBattleMons[gActiveBank].hp == 0)
+ if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])
+ && gBattleMons[gActiveBattler].hp == 0)
{
- gHitMarker |= HITMARKER_FAINTED(gActiveBank);
+ gHitMarker |= HITMARKER_FAINTED(gActiveBattler);
BattleScriptPush(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = BS_ptr;
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
gHitMarker |= HITMARKER_x400000;
if (gBattleResults.playerFaintCounter < 0xFF)
gBattleResults.playerFaintCounter++;
- AdjustFriendshipOnBattleFaint(gActiveBank);
+ AdjustFriendshipOnBattleFaint(gActiveBattler);
}
else
{
if (gBattleResults.opponentFaintCounter < 0xFF)
gBattleResults.opponentFaintCounter++;
- gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES, NULL);
+ gBattleResults.lastOpponentSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES, NULL);
}
- if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0)
+ if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBattlerAttacker].hp != 0)
{
gHitMarker &= ~(HITMARKER_DESTINYBOND);
BattleScriptPush(gBattlescriptCurrInstr);
gBattleMoveDamage = gBattleMons[bank].hp;
gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife;
}
- if ((gStatuses3[gBankTarget] & STATUS3_GRUDGE)
+ if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE)
&& !(gHitMarker & HITMARKER_GRUDGE)
- && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)
- && gBattleMons[gBankAttacker].hp != 0
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)
+ && gBattleMons[gBattlerAttacker].hp != 0
&& gCurrentMove != MOVE_STRUGGLE)
{
- u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBankAttacker);
+ u8 moveIndex = *(gBattleStruct->chosenMovePositions + gBattlerAttacker);
- gBattleMons[gBankAttacker].pp[moveIndex] = 0;
+ gBattleMons[gBattlerAttacker].pp[moveIndex] = 0;
BattleScriptPush(gBattlescriptCurrInstr);
gBattlescriptCurrInstr = BattleScript_GrudgeTakesPp;
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, moveIndex + REQUEST_PPMOVE1_BATTLE, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]);
+ MarkBattlerForControllerExec(gActiveBattler);
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].moves[moveIndex])
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].moves[moveIndex])
}
}
else
@@ -3158,26 +3152,26 @@ static void atk19_tryfaintmon(void)
static void atk1A_dofaintanimation(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitFaintAnimation(0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitFaintAnimation(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
}
static void atk1B_cleareffectsonfaint(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBank].hp == 0)
+ if (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || gBattleMons[gActiveBattler].hp == 0)
{
- gBattleMons[gActiveBank].status1 = 0;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gBattleMons[gActiveBattler].status1 = 0;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
}
FaintClearSetData(); // Effects like attractions, trapping, etc.
@@ -3217,26 +3211,26 @@ static void atk1E_jumpifability(void)
if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER_SIDE)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0);
+ bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0);
if (bank)
{
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jumpPtr;
RecordAbilityBattle(bank - 1, gLastUsedAbility);
- gBattleScripting.bankWithAbility = bank - 1;
+ gBattleScripting.battlerWithAbility = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else if (gBattlescriptCurrInstr[1] == BS_GET_NOT_ATTACKER_SIDE)
{
- bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0);
+ bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBattlerAttacker, ability, 0, 0);
if (bank)
{
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jumpPtr;
RecordAbilityBattle(bank - 1, gLastUsedAbility);
- gBattleScripting.bankWithAbility = bank - 1;
+ gBattleScripting.battlerWithAbility = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
@@ -3249,7 +3243,7 @@ static void atk1E_jumpifability(void)
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jumpPtr;
RecordAbilityBattle(bank, gLastUsedAbility);
- gBattleScripting.bankWithAbility = bank;
+ gBattleScripting.battlerWithAbility = bank;
}
else
gBattlescriptCurrInstr += 7;
@@ -3263,14 +3257,14 @@ static void atk1F_jumpifsideaffecting(void)
const u8* jumpPtr;
if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER)
- side = GET_BANK_SIDE(gBankAttacker);
+ side = GET_BATTLER_SIDE(gBattlerAttacker);
else
- side = GET_BANK_SIDE(gBankTarget);
+ side = GET_BATTLER_SIDE(gBattlerTarget);
flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2);
jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4);
- if (gSideAffecting[side] & flags)
+ if (gSideStatuses[side] & flags)
gBattlescriptCurrInstr = jumpPtr;
else
gBattlescriptCurrInstr += 8;
@@ -3321,20 +3315,20 @@ static void atk21_jumpifstatus3condition(void)
u32 flags;
const u8 *jumpPtr;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
jumpPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7);
if (gBattlescriptCurrInstr[6])
{
- if ((gStatuses3[gActiveBank] & flags) != 0)
+ if ((gStatuses3[gActiveBattler] & flags) != 0)
gBattlescriptCurrInstr += 11;
else
gBattlescriptCurrInstr = jumpPtr;
}
else
{
- if ((gStatuses3[gActiveBank] & flags) != 0)
+ if ((gStatuses3[gActiveBattler] & flags) != 0)
gBattlescriptCurrInstr = jumpPtr;
else
gBattlescriptCurrInstr += 11;
@@ -3369,7 +3363,7 @@ static void atk23_getexp(void)
switch (gBattleScripting.atk23_state)
{
case 0: // check if should receive exp at all
- if (GetBankSide(gBank1) != SIDE_OPPONENT || (gBattleTypeFlags &
+ if (GetBattlerSide(gBank1) != B_SIDE_OPPONENT || (gBattleTypeFlags &
(BATTLE_TYPE_LINK
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_x4000000
@@ -3383,7 +3377,7 @@ static void atk23_getexp(void)
else
{
gBattleScripting.atk23_state++;
- gBattleStruct->field_DF |= gBitTable[gBattlePartyID[gBank1]];
+ gBattleStruct->field_DF |= gBitTable[gBattlerPartyIndexes[gBank1]];
}
break;
case 1: // calculate experience points to redistribute
@@ -3435,7 +3429,7 @@ static void atk23_getexp(void)
}
// fall through
case 2: // set exp value to the poke in expgetter_id and print message
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
item = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HELD_ITEM);
@@ -3501,11 +3495,11 @@ static void atk23_getexp(void)
// get exp getter bank
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- if (!(gBattlePartyID[2] != gBattleStruct->expGetterId) && !(gAbsentBankFlags & gBitTable[2]))
+ if (!(gBattlerPartyIndexes[2] != gBattleStruct->expGetterId) && !(gAbsentBattlerFlags & gBitTable[2]))
gBattleStruct->expGetterBank = 2;
else
{
- if (!(gAbsentBankFlags & gBitTable[0]))
+ if (!(gAbsentBattlerFlags & gBitTable[0]))
gBattleStruct->expGetterBank = 0;
else
gBattleStruct->expGetterBank = 2;
@@ -3530,46 +3524,46 @@ static void atk23_getexp(void)
}
break;
case 3: // Set stats and give exp
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
gBattleBufferB[gBattleStruct->expGetterBank][0] = 0;
if (GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP) && GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL) != MAX_MON_LEVEL)
{
- BATTLE_LVLUP_STATS->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP);
- BATTLE_LVLUP_STATS->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK);
- BATTLE_LVLUP_STATS->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF);
- BATTLE_LVLUP_STATS->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
- BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK);
- BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF);
+ gBattleResources->statsBeforeLvlUp->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP);
+ gBattleResources->statsBeforeLvlUp->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK);
+ gBattleResources->statsBeforeLvlUp->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF);
+ gBattleResources->statsBeforeLvlUp->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
+ gBattleResources->statsBeforeLvlUp->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK);
+ gBattleResources->statsBeforeLvlUp->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF);
- gActiveBank = gBattleStruct->expGetterBank;
- EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattleStruct->expGetterBank;
+ BtlController_EmitExpUpdate(0, gBattleStruct->expGetterId, gBattleMoveDamage);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattleScripting.atk23_state++;
}
break;
case 4: // lvl up if necessary
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = gBattleStruct->expGetterBank;
- if (gBattleBufferB[gActiveBank][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBank][1] == RET_VALUE_LEVELLED_UP)
+ gActiveBattler = gBattleStruct->expGetterBank;
+ if (gBattleBufferB[gActiveBattler][0] == CONTROLLER_TWORETURNVALUES && gBattleBufferB[gActiveBattler][1] == RET_VALUE_LEVELLED_UP)
{
- if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId)
- HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank);
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId)
+ HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattleStruct->expGetterId)
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattleStruct->expGetterId)
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL))
BattleScriptPushCursor();
gLeveledUpInBattle |= gBitTable[gBattleStruct->expGetterId];
gBattlescriptCurrInstr = BattleScript_LevelUp;
- gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8));
+ gBattleMoveDamage = (gBattleBufferB[gActiveBattler][2] | (gBattleBufferB[gActiveBattler][3] << 8));
AdjustFriendship(&gPlayerParty[gBattleStruct->expGetterId], 0);
// update battle mon structure after level up
- if (gBattlePartyID[0] == gBattleStruct->expGetterId && gBattleMons[0].hp)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId && gBattleMons[0].hp)
{
gBattleMons[0].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL);
gBattleMons[0].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP);
@@ -3584,7 +3578,7 @@ static void atk23_getexp(void)
gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF);
}
// What is else if?
- if (gBattlePartyID[2] == gBattleStruct->expGetterId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterId && gBattleMons[2].hp && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
gBattleMons[2].level = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_LEVEL);
gBattleMons[2].hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_HP);
@@ -3619,7 +3613,7 @@ static void atk23_getexp(void)
}
break;
case 6: // increment instruction
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
// not sure why gf clears the item and ability here
gBattleMons[gBank1].item = 0;
@@ -3636,7 +3630,7 @@ static void atk24(void)
u16 HP_count = 0;
s32 i;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId == STEVEN_PARTNER_ID)
@@ -3652,7 +3646,7 @@ static void atk24(void)
for (i = 0; i < 6; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)
- && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A0 & gBitTable[i])))
+ && (!(gBattleTypeFlags & BATTLE_TYPE_ARENA) || !(gBattleStruct->field_2A0 & gBitTable[i])))
{
HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP);
}
@@ -3660,7 +3654,7 @@ static void atk24(void)
}
if (HP_count == 0)
- gBattleOutcome |= BATTLE_LOST;
+ gBattleOutcome |= B_OUTCOME_LOST;
for (HP_count = 0, i = 0; i < 6; i++)
{
@@ -3672,7 +3666,7 @@ static void atk24(void)
}
if (HP_count == 0)
- gBattleOutcome |= BATTLE_WON;
+ gBattleOutcome |= B_OUTCOME_WON;
if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)))
{
@@ -3680,13 +3674,13 @@ static void atk24(void)
s32 foundOpponent;
// Impossible to decompile loops.
- for (foundPlayer = 0, i = 0; i < gNoOfAllBanks; i += 2)
+ for (foundPlayer = 0, i = 0; i < gBattlersCount; i += 2)
{
if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40)
foundPlayer++;
}
- for (foundOpponent = 0, i = 1; i < gNoOfAllBanks; i += 2)
+ for (foundOpponent = 0, i = 1; i < gBattlersCount; i += 2)
{
if (HITMARKER_UNK(i) & gHitMarker && !gSpecialStatuses[i].flag40)
foundOpponent++;
@@ -3722,7 +3716,7 @@ static void atk24(void)
mov r7, r8\n\
push {r7}\n\
movs r6, 0\n\
- ldr r0, =gBattleExecBuffer\n\
+ ldr r0, =gBattleControllerExecFlags\n\
ldr r0, [r0]\n\
cmp r0, 0\n\
beq _0804ACE2\n\
@@ -3895,7 +3889,7 @@ static void atk24(void)
beq _0804AF1A\n\
movs r3, 0\n\
movs r5, 0\n\
- ldr r0, =gNoOfAllBanks\n\
+ ldr r0, =gBattlersCount\n\
ldrb r1, [r0]\n\
mov r12, r0\n\
ldr r7, =gBattlescriptCurrInstr\n\
@@ -4010,7 +4004,7 @@ static void atk24(void)
static void MoveValuesCleanUp(void)
{
- gBattleMoveFlags = 0;
+ gMoveResultFlags = 0;
gBattleScripting.dmgMultiplier = 1;
gCritMultiplier = 1;
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
@@ -4309,7 +4303,7 @@ static void atk38_bicword(void)
static void atk39_pause(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
if (++gPauseCounterBattle >= value)
@@ -4322,19 +4316,19 @@ static void atk39_pause(void)
static void atk3A_waitstate(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattlescriptCurrInstr++;
}
static void atk3B_healthbar_update(void)
{
if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
- gActiveBank = gBankTarget;
+ gActiveBattler = gBattlerTarget;
else
- gActiveBank = gBankAttacker;
+ gActiveBattler = gBattlerAttacker;
- EmitHealthBarUpdate(0, gBattleMoveDamage);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitHealthBarUpdate(0, gBattleMoveDamage);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
@@ -4346,25 +4340,25 @@ static void atk3C_return(void)
static void atk3D_end(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
- sub_81A5718(gBankAttacker);
+ sub_81A5718(gBattlerAttacker);
- gBattleMoveFlags = 0;
- gActiveBank = 0;
+ gMoveResultFlags = 0;
+ gActiveBattler = 0;
gCurrentActionFuncId = 0xB;
}
static void atk3E_end2(void)
{
- gActiveBank = 0;
+ gActiveBattler = 0;
gCurrentActionFuncId = 0xB;
}
static void atk3F_end3(void) // pops the main function stack
{
BattleScriptPop();
- if (BATTLE_CALLBACKS_STACK->size)
- BATTLE_CALLBACKS_STACK->size--;
- gBattleMainFunc = BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size];
+ if (gBattleResources->battleCallbackStack->size != 0)
+ gBattleResources->battleCallbackStack->size--;
+ gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size];
}
static void atk41_call(void)
@@ -4393,22 +4387,22 @@ static void atk43_jumpifabilitypresent(void)
static void atk44_endselectionscript(void)
{
- *(gBankAttacker + gBattleStruct->selectionScriptFinished) = TRUE;
+ *(gBattlerAttacker + gBattleStruct->selectionScriptFinished) = TRUE;
}
static void atk45_playanimation(void)
{
const u16* argumentPtr;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE
|| gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE
|| gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE)
{
- EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 7;
}
else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
@@ -4421,18 +4415,18 @@ static void atk45_playanimation(void)
|| gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES
|| gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES)
{
- EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 7;
}
- else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE)
{
gBattlescriptCurrInstr += 7;
}
else
{
- EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 7;
}
}
@@ -4442,7 +4436,7 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
const u16* argumentPtr;
const u8* animationIdPtr;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
@@ -4450,8 +4444,8 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
|| *animationIdPtr == B_ANIM_SNATCH_MOVE
|| *animationIdPtr == B_ANIM_SUBSTITUTE_FADE)
{
- EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 10;
}
else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
@@ -4463,18 +4457,18 @@ static void atk46_playanimation2(void) // animation Id is stored in the first po
|| *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES
|| *animationIdPtr == B_ANIM_HAIL_CONTINUES)
{
- EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 10;
}
- else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ else if (gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE)
{
gBattlescriptCurrInstr += 10;
}
else
{
- EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 10;
}
}
@@ -4511,7 +4505,7 @@ static void atk48_playstatchangeanimation(void)
s32 changeableStats = 0;
u32 statsToCheck = 0;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
statsToCheck = gBattlescriptCurrInstr[2];
if (gBattlescriptCurrInstr[3] & ATK48_STAT_NEGATIVE) // goes down
@@ -4523,19 +4517,19 @@ static void atk48_playstatchangeanimation(void)
{
if (!(gBattlescriptCurrInstr[3] & ATK48_LOWER_FAIL_CHECK))
{
- if (gBattleMons[gActiveBank].statStages[currStat] > 0)
+ if (gBattleMons[gActiveBattler].statStages[currStat] > 0)
{
statAnimId = checkingStatAnimId;
changeableStats++;
}
}
- else if (!gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer
- && gBattleMons[gActiveBank].ability != ABILITY_CLEAR_BODY
- && gBattleMons[gActiveBank].ability != ABILITY_WHITE_SMOKE
- && !(gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE && currStat == STAT_STAGE_ACC)
- && !(gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER && currStat == STAT_STAGE_ATK))
+ else if (!gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer
+ && gBattleMons[gActiveBattler].ability != ABILITY_CLEAR_BODY
+ && gBattleMons[gActiveBattler].ability != ABILITY_WHITE_SMOKE
+ && !(gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE && currStat == STAT_STAGE_ACC)
+ && !(gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER && currStat == STAT_STAGE_ATK))
{
- if (gBattleMons[gActiveBank].statStages[currStat] > 0)
+ if (gBattleMons[gActiveBattler].statStages[currStat] > 0)
{
statAnimId = checkingStatAnimId;
changeableStats++;
@@ -4558,7 +4552,7 @@ static void atk48_playstatchangeanimation(void)
checkingStatAnimId = (gBattlescriptCurrInstr[3] & ATK48_STAT_BY_TWO) ? 0x26 : 0xE;
while (statsToCheck != 0)
{
- if (statsToCheck & 1 && gBattleMons[gActiveBank].statStages[currStat] < 0xC)
+ if (statsToCheck & 1 && gBattleMons[gActiveBattler].statStages[currStat] < 0xC)
{
statAnimId = checkingStatAnimId;
changeableStats++;
@@ -4581,8 +4575,8 @@ static void atk48_playstatchangeanimation(void)
}
else if (changeableStats != 0 && gBattleScripting.field_1B == 0)
{
- EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, B_ANIM_STATS_CHANGE, statAnimId);
+ MarkBattlerForControllerExec(gActiveBattler);
if (gBattlescriptCurrInstr[3] & ATK48_BIT_x4 && changeableStats > 1)
gBattleScripting.field_1B = 1;
gBattlescriptCurrInstr += 4;
@@ -4613,7 +4607,7 @@ static void atk48_playstatchangeanimation(void)
ldrb r0, [r0, 0x1]\n\
str r3, [sp]\n\
bl GetBattleBank\n\
- ldr r2, =gActiveBank\n\
+ ldr r2, =gActiveBattler\n\
strb r0, [r2]\n\
ldr r0, [r5]\n\
ldrb r4, [r0, 0x2]\n\
@@ -4650,7 +4644,7 @@ _0804BA26:\n\
ands r0, r1\n\
cmp r0, 0\n\
beq _0804BA58\n\
- ldr r0, =gActiveBank\n\
+ ldr r0, =gActiveBattler\n\
ldrb r1, [r0]\n\
movs r0, 0x58\n\
muls r0, r1\n\
@@ -4658,10 +4652,10 @@ _0804BA26:\n\
b _0804BAA0\n\
.pool\n\
_0804BA58:\n\
- ldr r6, =gActiveBank\n\
+ ldr r6, =gActiveBattler\n\
ldrb r0, [r6]\n\
str r3, [sp]\n\
- bl GetBankIdentity\n\
+ bl GetBattlerPosition\n\
mov r1, r10\n\
ands r1, r0\n\
lsls r0, r1, 1\n\
@@ -4809,10 +4803,10 @@ _0804BB6C:\n\
movs r1, 0x1\n\
mov r2, r8\n\
str r3, [sp]\n\
- bl EmitBattleAnimation\n\
- ldr r0, =gActiveBank\n\
+ bl BtlController_EmitBattleAnimation\n\
+ ldr r0, =gActiveBattler\n\
ldrb r0, [r0]\n\
- bl MarkBufferBankForExecution\n\
+ bl MarkBattlerForControllerExec\n\
ldr r0, =gBattlescriptCurrInstr\n\
ldr r0, [r0]\n\
ldrb r1, [r0, 0x3]\n\
@@ -4870,12 +4864,12 @@ static void atk49_moveend(void)
arg1 = gBattlescriptCurrInstr[1];
arg2 = gBattlescriptCurrInstr[2];
- if (gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY)
- holdEffectAtk = gEnigmaBerries[gBankAttacker].holdEffect;
+ if (gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY)
+ holdEffectAtk = gEnigmaBerries[gBattlerAttacker].holdEffect;
else
- holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBankAttacker].item);
+ holdEffectAtk = ItemId_GetHoldEffect(gBattleMons[gBattlerAttacker].item);
- choicedMoveAtk = &gBattleStruct->choicedMove[gBankAttacker];
+ choicedMoveAtk = &gBattleStruct->choicedMove[gBattlerAttacker];
GET_MOVE_TYPE(gCurrentMove, moveType);
@@ -4884,13 +4878,13 @@ static void atk49_moveend(void)
switch (gBattleScripting.atk49_state)
{
case 0: // rage check
- if (gBattleMons[gBankTarget].status2 & STATUS2_RAGE
- && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget
- && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)
- && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && TARGET_TURN_DAMAGED
- && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE
+ && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget
+ && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && TARGET_TURN_DAMAGED
+ && gBattleMoves[gCurrentMove].power && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] <= 0xB)
{
- gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++;
+ gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK]++;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_RageIsBuilding;
effect = TRUE;
@@ -4898,15 +4892,15 @@ static void atk49_moveend(void)
gBattleScripting.atk49_state++;
break;
case 1: // defrosting check
- if (gBattleMons[gBankTarget].status1 & STATUS_FREEZE
- && gBattleMons[gBankTarget].hp != 0 && gBankAttacker != gBankTarget
- && gSpecialStatuses[gBankTarget].moveturnLostHP_special
- && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && moveType == TYPE_FIRE)
- {
- gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE);
- gActiveBank = gBankTarget;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1);
- MarkBufferBankForExecution(gActiveBank);
+ if (gBattleMons[gBattlerTarget].status1 & STATUS1_FREEZE
+ && gBattleMons[gBattlerTarget].hp != 0 && gBattlerAttacker != gBattlerTarget
+ && gSpecialStatuses[gBattlerTarget].moveturnLostHP_special
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && moveType == TYPE_FIRE)
+ {
+ gBattleMons[gBattlerTarget].status1 &= ~(STATUS1_FREEZE);
+ gActiveBattler = gBattlerTarget;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBattlerTarget].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove;
effect = TRUE;
@@ -4914,12 +4908,12 @@ static void atk49_moveend(void)
gBattleScripting.atk49_state++;
break;
case 2: // target synchronize
- if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBankTarget, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_SYNCHRONIZE, gBattlerTarget, 0, 0, 0))
effect = TRUE;
gBattleScripting.atk49_state++;
break;
case 3: // contact abilities
- if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBankTarget, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_CONTACT, gBattlerTarget, 0, 0, 0))
effect = TRUE;
gBattleScripting.atk49_state++;
break;
@@ -4930,7 +4924,7 @@ static void atk49_moveend(void)
gBattleScripting.atk49_state++;
break;
case 5: // attacker synchronize
- if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBankAttacker, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_ATK_SYNCHRONIZE, gBattlerAttacker, 0, 0, 0))
effect = TRUE;
gBattleScripting.atk49_state++;
break;
@@ -4938,7 +4932,7 @@ static void atk49_moveend(void)
if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND
|| gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF))
goto LOOP;
- if (gChosenMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED))
+ if (gChosenMove == MOVE_BATON_PASS && !(gMoveResultFlags & MOVE_RESULT_FAILED))
{
gBattleScripting.atk49_state++;
break;
@@ -4948,7 +4942,7 @@ static void atk49_moveend(void)
{
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankAttacker].moves[i] == *choicedMoveAtk)
+ if (gBattleMons[gBattlerAttacker].moves[i] == *choicedMoveAtk)
break;
}
if (i == 4)
@@ -4958,7 +4952,7 @@ static void atk49_moveend(void)
}
break;
case 7: // changed held items
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
u16* changedItem = &gBattleStruct->changedItems[i];
if (*changedItem != 0)
@@ -4981,47 +4975,47 @@ static void atk49_moveend(void)
gBattleScripting.atk49_state++;
break;
case 8: // make attacker sprite invisible
- if (gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE)
+ if (gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)
&& gHitMarker & HITMARKER_NO_ANIMATIONS)
{
- gActiveBank = gBankAttacker;
- EmitSpriteInvisibility(0, TRUE);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSpriteInvisibility(0, TRUE);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleScripting.atk49_state++;
return;
}
gBattleScripting.atk49_state++;
break;
case 9: // make attacker sprite visible
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT
- || !(gStatuses3[gBankAttacker] & (STATUS3_SEMI_INVULNERABLE))
- || WasUnableToUseMove(gBankAttacker))
- {
- gActiveBank = gBankAttacker;
- EmitSpriteInvisibility(0, FALSE);
- MarkBufferBankForExecution(gActiveBank);
- gStatuses3[gBankAttacker] &= ~(STATUS3_SEMI_INVULNERABLE);
- gSpecialStatuses[gBankAttacker].restoredBankSprite = 1;
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT
+ || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE))
+ || WasUnableToUseMove(gBattlerAttacker))
+ {
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSpriteInvisibility(0, FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_SEMI_INVULNERABLE);
+ gSpecialStatuses[gBattlerAttacker].restoredBankSprite = 1;
gBattleScripting.atk49_state++;
return;
}
gBattleScripting.atk49_state++;
break;
case 10: // make target sprite visible
- if (!gSpecialStatuses[gBankTarget].restoredBankSprite && gBankTarget < gNoOfAllBanks
- && !(gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE))
+ if (!gSpecialStatuses[gBattlerTarget].restoredBankSprite && gBattlerTarget < gBattlersCount
+ && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE))
{
- gActiveBank = gBankTarget;
- EmitSpriteInvisibility(0, FALSE);
- MarkBufferBankForExecution(gActiveBank);
- gStatuses3[gBankTarget] &= ~(STATUS3_SEMI_INVULNERABLE);
+ gActiveBattler = gBattlerTarget;
+ BtlController_EmitSpriteInvisibility(0, FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
+ gStatuses3[gBattlerTarget] &= ~(STATUS3_SEMI_INVULNERABLE);
gBattleScripting.atk49_state++;
return;
}
gBattleScripting.atk49_state++;
break;
case 13: // update substitute
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gDisableStructs[i].substituteHP == 0)
gBattleMons[i].status2 &= ~(STATUS2_SUBSTITUTE);
@@ -5031,82 +5025,82 @@ static void atk49_moveend(void)
case 14: // This case looks interesting, although I am not certain what it does. Probably fine tunes edge cases.
if (gHitMarker & HITMARKER_PURSUIT_TRAP)
{
- gActiveBank = gBankAttacker;
- gBankAttacker = gBankTarget;
- gBankTarget = gActiveBank;
+ gActiveBattler = gBattlerAttacker;
+ gBattlerAttacker = gBattlerTarget;
+ gBattlerTarget = gActiveBattler;
gHitMarker &= ~(HITMARKER_PURSUIT_TRAP);
}
if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED)
{
- gLastPrintedMoves[gBankAttacker] = gChosenMove;
+ gLastPrintedMoves[gBattlerAttacker] = gChosenMove;
}
- if (!(gAbsentBankFlags & gBitTable[gBankAttacker])
- && !(gBattleStruct->field_91 & gBitTable[gBankAttacker])
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker])
+ && !(gBattleStruct->field_91 & gBitTable[gBattlerAttacker])
&& gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS)
{
if (gHitMarker & HITMARKER_OBEYS)
{
- gLastMoves[gBankAttacker] = gChosenMove;
- gLastResultingMoves[gBankAttacker] = gCurrentMove;
+ gLastMoves[gBattlerAttacker] = gChosenMove;
+ gLastResultingMoves[gBattlerAttacker] = gCurrentMove;
}
else
{
- gLastMoves[gBankAttacker] = 0xFFFF;
- gLastResultingMoves[gBankAttacker] = 0xFFFF;
+ gLastMoves[gBattlerAttacker] = 0xFFFF;
+ gLastResultingMoves[gBattlerAttacker] = 0xFFFF;
}
- if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget)))
- gLastHitBy[gBankTarget] = gBankAttacker;
+ if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)))
+ gLastHitBy[gBattlerTarget] = gBattlerAttacker;
- if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
if (gChosenMove == 0xFFFF)
{
- gLastLandedMoves[gBankTarget] = gChosenMove;
+ gLastLandedMoves[gBattlerTarget] = gChosenMove;
}
else
{
- gLastLandedMoves[gBankTarget] = gCurrentMove;
- GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]);
+ gLastLandedMoves[gBattlerTarget] = gCurrentMove;
+ GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBattlerTarget]);
}
}
else
{
- gLastLandedMoves[gBankTarget] = 0xFFFF;
+ gLastLandedMoves[gBattlerTarget] = 0xFFFF;
}
}
gBattleScripting.atk49_state++;
break;
case 15: // mirror move
- if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker])
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBattlerAttacker])
&& gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS
- && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget))
- && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
+ && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))
+ && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT))
{
u8 target, attacker;
- *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gChosenMove;
- *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gChosenMove >> 8;
+ *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 0) = gChosenMove;
+ *(gBattleStruct->mirrorMoves + gBattlerTarget * 2 + 1) = gChosenMove >> 8;
- target = gBankTarget;
- attacker = gBankAttacker;
+ target = gBattlerTarget;
+ attacker = gBattlerAttacker;
*(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove;
- target = gBankTarget;
- attacker = gBankAttacker;
+ target = gBattlerTarget;
+ attacker = gBattlerAttacker;
*(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8;
}
gBattleScripting.atk49_state++;
break;
case 16: //
if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && !gProtectStructs[gBankAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH
+ && !gProtectStructs[gBattlerAttacker].chargingTurn && gBattleMoves[gCurrentMove].target == MOVE_TARGET_BOTH
&& !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
{
- u8 bank = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON);
+ u8 bank = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
if (gBattleMons[bank].hp != 0)
{
- gBankTarget = bank;
+ gBattlerTarget = bank;
gHitMarker |= HITMARKER_NO_ATTACKSTRING;
gBattleScripting.atk49_state = 0;
MoveValuesCleanUp();
@@ -5142,13 +5136,13 @@ static void atk4A_typecalc2(void)
s32 i = 0;
u8 moveType = gBattleMoves[gCurrentMove].type;
- if (gBattleMons[gBankTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_LEVITATE && moveType == TYPE_GROUND)
{
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
- gLastLandedMoves[gBankTarget] = 0;
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
+ gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE);
+ gLastLandedMoves[gBattlerTarget] = 0;
gBattleCommunication[6] = moveType;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
{
@@ -5156,7 +5150,7 @@ static void atk4A_typecalc2(void)
{
if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_FORESIGHT)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_FORESIGHT)
{
break;
}
@@ -5170,42 +5164,42 @@ static void atk4A_typecalc2(void)
if (TYPE_EFFECT_ATK_TYPE(i) == moveType)
{
// check type1
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type1)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1)
{
if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT)
{
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
break;
}
if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE)
{
- flags |= MOVESTATUS_NOTVERYEFFECTIVE;
+ flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE)
{
- flags |= MOVESTATUS_SUPEREFFECTIVE;
+ flags |= MOVE_RESULT_SUPER_EFFECTIVE;
}
}
// check type2
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2)
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2)
{
- if (gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2
+ if (gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT)
{
- gBattleMoveFlags |= MOVESTATUS_NOTAFFECTED;
+ gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE;
break;
}
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2
- && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2
+ && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE)
{
- flags |= MOVESTATUS_NOTVERYEFFECTIVE;
+ flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE;
}
- if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBankTarget].type2
- && gBattleMons[gBankTarget].type1 != gBattleMons[gBankTarget].type2
+ if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2
+ && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2
&& TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE)
{
- flags |= MOVESTATUS_SUPEREFFECTIVE;
+ flags |= MOVE_RESULT_SUPER_EFFECTIVE;
}
}
}
@@ -5213,46 +5207,46 @@ static void atk4A_typecalc2(void)
}
}
- if (gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD
- && !(flags & MOVESTATUS_NOEFFECT)
- && AttacksThisTurn(gBankAttacker, gCurrentMove) == 2
- && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)))
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD
+ && !(flags & MOVE_RESULT_NO_EFFECT)
+ && AttacksThisTurn(gBattlerAttacker, gCurrentMove) == 2
+ && (!(flags & MOVE_RESULT_SUPER_EFFECTIVE) || ((flags & (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)) == (MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE)))
&& gBattleMoves[gCurrentMove].power)
{
gLastUsedAbility = ABILITY_WONDER_GUARD;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- gLastLandedMoves[gBankTarget] = 0;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
+ gLastLandedMoves[gBattlerTarget] = 0;
gBattleCommunication[6] = 3;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
- if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED)
- gProtectStructs[gBankAttacker].targetNotAffected = 1;
+ if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE)
+ gProtectStructs[gBattlerAttacker].targetNotAffected = 1;
gBattlescriptCurrInstr++;
}
static void atk4B_returnatktoball(void)
{
- gActiveBank = gBankAttacker;
- if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank)))
+ gActiveBattler = gBattlerAttacker;
+ if (!(gHitMarker & HITMARKER_FAINTED(gActiveBattler)))
{
- EmitReturnMonToBall(0, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitReturnMonToBall(0, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr++;
}
static void atk4C_getswitchedmondata(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- gBattlePartyID[gActiveBank] = *(gBattleStruct->monToSwitchIntoId + gActiveBank);
+ gBattlerPartyIndexes[gActiveBattler] = *(gBattleStruct->monToSwitchIntoId + gActiveBattler);
- EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlePartyID[gActiveBank]]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, gBitTable[gBattlerPartyIndexes[gActiveBattler]]);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
@@ -5263,72 +5257,72 @@ static void atk4D_switchindataupdate(void)
s32 i;
u8 *monData;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- oldData = gBattleMons[gActiveBank];
- monData = (u8*)(&gBattleMons[gActiveBank]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ oldData = gBattleMons[gActiveBattler];
+ monData = (u8*)(&gBattleMons[gActiveBattler]);
for (i = 0; i < sizeof(struct BattlePokemon); i++)
{
- monData[i] = gBattleBufferB[gActiveBank][4 + i];
+ monData[i] = gBattleBufferB[gActiveBattler][4 + i];
}
- gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
- gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
- gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility);
+ gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
+ gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
+ gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility);
// check knocked off item
- i = GetBankSide(gActiveBank);
- if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlePartyID[gActiveBank]])
+ i = GetBattlerSide(gActiveBattler);
+ if (gWishFutureKnock.knockedOffPokes[i] & gBitTable[gBattlerPartyIndexes[gActiveBattler]])
{
- gBattleMons[gActiveBank].item = 0;
+ gBattleMons[gActiveBattler].item = 0;
}
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
for (i = 0; i < BATTLE_STATS_NO; i++)
{
- gBattleMons[gActiveBank].statStages[i] = oldData.statStages[i];
+ gBattleMons[gActiveBattler].statStages[i] = oldData.statStages[i];
}
- gBattleMons[gActiveBank].status2 = oldData.status2;
+ gBattleMons[gActiveBattler].status2 = oldData.status2;
}
SwitchInClearSetData();
- if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp
- && gBattleMons[gActiveBank].hp != 0 && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP))
+ if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gBattleMons[gActiveBattler].maxHP / 2 >= gBattleMons[gActiveBattler].hp
+ && gBattleMons[gActiveBattler].hp != 0 && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP))
{
- gBattleStruct->field_92 |= gBitTable[gActiveBank];
+ gBattleStruct->field_92 |= gBitTable[gActiveBattler];
}
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]);
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]);
gBattlescriptCurrInstr += 2;
}
static void atk4E_switchinanim(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_x2000000
| BATTLE_TYPE_x4000000
| BATTLE_TYPE_FRONTIER)))
- HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), FLAG_SET_SEEN, gBattleMons[gActiveBank].personality);
+ HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality);
- gAbsentBankFlags &= ~(gBitTable[gActiveBank]);
+ gAbsentBattlerFlags &= ~(gBitTable[gActiveBattler]);
- EmitSwitchInAnim(0, gBattlePartyID[gActiveBank], gBattlescriptCurrInstr[2]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSwitchInAnim(0, gBattlerPartyIndexes[gActiveBattler], gBattlescriptCurrInstr[2]);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 3;
@@ -5343,11 +5337,11 @@ static void atk4F_jumpifcantswitch(void)
struct Pokemon *party = NULL;
s32 r7 = 0;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1] & ~(ATK4F_DONT_CHECK_STATUSES));
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1] & ~(ATK4F_DONT_CHECK_STATUSES));
if (!(gBattlescriptCurrInstr[1] & ATK4F_DONT_CHECK_STATUSES)
- && ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
- || (gStatuses3[gActiveBank] & STATUS3_ROOTED)))
+ && ((gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
+ || (gStatuses3[gActiveBattler] & STATUS3_ROOTED)))
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
}
@@ -5356,13 +5350,13 @@ static void atk4F_jumpifcantswitch(void)
#ifndef NONMATCHING
asm("":::"r5");
#endif // NONMATCHING
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
party = gEnemyParty;
else
party = gPlayerParty;
val = 0;
- if (2 & gActiveBank)
+ if (2 & gActiveBattler)
val = 3;
for (compareVar = val + 3; val < compareVar; val++)
@@ -5370,7 +5364,7 @@ static void atk4F_jumpifcantswitch(void)
if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[val], MON_DATA_IS_EGG)
&& GetMonData(&party[val], MON_DATA_HP) != 0
- && gBattlePartyID[gActiveBank] != val)
+ && gBattlerPartyIndexes[gActiveBattler] != val)
break;
}
@@ -5383,19 +5377,19 @@ static void atk4F_jumpifcantswitch(void)
{
if (gBattleTypeFlags & BATTLE_TYPE_x800000)
{
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
party = gPlayerParty;
val = 0;
- if (sub_806D82C(GetBankMultiplayerId(gActiveBank)) == TRUE)
+ if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
val = 3;
}
else
{
party = gEnemyParty;
- if (gActiveBank == 1)
+ if (gActiveBattler == 1)
val = 0;
else
val = 3;
@@ -5403,14 +5397,14 @@ static void atk4F_jumpifcantswitch(void)
}
else
{
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
party = gEnemyParty;
else
party = gPlayerParty;
val = 0;
- if (sub_806D82C(GetBankMultiplayerId(gActiveBank)) == TRUE)
+ if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
val = 3;
}
@@ -5419,7 +5413,7 @@ static void atk4F_jumpifcantswitch(void)
if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[val], MON_DATA_IS_EGG)
&& GetMonData(&party[val], MON_DATA_HP) != 0
- && gBattlePartyID[gActiveBank] != val)
+ && gBattlerPartyIndexes[gActiveBattler] != val)
break;
}
@@ -5428,12 +5422,12 @@ static void atk4F_jumpifcantswitch(void)
else
gBattlescriptCurrInstr += 6;
}
- else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
{
party = gEnemyParty;
val = 0;
- if (gActiveBank == 3)
+ if (gActiveBattler == 3)
val = 3;
for (compareVar = val + 3; val < compareVar; val++)
@@ -5441,7 +5435,7 @@ static void atk4F_jumpifcantswitch(void)
if (GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[val], MON_DATA_IS_EGG)
&& GetMonData(&party[val], MON_DATA_HP) != 0
- && gBattlePartyID[gActiveBank] != val)
+ && gBattlerPartyIndexes[gActiveBattler] != val)
break;
}
@@ -5452,12 +5446,12 @@ static void atk4F_jumpifcantswitch(void)
}
else
{
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
{
- r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- compareVar = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ compareVar = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
else
compareVar = r7;
@@ -5465,10 +5459,10 @@ static void atk4F_jumpifcantswitch(void)
}
else
{
- r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
- compareVar = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ compareVar = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
else
compareVar = r7;
@@ -5479,7 +5473,7 @@ static void atk4F_jumpifcantswitch(void)
if (GetMonData(&party[val], MON_DATA_HP) != 0
&& GetMonData(&party[val], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[val], MON_DATA_IS_EGG)
- && val != gBattlePartyID[r7] && val != gBattlePartyID[compareVar])
+ && val != gBattlerPartyIndexes[r7] && val != gBattlerPartyIndexes[compareVar])
break;
}
@@ -5492,12 +5486,12 @@ static void atk4F_jumpifcantswitch(void)
static void sub_804CF10(u8 arg0)
{
- *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
- gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
+ *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
+ gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
- EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBank]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitChoosePokemon(0, 1, arg0, 0, gBattleStruct->field_60[gActiveBattler]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
static void atk50_openpartyscreen(void)
@@ -5515,27 +5509,27 @@ static void atk50_openpartyscreen(void)
{
if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
+ if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
{
- if (sub_80423F4(gActiveBank, 6, 6))
+ if (sub_80423F4(gActiveBattler, 6, 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(6);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
}
else
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
}
@@ -5547,88 +5541,88 @@ static void atk50_openpartyscreen(void)
if (gBitTable[0] & hitmarkerFaintBits)
{
- gActiveBank = 0;
+ gActiveBattler = 0;
if (sub_80423F4(0, 6, 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[2]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
else
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
flags |= 1;
}
}
if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits))
{
- gActiveBank = 2;
+ gActiveBattler = 2;
if (sub_80423F4(2, 6, 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
else if (!(flags & 1))
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
if (gBitTable[1] & hitmarkerFaintBits)
{
- gActiveBank = 1;
+ gActiveBattler = 1;
if (sub_80423F4(1, 6, 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[3]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
else
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
flags |= 2;
}
}
if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits))
{
- gActiveBank = 3;
+ gActiveBattler = 3;
if (sub_80423F4(3, 6, 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
else if (!(flags & 2))
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
@@ -5638,13 +5632,13 @@ static void atk50_openpartyscreen(void)
flag40_2 = gSpecialStatuses[2].flag40;
if (!flag40_2 && hitmarkerFaintBits != 0)
{
- if (gAbsentBankFlags & gBitTable[0])
- gActiveBank = 2;
+ if (gAbsentBattlerFlags & gBitTable[0])
+ gActiveBattler = 2;
else
- gActiveBank = 0;
+ gActiveBattler = 0;
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
@@ -5654,13 +5648,13 @@ static void atk50_openpartyscreen(void)
flag40_3 = gSpecialStatuses[3].flag40;
if (!flag40_3 && hitmarkerFaintBits != 0)
{
- if (gAbsentBankFlags & gBitTable[1])
- gActiveBank = 3;
+ if (gAbsentBattlerFlags & gBitTable[1])
+ gActiveBattler = 3;
else
- gActiveBank = 1;
+ gActiveBattler = 1;
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
}
@@ -5675,34 +5669,34 @@ static void atk50_openpartyscreen(void)
hitmarkerFaintBits = gHitMarker >> 0x1C;
if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits)
{
- gActiveBank = 2;
+ gActiveBattler = 2;
if (sub_80423F4(2, gBattleBufferB[0][1], 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[0]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
}
if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1])
{
- gActiveBank = 3;
+ gActiveBattler = 3;
if (sub_80423F4(3, gBattleBufferB[1][1], 6))
{
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- EmitCmd42(0);
- MarkBufferBankForExecution(gActiveBank);
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ BtlController_EmitCmd42(0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
- else if (!gSpecialStatuses[gActiveBank].flag40)
+ else if (!gSpecialStatuses[gActiveBattler].flag40)
{
sub_804CF10(gBattleStruct->monToSwitchIntoId[1]);
- gSpecialStatuses[gActiveBank].flag40 = 1;
+ gSpecialStatuses[gActiveBattler].flag40 = 1;
}
}
gBattlescriptCurrInstr += 6;
@@ -5724,12 +5718,12 @@ static void atk50_openpartyscreen(void)
{
if (gBitTable[gBank1] & hitmarkerFaintBits)
break;
- if (gBank1 >= gNoOfAllBanks)
+ if (gBank1 >= gBattlersCount)
break;
gBank1++;
}
- if (gBank1 == gNoOfAllBanks)
+ if (gBank1 == gBattlersCount)
gBattlescriptCurrInstr = jumpPtr;
}
else
@@ -5746,45 +5740,45 @@ static void atk50_openpartyscreen(void)
}
else if (sub_80423F4(bank, 6, 6))
{
- gActiveBank = bank;
- gAbsentBankFlags |= gBitTable[gActiveBank];
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
+ gActiveBattler = bank;
+ gAbsentBattlerFlags |= gBitTable[gActiveBattler];
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
gBattlescriptCurrInstr = jumpPtr;
}
else
{
- gActiveBank = bank;
- *(gBattleStruct->field_58 + gActiveBank) = gBattlePartyID[gActiveBank];
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = 6;
- gBattleStruct->field_93 &= ~(gBitTable[gActiveBank]);
+ gActiveBattler = bank;
+ *(gBattleStruct->field_58 + gActiveBattler) = gBattlerPartyIndexes[gActiveBattler];
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
+ gBattleStruct->field_93 &= ~(gBitTable[gActiveBattler]);
- EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBank ^ 2)), 0, gBattleStruct->field_60[gActiveBank]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitChoosePokemon(0, hitmarkerFaintBits, *(gBattleStruct->monToSwitchIntoId + (gActiveBattler ^ 2)), 0, gBattleStruct->field_60[gActiveBattler]);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 6;
- if (GetBankIdentity(gActiveBank) == 0 && gBattleResults.playerSwitchesCounter < 0xFF)
+ if (GetBattlerPosition(gActiveBattler) == 0 && gBattleResults.playerSwitchesCounter < 0xFF)
gBattleResults.playerSwitchesCounter++;
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- if (gActiveBank != bank)
+ if (gActiveBattler != bank)
{
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
}
else
{
- gActiveBank = GetBankByIdentity(GetBankIdentity(bank) ^ BIT_SIDE);
- if (gAbsentBankFlags & gBitTable[gActiveBank])
- gActiveBank ^= BIT_MON;
+ gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(bank) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
+ gActiveBattler ^= BIT_FLANK;
- EmitLinkStandbyMsg(0, 2, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitLinkStandbyMsg(0, 2, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
}
@@ -5793,22 +5787,22 @@ static void atk50_openpartyscreen(void)
static void atk51_switchhandleorder(void)
{
s32 i;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
switch (gBattlescriptCurrInstr[2])
{
case 0:
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleBufferB[i][0] == 0x22)
{
*(gBattleStruct->monToSwitchIntoId + i) = gBattleBufferB[i][1];
if (!(gBattleStruct->field_93 & gBitTable[i]))
{
- RecordedBattle_SetBankAction(i, gBattleBufferB[i][1]);
+ RecordedBattle_SetBattlerAction(i, gBattleBufferB[i][1]);
gBattleStruct->field_93 |= gBitTable[i];
}
}
@@ -5816,40 +5810,40 @@ static void atk51_switchhandleorder(void)
break;
case 1:
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
- sub_803BDA0(gActiveBank);
+ sub_803BDA0(gActiveBattler);
break;
case 2:
- if (!(gBattleStruct->field_93 & gBitTable[gActiveBank]))
+ if (!(gBattleStruct->field_93 & gBitTable[gActiveBattler]))
{
- RecordedBattle_SetBankAction(gActiveBank, gBattleBufferB[gActiveBank][1]);
- gBattleStruct->field_93 |= gBitTable[gActiveBank];
+ RecordedBattle_SetBattlerAction(gActiveBattler, gBattleBufferB[gActiveBattler][1]);
+ gBattleStruct->field_93 |= gBitTable[gActiveBattler];
}
// fall through
case 3:
- gBattleCommunication[0] = gBattleBufferB[gActiveBank][1];
- *(gBattleStruct->monToSwitchIntoId + gActiveBank) = gBattleBufferB[gActiveBank][1];
+ gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1];
+ *(gBattleStruct->monToSwitchIntoId + gActiveBattler) = gBattleBufferB[gActiveBattler][1];
if (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF;
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
- *(gActiveBank * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBank][3];
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) &= 0xF;
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0);
+ *(gActiveBattler * 3 + (u8*)(gBattleStruct->field_60) + 1) = gBattleBufferB[gActiveBattler][3];
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0);
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
- *((gActiveBank ^ BIT_MON) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBank][3];
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) &= (0xF0);
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4;
+ *((gActiveBattler ^ BIT_FLANK) * 3 + (u8*)(gBattleStruct->field_60) + 2) = gBattleBufferB[gActiveBattler][3];
}
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
- sub_80571DC(gActiveBank, *(gBattleStruct->monToSwitchIntoId + gActiveBank));
+ sub_80571DC(gActiveBattler, *(gBattleStruct->monToSwitchIntoId + gActiveBattler));
}
else
{
- sub_803BDA0(gActiveBank);
+ sub_803BDA0(gActiveBattler);
}
- PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankAttacker].species)
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBank, gBattleBufferB[gActiveBank][1])
+ PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species)
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1])
break;
}
@@ -5861,31 +5855,31 @@ static void atk52_switchineffects(void)
{
s32 i;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- sub_803FA70(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ sub_803FA70(gActiveBattler);
- gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- gSpecialStatuses[gActiveBank].flag40 = 0;
+ gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler));
+ gSpecialStatuses[gActiveBattler].flag40 = 0;
- if (!(gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES_DAMAGED)
- && (gSideAffecting[GetBankSide(gActiveBank)] & SIDE_STATUS_SPIKES)
- && gBattleMons[gActiveBank].type1 != TYPE_FLYING
- && gBattleMons[gActiveBank].type2 != TYPE_FLYING
- && gBattleMons[gActiveBank].ability != ABILITY_LEVITATE)
+ if (!(gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES_DAMAGED)
+ && (gSideStatuses[GetBattlerSide(gActiveBattler)] & SIDE_STATUS_SPIKES)
+ && gBattleMons[gActiveBattler].type1 != TYPE_FLYING
+ && gBattleMons[gActiveBattler].type2 != TYPE_FLYING
+ && gBattleMons[gActiveBattler].ability != ABILITY_LEVITATE)
{
u8 spikesDmg;
- gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED;
+ gSideStatuses[GetBattlerSide(gActiveBattler)] |= SIDE_STATUS_SPIKES_DAMAGED;
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_DESTINY_BOND);
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_DESTINY_BOND);
gHitMarker &= ~(HITMARKER_DESTINYBOND);
- spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2;
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg);
+ spikesDmg = (5 - gSideTimers[GetBattlerSide(gActiveBattler)].spikesAmount) * 2;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / (spikesDmg);
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
BattleScriptPushCursor();
if (gBattlescriptCurrInstr[1] == BS_GET_TARGET)
@@ -5897,25 +5891,25 @@ static void atk52_switchineffects(void)
}
else
{
- if (gBattleMons[gActiveBank].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBank].truantUnknownBit)
- gDisableStructs[gActiveBank].truantCounter = 1;
+ if (gBattleMons[gActiveBattler].ability == ABILITY_TRUANT && !gDisableStructs[gActiveBattler].truantUnknownBit)
+ gDisableStructs[gActiveBattler].truantCounter = 1;
- gDisableStructs[gActiveBank].truantUnknownBit = 0;
+ gDisableStructs[gActiveBattler].truantUnknownBit = 0;
- if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBank, 0, 0, 0) == 0 &&
- ItemBattleEffects(0, gActiveBank, 0) == 0)
+ if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gActiveBattler, 0, 0, 0) == 0 &&
+ ItemBattleEffects(0, gActiveBattler, 0) == 0)
{
- gSideAffecting[GetBankSide(gActiveBank)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
+ gSideStatuses[GetBattlerSide(gActiveBattler)] &= ~(SIDE_STATUS_SPIKES_DAMAGED);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gActiveBank)
- gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER;
+ if (gBattleTurnOrder[i] == gActiveBattler)
+ gActionsByTurnOrder[i] = B_ACTION_CANCEL_PARTNER;
}
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(i)];
+ u16* hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(i)];
*hpOnSwitchout = gBattleMons[i].hp;
}
@@ -5926,9 +5920,9 @@ static void atk52_switchineffects(void)
gBank1++;
while (1)
{
- if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBankFlags & gBitTable[gBank1]))
+ if (hitmarkerFaintBits & gBitTable[gBank1] && !(gAbsentBattlerFlags & gBitTable[gBank1]))
break;
- if (gBank1 >= gNoOfAllBanks)
+ if (gBank1 >= gBattlersCount)
break;
gBank1++;
}
@@ -5940,54 +5934,54 @@ static void atk52_switchineffects(void)
static void atk53_trainerslidein(void)
{
- gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]);
- EmitTrainerSlide(0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]);
+ BtlController_EmitTrainerSlide(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
static void atk54_playse(void)
{
- gActiveBank = gBankAttacker;
- EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 3;
}
static void atk55_fanfare(void)
{
- gActiveBank = gBankAttacker;
- EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 3;
}
static void atk56_playfaintcry(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitFaintingCry(0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitFaintingCry(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
static void atk57(void)
{
- gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- EmitCmd55(0, gBattleOutcome);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ BtlController_EmitCmd55(0, gBattleOutcome);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 1;
}
static void atk58_returntoball(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitReturnMonToBall(0, 1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitReturnMonToBall(0, 1);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
@@ -6011,20 +6005,20 @@ static void atk59_handlelearnnewmove(void)
}
else
{
- gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
- if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId
- && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId
+ && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
- GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
+ GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
}
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON2);
- if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId
- && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
+ if (gBattlerPartyIndexes[gActiveBattler] == gBattleStruct->expGetterId
+ && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
- GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret);
+ GiveMoveToBattleMon(&gBattleMons[gActiveBattler], ret);
}
}
@@ -6034,7 +6028,7 @@ static void atk59_handlelearnnewmove(void)
static void atk5A_yesnoboxlearnmove(void)
{
- gActiveBank = 0;
+ gActiveBattler = 0;
switch (gBattleScripting.learnMoveState)
{
@@ -6107,7 +6101,7 @@ static void atk5A_yesnoboxlearnmove(void)
u16 moveId = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MOVE1 + movePosition);
if (IsHMMove2(moveId))
{
- PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBank);
+ PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBattler);
gBattleScripting.learnMoveState = 6;
}
else
@@ -6119,7 +6113,7 @@ static void atk5A_yesnoboxlearnmove(void)
RemoveMonPPBonus(&gPlayerParty[gBattleStruct->expGetterId], movePosition);
SetMonMoveSlot(&gPlayerParty[gBattleStruct->expGetterId], gMoveToLearn, movePosition);
- if (gBattlePartyID[0] == gBattleStruct->expGetterId
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId
&& !(gBattleMons[0].status2 & STATUS2_TRANSFORMED)
&& !(gDisableStructs[0].unk18_b & gBitTable[movePosition]))
{
@@ -6127,7 +6121,7 @@ static void atk5A_yesnoboxlearnmove(void)
SetBattleMonMoveSlot(&gBattleMons[0], gMoveToLearn, movePosition);
}
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && gBattlePartyID[2] == gBattleStruct->expGetterId
+ && gBattlerPartyIndexes[2] == gBattleStruct->expGetterId
&& !(gBattleMons[2].status2 & STATUS2_TRANSFORMED)
&& !(gDisableStructs[2].unk18_b & gBitTable[movePosition]))
{
@@ -6143,7 +6137,7 @@ static void atk5A_yesnoboxlearnmove(void)
gBattlescriptCurrInstr += 5;
break;
case 6:
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
gBattleScripting.learnMoveState = 2;
}
@@ -6200,16 +6194,16 @@ static void atk5B_yesnoboxstoplearningmove(void)
static void atk5C_hitanimation(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{
gBattlescriptCurrInstr += 2;
}
- else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0)
+ else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBattler].substituteHP == 0)
{
- EmitHitAnimation(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitHitAnimation(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
else
@@ -6226,7 +6220,7 @@ static u32 GetTrainerMoneyToGive(u16 trainerId)
if (trainerId == SECRET_BASE_OPPONENT)
{
- moneyReward = 20 * gBattleResources->secretBase->partyLevels[0] * gBattleStruct->moneyMultiplier;
+ moneyReward = 20 * gBattleResources->secretBase->party.levels[0] * gBattleStruct->moneyMultiplier;
}
else
{
@@ -6290,24 +6284,24 @@ static void atk5D_getmoneyreward(void)
static void atk5E(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
switch (gBattleCommunication[0])
{
case 0:
- EmitGetMonData(0, REQUEST_ALL_BATTLE, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitGetMonData(0, REQUEST_ALL_BATTLE, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleCommunication[0]++;
break;
case 1:
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
s32 i;
- struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBank][4];
+ struct BattlePokemon* bufferPoke = (struct BattlePokemon*) &gBattleBufferB[gActiveBattler][4];
for (i = 0; i < 4; i++)
{
- gBattleMons[gActiveBank].moves[i] = bufferPoke->moves[i];
- gBattleMons[gActiveBank].pp[i] = bufferPoke->pp[i];
+ gBattleMons[gActiveBattler].moves[i] = bufferPoke->moves[i];
+ gBattleMons[gActiveBattler].pp[i] = bufferPoke->pp[i];
}
gBattlescriptCurrInstr += 2;
}
@@ -6317,9 +6311,9 @@ static void atk5E(void)
static void atk5F(void)
{
- gActiveBank = gBankAttacker;
- gBankAttacker = gBankTarget;
- gBankTarget = gActiveBank;
+ gActiveBattler = gBattlerAttacker;
+ gBattlerAttacker = gBattlerTarget;
+ gBattlerTarget = gActiveBattler;
if (gHitMarker & HITMARKER_PURSUIT_TRAP)
gHitMarker &= ~(HITMARKER_PURSUIT_TRAP);
@@ -6331,7 +6325,7 @@ static void atk5F(void)
static void atk60_incrementgamestat(void)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
IncrementGameStat(gBattlescriptCurrInstr[1]);
gBattlescriptCurrInstr += 2;
@@ -6343,12 +6337,12 @@ static void atk61_drawpartystatussummary(void)
struct Pokemon* party;
struct HpAndStatus hpStatuses[6];
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -6368,17 +6362,17 @@ static void atk61_drawpartystatussummary(void)
}
}
- EmitDrawPartyStatusSummary(0, hpStatuses, 1);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitDrawPartyStatusSummary(0, hpStatuses, 1);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
static void atk62(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitCmd49(0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitCmd49(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
@@ -6395,15 +6389,15 @@ static void atk63_jumptorandomattack(void)
static void atk64_statusanimation(void)
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
- && gDisableStructs[gActiveBank].substituteHP == 0
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE)
+ && gDisableStructs[gActiveBattler].substituteHP == 0
&& !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
- EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitStatusAnimation(0, FALSE, gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr += 2;
}
@@ -6413,16 +6407,16 @@ static void atk65_status2animation(void)
{
u32 wantedToAnimate;
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
wantedToAnimate = BSScriptRead32(gBattlescriptCurrInstr + 2);
- if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
- && gDisableStructs[gActiveBank].substituteHP == 0
+ if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE)
+ && gDisableStructs[gActiveBattler].substituteHP == 0
&& !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
- EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBank].status2 & wantedToAnimate);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitStatusAnimation(0, TRUE, gBattleMons[gActiveBattler].status2 & wantedToAnimate);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr += 6;
}
@@ -6432,16 +6426,16 @@ static void atk66_chosenstatusanimation(void)
{
u32 wantedStatus;
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
wantedStatus = BSScriptRead32(gBattlescriptCurrInstr + 3);
- if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
- && gDisableStructs[gActiveBank].substituteHP == 0
+ if (!(gStatuses3[gActiveBattler] & STATUS3_SEMI_INVULNERABLE)
+ && gDisableStructs[gActiveBattler].substituteHP == 0
&& !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
- EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitStatusAnimation(0, gBattlescriptCurrInstr[2], wantedStatus);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr += 7;
}
@@ -6494,8 +6488,8 @@ static void atk68_cancelallactions(void)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
- gActionsByTurnOrder[i] = ACTION_CANCEL_PARTNER;
+ for (i = 0; i < gBattlersCount; i++)
+ gActionsByTurnOrder[i] = B_ACTION_CANCEL_PARTNER;
gBattlescriptCurrInstr++;
}
@@ -6504,42 +6498,42 @@ static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no ra
{
u8 holdEffect, quality;
- if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- holdEffect = gEnigmaBerries[gBankTarget].holdEffect, quality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect, quality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- quality = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ quality = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
- gStringBank = gBankTarget;
+ gStringBattler = gBattlerTarget;
if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < quality)
{
- RecordItemEffectBattle(gBankTarget, holdEffect);
- gSpecialStatuses[gBankTarget].focusBanded = 1;
+ RecordItemEffectBattle(gBattlerTarget, holdEffect);
+ gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
- if (gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE)
goto END;
- if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBankTarget].endured
- && !gSpecialStatuses[gBankTarget].focusBanded)
+ if (gBattleMoves[gCurrentMove].effect != EFFECT_FALSE_SWIPE && !gProtectStructs[gBattlerTarget].endured
+ && !gSpecialStatuses[gBattlerTarget].focusBanded)
goto END;
- if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
+ if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage)
goto END;
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1;
- if (gProtectStructs[gBankTarget].endured)
+ if (gProtectStructs[gBattlerTarget].endured)
{
- gBattleMoveFlags |= MOVESTATUS_ENDURED;
+ gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
}
- else if (gSpecialStatuses[gBankTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
- gBattleMoveFlags |= MOVESTATUS_HUNGON;
- gLastUsedItem = gBattleMons[gBankTarget].item;
+ gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
}
END:
@@ -6550,21 +6544,21 @@ static void atk6A_removeitem(void)
{
u16* usedHeldItem;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank];
- *usedHeldItem = gBattleMons[gActiveBank].item;
- gBattleMons[gActiveBank].item = 0;
+ usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler];
+ *usedHeldItem = gBattleMons[gActiveBattler].item;
+ gBattleMons[gActiveBattler].item = 0;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
static void atk6B_atknameinbuff1(void)
{
- PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker])
+ PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker])
gBattlescriptCurrInstr++;
}
@@ -6835,9 +6829,9 @@ static void SpriteCB_MonIconOnLvlUpBox(struct Sprite* sprite)
static bool32 IsMonGettingExpSentOut(void)
{
- if (gBattlePartyID[0] == gBattleStruct->expGetterId)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId)
return TRUE;
- if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlePartyID[2] == gBattleStruct->expGetterId)
+ if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && gBattlerPartyIndexes[2] == gBattleStruct->expGetterId)
return TRUE;
return FALSE;
@@ -6851,23 +6845,23 @@ static void atk6D_resetsentmonsvalue(void)
static void atk6E_setatktoplayer0(void)
{
- gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerAttacker = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
gBattlescriptCurrInstr++;
}
static void atk6F_makevisible(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitSpriteInvisibility(0, FALSE);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitSpriteInvisibility(0, FALSE);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
static void atk70_recordlastability(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- RecordAbilityBattle(gActiveBank, gLastUsedAbility);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
gBattlescriptCurrInstr += 1; // UB: Should be + 2, one byte for command and one byte for bank argument.
}
@@ -6897,8 +6891,8 @@ static void atk73_hpthresholds(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- opposingBank = gActiveBank ^ BIT_SIDE;
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ opposingBank = gActiveBattler ^ BIT_SIDE;
result = gBattleMons[opposingBank].hp * 100 / gBattleMons[opposingBank].maxHP;
if (result == 0)
@@ -6925,9 +6919,9 @@ static void atk74_hpthresholds2(void)
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- opposingBank = gActiveBank ^ BIT_SIDE;
- hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBankSide(opposingBank));
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ opposingBank = gActiveBattler ^ BIT_SIDE;
+ hpSwitchout = *(gBattleStruct->hpOnSwitchout + GetBattlerSide(opposingBank));
result = (hpSwitchout - gBattleMons[opposingBank].hp) * 100 / hpSwitchout;
if (gBattleMons[opposingBank].hp >= hpSwitchout)
@@ -6945,8 +6939,8 @@ static void atk74_hpthresholds2(void)
static void atk75_useitemonopponent(void)
{
- gBankInMenu = gBankAttacker;
- ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1);
+ gBankInMenu = gBattlerAttacker;
+ ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
gBattlescriptCurrInstr += 1;
}
@@ -6956,52 +6950,52 @@ static void atk76_various(void)
u8 side;
s32 i;
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
switch (gBattlescriptCurrInstr[2])
{
case VARIOUS_CANCEL_MULTI_TURN_MOVES:
- CancelMultiTurnMoves(gActiveBank);
+ CancelMultiTurnMoves(gActiveBattler);
break;
case VARIOUS_SET_MAGIC_COAT_TARGET:
- gBankAttacker = gBankTarget;
- side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ gBattlerAttacker = gBattlerTarget;
+ side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0)
- gBankTarget = gSideTimers[side].followmeTarget;
+ gBattlerTarget = gSideTimers[side].followmeTarget;
else
- gBankTarget = gActiveBank;
+ gBattlerTarget = gActiveBattler;
break;
case VARIOUS_IS_RUNNING_IMPOSSIBLE:
gBattleCommunication[0] = IsRunningFromBattleImpossible();
break;
case VARIOUS_GET_MOVE_TARGET:
- gBankTarget = GetMoveTarget(gCurrentMove, 0);
+ gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
break;
case 4:
- if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
+ if (gHitMarker & HITMARKER_FAINTED(gActiveBattler))
gBattleCommunication[0] = 1;
else
gBattleCommunication[0] = 0;
break;
case VARIOUS_RESET_INTIMIDATE_TRACE_BITS:
- gSpecialStatuses[gActiveBank].intimidatedPoke = 0;
- gSpecialStatuses[gActiveBank].traced = 0;
+ gSpecialStatuses[gActiveBattler].intimidatedPoke = 0;
+ gSpecialStatuses[gActiveBattler].traced = 0;
break;
case VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP:
- if (gBattlePartyID[0] == gBattleStruct->expGetterId || gBattlePartyID[2] == gBattleStruct->expGetterId)
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId || gBattlerPartyIndexes[2] == gBattleStruct->expGetterId)
{
u16 *choicedMove;
- if (gBattlePartyID[0] == gBattleStruct->expGetterId)
- gActiveBank = 0;
+ if (gBattlerPartyIndexes[0] == gBattleStruct->expGetterId)
+ gActiveBattler = 0;
else
- gActiveBank = 2;
+ gActiveBattler = 2;
- choicedMove = &gBattleStruct->choicedMove[gActiveBank];
+ choicedMove = &gBattleStruct->choicedMove[gActiveBattler];
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gActiveBank].moves[i] == *choicedMove)
+ if (gBattleMons[gActiveBattler].moves[i] == *choicedMove)
break;
}
if (i == 4)
@@ -7019,15 +7013,15 @@ static void atk76_various(void)
break;
case 8:
gBattleCommunication[0] = 0;
- gBattleScripting.bank = gActiveBank = gBattleCommunication[1];
- if (!(gBattleStruct->field_92 & gBitTable[gActiveBank])
- && gBattleMons[gActiveBank].maxHP / 2 >= gBattleMons[gActiveBank].hp
- && gBattleMons[gActiveBank].hp != 0
- && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP))
+ gBattleScripting.battler = gActiveBattler = gBattleCommunication[1];
+ if (!(gBattleStruct->field_92 & gBitTable[gActiveBattler])
+ && gBattleMons[gActiveBattler].maxHP / 2 >= gBattleMons[gActiveBattler].hp
+ && gBattleMons[gActiveBattler].hp != 0
+ && !(gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP))
{
- gBattleStruct->field_92 |= gBitTable[gActiveBank];
+ gBattleStruct->field_92 |= gBitTable[gActiveBattler];
gBattleCommunication[0] = 1;
- gBattleCommunication[MULTISTRING_CHOOSER] = sUnknown_0831C4F8[GetNatureFromPersonality(gBattleMons[gActiveBank].personality)];
+ gBattleCommunication[MULTISTRING_CHOOSER] = sUnknown_0831C4F8[GetNatureFromPersonality(gBattleMons[gActiveBattler].personality)];
}
break;
case 9:
@@ -7040,14 +7034,14 @@ static void atk76_various(void)
case 10:
gBattleMons[1].hp = 0;
gHitMarker |= HITMARKER_FAINTED(1);
- gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]];
+ gBattleStruct->field_2A1 |= gBitTable[gBattlerPartyIndexes[1]];
gDisableStructs[1].truantUnknownBit = 1;
break;
case 11:
gBattleMons[0].hp = 0;
gHitMarker |= HITMARKER_FAINTED(0);
gHitMarker |= HITMARKER_x400000;
- gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]];
+ gBattleStruct->field_2A0 |= gBitTable[gBattlerPartyIndexes[0]];
gDisableStructs[0].truantUnknownBit = 1;
break;
case 12:
@@ -7056,14 +7050,14 @@ static void atk76_various(void)
gHitMarker |= HITMARKER_FAINTED(0);
gHitMarker |= HITMARKER_FAINTED(1);
gHitMarker |= HITMARKER_x400000;
- gBattleStruct->field_2A0 |= gBitTable[gBattlePartyID[0]];
- gBattleStruct->field_2A1 |= gBitTable[gBattlePartyID[1]];
+ gBattleStruct->field_2A0 |= gBitTable[gBattlerPartyIndexes[0]];
+ gBattleStruct->field_2A1 |= gBitTable[gBattlerPartyIndexes[1]];
gDisableStructs[0].truantUnknownBit = 1;
gDisableStructs[1].truantUnknownBit = 1;
break;
case VARIOUS_EMIT_YESNOBOX:
- EmitUnknownYesNoBox(0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitUnknownYesNoBox(0);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
case 14:
sub_81A5BF8();
@@ -7084,21 +7078,21 @@ static void atk76_various(void)
return;
break;
case VARIOUS_RETURN_OPPONENT_MON1:
- gActiveBank = 1;
- if (gBattleMons[gActiveBank].hp != 0)
+ gActiveBattler = 1;
+ if (gBattleMons[gActiveBattler].hp != 0)
{
- EmitReturnMonToBall(0, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitReturnMonToBall(0, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
break;
case VARIOUS_RETURN_OPPONENT_MON2:
- if (gNoOfAllBanks > 3)
+ if (gBattlersCount > 3)
{
- gActiveBank = 3;
- if (gBattleMons[gActiveBank].hp != 0)
+ gActiveBattler = 3;
+ if (gBattleMons[gActiveBattler].hp != 0)
{
- EmitReturnMonToBall(0, 0);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitReturnMonToBall(0, 0);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
break;
@@ -7109,21 +7103,21 @@ static void atk76_various(void)
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
break;
case 23:
- gBattleStruct->field_2A2 |= gBitTable[gActiveBank];
+ gBattleStruct->field_2A2 |= gBitTable[gActiveBattler];
break;
case 24:
- if (sub_805725C(gActiveBank))
+ if (sub_805725C(gActiveBattler))
return;
break;
case VARIOUS_SET_TELEPORT_OUTCOME:
- if (GetBankSide(gActiveBank) == SIDE_PLAYER)
- gBattleOutcome = BATTLE_PLAYER_TELEPORTED;
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
+ gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED;
else
- gBattleOutcome = BATTLE_OPPONENT_TELEPORTED;
+ gBattleOutcome = B_OUTCOME_POKE_TELEPORTED;
break;
case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC:
- EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitPlayFanfareOrBGM(0, MUS_KACHI1, TRUE);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
}
@@ -7133,33 +7127,33 @@ static void atk76_various(void)
static void atk77_setprotectlike(void) // protect and endure
{
bool8 notLastTurn = TRUE;
- u16 lastMove = gLastResultingMoves[gBankAttacker];
+ u16 lastMove = gLastResultingMoves[gBattlerAttacker];
if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE)
- gDisableStructs[gBankAttacker].protectUses = 0;
+ gDisableStructs[gBattlerAttacker].protectUses = 0;
- if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1))
+ if (gCurrentTurnActionNumber == (gBattlersCount - 1))
notLastTurn = FALSE;
- if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] >= Random() && notLastTurn)
+ if (sProtectSuccessRates[gDisableStructs[gBattlerAttacker].protectUses] >= Random() && notLastTurn)
{
if (gBattleMoves[gCurrentMove].effect == EFFECT_PROTECT)
{
- gProtectStructs[gBankAttacker].protected = 1;
+ gProtectStructs[gBattlerAttacker].protected = 1;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
if (gBattleMoves[gCurrentMove].effect == EFFECT_ENDURE)
{
- gProtectStructs[gBankAttacker].endured = 1;
+ gProtectStructs[gBattlerAttacker].endured = 1;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
- gDisableStructs[gBankAttacker].protectUses++;
+ gDisableStructs[gBattlerAttacker].protectUses++;
}
else
{
- gDisableStructs[gBankAttacker].protectUses = 0;
+ gDisableStructs[gBattlerAttacker].protectUses = 0;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
}
gBattlescriptCurrInstr++;
@@ -7167,48 +7161,48 @@ static void atk77_setprotectlike(void) // protect and endure
static void atk78_faintifabilitynotdamp(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++)
+ for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++)
{
- if (gBattleMons[gBankTarget].ability == ABILITY_DAMP)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_DAMP)
break;
}
- if (gBankTarget == gNoOfAllBanks)
+ if (gBattlerTarget == gBattlersCount)
{
- gActiveBank = gBankAttacker;
- gBattleMoveDamage = gBattleMons[gActiveBank].hp;
- EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].hp;
+ BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr++;
- for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++)
+ for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++)
{
- if (gBankTarget == gBankAttacker)
+ if (gBattlerTarget == gBattlerAttacker)
continue;
- if (!(gAbsentBankFlags & gBitTable[gBankTarget]))
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget]))
break;
}
}
else
{
gLastUsedAbility = ABILITY_DAMP;
- RecordAbilityBattle(gBankTarget, gBattleMons[gBankTarget].ability);
+ RecordAbilityBattle(gBattlerTarget, gBattleMons[gBattlerTarget].ability);
gBattlescriptCurrInstr = BattleScript_DampStopsExplosion;
}
}
static void atk79_setatkhptozero(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = gBankAttacker;
- gBattleMons[gActiveBank].hp = 0;
- EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ gBattleMons[gActiveBattler].hp = 0;
+ BtlController_EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBattler].hp);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr++;
}
@@ -7219,15 +7213,15 @@ static void atk7A_jumpifnexttargetvalid(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- for (gBankTarget++; ; gBankTarget++)
+ for (gBattlerTarget++; ; gBattlerTarget++)
{
- if (gBankTarget == gBankAttacker)
+ if (gBattlerTarget == gBattlerAttacker)
continue;
- if (!(gAbsentBankFlags & gBitTable[gBankTarget]))
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget]))
break;
}
- if (gBankTarget >= gNoOfAllBanks)
+ if (gBattlerTarget >= gBattlersCount)
gBattlescriptCurrInstr += 5;
else
gBattlescriptCurrInstr = jumpPtr;
@@ -7243,14 +7237,14 @@ static void atk7B_tryhealhalfhealth(void)
const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
if (gBattlescriptCurrInstr[5] == BS_GET_ATTACKER)
- gBankTarget = gBankAttacker;
+ gBattlerTarget = gBattlerAttacker;
- gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
+ if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP)
gBattlescriptCurrInstr = failPtr;
else
gBattlescriptCurrInstr += 6;
@@ -7266,12 +7260,12 @@ static void atk7C_trymirrormove(void)
for (i = 0; i < 3; i++)
movesArray[i] = 0;
- for (validMovesCount = 0, i = 0; i < gNoOfAllBanks; i++)
+ for (validMovesCount = 0, i = 0; i < gBattlersCount; i++)
{
- if (i != gBankAttacker)
+ if (i != gBattlerAttacker)
{
- move = *(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0)
- | (*(i * 2 + gBankAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8);
+ move = *(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0)
+ | (*(i * 2 + gBattlerAttacker * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) << 8);
if (move != 0 && move != 0xFFFF)
{
@@ -7281,14 +7275,14 @@ static void atk7C_trymirrormove(void)
}
}
- move = *(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 0)
- | (*(gBattleStruct->mirrorMoves + gBankAttacker * 2 + 1) << 8);
+ move = *(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 0)
+ | (*(gBattleStruct->mirrorMoves + gBattlerAttacker * 2 + 1) << 8);
if (move != 0 && move != 0xFFFF)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = move;
- gBankTarget = GetMoveTarget(gCurrentMove, 0);
+ gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
}
else if (validMovesCount)
@@ -7296,12 +7290,12 @@ static void atk7C_trymirrormove(void)
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
i = Random() % validMovesCount;
gCurrentMove = movesArray[i];
- gBankTarget = GetMoveTarget(gCurrentMove, 0);
+ gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
}
else
{
- gSpecialStatuses[gBankAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
gBattlescriptCurrInstr++;
}
}
@@ -7310,7 +7304,7 @@ static void atk7D_setrain(void)
{
if (gBattleWeather & WEATHER_RAIN_ANY)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
else
@@ -7324,16 +7318,16 @@ static void atk7D_setrain(void)
static void atk7E_setreflect(void)
{
- if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_REFLECT)
+ if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_REFLECT)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_REFLECT;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectTimer = 5;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].reflectBank = gBankAttacker;
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_REFLECT;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectTimer = 5;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].reflectBank = gBattlerAttacker;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
@@ -7345,20 +7339,20 @@ static void atk7E_setreflect(void)
static void atk7F_setseeded(void)
{
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT || gStatuses3[gBankTarget] & STATUS3_LEECHSEED)
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
- else if (gBattleMons[gBankTarget].type1 == TYPE_GRASS || gBattleMons[gBankTarget].type2 == TYPE_GRASS)
+ else if (gBattleMons[gBattlerTarget].type1 == TYPE_GRASS || gBattleMons[gBattlerTarget].type2 == TYPE_GRASS)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
else
{
- gStatuses3[gBankTarget] |= gBankAttacker;
- gStatuses3[gBankTarget] |= STATUS3_LEECHSEED;
+ gStatuses3[gBattlerTarget] |= gBattlerAttacker;
+ gStatuses3[gBattlerTarget] |= STATUS3_LEECHSEED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
@@ -7376,8 +7370,8 @@ static void atk80_manipulatedamage(void)
gBattleMoveDamage /= 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- if ((gBattleMons[gBankTarget].maxHP / 2) < gBattleMoveDamage)
- gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2;
+ if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage)
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2;
break;
case ATK80_DMG_DOUBLED:
gBattleMoveDamage *= 2;
@@ -7390,23 +7384,23 @@ static void atk80_manipulatedamage(void)
static void atk81_trysetrest(void)
{
const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- gActiveBank = gBankTarget = gBankAttacker;
- gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1);
+ gActiveBattler = gBattlerTarget = gBattlerAttacker;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1);
- if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
+ if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP)
{
gBattlescriptCurrInstr = failJump;
}
else
{
- if (gBattleMons[gBankTarget].status1 & ((u8)(~STATUS_SLEEP)))
+ if (gBattleMons[gBattlerTarget].status1 & ((u8)(~STATUS1_SLEEP)))
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- gBattleMons[gBankTarget].status1 = 3;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gBattleMons[gBattlerTarget].status1 = 3;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 5;
}
}
@@ -7415,7 +7409,7 @@ static void atk82_jumpifnotfirstturn(void)
{
const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- if (gDisableStructs[gBankAttacker].isFirstTurn)
+ if (gDisableStructs[gBattlerAttacker].isFirstTurn)
gBattlescriptCurrInstr += 5;
else
gBattlescriptCurrInstr = failJump;
@@ -7430,16 +7424,16 @@ bool8 UproarWakeUpCheck(u8 bank)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || gBattleMons[bank].ability == ABILITY_SOUNDPROOF)
continue;
- gBattleScripting.bank = i;
+ gBattleScripting.battler = i;
- if (gBankTarget == 0xFF)
- gBankTarget = i;
- else if (gBankTarget == i)
+ if (gBattlerTarget == 0xFF)
+ gBattlerTarget = i;
+ else if (gBattlerTarget == i)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -7447,7 +7441,7 @@ bool8 UproarWakeUpCheck(u8 bank)
break;
}
- if (i == gNoOfAllBanks)
+ if (i == gBattlersCount)
return FALSE;
else
return TRUE;
@@ -7457,17 +7451,17 @@ static void atk84_jumpifcantmakeasleep(void)
{
const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- if (UproarWakeUpCheck(gBankTarget))
+ if (UproarWakeUpCheck(gBattlerTarget))
{
gBattlescriptCurrInstr = jumpPtr;
}
- else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA
- || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT)
+ else if (gBattleMons[gBattlerTarget].ability == ABILITY_INSOMNIA
+ || gBattleMons[gBattlerTarget].ability == ABILITY_VITAL_SPIRIT)
{
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
gBattlescriptCurrInstr = jumpPtr;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else
{
@@ -7477,16 +7471,16 @@ static void atk84_jumpifcantmakeasleep(void)
static void atk85_stockpile(void)
{
- if (gDisableStructs[gBankAttacker].stockpileCounter == 3)
+ if (gDisableStructs[gBattlerAttacker].stockpileCounter == 3)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gDisableStructs[gBankAttacker].stockpileCounter++;
+ gDisableStructs[gBattlerAttacker].stockpileCounter++;
- PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBankAttacker].stockpileCounter)
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gBattlerAttacker].stockpileCounter)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
@@ -7496,7 +7490,7 @@ static void atk85_stockpile(void)
static void atk86_stockpiletobasedamage(void)
{
const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
+ if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jumpPtr;
}
@@ -7504,17 +7498,17 @@ static void atk86_stockpiletobasedamage(void)
{
if (gBattleCommunication[6] != 1)
{
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove,
- gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0,
- 0, gBankAttacker, gBankTarget)
- * gDisableStructs[gBankAttacker].stockpileCounter;
- gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0,
+ 0, gBattlerAttacker, gBattlerTarget)
+ * gDisableStructs[gBattlerAttacker].stockpileCounter;
+ gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter;
- if (gProtectStructs[gBankAttacker].helpingHand)
+ if (gProtectStructs[gBattlerAttacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
}
- gDisableStructs[gBankAttacker].stockpileCounter = 0;
+ gDisableStructs[gBattlerAttacker].stockpileCounter = 0;
gBattlescriptCurrInstr += 5;
}
}
@@ -7523,30 +7517,30 @@ static void atk87_stockpiletohpheal(void)
{
const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
+ if (gDisableStructs[gBattlerAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jumpPtr;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
- else if (gBattleMons[gBankAttacker].maxHP == gBattleMons[gBankAttacker].hp)
+ else if (gBattleMons[gBattlerAttacker].maxHP == gBattleMons[gBattlerAttacker].hp)
{
- gDisableStructs[gBankAttacker].stockpileCounter = 0;
+ gDisableStructs[gBattlerAttacker].stockpileCounter = 0;
gBattlescriptCurrInstr = jumpPtr;
- gBankTarget = gBankAttacker;
+ gBattlerTarget = gBattlerAttacker;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / (1 << (3 - gDisableStructs[gBankAttacker].stockpileCounter));
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter));
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- gBattleScripting.animTurn = gDisableStructs[gBankAttacker].stockpileCounter;
- gDisableStructs[gBankAttacker].stockpileCounter = 0;
+ gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter;
+ gDisableStructs[gBattlerAttacker].stockpileCounter = 0;
gBattlescriptCurrInstr += 5;
- gBankTarget = gBankAttacker;
+ gBattlerTarget = gBattlerAttacker;
}
}
@@ -7566,9 +7560,9 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
u32 index;
if (flags & MOVE_EFFECT_AFFECTS_USER)
- gActiveBank = gBankAttacker;
+ gActiveBattler = gBattlerAttacker;
else
- gActiveBank = gBankTarget;
+ gActiveBattler = gBattlerTarget;
flags &= ~(MOVE_EFFECT_AFFECTS_USER);
@@ -7584,21 +7578,21 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
if ((statValue << 0x18) < 0) // stat decrease
{
- if (gSideTimers[GET_BANK_SIDE(gActiveBank)].mistTimer
+ if (gSideTimers[GET_BATTLER_SIDE(gActiveBattler)].mistTimer
&& !certain && gCurrentMove != MOVE_CURSE)
{
if (flags == STAT_CHANGE_BS_PTR)
{
- if (gSpecialStatuses[gActiveBank].statLowered)
+ if (gSpecialStatuses[gActiveBattler].statLowered)
{
gBattlescriptCurrInstr = BS_ptr;
}
else
{
BattleScriptPush(BS_ptr);
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
gBattlescriptCurrInstr = BattleScript_MistProtected;
- gSpecialStatuses[gActiveBank].statLowered = 1;
+ gSpecialStatuses[gActiveBattler].statLowered = 1;
}
}
return STAT_CHANGE_DIDNT_WORK;
@@ -7609,55 +7603,55 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
gBattlescriptCurrInstr = BattleScript_ButItFailed;
return STAT_CHANGE_DIDNT_WORK;
}
- else if ((gBattleMons[gActiveBank].ability == ABILITY_CLEAR_BODY
- || gBattleMons[gActiveBank].ability == ABILITY_WHITE_SMOKE)
+ else if ((gBattleMons[gActiveBattler].ability == ABILITY_CLEAR_BODY
+ || gBattleMons[gActiveBattler].ability == ABILITY_WHITE_SMOKE)
&& !certain && gCurrentMove != MOVE_CURSE)
{
if (flags == STAT_CHANGE_BS_PTR)
{
- if (gSpecialStatuses[gActiveBank].statLowered)
+ if (gSpecialStatuses[gActiveBattler].statLowered)
{
gBattlescriptCurrInstr = BS_ptr;
}
else
{
BattleScriptPush(BS_ptr);
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
- RecordAbilityBattle(gActiveBank, gLastUsedAbility);
- gSpecialStatuses[gActiveBank].statLowered = 1;
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
+ RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
+ gSpecialStatuses[gActiveBattler].statLowered = 1;
}
}
return STAT_CHANGE_DIDNT_WORK;
}
- else if (gBattleMons[gActiveBank].ability == ABILITY_KEEN_EYE
+ else if (gBattleMons[gActiveBattler].ability == ABILITY_KEEN_EYE
&& !certain && statId == STAT_STAGE_ACC)
{
if (flags == STAT_CHANGE_BS_PTR)
{
BattleScriptPush(BS_ptr);
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
- RecordAbilityBattle(gActiveBank, gLastUsedAbility);
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
+ RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
}
return STAT_CHANGE_DIDNT_WORK;
}
- else if (gBattleMons[gActiveBank].ability == ABILITY_HYPER_CUTTER
+ else if (gBattleMons[gActiveBattler].ability == ABILITY_HYPER_CUTTER
&& !certain && statId == STAT_STAGE_ATK)
{
if (flags == STAT_CHANGE_BS_PTR)
{
BattleScriptPush(BS_ptr);
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
- RecordAbilityBattle(gActiveBank, gLastUsedAbility);
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
+ RecordAbilityBattle(gActiveBattler, gLastUsedAbility);
}
return STAT_CHANGE_DIDNT_WORK;
}
- else if (gBattleMons[gActiveBank].ability == ABILITY_SHIELD_DUST && flags == 0)
+ else if (gBattleMons[gActiveBattler].ability == ABILITY_SHIELD_DUST && flags == 0)
{
return STAT_CHANGE_DIDNT_WORK;
}
@@ -7681,10 +7675,10 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
index++;
gBattleTextBuff2[index] = B_BUFF_EOS;
- if (gBattleMons[gActiveBank].statStages[statId] == 0)
+ if (gBattleMons[gActiveBattler].statStages[statId] == 0)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else
- gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank);
+ gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler);
}
}
@@ -7708,20 +7702,20 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr)
index++;
gBattleTextBuff2[index] = B_BUFF_EOS;
- if (gBattleMons[gActiveBank].statStages[statId] == 0xC)
+ if (gBattleMons[gActiveBattler].statStages[statId] == 0xC)
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
else
- gBattleCommunication[MULTISTRING_CHOOSER] = (gBankTarget == gActiveBank);
+ gBattleCommunication[MULTISTRING_CHOOSER] = (gBattlerTarget == gActiveBattler);
}
- gBattleMons[gActiveBank].statStages[statId] += statValue;
- if (gBattleMons[gActiveBank].statStages[statId] < 0)
- gBattleMons[gActiveBank].statStages[statId] = 0;
- if (gBattleMons[gActiveBank].statStages[statId] > 0xC)
- gBattleMons[gActiveBank].statStages[statId] = 0xC;
+ gBattleMons[gActiveBattler].statStages[statId] += statValue;
+ if (gBattleMons[gActiveBattler].statStages[statId] < 0)
+ gBattleMons[gActiveBattler].statStages[statId] = 0;
+ if (gBattleMons[gActiveBattler].statStages[statId] > 0xC)
+ gBattleMons[gActiveBattler].statStages[statId] = 0xC;
if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && flags & STAT_CHANGE_BS_PTR)
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
if (gBattleCommunication[MULTISTRING_CHOOSER] == 2 && !(flags & STAT_CHANGE_BS_PTR))
return STAT_CHANGE_DIDNT_WORK;
@@ -7740,7 +7734,7 @@ static void atk8A_normalisebuffs(void) // haze
{
s32 i, j;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
for (j = 0; j < BATTLE_STATS_NO; j++)
gBattleMons[i].statStages[j] = 6;
@@ -7751,17 +7745,17 @@ static void atk8A_normalisebuffs(void) // haze
static void atk8B_setbide(void)
{
- gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMoves[gBankAttacker] = gCurrentMove;
- gTakenDmg[gBankAttacker] = 0;
- gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS;
+ gLockedMoves[gBattlerAttacker] = gCurrentMove;
+ gTakenDmg[gBattlerAttacker] = 0;
+ gBattleMons[gBattlerAttacker].status2 |= (STATUS2_BIDE - 0x100); // 2 turns
gBattlescriptCurrInstr++;
}
static void atk8C_confuseifrepeatingattackends(void)
{
- if (!(gBattleMons[gBankAttacker].status2 & STATUS2_LOCK_CONFUSE))
+ if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE))
gBattleCommunication[MOVE_EFFECT_BYTE] = (MOVE_EFFECT_THRASH | MOVE_EFFECT_AFFECTS_USER);
gBattlescriptCurrInstr++;
@@ -7794,19 +7788,19 @@ static void atk8E_initmultihitstring(void)
static bool8 TryDoForceSwitchOut(void)
{
- if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
+ if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
{
- *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget];
+ *(gBattleStruct->field_58 + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget];
}
else
{
u16 random = Random() & 0xFF;
- if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4))
+ if ((u32)((random * (gBattleMons[gBattlerAttacker].level + gBattleMons[gBattlerTarget].level) >> 8) + 1) <= (gBattleMons[gBattlerTarget].level / 4))
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
return FALSE;
}
- *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget];
+ *(gBattleStruct->field_58 + gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget];
}
gBattlescriptCurrInstr = BattleScript_SuccessForceOut;
@@ -7833,7 +7827,7 @@ static void atk8F_forcerandomswitch(void)
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER))
{
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -7842,7 +7836,7 @@ static void atk8F_forcerandomswitch(void)
|| (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER && gBattleTypeFlags & BATTLE_TYPE_x2000000)
|| (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER))
{
- if ((gBankTarget & BIT_MON) != 0)
+ if ((gBattlerTarget & BIT_FLANK) != 0)
{
firstMonId = 3;
lastMonId = 6;
@@ -7854,13 +7848,13 @@ static void atk8F_forcerandomswitch(void)
}
monsCount = 3;
minNeeded = 1;
- bank2PartyId = gBattlePartyID[gBankTarget];
- bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON];
+ bank2PartyId = gBattlerPartyIndexes[gBattlerTarget];
+ bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
}
else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|| (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000))
{
- if (sub_806D82C(GetBankMultiplayerId(gBankTarget)) == 1)
+ if (sub_806D82C(GetBattlerMultiplayerId(gBattlerTarget)) == 1)
{
firstMonId = 3;
lastMonId = 6;
@@ -7872,12 +7866,12 @@ static void atk8F_forcerandomswitch(void)
}
monsCount = 3;
minNeeded = 1;
- bank2PartyId = gBattlePartyID[gBankTarget];
- bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON];
+ bank2PartyId = gBattlerPartyIndexes[gBattlerTarget];
+ bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
}
else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
{
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
{
firstMonId = 0;
lastMonId = 6;
@@ -7886,7 +7880,7 @@ static void atk8F_forcerandomswitch(void)
}
else
{
- if ((gBankTarget & BIT_MON) != 0)
+ if ((gBattlerTarget & BIT_FLANK) != 0)
{
firstMonId = 3;
lastMonId = 6;
@@ -7899,8 +7893,8 @@ static void atk8F_forcerandomswitch(void)
monsCount = 3;
minNeeded = 1;
}
- bank2PartyId = gBattlePartyID[gBankTarget];
- bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON];
+ bank2PartyId = gBattlerPartyIndexes[gBattlerTarget];
+ bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
}
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
@@ -7908,8 +7902,8 @@ static void atk8F_forcerandomswitch(void)
lastMonId = 6;
monsCount = 6;
minNeeded = 2;
- bank2PartyId = gBattlePartyID[gBankTarget];
- bank1PartyId = gBattlePartyID[gBankTarget ^ BIT_MON];
+ bank2PartyId = gBattlerPartyIndexes[gBattlerTarget];
+ bank1PartyId = gBattlerPartyIndexes[gBattlerTarget ^ BIT_FLANK];
}
else
{
@@ -7917,8 +7911,8 @@ static void atk8F_forcerandomswitch(void)
lastMonId = 6;
monsCount = 6;
minNeeded = 1;
- bank2PartyId = gBattlePartyID[gBankTarget]; // there is only one pokemon out in single battles
- bank1PartyId = gBattlePartyID[gBankTarget];
+ bank2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one pokemon out in single battles
+ bank1PartyId = gBattlerPartyIndexes[gBattlerTarget];
}
for (i = firstMonId; i < lastMonId; i++)
@@ -7950,22 +7944,22 @@ static void atk8F_forcerandomswitch(void)
|| GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE
|| GetMonData(&party[i], MON_DATA_HP) == 0);
}
- *(gBattleStruct->monToSwitchIntoId + gBankTarget) = i;
+ *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
if (!sub_81B1250())
- sub_803BDA0(gBankTarget);
+ sub_803BDA0(gBattlerTarget);
if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|| (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|| (gBattleTypeFlags & BATTLE_TYPE_x2000000 && gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
- sub_81B8E80(gBankTarget, i, 0);
- sub_81B8E80(gBankTarget ^ BIT_MON, i, 1);
+ sub_81B8E80(gBattlerTarget, i, 0);
+ sub_81B8E80(gBattlerTarget ^ BIT_FLANK, i, 1);
}
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
- sub_80571DC(gBankTarget, i);
+ sub_80571DC(gBattlerTarget, i);
}
}
else
@@ -7982,7 +7976,7 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type
while (validMoves < 4)
{
- if (gBattleMons[gBankAttacker].moves[validMoves] == 0)
+ if (gBattleMons[gBattlerAttacker].moves[validMoves] == 0)
break;
validMoves++;
@@ -7990,17 +7984,17 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type
for (moveChecked = 0; moveChecked < validMoves; moveChecked++)
{
- moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type;
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type;
if (moveType == TYPE_MYSTERY)
{
- if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)
+ if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
moveType = TYPE_GHOST;
else
moveType = TYPE_NORMAL;
}
- if (moveType != gBattleMons[gBankAttacker].type1
- && moveType != gBattleMons[gBankAttacker].type2)
+ if (moveType != gBattleMons[gBattlerAttacker].type1
+ && moveType != gBattleMons[gBattlerAttacker].type2)
{
break;
}
@@ -8017,20 +8011,20 @@ static void atk90_tryconversiontypechange(void) // randomly changes user's type
while ((moveChecked = Random() & 3) >= validMoves);
- moveType = gBattleMoves[gBattleMons[gBankAttacker].moves[moveChecked]].type;
+ moveType = gBattleMoves[gBattleMons[gBattlerAttacker].moves[moveChecked]].type;
if (moveType == TYPE_MYSTERY)
{
- if (gBattleMons[gBankAttacker].type1 == TYPE_GHOST || gBattleMons[gBankAttacker].type2 == TYPE_GHOST)
+ if (gBattleMons[gBattlerAttacker].type1 == TYPE_GHOST || gBattleMons[gBattlerAttacker].type2 == TYPE_GHOST)
moveType = TYPE_GHOST;
else
moveType = TYPE_NORMAL;
}
}
- while (moveType == gBattleMons[gBankAttacker].type1 || moveType == gBattleMons[gBankAttacker].type2);
+ while (moveType == gBattleMons[gBattlerAttacker].type1 || moveType == gBattleMons[gBattlerAttacker].type2);
- gBattleMons[gBankAttacker].type1 = moveType;
- gBattleMons[gBankAttacker].type2 = moveType;
+ gBattleMons[gBattlerAttacker].type1 = moveType;
+ gBattleMons[gBattlerAttacker].type2 = moveType;
PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType)
@@ -8058,16 +8052,16 @@ static void atk91_givepaydaymoney(void)
static void atk92_setlightscreen(void)
{
- if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_LIGHTSCREEN)
+ if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_LIGHTSCREEN;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenTimer = 5;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].lightscreenBank = gBankAttacker;
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_LIGHTSCREEN;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenTimer = 5;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].lightscreenBank = gBattlerAttacker;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMonsInBattle(BATTLE_ALIVE_ATK_SIDE) == 2)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
@@ -8082,80 +8076,80 @@ static void atk93_tryKO(void)
{
u8 holdEffect, param;
- if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
+ if (gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY)
{
- holdEffect = gEnigmaBerries[gBankTarget].holdEffect;
- param = gEnigmaBerries[gBankTarget].holdEffectParam;
+ holdEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ param = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- param = ItemId_GetHoldEffectParam(gBattleMons[gBankTarget].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gBattlerTarget].item);
+ param = ItemId_GetHoldEffectParam(gBattleMons[gBattlerTarget].item);
}
- gStringBank = gBankTarget;
+ gStringBattler = gBattlerTarget;
if (holdEffect == HOLD_EFFECT_FOCUS_BAND && (Random() % 100) < param)
{
- RecordItemEffectBattle(gBankTarget, HOLD_EFFECT_FOCUS_BAND);
- gSpecialStatuses[gBankTarget].focusBanded = 1;
+ RecordItemEffectBattle(gBattlerTarget, HOLD_EFFECT_FOCUS_BAND);
+ gSpecialStatuses[gBattlerTarget].focusBanded = 1;
}
- if (gBattleMons[gBankTarget].ability == ABILITY_STURDY)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_STURDY)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gLastUsedAbility = ABILITY_STURDY;
gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO;
- RecordAbilityBattle(gBankTarget, ABILITY_STURDY);
+ RecordAbilityBattle(gBattlerTarget, ABILITY_STURDY);
}
else
{
u16 chance;
- if (!(gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS))
+ if (!(gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS))
{
- chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level);
- if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
+ chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level);
+ if (Random() % 100 + 1 < chance && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
chance = TRUE;
else
chance = FALSE;
}
- else if (gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker
- && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
+ else if (gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker
+ && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
{
chance = TRUE;
}
else
{
- chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBankAttacker].level - gBattleMons[gBankTarget].level);
- if (Random() % 100 + 1 < chance && gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
+ chance = gBattleMoves[gCurrentMove].accuracy + (gBattleMons[gBattlerAttacker].level - gBattleMons[gBattlerTarget].level);
+ if (Random() % 100 + 1 < chance && gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
chance = TRUE;
else
chance = FALSE;
}
if (chance)
{
- if (gProtectStructs[gBankTarget].endured)
+ if (gProtectStructs[gBattlerTarget].endured)
{
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1;
- gBattleMoveFlags |= MOVESTATUS_ENDURED;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1;
+ gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED;
}
- else if (gSpecialStatuses[gBankTarget].focusBanded)
+ else if (gSpecialStatuses[gBattlerTarget].focusBanded)
{
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - 1;
- gBattleMoveFlags |= MOVESTATUS_HUNGON;
- gLastUsedItem = gBattleMons[gBankTarget].item;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1;
+ gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON;
+ gLastUsedItem = gBattleMons[gBattlerTarget].item;
}
else
{
- gBattleMoveDamage = gBattleMons[gBankTarget].hp;
- gBattleMoveFlags |= MOVESTATUS_ONEHITKO;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp;
+ gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO;
}
gBattlescriptCurrInstr += 5;
}
else
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
- if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
+ if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -8166,7 +8160,7 @@ static void atk93_tryKO(void)
static void atk94_damagetohalftargethp(void) // super fang
{
- gBattleMoveDamage = gBattleMons[gBankTarget].hp / 2;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp / 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -8177,7 +8171,7 @@ static void atk95_setsandstorm(void)
{
if (gBattleWeather & WEATHER_SANDSTORM_ANY)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
else
@@ -8195,17 +8189,17 @@ static void atk96_weatherdamage(void)
{
if (gBattleWeather & WEATHER_SANDSTORM_ANY)
{
- if (gBattleMons[gBankAttacker].type1 != TYPE_ROCK
- && gBattleMons[gBankAttacker].type1 != TYPE_STEEL
- && gBattleMons[gBankAttacker].type1 != TYPE_GROUND
- && gBattleMons[gBankAttacker].type2 != TYPE_ROCK
- && gBattleMons[gBankAttacker].type2 != TYPE_STEEL
- && gBattleMons[gBankAttacker].type2 != TYPE_GROUND
- && gBattleMons[gBankAttacker].ability != ABILITY_SAND_VEIL
- && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND)
- && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER))
- {
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16;
+ if (gBattleMons[gBattlerAttacker].type1 != TYPE_ROCK
+ && gBattleMons[gBattlerAttacker].type1 != TYPE_STEEL
+ && gBattleMons[gBattlerAttacker].type1 != TYPE_GROUND
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_ROCK
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_STEEL
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_GROUND
+ && gBattleMons[gBattlerAttacker].ability != ABILITY_SAND_VEIL
+ && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND)
+ && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER))
+ {
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
}
@@ -8216,12 +8210,12 @@ static void atk96_weatherdamage(void)
}
if (gBattleWeather & WEATHER_HAIL)
{
- if (gBattleMons[gBankAttacker].type1 != TYPE_ICE
- && gBattleMons[gBankAttacker].type2 != TYPE_ICE
- && !(gStatuses3[gBankAttacker] & STATUS3_UNDERGROUND)
- && !(gStatuses3[gBankAttacker] & STATUS3_UNDERWATER))
+ if (gBattleMons[gBattlerAttacker].type1 != TYPE_ICE
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_ICE
+ && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND)
+ && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER))
{
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
}
@@ -8236,7 +8230,7 @@ static void atk96_weatherdamage(void)
gBattleMoveDamage = 0;
}
- if (gAbsentBankFlags & gBitTable[gBankAttacker])
+ if (gAbsentBattlerFlags & gBitTable[gBattlerAttacker])
gBattleMoveDamage = 0;
gBattlescriptCurrInstr++;
@@ -8248,15 +8242,15 @@ static void atk97_tryinfatuating(void)
u16 speciesAttacker, speciesTarget;
u32 personalityAttacker, personalityTarget;
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
- monAttacker = &gPlayerParty[gBattlePartyID[gBankAttacker]];
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ monAttacker = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]];
else
- monAttacker = &gEnemyParty[gBattlePartyID[gBankAttacker]];
+ monAttacker = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]];
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
- monTarget = &gPlayerParty[gBattlePartyID[gBankTarget]];
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
+ monTarget = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]];
else
- monTarget = &gEnemyParty[gBattlePartyID[gBankTarget]];
+ monTarget = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]];
speciesAttacker = GetMonData(monAttacker, MON_DATA_SPECIES);
personalityAttacker = GetMonData(monAttacker, MON_DATA_PERSONALITY);
@@ -8264,16 +8258,16 @@ static void atk97_tryinfatuating(void)
speciesTarget = GetMonData(monTarget, MON_DATA_SPECIES);
personalityTarget = GetMonData(monTarget, MON_DATA_PERSONALITY);
- if (gBattleMons[gBankTarget].ability == ABILITY_OBLIVIOUS)
+ if (gBattleMons[gBattlerTarget].ability == ABILITY_OBLIVIOUS)
{
gBattlescriptCurrInstr = BattleScript_ObliviousPreventsAttraction;
gLastUsedAbility = ABILITY_OBLIVIOUS;
- RecordAbilityBattle(gBankTarget, ABILITY_OBLIVIOUS);
+ RecordAbilityBattle(gBattlerTarget, ABILITY_OBLIVIOUS);
}
else
{
if (GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget)
- || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION
+ || gBattleMons[gBattlerTarget].status2 & STATUS2_INFATUATION
|| GetGenderFromSpeciesAndPersonality(speciesAttacker, personalityAttacker) == MON_GENDERLESS
|| GetGenderFromSpeciesAndPersonality(speciesTarget, personalityTarget) == MON_GENDERLESS)
{
@@ -8281,7 +8275,7 @@ static void atk97_tryinfatuating(void)
}
else
{
- gBattleMons[gBankTarget].status2 |= STATUS2_INFATUATED_WITH(gBankAttacker);
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_INFATUATED_WITH(gBattlerAttacker);
gBattlescriptCurrInstr += 5;
}
}
@@ -8289,31 +8283,31 @@ static void atk97_tryinfatuating(void)
static void atk98_updatestatusicon(void)
{
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
if (gBattlescriptCurrInstr[1] != BS_ATTACKER_WITH_PARTNER)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
+ BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
else
{
- gActiveBank = gBankAttacker;
- if (!(gAbsentBankFlags & gBitTable[gActiveBank]))
+ gActiveBattler = gBattlerAttacker;
+ if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
{
- EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
+ MarkBattlerForControllerExec(gActiveBattler);
}
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON);
- if (!(gAbsentBankFlags & gBitTable[gActiveBank]))
+ gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
+ if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
{
- EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitStatusIconUpdate(0, gBattleMons[gActiveBattler].status1, gBattleMons[gActiveBattler].status2);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
gBattlescriptCurrInstr += 2;
@@ -8322,16 +8316,16 @@ static void atk98_updatestatusicon(void)
static void atk99_setmist(void)
{
- if (gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer)
+ if (gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer)
{
- gBattleMoveFlags |= MOVESTATUS_FAILED;
+ gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistTimer = 5;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].mistBank = gBankAttacker;
- gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_MIST;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistTimer = 5;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].mistBank = gBattlerAttacker;
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_MIST;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
gBattlescriptCurrInstr++;
@@ -8339,14 +8333,14 @@ static void atk99_setmist(void)
static void atk9A_setfocusenergy(void)
{
- if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY)
{
- gBattleMoveFlags |= MOVESTATUS_FAILED;
+ gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gBattleMons[gBankAttacker].status2 |= STATUS2_FOCUS_ENERGY;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_FOCUS_ENERGY;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
gBattlescriptCurrInstr++;
@@ -8356,10 +8350,10 @@ static void atk9B_transformdataexecution(void)
{
gChosenMove = 0xFFFF;
gBattlescriptCurrInstr++;
- if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED
- || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_TRANSFORMED
+ || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)
{
- gBattleMoveFlags |= MOVESTATUS_FAILED;
+ gMoveResultFlags |= MOVE_RESULT_FAILED;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
@@ -8367,55 +8361,55 @@ static void atk9B_transformdataexecution(void)
s32 i;
u8 *battleMonAttacker, *battleMonTarget;
- gBattleMons[gBankAttacker].status2 |= STATUS2_TRANSFORMED;
- gDisableStructs[gBankAttacker].disabledMove = 0;
- gDisableStructs[gBankAttacker].disableTimer1 = 0;
- gDisableStructs[gBankAttacker].transformedMonPersonality = gBattleMons[gBankTarget].personality;
- gDisableStructs[gBankAttacker].unk18_b = 0;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED;
+ gDisableStructs[gBattlerAttacker].disabledMove = 0;
+ gDisableStructs[gBattlerAttacker].disableTimer1 = 0;
+ gDisableStructs[gBattlerAttacker].transformedMonPersonality = gBattleMons[gBattlerTarget].personality;
+ gDisableStructs[gBattlerAttacker].unk18_b = 0;
- PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].species)
+ PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].species)
- battleMonAttacker = (u8*)(&gBattleMons[gBankAttacker]);
- battleMonTarget = (u8*)(&gBattleMons[gBankTarget]);
+ battleMonAttacker = (u8*)(&gBattleMons[gBattlerAttacker]);
+ battleMonTarget = (u8*)(&gBattleMons[gBattlerTarget]);
for (i = 0; i < offsetof(struct BattlePokemon, pp); i++)
battleMonAttacker[i] = battleMonTarget[i];
for (i = 0; i < 4; i++)
{
- if (gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp < 5)
- gBattleMons[gBankAttacker].pp[i] = gBattleMoves[gBattleMons[gBankAttacker].moves[i]].pp;
+ if (gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].pp < 5)
+ gBattleMons[gBattlerAttacker].pp[i] = gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].pp;
else
- gBattleMons[gBankAttacker].pp[i] = 5;
+ gBattleMons[gBattlerAttacker].pp[i] = 5;
}
- gActiveBank = gBankAttacker;
- EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitResetActionMoveSelection(0, RESET_MOVE_SELECTION);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
}
static void atk9C_setsubstitute(void)
{
- u32 hp = gBattleMons[gBankAttacker].maxHP / 4;
- if (gBattleMons[gBankAttacker].maxHP / 4 == 0)
+ u32 hp = gBattleMons[gBattlerAttacker].maxHP / 4;
+ if (gBattleMons[gBattlerAttacker].maxHP / 4 == 0)
hp = 1;
- if (gBattleMons[gBankAttacker].hp <= hp)
+ if (gBattleMons[gBattlerAttacker].hp <= hp)
{
gBattleMoveDamage = 0;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
else
{
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games)
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4; // one bit value will only work for pokemon which max hp can go to 1020(which is more than possible in games)
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- gBattleMons[gBankAttacker].status2 |= STATUS2_SUBSTITUTE;
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED);
- gDisableStructs[gBankAttacker].substituteHP = gBattleMoveDamage;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE;
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED);
+ gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE;
}
@@ -8436,10 +8430,10 @@ static void atk9D_mimicattackcopy(void)
{
gChosenMove = 0xFFFF;
- if (IsMoveUncopyableByMimic(gLastMoves[gBankTarget])
- || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED
- || gLastMoves[gBankTarget] == 0
- || gLastMoves[gBankTarget] == 0xFFFF)
+ if (IsMoveUncopyableByMimic(gLastMoves[gBattlerTarget])
+ || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED
+ || gLastMoves[gBattlerTarget] == 0
+ || gLastMoves[gBattlerTarget] == 0xFFFF)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
@@ -8449,22 +8443,22 @@ static void atk9D_mimicattackcopy(void)
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankTarget])
+ if (gBattleMons[gBattlerAttacker].moves[i] == gLastMoves[gBattlerTarget])
break;
}
if (i == 4)
{
- gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankTarget];
- if (gBattleMoves[gLastMoves[gBankTarget]].pp < 5)
- gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankTarget]].pp;
+ gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastMoves[gBattlerTarget];
+ if (gBattleMoves[gLastMoves[gBattlerTarget]].pp < 5)
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBattlerTarget]].pp;
else
- gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5;
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = 5;
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget])
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget])
- gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos];
+ gDisableStructs[gBattlerAttacker].unk18_b |= gBitTable[gCurrMovePos];
gBattlescriptCurrInstr += 5;
}
else
@@ -8500,7 +8494,7 @@ static void atk9E_metronome(void)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect];
- gBankTarget = GetMoveTarget(gCurrentMove, 0);
+ gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
return;
}
}
@@ -8508,7 +8502,7 @@ static void atk9E_metronome(void)
static void atk9F_dmgtolevel(void)
{
- gBattleMoveDamage = gBattleMons[gBankAttacker].level;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].level;
gBattlescriptCurrInstr++;
}
@@ -8519,54 +8513,54 @@ static void atkA0_psywavedamageeffect(void)
while ((randDamage = (Random() & 0xF)) > 10);
randDamage *= 10;
- gBattleMoveDamage = gBattleMons[gBankAttacker].level * (randDamage + 50) / 100;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100;
gBattlescriptCurrInstr++;
}
static void atkA1_counterdamagecalculator(void)
{
- u8 sideAttacker = GetBankSide(gBankAttacker);
- u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].physicalBank);
+ u8 sideAttacker = GetBattlerSide(gBattlerAttacker);
+ u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBank);
- if (gProtectStructs[gBankAttacker].physicalDmg
+ if (gProtectStructs[gBattlerAttacker].physicalDmg
&& sideAttacker != sideTarget
- && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp)
+ && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBank].hp)
{
- gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2;
+ gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2;
if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp)
- gBankTarget = gSideTimers[sideTarget].followmeTarget;
+ gBattlerTarget = gSideTimers[sideTarget].followmeTarget;
else
- gBankTarget = gProtectStructs[gBankAttacker].physicalBank;
+ gBattlerTarget = gProtectStructs[gBattlerAttacker].physicalBank;
gBattlescriptCurrInstr += 5;
}
else
{
- gSpecialStatuses[gBankAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
}
static void atkA2_mirrorcoatdamagecalculator(void) // a copy of atkA1 with the physical -> special field changes
{
- u8 sideAttacker = GetBankSide(gBankAttacker);
- u8 sideTarget = GetBankSide(gProtectStructs[gBankAttacker].specialBank);
+ u8 sideAttacker = GetBattlerSide(gBattlerAttacker);
+ u8 sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBank);
- if (gProtectStructs[gBankAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp)
+ if (gProtectStructs[gBattlerAttacker].specialDmg && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattlerAttacker].specialBank].hp)
{
- gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2;
+ gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2;
if (gSideTimers[sideTarget].followmeTimer && gBattleMons[gSideTimers[sideTarget].followmeTarget].hp)
- gBankTarget = gSideTimers[sideTarget].followmeTarget;
+ gBattlerTarget = gSideTimers[sideTarget].followmeTarget;
else
- gBankTarget = gProtectStructs[gBankAttacker].specialBank;
+ gBattlerTarget = gProtectStructs[gBattlerAttacker].specialBank;
gBattlescriptCurrInstr += 5;
}
else
{
- gSpecialStatuses[gBankAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
}
@@ -8577,17 +8571,17 @@ static void atkA3_disablelastusedattack(void)
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
- if (gDisableStructs[gBankTarget].disabledMove == 0
- && i != 4 && gBattleMons[gBankTarget].pp[i] != 0)
+ if (gDisableStructs[gBattlerTarget].disabledMove == 0
+ && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
{
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBankTarget].moves[i])
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerTarget].moves[i])
- gDisableStructs[gBankTarget].disabledMove = gBattleMons[gBankTarget].moves[i];
- gDisableStructs[gBankTarget].disableTimer1 = (Random() & 3) + 2;
- gDisableStructs[gBankTarget].disableTimer2 = gDisableStructs[gBankTarget].disableTimer1; // used to save the random amount of turns?
+ gDisableStructs[gBattlerTarget].disabledMove = gBattleMons[gBattlerTarget].moves[i];
+ gDisableStructs[gBattlerTarget].disableTimer1 = (Random() & 3) + 2;
+ gDisableStructs[gBattlerTarget].disableTimer2 = gDisableStructs[gBattlerTarget].disableTimer1; // used to save the random amount of turns?
gBattlescriptCurrInstr += 5;
}
else
@@ -8602,24 +8596,24 @@ static void atkA4_trysetencore(void)
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget])
+ if (gBattleMons[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
}
- if (gLastMoves[gBankTarget] == MOVE_STRUGGLE
- || gLastMoves[gBankTarget] == MOVE_ENCORE
- || gLastMoves[gBankTarget] == MOVE_MIRROR_MOVE)
+ if (gLastMoves[gBattlerTarget] == MOVE_STRUGGLE
+ || gLastMoves[gBattlerTarget] == MOVE_ENCORE
+ || gLastMoves[gBattlerTarget] == MOVE_MIRROR_MOVE)
{
i = 4;
}
- if (gDisableStructs[gBankTarget].encoredMove == 0
- && i != 4 && gBattleMons[gBankTarget].pp[i] != 0)
+ if (gDisableStructs[gBattlerTarget].encoredMove == 0
+ && i != 4 && gBattleMons[gBattlerTarget].pp[i] != 0)
{
- gDisableStructs[gBankTarget].encoredMove = gBattleMons[gBankTarget].moves[i];
- gDisableStructs[gBankTarget].encoredMovePos = i;
- gDisableStructs[gBankTarget].encoreTimer1 = (Random() & 3) + 3;
- gDisableStructs[gBankTarget].encoreTimer2 = gDisableStructs[gBankTarget].encoreTimer1;
+ gDisableStructs[gBattlerTarget].encoredMove = gBattleMons[gBattlerTarget].moves[i];
+ gDisableStructs[gBattlerTarget].encoredMovePos = i;
+ gDisableStructs[gBattlerTarget].encoreTimer1 = (Random() & 3) + 3;
+ gDisableStructs[gBattlerTarget].encoreTimer2 = gDisableStructs[gBattlerTarget].encoreTimer1;
gBattlescriptCurrInstr += 5;
}
else
@@ -8630,10 +8624,10 @@ static void atkA4_trysetencore(void)
static void atkA5_painsplitdmgcalc(void)
{
- if (!(gBattleMons[gBankTarget].status2 & STATUS2_SUBSTITUTE))
+ if (!(gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE))
{
- s32 hpDiff = (gBattleMons[gBankAttacker].hp + gBattleMons[gBankTarget].hp) / 2;
- s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBankTarget].hp - hpDiff;
+ s32 hpDiff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2;
+ s32 painSplitHp = gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - hpDiff;
u8* storeLoc = (void*)(&gBattleScripting.painSplitHp);
storeLoc[0] = (painSplitHp);
@@ -8641,8 +8635,8 @@ static void atkA5_painsplitdmgcalc(void)
storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16;
storeLoc[3] = (painSplitHp & 0xFF000000) >> 24;
- gBattleMoveDamage = gBattleMons[gBankAttacker].hp - hpDiff;
- gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff;
+ gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0xFFFF;
gBattlescriptCurrInstr += 5;
}
@@ -8654,13 +8648,13 @@ static void atkA5_painsplitdmgcalc(void)
static void atkA6_settypetorandomresistance(void) // conversion 2
{
- if (gLastLandedMoves[gBankAttacker] == 0
- || gLastLandedMoves[gBankAttacker] == 0xFFFF)
+ if (gLastLandedMoves[gBattlerAttacker] == 0
+ || gLastLandedMoves[gBattlerAttacker] == 0xFFFF)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
- else if (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker])
- && gBattleMons[gLastHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS)
+ else if (IsTwoTurnsMove(gLastLandedMoves[gBattlerAttacker])
+ && gBattleMons[gLastHitBy[gBattlerAttacker]].status2 & STATUS2_MULTIPLETURNS)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
@@ -8674,13 +8668,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2
i *= 3;
- if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBankAttacker]
+ if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBattlerAttacker]
&& TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE
- && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
- && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
+ && gBattleMons[gBattlerAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
{
- gBattleMons[gBankAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i);
- gBattleMons[gBankAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i);
+ gBattleMons[gBattlerAttacker].type1 = TYPE_EFFECT_DEF_TYPE(i);
+ gBattleMons[gBattlerAttacker].type2 = TYPE_EFFECT_DEF_TYPE(i);
PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(i))
@@ -8697,13 +8691,13 @@ static void atkA6_settypetorandomresistance(void) // conversion 2
case TYPE_FORESIGHT:
break;
default:
- if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBankAttacker]
- && TYPE_EFFECT_MULTIPLIER(j) <= 5
- && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
- && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
+ if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBattlerAttacker]
+ && TYPE_EFFECT_MULTIPLIER(j) <= 5
+ && gBattleMons[gBattlerAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
+ && gBattleMons[gBattlerAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
{
- gBattleMons[gBankAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands);
- gBattleMons[gBankAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands);
+ gBattleMons[gBattlerAttacker].type1 = TYPE_EFFECT_DEF_TYPE(rands);
+ gBattleMons[gBattlerAttacker].type2 = TYPE_EFFECT_DEF_TYPE(rands);
PREPARE_TYPE_BUFFER(gBattleTextBuff1, TYPE_EFFECT_DEF_TYPE(rands))
@@ -8720,9 +8714,9 @@ static void atkA6_settypetorandomresistance(void) // conversion 2
static void atkA7_setalwayshitflag(void)
{
- gStatuses3[gBankTarget] &= ~(STATUS3_ALWAYS_HITS);
- gStatuses3[gBankTarget] |= 0x10;
- gDisableStructs[gBankTarget].bankWithSureHit = gBankAttacker;
+ gStatuses3[gBattlerTarget] &= ~(STATUS3_ALWAYS_HITS);
+ gStatuses3[gBattlerTarget] |= 0x10;
+ gDisableStructs[gBattlerTarget].battlerWithSureHit = gBattlerAttacker;
gBattlescriptCurrInstr++;
}
@@ -8730,19 +8724,19 @@ static void atkA8_copymovepermanently(void) // sketch
{
gChosenMove = 0xFFFF;
- if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED)
- && gLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE
- && gLastPrintedMoves[gBankTarget] != 0
- && gLastPrintedMoves[gBankTarget] != 0xFFFF
- && gLastPrintedMoves[gBankTarget] != MOVE_SKETCH)
+ if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED)
+ && gLastPrintedMoves[gBattlerTarget] != MOVE_STRUGGLE
+ && gLastPrintedMoves[gBattlerTarget] != 0
+ && gLastPrintedMoves[gBattlerTarget] != 0xFFFF
+ && gLastPrintedMoves[gBattlerTarget] != MOVE_SKETCH)
{
s32 i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH)
+ if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH)
continue;
- if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankTarget])
+ if (gBattleMons[gBattlerAttacker].moves[i] == gLastPrintedMoves[gBattlerTarget])
break;
}
@@ -8754,21 +8748,21 @@ static void atkA8_copymovepermanently(void) // sketch
{
struct MovePpInfo movePpData;
- gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankTarget];
- gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankTarget]].pp;
- gActiveBank = gBankAttacker;
+ gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattlerTarget];
+ gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattlerTarget]].pp;
+ gActiveBattler = gBattlerAttacker;
for (i = 0; i < 4; i++)
{
- movePpData.moves[i] = gBattleMons[gBankAttacker].moves[i];
- movePpData.pp[i] = gBattleMons[gBankAttacker].pp[i];
+ movePpData.moves[i] = gBattleMons[gBattlerAttacker].moves[i];
+ movePpData.pp[i] = gBattleMons[gBattlerAttacker].pp[i];
}
- movePpData.ppBonuses = gBattleMons[gBankAttacker].ppBonuses;
+ movePpData.ppBonuses = gBattleMons[gBattlerAttacker].ppBonuses;
- EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData);
+ MarkBattlerForControllerExec(gActiveBattler);
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankTarget])
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBattlerTarget])
gBattlescriptCurrInstr += 5;
}
@@ -8828,17 +8822,17 @@ static void atkA9_trychoosesleeptalkmove(void)
for (i = 0; i < 4; i++)
{
- if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBankAttacker].moves[i])
- || gBattleMons[gBankAttacker].moves[i] == MOVE_FOCUS_PUNCH
- || gBattleMons[gBankAttacker].moves[i] == MOVE_UPROAR
- || IsTwoTurnsMove(gBattleMons[gBankAttacker].moves[i]))
+ if (IsInvalidForSleepTalkOrAssist(gBattleMons[gBattlerAttacker].moves[i])
+ || gBattleMons[gBattlerAttacker].moves[i] == MOVE_FOCUS_PUNCH
+ || gBattleMons[gBattlerAttacker].moves[i] == MOVE_UPROAR
+ || IsTwoTurnsMove(gBattleMons[gBattlerAttacker].moves[i]))
{
unusableMovesBits |= gBitTable[i];
}
}
- unusableMovesBits = CheckMoveLimitations(gBankAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP));
+ unusableMovesBits = CheckMoveLimitations(gBattlerAttacker, unusableMovesBits, ~(MOVE_LIMITATION_PP));
if (unusableMovesBits == 0xF) // all 4 moves cannot be chosen
{
gBattlescriptCurrInstr += 5;
@@ -8852,25 +8846,25 @@ static void atkA9_trychoosesleeptalkmove(void)
movePosition = Random() & 3;
} while ((gBitTable[movePosition] & unusableMovesBits));
- gRandomMove = gBattleMons[gBankAttacker].moves[movePosition];
+ gRandomMove = gBattleMons[gBattlerAttacker].moves[movePosition];
gCurrMovePos = movePosition;
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
- gBankTarget = GetMoveTarget(gRandomMove, 0);
+ gBattlerTarget = GetMoveTarget(gRandomMove, 0);
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
}
static void atkAA_setdestinybond(void)
{
- gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_DESTINY_BOND;
gBattlescriptCurrInstr++;
}
static void TrySetDestinyBondToHappen(void)
{
- u8 sideAttacker = GetBankSide(gBankAttacker);
- u8 sideTarget = GetBankSide(gBankTarget);
- if (gBattleMons[gBankTarget].status2 & STATUS2_DESTINY_BOND
+ u8 sideAttacker = GetBattlerSide(gBattlerAttacker);
+ u8 sideTarget = GetBattlerSide(gBattlerTarget);
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_DESTINY_BOND
&& sideAttacker != sideTarget
&& !(gHitMarker & HITMARKER_GRUDGE))
{
@@ -8887,7 +8881,7 @@ static void atkAB_trysetdestinybondtohappen(void)
static void atkAC_remaininghptopower(void)
{
s32 i;
- s32 hpFraction = GetScaledHPFraction(gBattleMons[gBankAttacker].hp, gBattleMons[gBankAttacker].maxHP, 48);
+ s32 hpFraction = GetScaledHPFraction(gBattleMons[gBattlerAttacker].hp, gBattleMons[gBattlerAttacker].maxHP, 48);
for (i = 0; i < (s32) sizeof(sFlailHpScaleToPowerTable); i += 2)
{
@@ -8901,43 +8895,43 @@ static void atkAC_remaininghptopower(void)
static void atkAD_tryspiteppreduce(void)
{
- if (gLastMoves[gBankTarget] != 0
- && gLastMoves[gBankTarget] != 0xFFFF)
+ if (gLastMoves[gBattlerTarget] != 0
+ && gLastMoves[gBattlerTarget] != 0xFFFF)
{
s32 i;
for (i = 0; i < 4; i++)
{
- if (gLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i])
+ if (gLastMoves[gBattlerTarget] == gBattleMons[gBattlerTarget].moves[i])
break;
}
- if (i != 4 && gBattleMons[gBankTarget].pp[i] > 1)
+ if (i != 4 && gBattleMons[gBattlerTarget].pp[i] > 1)
{
s32 ppToDeduct = (Random() & 3) + 2;
- if (gBattleMons[gBankTarget].pp[i] < ppToDeduct)
- ppToDeduct = gBattleMons[gBankTarget].pp[i];
+ if (gBattleMons[gBattlerTarget].pp[i] < ppToDeduct)
+ ppToDeduct = gBattleMons[gBattlerTarget].pp[i];
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget])
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBattlerTarget])
ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1);
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 1, ppToDeduct)
- gBattleMons[gBankTarget].pp[i] -= ppToDeduct;
- gActiveBank = gBankTarget;
+ gBattleMons[gBattlerTarget].pp[i] -= ppToDeduct;
+ gActiveBattler = gBattlerTarget;
- if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i])
- && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED))
+ if (!(gDisableStructs[gActiveBattler].unk18_b & gBitTable[i])
+ && !(gBattleMons[gActiveBattler].status2 & STATUS2_TRANSFORMED))
{
- EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr += 5;
- if (gBattleMons[gBankTarget].pp[i] == 0)
- CancelMultiTurnMoves(gBankTarget);
+ if (gBattleMons[gBattlerTarget].pp[i] == 0)
+ CancelMultiTurnMoves(gBattlerTarget);
}
else
{
@@ -8962,35 +8956,35 @@ static void atkAE_healpartystatus(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
- if (gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF)
+ if (gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF)
{
- gBattleMons[gBankAttacker].status1 = 0;
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gBattlerAttacker].status1 = 0;
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
}
else
{
- RecordAbilityBattle(gBankAttacker, gBattleMons[gBankAttacker].ability);
+ RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability);
gBattleCommunication[MULTISTRING_CHOOSER] |= 1;
}
- gActiveBank = gBattleScripting.bank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON);
+ gActiveBattler = gBattleScripting.battler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && !(gAbsentBankFlags & gBitTable[gActiveBank]))
+ && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
{
- if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF)
+ if (gBattleMons[gActiveBattler].ability != ABILITY_SOUNDPROOF)
{
- gBattleMons[gActiveBank].status1 = 0;
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gActiveBattler].status1 = 0;
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_NIGHTMARE);
}
else
{
- RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability);
+ RecordAbilityBattle(gActiveBattler, gBattleMons[gActiveBattler].ability);
gBattleCommunication[MULTISTRING_CHOOSER] |= 2;
}
}
@@ -9004,12 +8998,12 @@ static void atkAE_healpartystatus(void)
{
u8 ability;
- if (gBattlePartyID[gBankAttacker] == i)
- ability = gBattleMons[gBankAttacker].ability;
+ if (gBattlerPartyIndexes[gBattlerAttacker] == i)
+ ability = gBattleMons[gBattlerAttacker].ability;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && gBattlePartyID[gActiveBank] == i
- && !(gAbsentBankFlags & gBitTable[gActiveBank]))
- ability = gBattleMons[gActiveBank].ability;
+ && gBattlerPartyIndexes[gActiveBattler] == i
+ && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
+ ability = gBattleMons[gActiveBattler].ability;
else
ability = GetAbilityBySpecies(species, abilityBit);
@@ -9023,24 +9017,24 @@ static void atkAE_healpartystatus(void)
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
toHeal = 0x3F;
- gBattleMons[gBankAttacker].status1 = 0;
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gBattlerAttacker].status1 = 0;
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
- gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON);
+ gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && !(gAbsentBankFlags & gBitTable[gActiveBank]))
+ && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]))
{
- gBattleMons[gActiveBank].status1 = 0;
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gActiveBattler].status1 = 0;
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_NIGHTMARE);
}
}
if (toHeal)
{
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, toHeal, 4, &zero);
+ MarkBattlerForControllerExec(gActiveBattler);
}
gBattlescriptCurrInstr++;
@@ -9048,14 +9042,14 @@ static void atkAE_healpartystatus(void)
static void atkAF_cursetarget(void)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_CURSED)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gBattleMons[gBankTarget].status2 |= STATUS2_CURSED;
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2;
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_CURSED;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -9065,16 +9059,16 @@ static void atkAF_cursetarget(void)
static void atkB0_trysetspikes(void)
{
- u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ u8 targetSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[targetSide].spikesAmount == 3)
{
- gSpecialStatuses[gBankAttacker].flag20 = 1;
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gSideAffecting[targetSide] |= SIDE_STATUS_SPIKES;
+ gSideStatuses[targetSide] |= SIDE_STATUS_SPIKES;
gSideTimers[targetSide].spikesAmount++;
gBattlescriptCurrInstr += 5;
}
@@ -9082,7 +9076,7 @@ static void atkB0_trysetspikes(void)
static void atkB1_setforesight(void)
{
- gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT;
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_FORESIGHT;
gBattlescriptCurrInstr++;
}
@@ -9091,7 +9085,7 @@ static void atkB2_trysetperishsong(void)
s32 i;
s32 notAffectedCount = 0;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gStatuses3[i] & STATUS3_PERISH_SONG
|| gBattleMons[i].ability == ABILITY_SOUNDPROOF)
@@ -9106,9 +9100,9 @@ static void atkB2_trysetperishsong(void)
}
}
- PressurePPLoseOnUsingPerishSong(gBankAttacker);
+ PressurePPLoseOnUsingPerishSong(gBattlerAttacker);
- if (notAffectedCount == gNoOfAllBanks)
+ if (notAffectedCount == gBattlersCount)
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
@@ -9116,33 +9110,33 @@ static void atkB2_trysetperishsong(void)
static void atkB3_rolloutdamagecalculation(void)
{
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{
- CancelMultiTurnMoves(gBankAttacker);
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveMissedPause;
}
else
{
s32 i;
- if (!(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit
+ if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) // first hit
{
- gDisableStructs[gBankAttacker].rolloutCounter1 = 5;
- gDisableStructs[gBankAttacker].rolloutCounter2 = 5;
- gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS;
- gLockedMoves[gBankAttacker] = gCurrentMove;
+ gDisableStructs[gBattlerAttacker].rolloutCounter1 = 5;
+ gDisableStructs[gBattlerAttacker].rolloutCounter2 = 5;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_MULTIPLETURNS;
+ gLockedMoves[gBattlerAttacker] = gCurrentMove;
}
- if (--gDisableStructs[gBankAttacker].rolloutCounter1 == 0) // last hit
+ if (--gDisableStructs[gBattlerAttacker].rolloutCounter1 == 0) // last hit
{
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
}
gDynamicBasePower = gBattleMoves[gCurrentMove].power;
- for (i = 1; i < (5 - gDisableStructs[gBankAttacker].rolloutCounter1); i++)
+ for (i = 1; i < (5 - gDisableStructs[gBattlerAttacker].rolloutCounter1); i++)
gDynamicBasePower *= 2;
- if (gBattleMons[gBankAttacker].status2 & STATUS2_DEFENSE_CURL)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_DEFENSE_CURL)
gDynamicBasePower *= 2;
gBattlescriptCurrInstr++;
@@ -9151,8 +9145,8 @@ static void atkB3_rolloutdamagecalculation(void)
static void atkB4_jumpifconfusedandstatmaxed(void)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION
- && gBattleMons[gBankTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_CONFUSION
+ && gBattleMons[gBattlerTarget].statStages[gBattlescriptCurrInstr[1]] == 0xC)
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -9160,21 +9154,21 @@ static void atkB4_jumpifconfusedandstatmaxed(void)
static void atkB5_furycuttercalc(void)
{
- if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{
- gDisableStructs[gBankAttacker].furyCutterCounter = 0;
+ gDisableStructs[gBattlerAttacker].furyCutterCounter = 0;
gBattlescriptCurrInstr = BattleScript_MoveMissedPause;
}
else
{
s32 i;
- if (gDisableStructs[gBankAttacker].furyCutterCounter != 5)
- gDisableStructs[gBankAttacker].furyCutterCounter++;
+ if (gDisableStructs[gBattlerAttacker].furyCutterCounter != 5)
+ gDisableStructs[gBattlerAttacker].furyCutterCounter++;
gDynamicBasePower = gBattleMoves[gCurrentMove].power;
- for (i = 1; i < gDisableStructs[gBankAttacker].furyCutterCounter; i++)
+ for (i = 1; i < gDisableStructs[gBattlerAttacker].furyCutterCounter; i++)
gDynamicBasePower *= 2;
gBattlescriptCurrInstr++;
@@ -9184,9 +9178,9 @@ static void atkB5_furycuttercalc(void)
static void atkB6_happinesstodamagecalculation(void)
{
if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN)
- gDynamicBasePower = 10 * (gBattleMons[gBankAttacker].friendship) / 25;
+ gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25;
else // EFFECT_FRUSTRATION
- gDynamicBasePower = 10 * (255 - gBattleMons[gBankAttacker].friendship) / 25;
+ gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25;
gBattlescriptCurrInstr++;
}
@@ -9203,34 +9197,34 @@ static void atkB7_presentdamagecalculation(void)
gDynamicBasePower = 120;
else
{
- gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 4;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
}
if (rand < 204)
gBattlescriptCurrInstr = BattleScript_HitFromCritCalc;
- else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp)
+ else if (gBattleMons[gBattlerTarget].maxHP == gBattleMons[gBattlerTarget].hp)
gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp;
else
{
- gBattleMoveFlags &= ~(MOVESTATUS_NOTAFFECTED);
+ gMoveResultFlags &= ~(MOVE_RESULT_DOESNT_AFFECT_FOE);
gBattlescriptCurrInstr = BattleScript_PresentHealTarget;
}
}
static void atkB8_setsafeguard(void)
{
- if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD)
+ if (gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
{
- gSideAffecting[GET_BANK_SIDE(gBankAttacker)] |= SIDE_STATUS_SAFEGUARD;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardTimer = 5;
- gSideTimers[GET_BANK_SIDE(gBankAttacker)].safeguardBank = gBankAttacker;
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerAttacker)] |= SIDE_STATUS_SAFEGUARD;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardTimer = 5;
+ gSideTimers[GET_BATTLER_SIDE(gBattlerAttacker)].safeguardBank = gBattlerAttacker;
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
@@ -9280,11 +9274,11 @@ static void atkB9_magnitudedamagecalculation(void)
PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 2, magnitude)
- for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++)
+ for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++)
{
- if (gBankTarget == gBankAttacker)
+ if (gBattlerTarget == gBattlerAttacker)
continue;
- if (!(gAbsentBankFlags & gBitTable[gBankTarget])) // a valid target was found
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget])) // a valid target was found
break;
}
@@ -9295,36 +9289,36 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
{
if (gMultiHitCounter == 1)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
}
else
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
else
- gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
- if (gActionForBanks[gBankTarget] == ACTION_USE_MOVE
- && gBankAttacker == *(gBattleStruct->moveTarget + gBankTarget)
- && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
- && gBattleMons[gBankAttacker].hp
- && !gDisableStructs[gBankTarget].truantCounter
- && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT)
+ if (gChosenActionByBattler[gBattlerTarget] == B_ACTION_USE_MOVE
+ && gBattlerAttacker == *(gBattleStruct->moveTarget + gBattlerTarget)
+ && !(gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE))
+ && gBattleMons[gBattlerAttacker].hp
+ && !gDisableStructs[gBattlerTarget].truantCounter
+ && gChosenMoveByBattler[gBattlerTarget] == MOVE_PURSUIT)
{
s32 i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBanksByTurnOrder[i] == gBankTarget)
+ if (gBattleTurnOrder[i] == gBattlerTarget)
gActionsByTurnOrder[i] = 11;
}
gCurrentMove = MOVE_PURSUIT;
- gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBankTarget);
+ gCurrMovePos = gUnknown_020241E9 = *(gBattleStruct->chosenMovePositions + gBattlerTarget);
gBattlescriptCurrInstr += 5;
gBattleScripting.animTurn = 1;
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
@@ -9339,7 +9333,7 @@ static void atkBB_setsunny(void)
{
if (gBattleWeather & WEATHER_SUN_ANY)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
else
@@ -9354,16 +9348,16 @@ static void atkBB_setsunny(void)
static void atkBC_maxattackhalvehp(void) // belly drum
{
- u32 halfHp = gBattleMons[gBankAttacker].maxHP / 2;
+ u32 halfHp = gBattleMons[gBattlerAttacker].maxHP / 2;
- if (!(gBattleMons[gBankAttacker].maxHP / 2))
+ if (!(gBattleMons[gBattlerAttacker].maxHP / 2))
halfHp = 1;
- if (gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] < 12
- && gBattleMons[gBankAttacker].hp > halfHp)
+ if (gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] < 12
+ && gBattleMons[gBattlerAttacker].hp > halfHp)
{
- gBattleMons[gBankAttacker].statStages[STAT_STAGE_ATK] = 12;
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2;
+ gBattleMons[gBattlerAttacker].statStages[STAT_STAGE_ATK] = 12;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -9381,7 +9375,7 @@ static void atkBD_copyfoestats(void) // psych up
for (i = 0; i < BATTLE_STATS_NO; i++)
{
- gBattleMons[gBankAttacker].statStages[i] = gBattleMons[gBankTarget].statStages[i];
+ gBattleMons[gBattlerAttacker].statStages[i] = gBattleMons[gBattlerTarget].statStages[i];
}
gBattlescriptCurrInstr += 5; // Has an unused jump ptr(possibly for a failed attempt) parameter.
@@ -9389,32 +9383,32 @@ static void atkBD_copyfoestats(void) // psych up
static void atkBE_rapidspinfree(void)
{
- if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_WRAPPED)
{
- gBattleScripting.bank = gBankTarget;
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED);
- gBankTarget = *(gBattleStruct->wrappedBy + gBankAttacker);
+ gBattleScripting.battler = gBattlerTarget;
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_WRAPPED);
+ gBattlerTarget = *(gBattleStruct->wrappedBy + gBattlerAttacker);
gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
gBattleTextBuff1[1] = B_BUFF_MOVE;
- gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 0);
- gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBankAttacker * 2 + 1);
+ gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gBattlerAttacker * 2 + 0);
+ gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gBattlerAttacker * 2 + 1);
gBattleTextBuff1[4] = B_BUFF_EOS;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WrapFree;
}
- else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED)
+ else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED)
{
- gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED);
- gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_LeechSeedFree;
}
- else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES)
+ else if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SPIKES)
{
- gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES);
- gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0;
+ gSideStatuses[GetBattlerSide(gBattlerAttacker)] &= ~(SIDE_STATUS_SPIKES);
+ gSideTimers[GetBattlerSide(gBattlerAttacker)].spikesAmount = 0;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SpikesFree;
}
@@ -9426,22 +9420,22 @@ static void atkBE_rapidspinfree(void)
static void atkBF_setdefensecurlbit(void)
{
- gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL;
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_DEFENSE_CURL;
gBattlescriptCurrInstr++;
}
static void atkC0_recoverbasedonsunlight(void)
{
- gBankTarget = gBankAttacker;
+ gBattlerTarget = gBattlerAttacker;
- if (gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP)
+ if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP)
{
if (gBattleWeather == 0 || !WEATHER_HAS_EFFECT)
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 2;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 2;
else if (gBattleWeather & WEATHER_SUN_ANY)
- gBattleMoveDamage = 20 * gBattleMons[gBankAttacker].maxHP / 30;
+ gBattleMoveDamage = 20 * gBattleMons[gBattlerAttacker].maxHP / 30;
else // not sunny weather
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 4;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
@@ -9461,19 +9455,19 @@ static void atkC1_hiddenpowercalc(void)
u32 powerBits = 0;
u32 typeBits = 0;
- powerBits |= ((gBattleMons[gBankAttacker].hpIV & 2) >> 1);
- powerBits |= ((gBattleMons[gBankAttacker].attackIV & 2) << 0);
- powerBits |= ((gBattleMons[gBankAttacker].defenseIV & 2) << 1);
- powerBits |= ((gBattleMons[gBankAttacker].speedIV & 2) << 2);
- powerBits |= ((gBattleMons[gBankAttacker].spAttackIV & 2) << 3);
- powerBits |= ((gBattleMons[gBankAttacker].spDefenseIV & 2) << 4);
+ powerBits |= ((gBattleMons[gBattlerAttacker].hpIV & 2) >> 1);
+ powerBits |= ((gBattleMons[gBattlerAttacker].attackIV & 2) << 0);
+ powerBits |= ((gBattleMons[gBattlerAttacker].defenseIV & 2) << 1);
+ powerBits |= ((gBattleMons[gBattlerAttacker].speedIV & 2) << 2);
+ powerBits |= ((gBattleMons[gBattlerAttacker].spAttackIV & 2) << 3);
+ powerBits |= ((gBattleMons[gBattlerAttacker].spDefenseIV & 2) << 4);
- typeBits |= ((gBattleMons[gBankAttacker].hpIV & 1) << 0);
- typeBits |= ((gBattleMons[gBankAttacker].attackIV & 1) << 1);
- typeBits |= ((gBattleMons[gBankAttacker].defenseIV & 1) << 2);
- typeBits |= ((gBattleMons[gBankAttacker].speedIV & 1) << 3);
- typeBits |= ((gBattleMons[gBankAttacker].spAttackIV & 1) << 4);
- typeBits |= ((gBattleMons[gBankAttacker].spDefenseIV & 1) << 5);
+ typeBits |= ((gBattleMons[gBattlerAttacker].hpIV & 1) << 0);
+ typeBits |= ((gBattleMons[gBattlerAttacker].attackIV & 1) << 1);
+ typeBits |= ((gBattleMons[gBattlerAttacker].defenseIV & 1) << 2);
+ typeBits |= ((gBattleMons[gBattlerAttacker].speedIV & 1) << 3);
+ typeBits |= ((gBattleMons[gBattlerAttacker].spAttackIV & 1) << 4);
+ typeBits |= ((gBattleMons[gBattlerAttacker].spDefenseIV & 1) << 5);
gDynamicBasePower = (40 * powerBits) / 63 + 30;
@@ -9496,7 +9490,7 @@ static void atkC1_hiddenpowercalc(void)
mov r5, r8\n\
push {r5-r7}\n\
ldr r2, =gBattleMons\n\
- ldr r0, =gBankAttacker\n\
+ ldr r0, =gBattlerAttacker\n\
ldrb r1, [r0]\n\
movs r0, 0x58\n\
adds r4, r1, 0\n\
@@ -9632,11 +9626,11 @@ _080544F0:\n\
static void atkC2_selectfirstvalidtarget(void)
{
- for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++)
+ for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount; gBattlerTarget++)
{
- if (gBankTarget == gBankAttacker)
+ if (gBattlerTarget == gBattlerAttacker)
continue;
- if (!(gAbsentBankFlags & gBitTable[gBankTarget]))
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget]))
break;
}
gBattlescriptCurrInstr++;
@@ -9644,22 +9638,22 @@ static void atkC2_selectfirstvalidtarget(void)
static void atkC3_trysetfutureattack(void)
{
- if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0)
+ if (gWishFutureKnock.futureSightCounter[gBattlerTarget] != 0)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gSideAffecting[GET_BANK_SIDE(gBankTarget)] |= SIDE_STATUS_FUTUREATTACK;
- gWishFutureKnock.futureSightMove[gBankTarget] = gCurrentMove;
- gWishFutureKnock.futureSightAttacker[gBankTarget] = gBankAttacker;
- gWishFutureKnock.futureSightCounter[gBankTarget] = 3;
- gWishFutureKnock.futureSightDmg[gBankTarget] = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove,
- gSideAffecting[GET_BANK_SIDE(gBankTarget)], 0,
- 0, gBankAttacker, gBankTarget);
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] |= SIDE_STATUS_FUTUREATTACK;
+ gWishFutureKnock.futureSightMove[gBattlerTarget] = gCurrentMove;
+ gWishFutureKnock.futureSightAttacker[gBattlerTarget] = gBattlerAttacker;
+ gWishFutureKnock.futureSightCounter[gBattlerTarget] = 3;
+ gWishFutureKnock.futureSightDmg[gBattlerTarget] = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerTarget], gCurrentMove,
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)], 0,
+ 0, gBattlerAttacker, gBattlerTarget);
- if (gProtectStructs[gBankAttacker].helpingHand)
- gWishFutureKnock.futureSightDmg[gBankTarget] = gWishFutureKnock.futureSightDmg[gBankTarget] * 15 / 10;
+ if (gProtectStructs[gBattlerAttacker].helpingHand)
+ gWishFutureKnock.futureSightDmg[gBattlerTarget] = gWishFutureKnock.futureSightDmg[gBattlerTarget] * 15 / 10;
if (gCurrentMove == MOVE_DOOM_DESIRE)
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -9674,12 +9668,12 @@ static void atkC4_trydobeatup(void)
{
struct Pokemon *party;
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
- if (gBattleMons[gBankTarget].hp == 0)
+ if (gBattleMons[gBattlerTarget].hp == 0)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
@@ -9696,16 +9690,16 @@ static void atkC4_trydobeatup(void)
}
if (gBattleCommunication[0] < 6)
{
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankAttacker, gBattleCommunication[0])
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattleCommunication[0])
gBattlescriptCurrInstr += 9;
gBattleMoveDamage = gBaseStats[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack;
gBattleMoveDamage *= gBattleMoves[gCurrentMove].power;
gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2);
- gBattleMoveDamage /= gBaseStats[gBattleMons[gBankTarget].species].baseDefense;
+ gBattleMoveDamage /= gBaseStats[gBattleMons[gBattlerTarget].species].baseDefense;
gBattleMoveDamage = (gBattleMoveDamage / 50) + 2;
- if (gProtectStructs[gBankAttacker].helpingHand)
+ if (gProtectStructs[gBattlerAttacker].helpingHand)
gBattleMoveDamage = gBattleMoveDamage * 15 / 10;
gBattleCommunication[0]++;
@@ -9723,13 +9717,13 @@ static void atkC5_setsemiinvulnerablebit(void)
{
case MOVE_FLY:
case MOVE_BOUNCE:
- gStatuses3[gBankAttacker] |= STATUS3_ON_AIR;
+ gStatuses3[gBattlerAttacker] |= STATUS3_ON_AIR;
break;
case MOVE_DIG:
- gStatuses3[gBankAttacker] |= STATUS3_UNDERGROUND;
+ gStatuses3[gBattlerAttacker] |= STATUS3_UNDERGROUND;
break;
case MOVE_DIVE:
- gStatuses3[gBankAttacker] |= STATUS3_UNDERWATER;
+ gStatuses3[gBattlerAttacker] |= STATUS3_UNDERWATER;
break;
}
@@ -9742,13 +9736,13 @@ static void atkC6_clearsemiinvulnerablebit(void)
{
case MOVE_FLY:
case MOVE_BOUNCE:
- gStatuses3[gBankAttacker] &= ~STATUS3_ON_AIR;
+ gStatuses3[gBattlerAttacker] &= ~STATUS3_ON_AIR;
break;
case MOVE_DIG:
- gStatuses3[gBankAttacker] &= ~STATUS3_UNDERGROUND;
+ gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERGROUND;
break;
case MOVE_DIVE:
- gStatuses3[gBankAttacker] &= ~STATUS3_UNDERWATER;
+ gStatuses3[gBattlerAttacker] &= ~STATUS3_UNDERWATER;
break;
}
@@ -9758,7 +9752,7 @@ static void atkC6_clearsemiinvulnerablebit(void)
static void atkC7_setminimize(void)
{
if (gHitMarker & HITMARKER_OBEYS)
- gStatuses3[gBankAttacker] |= STATUS3_MINIMIZED;
+ gStatuses3[gBattlerAttacker] |= STATUS3_MINIMIZED;
gBattlescriptCurrInstr++;
}
@@ -9767,7 +9761,7 @@ static void atkC8_sethail(void)
{
if (gBattleWeather & WEATHER_HAIL_ANY)
{
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
else
@@ -9782,34 +9776,34 @@ static void atkC8_sethail(void)
static void atkC9_jumpifattackandspecialattackcannotfall(void) // memento
{
- if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0
- && gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0
+ if (gBattleMons[gBattlerTarget].statStages[STAT_STAGE_ATK] == 0
+ && gBattleMons[gBattlerTarget].statStages[STAT_STAGE_SPATK] == 0
&& gBattleCommunication[6] != 1)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gActiveBank = gBankAttacker;
- gBattleMoveDamage = gBattleMons[gActiveBank].hp;
- EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].hp;
+ BtlController_EmitHealthBarUpdate(0, INSTANT_HP_BAR_DROP);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 5;
}
}
static void atkCA_setforcedtarget(void) // follow me
{
- gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1;
- gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker;
+ gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTimer = 1;
+ gSideTimers[GetBattlerSide(gBattlerAttacker)].followmeTarget = gBattlerAttacker;
gBattlescriptCurrInstr++;
}
static void atkCB_setcharge(void)
{
- gStatuses3[gBankAttacker] |= STATUS3_CHARGED_UP;
- gDisableStructs[gBankAttacker].chargeTimer1 = 2;
- gDisableStructs[gBankAttacker].chargeTimer2 = 2;
+ gStatuses3[gBattlerAttacker] |= STATUS3_CHARGED_UP;
+ gDisableStructs[gBattlerAttacker].chargeTimer1 = 2;
+ gDisableStructs[gBattlerAttacker].chargeTimer2 = 2;
gBattlescriptCurrInstr++;
}
@@ -9817,20 +9811,20 @@ static void atkCC_callterrainattack(void) // nature power
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = sNaturePowerMoves[gBattleTerrain];
- gBankTarget = GetMoveTarget(gCurrentMove, 0);
+ gBattlerTarget = GetMoveTarget(gCurrentMove, 0);
BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]);
gBattlescriptCurrInstr++;
}
static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh
{
- if (gBattleMons[gBankAttacker].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+ if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON))
{
- gBattleMons[gBankAttacker].status1 = 0;
+ gBattleMons[gBattlerAttacker].status1 = 0;
gBattlescriptCurrInstr += 5;
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
}
else
{
@@ -9840,20 +9834,20 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) // refresh
static void atkCE_settorment(void)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT)
+ if (gBattleMons[gBattlerTarget].status2 & STATUS2_TORMENT)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT;
+ gBattleMons[gBattlerTarget].status2 |= STATUS2_TORMENT;
gBattlescriptCurrInstr += 5;
}
}
static void atkCF_jumpifnodamage(void)
{
- if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg)
+ if (gProtectStructs[gBattlerAttacker].physicalDmg || gProtectStructs[gBattlerAttacker].specialDmg)
gBattlescriptCurrInstr += 5;
else
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
@@ -9861,10 +9855,10 @@ static void atkCF_jumpifnodamage(void)
static void atkD0_settaunt(void)
{
- if (gDisableStructs[gBankTarget].tauntTimer1 == 0)
+ if (gDisableStructs[gBattlerTarget].tauntTimer1 == 0)
{
- gDisableStructs[gBankTarget].tauntTimer1 = 2;
- gDisableStructs[gBankTarget].tauntTimer2 = 2;
+ gDisableStructs[gBattlerTarget].tauntTimer1 = 2;
+ gDisableStructs[gBattlerTarget].tauntTimer2 = 2;
gBattlescriptCurrInstr += 5;
}
else
@@ -9875,14 +9869,14 @@ static void atkD0_settaunt(void)
static void atkD1_trysethelpinghand(void)
{
- gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON);
+ gBattlerTarget = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && !(gAbsentBankFlags & gBitTable[gBankTarget])
- && !gProtectStructs[gBankAttacker].helpingHand
- && !gProtectStructs[gBankTarget].helpingHand)
+ && !(gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ && !gProtectStructs[gBattlerAttacker].helpingHand
+ && !gProtectStructs[gBattlerTarget].helpingHand)
{
- gProtectStructs[gBankTarget].helpingHand = 1;
+ gProtectStructs[gBattlerTarget].helpingHand = 1;
gBattlescriptCurrInstr += 5;
}
else
@@ -9895,7 +9889,7 @@ static void atkD2_tryswapitems(void) // trick
{
// opponent can't swap items with player in regular battles
if (gBattleTypeFlags & BATTLE_TYPE_x4000000
- || (GetBankSide(gBankAttacker) == SIDE_OPPONENT
+ || (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_EREADER_TRAINER
| BATTLE_TYPE_FRONTIER
@@ -9906,8 +9900,8 @@ static void atkD2_tryswapitems(void) // trick
}
else
{
- u8 sideAttacker = GetBankSide(gBankAttacker);
- u8 sideTarget = GetBankSide(gBankTarget);
+ u8 sideAttacker = GetBattlerSide(gBattlerAttacker);
+ u8 sideTarget = GetBattlerSide(gBattlerTarget);
// you can't swap items if they were knocked off in regular battles
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
@@ -9915,53 +9909,53 @@ static void atkD2_tryswapitems(void) // trick
| BATTLE_TYPE_FRONTIER
| BATTLE_TYPE_SECRET_BASE
| BATTLE_TYPE_x2000000))
- && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlePartyID[gBankAttacker]]
- || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlePartyID[gBankTarget]]))
+ && (gWishFutureKnock.knockedOffPokes[sideAttacker] & gBitTable[gBattlerPartyIndexes[gBattlerAttacker]]
+ || gWishFutureKnock.knockedOffPokes[sideTarget] & gBitTable[gBattlerPartyIndexes[gBattlerTarget]]))
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
// can't swap if two pokemon don't have an item
// or if either of them is an enigma berry or a mail
- else if ((gBattleMons[gBankAttacker].item == 0 && gBattleMons[gBankTarget].item == 0)
- || gBattleMons[gBankAttacker].item == ITEM_ENIGMA_BERRY
- || gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY
- || IS_ITEM_MAIL(gBattleMons[gBankAttacker].item)
- || IS_ITEM_MAIL(gBattleMons[gBankTarget].item))
+ else if ((gBattleMons[gBattlerAttacker].item == 0 && gBattleMons[gBattlerTarget].item == 0)
+ || gBattleMons[gBattlerAttacker].item == ITEM_ENIGMA_BERRY
+ || gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY
+ || IS_ITEM_MAIL(gBattleMons[gBattlerAttacker].item)
+ || IS_ITEM_MAIL(gBattleMons[gBattlerTarget].item))
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
// check if ability prevents swapping
- else if (gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD)
+ else if (gBattleMons[gBattlerTarget].ability == ABILITY_STICKY_HOLD)
{
gBattlescriptCurrInstr = BattleScript_StickyHoldActivates;
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
- RecordAbilityBattle(gBankTarget, gLastUsedAbility);
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
+ RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
// took a while, but all checks passed and items can be safely swapped
else
{
u16 oldItemAtk, *newItemAtk;
- newItemAtk = &gBattleStruct->changedItems[gBankAttacker];
- oldItemAtk = gBattleMons[gBankAttacker].item;
- *newItemAtk = gBattleMons[gBankTarget].item;
+ newItemAtk = &gBattleStruct->changedItems[gBattlerAttacker];
+ oldItemAtk = gBattleMons[gBattlerAttacker].item;
+ *newItemAtk = gBattleMons[gBattlerTarget].item;
- gBattleMons[gBankAttacker].item = 0;
- gBattleMons[gBankTarget].item = oldItemAtk;
+ gBattleMons[gBattlerAttacker].item = 0;
+ gBattleMons[gBattlerTarget].item = oldItemAtk;
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk);
- MarkBufferBankForExecution(gBankAttacker);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, newItemAtk);
+ MarkBattlerForControllerExec(gBattlerAttacker);
- gActiveBank = gBankTarget;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item);
- MarkBufferBankForExecution(gBankTarget);
+ gActiveBattler = gBattlerTarget;
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBattlerTarget].item);
+ MarkBattlerForControllerExec(gBattlerTarget);
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 0) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankTarget]) + 1) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 0) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerTarget]) + 1) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 0) = 0;
- *(u8*)((u8*)(&gBattleStruct->choicedMove[gBankAttacker]) + 1) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerAttacker]) + 0) = 0;
+ *(u8*)((u8*)(&gBattleStruct->choicedMove[gBattlerAttacker]) + 1) = 0;
gBattlescriptCurrInstr += 5;
@@ -9980,11 +9974,11 @@ static void atkD2_tryswapitems(void) // trick
static void atkD3_trycopyability(void) // role play
{
- if (gBattleMons[gBankTarget].ability != 0
- && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD)
+ if (gBattleMons[gBattlerTarget].ability != 0
+ && gBattleMons[gBattlerTarget].ability != ABILITY_WONDER_GUARD)
{
- gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability;
- gLastUsedAbility = gBattleMons[gBankTarget].ability;
+ gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability;
+ gLastUsedAbility = gBattleMons[gBattlerTarget].ability;
gBattlescriptCurrInstr += 5;
}
else
@@ -9998,10 +9992,10 @@ static void atkD4_trywish(void)
switch (gBattlescriptCurrInstr[1])
{
case 0: // use wish
- if (gWishFutureKnock.wishCounter[gBankAttacker] == 0)
+ if (gWishFutureKnock.wishCounter[gBattlerAttacker] == 0)
{
- gWishFutureKnock.wishCounter[gBankAttacker] = 2;
- gWishFutureKnock.wishUserID[gBankAttacker] = gBattlePartyID[gBankAttacker];
+ gWishFutureKnock.wishCounter[gBattlerAttacker] = 2;
+ gWishFutureKnock.wishUserID[gBattlerAttacker] = gBattlerPartyIndexes[gBattlerAttacker];
gBattlescriptCurrInstr += 6;
}
else
@@ -10010,14 +10004,14 @@ static void atkD4_trywish(void)
}
break;
case 1: // heal effect
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBankTarget, gWishFutureKnock.wishUserID[gBankTarget])
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerTarget, gWishFutureKnock.wishUserID[gBattlerTarget])
- gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 2;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
- if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
+ if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP)
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -10028,23 +10022,23 @@ static void atkD4_trywish(void)
static void atkD5_trysetroots(void) // ingrain
{
- if (gStatuses3[gBankAttacker] & STATUS3_ROOTED)
+ if (gStatuses3[gBattlerAttacker] & STATUS3_ROOTED)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gStatuses3[gBankAttacker] |= STATUS3_ROOTED;
+ gStatuses3[gBattlerAttacker] |= STATUS3_ROOTED;
gBattlescriptCurrInstr += 5;
}
}
static void atkD6_doubledamagedealtifdamaged(void)
{
- if ((gProtectStructs[gBankAttacker].physicalDmg
- && gProtectStructs[gBankAttacker].physicalBank == gBankTarget)
- || (gProtectStructs[gBankAttacker].specialDmg
- && gProtectStructs[gBankAttacker].specialBank == gBankTarget))
+ if ((gProtectStructs[gBattlerAttacker].physicalDmg
+ && gProtectStructs[gBattlerAttacker].physicalBank == gBattlerTarget)
+ || (gProtectStructs[gBattlerAttacker].specialDmg
+ && gProtectStructs[gBattlerAttacker].specialBank == gBattlerTarget))
{
gBattleScripting.dmgMultiplier = 2;
}
@@ -10054,27 +10048,27 @@ static void atkD6_doubledamagedealtifdamaged(void)
static void atkD7_setyawn(void)
{
- if (gStatuses3[gBankTarget] & STATUS3_YAWN
- || gBattleMons[gBankTarget].status1 & STATUS_ANY)
+ if (gStatuses3[gBattlerTarget] & STATUS3_YAWN
+ || gBattleMons[gBattlerTarget].status1 & STATUS1_ANY)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gStatuses3[gBankTarget] |= 0x1000;
+ gStatuses3[gBattlerTarget] |= 0x1000;
gBattlescriptCurrInstr += 5;
}
}
static void atkD8_setdamagetohealthdifference(void)
{
- if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp)
+ if (gBattleMons[gBattlerTarget].hp <= gBattleMons[gBattlerAttacker].hp)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gBattleMoveDamage = gBattleMons[gBankTarget].hp - gBattleMons[gBankAttacker].hp;
+ gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - gBattleMons[gBattlerAttacker].hp;
gBattlescriptCurrInstr += 5;
}
}
@@ -10084,7 +10078,7 @@ static void atkD9_scaledamagebyhealthratio(void)
if (gDynamicBasePower == 0)
{
u8 power = gBattleMoves[gCurrentMove].power;
- gDynamicBasePower = gBattleMons[gBankAttacker].hp * power / gBattleMons[gBankAttacker].maxHP;
+ gDynamicBasePower = gBattleMons[gBattlerAttacker].hp * power / gBattleMons[gBattlerAttacker].maxHP;
if (gDynamicBasePower == 0)
gDynamicBasePower = 1;
}
@@ -10093,19 +10087,19 @@ static void atkD9_scaledamagebyhealthratio(void)
static void atkDA_tryswapabilities(void) // skill swap
{
- if ((gBattleMons[gBankAttacker].ability == 0
- && gBattleMons[gBankTarget].ability == 0)
- || gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD
- || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD
- || gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if ((gBattleMons[gBattlerAttacker].ability == 0
+ && gBattleMons[gBattlerTarget].ability == 0)
+ || gBattleMons[gBattlerAttacker].ability == ABILITY_WONDER_GUARD
+ || gBattleMons[gBattlerTarget].ability == ABILITY_WONDER_GUARD
+ || gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- u8 abilityAtk = gBattleMons[gBankAttacker].ability;
- gBattleMons[gBankAttacker].ability = gBattleMons[gBankTarget].ability;
- gBattleMons[gBankTarget].ability = abilityAtk;
+ u8 abilityAtk = gBattleMons[gBattlerAttacker].ability;
+ gBattleMons[gBattlerAttacker].ability = gBattleMons[gBattlerTarget].ability;
+ gBattleMons[gBattlerTarget].ability = abilityAtk;
gBattlescriptCurrInstr += 5;
}
@@ -10113,7 +10107,7 @@ static void atkDA_tryswapabilities(void) // skill swap
static void atkDB_tryimprision(void)
{
- if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS))
+ if ((gStatuses3[gBattlerAttacker] & STATUS3_IMPRISONED_OTHERS))
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
@@ -10121,11 +10115,11 @@ static void atkDB_tryimprision(void)
{
u8 bank, sideAttacker;
- sideAttacker = GetBankSide(gBankAttacker);
- PressurePPLoseOnUsingImprision(gBankAttacker);
- for (bank = 0; bank < gNoOfAllBanks; bank++)
+ sideAttacker = GetBattlerSide(gBattlerAttacker);
+ PressurePPLoseOnUsingImprision(gBattlerAttacker);
+ for (bank = 0; bank < gBattlersCount; bank++)
{
- if (sideAttacker != GetBankSide(bank))
+ if (sideAttacker != GetBattlerSide(bank))
{
s32 attackerMoveId;
for (attackerMoveId = 0; attackerMoveId < 4; attackerMoveId++)
@@ -10133,8 +10127,8 @@ static void atkDB_tryimprision(void)
s32 i;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[gBankAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i]
- && gBattleMons[gBankAttacker].moves[attackerMoveId] != MOVE_NONE)
+ if (gBattleMons[gBattlerAttacker].moves[attackerMoveId] == gBattleMons[bank].moves[i]
+ && gBattleMons[gBattlerAttacker].moves[attackerMoveId] != MOVE_NONE)
break;
}
if (i != 4)
@@ -10142,26 +10136,26 @@ static void atkDB_tryimprision(void)
}
if (attackerMoveId != 4)
{
- gStatuses3[gBankAttacker] |= STATUS3_IMPRISONED_OTHERS;
+ gStatuses3[gBattlerAttacker] |= STATUS3_IMPRISONED_OTHERS;
gBattlescriptCurrInstr += 5;
break;
}
}
}
- if (bank == gNoOfAllBanks) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes
+ if (bank == gBattlersCount) // In Generation 3 games, Imprison fails if the user doesn't share any moves with any of the foes
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
}
static void atkDC_trysetgrudge(void)
{
- if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE)
+ if (gStatuses3[gBattlerAttacker] & STATUS3_GRUDGE)
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gStatuses3[gBankAttacker] |= STATUS3_GRUDGE;
+ gStatuses3[gBattlerAttacker] |= STATUS3_GRUDGE;
gBattlescriptCurrInstr += 5;
}
}
@@ -10171,7 +10165,7 @@ static void atkDD_weightdamagecalculation(void)
s32 i;
for (i = 0; sWeightToDamageTable[i] != 0xFFFF; i += 2)
{
- if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
+ if (sWeightToDamageTable[i] > GetPokedexHeightWeight(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), 1))
break;
}
@@ -10190,14 +10184,14 @@ static void atkDE_asistattackselect(void)
s32 monId, moveId;
u16* movesArray = gBattleStruct->assistPossibleMoves;
- if (GET_BANK_SIDE(gBankAttacker) != SIDE_PLAYER)
+ if (GET_BATTLER_SIDE(gBattlerAttacker) != B_SIDE_PLAYER)
party = gEnemyParty;
else
party = gPlayerParty;
for (monId = 0; monId < 6; monId++)
{
- if (monId == gBattlePartyID[gBankAttacker])
+ if (monId == gBattlerPartyIndexes[gBattlerAttacker])
continue;
if (GetMonData(&party[monId], MON_DATA_SPECIES2) == SPECIES_NONE)
continue;
@@ -10227,7 +10221,7 @@ static void atkDE_asistattackselect(void)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gRandomMove = movesArray[((Random() & 0xFF) * chooseableMovesNo) >> 8];
- gBankTarget = GetMoveTarget(gRandomMove, 0);
+ gBattlerTarget = GetMoveTarget(gRandomMove, 0);
gBattlescriptCurrInstr += 5;
}
else
@@ -10238,29 +10232,29 @@ static void atkDE_asistattackselect(void)
static void atkDF_trysetmagiccoat(void)
{
- gBankTarget = gBankAttacker;
- gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn
+ gBattlerTarget = gBattlerAttacker;
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gProtectStructs[gBankAttacker].bounceMove = 1;
+ gProtectStructs[gBattlerAttacker].bounceMove = 1;
gBattlescriptCurrInstr += 5;
}
}
static void atkE0_trysetsnatch(void) // snatch
{
- gSpecialStatuses[gBankAttacker].flag20 = 1;
- if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn
+ gSpecialStatuses[gBattlerAttacker].flag20 = 1;
+ if (gCurrentTurnActionNumber == gBattlersCount - 1) // moves last turn
{
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
else
{
- gProtectStructs[gBankAttacker].stealMove = 1;
+ gProtectStructs[gBattlerAttacker].stealMove = 1;
gBattlescriptCurrInstr += 5;
}
}
@@ -10269,20 +10263,20 @@ static void atkE1_trygetintimidatetarget(void)
{
u8 side;
- gBattleScripting.bank = gBattleStruct->intimidateBank;
- side = GetBankSide(gBattleScripting.bank);
+ gBattleScripting.battler = gBattleStruct->intimidateBank;
+ side = GetBattlerSide(gBattleScripting.battler);
- PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.bank].ability)
+ PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability)
- for (;gBankTarget < gNoOfAllBanks; gBankTarget++)
+ for (;gBattlerTarget < gBattlersCount; gBattlerTarget++)
{
- if (GetBankSide(gBankTarget) == side)
+ if (GetBattlerSide(gBattlerTarget) == side)
continue;
- if (!(gAbsentBankFlags & gBitTable[gBankTarget]))
+ if (!(gAbsentBattlerFlags & gBitTable[gBattlerTarget]))
break;
}
- if (gBankTarget >= gNoOfAllBanks)
+ if (gBattlerTarget >= gBattlersCount)
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
@@ -10290,14 +10284,14 @@ static void atkE1_trygetintimidatetarget(void)
static void atkE2_switchoutabilities(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- switch (gBattleMons[gActiveBank].ability)
+ switch (gBattleMons[gActiveBattler].ability)
{
case ABILITY_NATURAL_CURE:
- gBattleMons[gActiveBank].status1 = 0;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gBattleMons[gActiveBattler].status1 = 0;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[*(gBattleStruct->field_58 + gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
}
@@ -10306,9 +10300,9 @@ static void atkE2_switchoutabilities(void)
static void atkE3_jumpifhasnohp(void)
{
- gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ gActiveBattler = GetBattleBank(gBattlescriptCurrInstr[1]);
- if (gBattleMons[gActiveBank].hp == 0)
+ if (gBattleMons[gActiveBattler].hp == 0)
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -10427,13 +10421,13 @@ static void atkE5_pickup(void)
static void atkE6_docastformchangeanimation(void)
{
- gActiveBank = gBattleScripting.bank;
+ gActiveBattler = gBattleScripting.battler;
- if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE)
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE)
*(&gBattleStruct->formToChangeInto) |= 0x80;
- EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr++;
}
@@ -10443,7 +10437,7 @@ static void atkE7_trycastformdatachange(void)
u8 form;
gBattlescriptCurrInstr++;
- form = CastformDataTypeChange(gBattleScripting.bank);
+ form = CastformDataTypeChange(gBattleScripting.battler);
if (form)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
@@ -10457,18 +10451,18 @@ static void atkE8_settypebasedhalvers(void) // water and mud sport
if (gBattleMoves[gCurrentMove].effect == EFFECT_MUD_SPORT)
{
- if (!(gStatuses3[gBankAttacker] & STATUS3_MUDSPORT))
+ if (!(gStatuses3[gBattlerAttacker] & STATUS3_MUDSPORT))
{
- gStatuses3[gBankAttacker] |= STATUS3_MUDSPORT;
+ gStatuses3[gBattlerAttacker] |= STATUS3_MUDSPORT;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
worked = TRUE;
}
}
else // water sport
{
- if (!(gStatuses3[gBankAttacker] & STATUS3_WATERSPORT))
+ if (!(gStatuses3[gBattlerAttacker] & STATUS3_WATERSPORT))
{
- gStatuses3[gBankAttacker] |= STATUS3_WATERSPORT;
+ gStatuses3[gBattlerAttacker] |= STATUS3_WATERSPORT;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
worked = TRUE;
}
@@ -10505,16 +10499,16 @@ static void atkEA_tryrecycleitem(void)
{
u16 *usedHeldItem;
- gActiveBank = gBankAttacker;
- usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBank];
- if (*usedHeldItem != 0 && gBattleMons[gActiveBank].item == 0)
+ gActiveBattler = gBattlerAttacker;
+ usedHeldItem = &gBattleStruct->usedHeldItems[gActiveBattler];
+ if (*usedHeldItem != 0 && gBattleMons[gActiveBattler].item == 0)
{
gLastUsedItem = *usedHeldItem;
*usedHeldItem = 0;
- gBattleMons[gActiveBank].item = gLastUsedItem;
+ gBattleMons[gActiveBattler].item = gLastUsedItem;
- EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBattler].item);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 5;
}
@@ -10526,11 +10520,11 @@ static void atkEA_tryrecycleitem(void)
static void atkEB_settypetoterrain(void)
{
- if (gBattleMons[gBankAttacker].type1 != sTerrainToType[gBattleTerrain]
- && gBattleMons[gBankAttacker].type2 != sTerrainToType[gBattleTerrain])
+ if (gBattleMons[gBattlerAttacker].type1 != sTerrainToType[gBattleTerrain]
+ && gBattleMons[gBattlerAttacker].type2 != sTerrainToType[gBattleTerrain])
{
- gBattleMons[gBankAttacker].type1 = sTerrainToType[gBattleTerrain];
- gBattleMons[gBankAttacker].type2 = sTerrainToType[gBattleTerrain];
+ gBattleMons[gBattlerAttacker].type1 = sTerrainToType[gBattleTerrain];
+ gBattleMons[gBattlerAttacker].type2 = sTerrainToType[gBattleTerrain];
PREPARE_TYPE_BUFFER(gBattleTextBuff1, sTerrainToType[gBattleTerrain])
@@ -10544,19 +10538,19 @@ static void atkEB_settypetoterrain(void)
static void atkEC_pursuitrelated(void)
{
- gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON);
+ gActiveBattler = GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) ^ BIT_FLANK);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
- && !(gAbsentBankFlags & gBitTable[gActiveBank])
- && gActionForBanks[gActiveBank] == 0
- && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT)
+ && !(gAbsentBattlerFlags & gBitTable[gActiveBattler])
+ && gChosenActionByBattler[gActiveBattler] == 0
+ && gChosenMoveByBattler[gActiveBattler] == MOVE_PURSUIT)
{
- gActionsByTurnOrder[gActiveBank] = 11;
+ gActionsByTurnOrder[gActiveBattler] = 11;
gCurrentMove = MOVE_PURSUIT;
gBattlescriptCurrInstr += 5;
gBattleScripting.animTurn = 1;
- gBattleScripting.field_20 = gBankAttacker;
- gBankAttacker = gActiveBank;
+ gBattleScripting.field_20 = gBattlerAttacker;
+ gBattlerAttacker = gActiveBattler;
}
else
{
@@ -10566,25 +10560,25 @@ static void atkEC_pursuitrelated(void)
static void atkEF_snatchsetbanks(void)
{
- gEffectBank = gBankAttacker;
+ gEffectBank = gBattlerAttacker;
- if (gBankAttacker == gBankTarget)
- gBankAttacker = gBankTarget = gBattleScripting.bank;
+ if (gBattlerAttacker == gBattlerTarget)
+ gBattlerAttacker = gBattlerTarget = gBattleScripting.battler;
else
- gBankTarget = gBattleScripting.bank;
+ gBattlerTarget = gBattleScripting.battler;
- gBattleScripting.bank = gEffectBank;
+ gBattleScripting.battler = gEffectBank;
gBattlescriptCurrInstr++;
}
static void atkEE_removelightscreenreflect(void) // brick break
{
- u8 opposingSide = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ u8 opposingSide = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[opposingSide].reflectTimer || gSideTimers[opposingSide].lightscreenTimer)
{
- gSideAffecting[opposingSide] &= ~(SIDE_STATUS_REFLECT);
- gSideAffecting[opposingSide] &= ~(SIDE_STATUS_LIGHTSCREEN);
+ gSideStatuses[opposingSide] &= ~(SIDE_STATUS_REFLECT);
+ gSideStatuses[opposingSide] &= ~(SIDE_STATUS_LIGHTSCREEN);
gSideTimers[opposingSide].reflectTimer = 0;
gSideTimers[opposingSide].lightscreenTimer = 0;
gBattleScripting.animTurn = 1;
@@ -10603,22 +10597,22 @@ static void atkEF_handleballthrow(void)
{
u8 ballMultiplier = 0;
- if (gBattleExecBuffer)
+ if (gBattleControllerExecFlags)
return;
- gActiveBank = gBankAttacker;
- gBankTarget = gBankAttacker ^ BIT_SIDE;
+ gActiveBattler = gBattlerAttacker;
+ gBattlerTarget = gBattlerAttacker ^ BIT_SIDE;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
- EmitBallThrowAnim(0, BALL_TRAINER_BLOCK);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBallThrowAnim(0, BALL_TRAINER_BLOCK);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr = BattleScript_TrainerBallBlock;
}
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
{
- EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr = BattleScript_WallyBallThrow;
}
else
@@ -10629,17 +10623,17 @@ static void atkEF_handleballthrow(void)
if (gLastUsedItem == ITEM_SAFARI_BALL)
catchRate = gBattleStruct->field_7C * 1275 / 100;
else
- catchRate = gBaseStats[gBattleMons[gBankTarget].species].catchRate;
+ catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate;
if (gLastUsedItem > ITEM_SAFARI_BALL)
{
switch (gLastUsedItem)
{
case ITEM_NET_BALL:
- if (gBattleMons[gBankTarget].type1 == TYPE_WATER
- || gBattleMons[gBankTarget].type2 == TYPE_WATER
- || gBattleMons[gBankTarget].type1 == TYPE_BUG
- || gBattleMons[gBankTarget].type2 == TYPE_BUG)
+ if (gBattleMons[gBattlerTarget].type1 == TYPE_WATER
+ || gBattleMons[gBattlerTarget].type2 == TYPE_WATER
+ || gBattleMons[gBattlerTarget].type1 == TYPE_BUG
+ || gBattleMons[gBattlerTarget].type2 == TYPE_BUG)
ballMultiplier = 30;
else
ballMultiplier = 10;
@@ -10651,9 +10645,9 @@ static void atkEF_handleballthrow(void)
ballMultiplier = 10;
break;
case ITEM_NEST_BALL:
- if (gBattleMons[gBankTarget].level < 40)
+ if (gBattleMons[gBattlerTarget].level < 40)
{
- ballMultiplier = 40 - gBattleMons[gBankTarget].level;
+ ballMultiplier = 40 - gBattleMons[gBattlerTarget].level;
if (ballMultiplier <= 9)
ballMultiplier = 10;
}
@@ -10663,7 +10657,7 @@ static void atkEF_handleballthrow(void)
}
break;
case ITEM_REPEAT_BALL:
- if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), FLAG_GET_CAUGHT))
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT))
ballMultiplier = 30;
else
ballMultiplier = 10;
@@ -10683,12 +10677,12 @@ static void atkEF_handleballthrow(void)
ballMultiplier = sBallCatchBonuses[gLastUsedItem - 2];
odds = (catchRate * ballMultiplier / 10)
- * (gBattleMons[gBankTarget].maxHP * 3 - gBattleMons[gBankTarget].hp * 2)
- / (3 * gBattleMons[gBankTarget].maxHP);
+ * (gBattleMons[gBattlerTarget].maxHP * 3 - gBattleMons[gBattlerTarget].hp * 2)
+ / (3 * gBattleMons[gBattlerTarget].maxHP);
- if (gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
+ if (gBattleMons[gBattlerTarget].status1 & (STATUS1_SLEEP | STATUS1_FREEZE))
odds *= 2;
- if (gBattleMons[gBankTarget].status1 & (STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
+ if (gBattleMons[gBattlerTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON))
odds = (odds * 15) / 10;
if (gLastUsedItem != ITEM_SAFARI_BALL)
@@ -10706,10 +10700,10 @@ static void atkEF_handleballthrow(void)
if (odds > 254) // mon caught
{
- EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBallThrowAnim(0, BALL_3_SHAKES_SUCCESS);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
- SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem);
+ SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem);
if (CalculatePlayerPartyCount() == 6)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
@@ -10728,13 +10722,13 @@ static void atkEF_handleballthrow(void)
if (gLastUsedItem == ITEM_MASTER_BALL)
shakes = BALL_3_SHAKES_SUCCESS; // why calculate the shakes before that check?
- EmitBallThrowAnim(0, shakes);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitBallThrowAnim(0, shakes);
+ MarkBattlerForControllerExec(gActiveBattler);
if (shakes == BALL_3_SHAKES_SUCCESS) // mon caught, copy of the code above
{
gBattlescriptCurrInstr = BattleScript_SuccessBallThrow;
- SetMonData(&gEnemyParty[gBattlePartyID[gBankTarget]], MON_DATA_POKEBALL, &gLastUsedItem);
+ SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem);
if (CalculatePlayerPartyCount() == 6)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
@@ -10752,18 +10746,18 @@ static void atkEF_handleballthrow(void)
static void atkF0_givecaughtmon(void)
{
- if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY)
+ if (GiveMonToPlayer(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY)
{
if (!sub_813B21C())
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN)));
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
}
else
{
StringCopy(gStringVar1, GetBoxNamePtr(VarGet(VAR_STORAGE_UNKNOWN)));
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gStringVar2);
StringCopy(gStringVar3, GetBoxNamePtr(get_unknown_box_id()));
gBattleCommunication[MULTISTRING_CHOOSER] = 2;
}
@@ -10772,9 +10766,9 @@ static void atkF0_givecaughtmon(void)
gBattleCommunication[MULTISTRING_CHOOSER]++;
}
- gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL);
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
- gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL);
+ gBattleResults.caughtMonSpecies = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES, NULL);
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleResults.caughtMonNick);
+ gBattleResults.caughtMonBall = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_POKEBALL, NULL);
gBattlescriptCurrInstr++;
}
@@ -10810,8 +10804,8 @@ static void atkF2_displaydexinfo(void)
{
FreeAllWindowBuffers();
gBattleCommunication[TASK_ID] = CreateDexDisplayMonDataTask(SpeciesToNationalPokedexNum(species),
- gBattleMons[gBankTarget].otId,
- gBattleMons[gBankTarget].personality);
+ gBattleMons[gBattlerTarget].otId,
+ gBattleMons[gBattlerTarget].personality);
gBattleCommunication[0]++;
}
break;
@@ -10962,13 +10956,13 @@ static void atkF3_trygivecaughtmonnick(void)
case 2:
if (!gPaletteFade.active)
{
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
FreeAllWindowBuffers();
DoNamingScreen(NAMING_SCREEN_CAUGHT_MON, gBattleStruct->caughtMonNick,
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_SPECIES),
- GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]),
- GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL),
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_SPECIES),
+ GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]]),
+ GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_PERSONALITY, NULL),
BattleMainCB2);
gBattleCommunication[MULTIUSE_STATE]++;
@@ -10977,7 +10971,7 @@ static void atkF3_trygivecaughtmonnick(void)
case 3:
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active )
{
- SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
+ SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker ^ BIT_SIDE]], MON_DATA_NICKNAME, gBattleStruct->caughtMonNick);
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
}
break;
@@ -10992,32 +10986,32 @@ static void atkF3_trygivecaughtmonnick(void)
static void atkF4_subattackerhpbydmg(void)
{
- gBattleMons[gBankAttacker].hp -= gBattleMoveDamage;
+ gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage;
gBattlescriptCurrInstr++;
}
static void atkF5_removeattackerstatus1(void)
{
- gBattleMons[gBankAttacker].status1 = 0;
+ gBattleMons[gBattlerAttacker].status1 = 0;
gBattlescriptCurrInstr++;
}
static void atkF6_finishaction(void)
{
- gCurrentActionFuncId = ACTION_FINISHED;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
}
static void atkF7_finishturn(void)
{
- gCurrentActionFuncId = ACTION_FINISHED;
- gCurrentTurnActionNumber = gNoOfAllBanks;
+ gCurrentActionFuncId = B_ACTION_FINISHED;
+ gCurrentTurnActionNumber = gBattlersCount;
}
static void atkF8_trainerslideout(void)
{
- gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]);
- EmitTrainerSlideBack(0);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = GetBattlerAtPosition(gBattlescriptCurrInstr[1]);
+ BtlController_EmitTrainerSlideBack(0);
+ MarkBattlerForControllerExec(gActiveBattler);
gBattlescriptCurrInstr += 2;
}
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 6d7a97844..96af536fe 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -990,14 +990,14 @@ static bool32 IsPlayerDefeated(u32 battleOutcome)
{
switch (battleOutcome)
{
- case BATTLE_LOST:
- case BATTLE_DREW:
+ case B_OUTCOME_LOST:
+ case B_OUTCOME_DREW:
return TRUE;
- case BATTLE_WON:
- case BATTLE_RAN:
- case BATTLE_PLAYER_TELEPORTED:
- case BATTLE_POKE_FLED:
- case BATTLE_CAUGHT:
+ case B_OUTCOME_WON:
+ case B_OUTCOME_RAN:
+ case B_OUTCOME_PLAYER_TELEPORTED:
+ case B_OUTCOME_POKE_FLED:
+ case B_OUTCOME_CAUGHT_POKE:
return FALSE;
default:
return FALSE;
diff --git a/src/battle_transition.c b/src/battle_transition.c
index e003e0fce..0ff8cd903 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -14,7 +14,7 @@
#include "constants/songs.h"
#include "constants/trainers.h"
#include "field_camera.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "malloc.h"
#include "gpu_regs.h"
#include "decompress.h"
@@ -56,8 +56,6 @@ struct StructRectangularSpiral
typedef bool8 (*TransitionStateFunc)(struct Task *task);
typedef bool8 (*TransitionSpriteCallback)(struct Sprite *sprite);
-extern u16 gUnknown_020393A8[];
-extern u16 gUnknown_02038C28[][0x3C0];
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG0_Y;
@@ -65,7 +63,7 @@ extern const struct OamData gFieldObjectBaseOam_32x32;
extern void c2_exit_to_overworld_2_switch(void);
extern void sub_80AC3D0(void);
-extern void dp12_8087EA4(void);
+extern void ScanlineEffect_Clear(void);
// this file's functions
static void LaunchBattleTransitionTask(u8 transitionId);
@@ -1110,9 +1108,9 @@ static void Phase2Task_Swirl(u8 taskId)
static bool8 Phase2_Swirl_Func1(struct Task *task)
{
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- sub_8149F98(gUnknown_020393A8, sTransitionStructPtr->field_14, 0, 2, 0, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_14, 0, 2, 0, 160);
SetVBlankCallback(VBlankCB_Phase2_Swirl);
SetHBlankCallback(HBlankCB_Phase2_Swirl);
@@ -1129,7 +1127,7 @@ static bool8 Phase2_Swirl_Func2(struct Task *task)
task->tData1 += 4;
task->tData2 += 8;
- sub_8149F98(gUnknown_02038C28[0], sTransitionStructPtr->field_14, task->tData1, 2, task->tData2, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], sTransitionStructPtr->field_14, task->tData1, 2, task->tData2, 160);
if (!gPaletteFade.active)
{
@@ -1145,12 +1143,12 @@ static void VBlankCB_Phase2_Swirl(void)
{
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Swirl(void)
{
- u16 var = gUnknown_02038C28[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -1164,10 +1162,10 @@ static void Phase2Task_Shuffle(u8 taskId)
static bool8 Phase2_Shuffle_Func1(struct Task *task)
{
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- memset(gUnknown_020393A8, sTransitionStructPtr->field_16, 0x140);
+ memset(gScanlineEffectRegBuffers[1], sTransitionStructPtr->field_16, 0x140);
SetVBlankCallback(VBlankCB_Phase2_Shuffle);
SetHBlankCallback(HBlankCB_Phase2_Shuffle);
@@ -1192,7 +1190,7 @@ static bool8 Phase2_Shuffle_Func2(struct Task *task)
for (i = 0; i < 160; i++, r4 += 4224)
{
u16 var = r4 / 256;
- gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3);
}
if (!gPaletteFade.active)
@@ -1206,12 +1204,12 @@ static void VBlankCB_Phase2_Shuffle(void)
{
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Shuffle(void)
{
- u16 var = gUnknown_02038C28[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -1257,7 +1255,7 @@ static void sub_814669C(struct Task *task)
s32 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->tData1 = 16;
task->tData2 = 0;
@@ -1272,7 +1270,7 @@ static void sub_814669C(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = 240;
+ gScanlineEffectRegBuffers[1][i] = 240;
}
SetVBlankCallback(VBlankCB0_Phase2_BigPokeball);
@@ -1351,7 +1349,7 @@ static bool8 Phase2_BigPokeball_Func2(struct Task *task)
dst1[i * 32 + j] = *BigPokeballMap | 0xF000;
}
}
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return TRUE;
@@ -1363,7 +1361,7 @@ static bool8 Phase2_Aqua_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LZ77UnCompVram(sTeamAqua_Tilemap, dst1);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return FALSE;
@@ -1375,7 +1373,7 @@ static bool8 Phase2_Magma_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LZ77UnCompVram(sTeamMagma_Tilemap, dst1);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return FALSE;
@@ -1388,7 +1386,7 @@ static bool8 Phase2_Regice_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LoadPalette(gUnknown_085BC2B4, 0xF0, 0x20);
CpuCopy16(gUnknown_085BC314, dst1, 0x500);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return FALSE;
@@ -1401,7 +1399,7 @@ static bool8 Phase2_Registeel_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LoadPalette(gUnknown_085BC2D4, 0xF0, 0x20);
CpuCopy16(gUnknown_085BCB14, dst1, 0x500);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return FALSE;
@@ -1414,7 +1412,7 @@ static bool8 Phase2_Regirock_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LoadPalette(gUnknown_085BC2F4, 0xF0, 0x20);
CpuCopy16(gUnknown_085BD314, dst1, 0x500);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5, 160);
task->tState++;
return FALSE;
@@ -1499,7 +1497,7 @@ static bool8 Phase2_BigPokeball_Func3(struct Task *task)
task->tData4 += 8;
task->tData5 -= 256;
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
sTransitionStructPtr->VBlank_DMA++;
return FALSE;
@@ -1519,7 +1517,7 @@ static bool8 Phase2_BigPokeball_Func4(struct Task *task)
task->tData4 += 8;
task->tData5 -= 256;
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
sTransitionStructPtr->VBlank_DMA++;
return FALSE;
@@ -1531,7 +1529,7 @@ static bool8 Phase2_BigPokeball_Func5(struct Task *task)
task->tData4 += 8;
task->tData5 -= 256;
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 132, task->tData5 >> 8, 160);
if (task->tData5 <= 0)
{
@@ -1577,7 +1575,7 @@ static bool8 Phase2_BigPokeball_Func6(struct Task *task)
if (task->tData1 < 0)
task->tData1 = 0;
}
- sub_814A014(gUnknown_02038C28[0], 120, 80, task->tData1);
+ sub_814A014(gScanlineEffectRegBuffers[0], 120, 80, task->tData1);
if (task->tData1 == 0)
{
SetVBlankCallback(NULL);
@@ -1604,7 +1602,7 @@ static void Transition_BigPokeball_Vblank(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = sTransitionStructPtr->WININ;
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
@@ -1615,13 +1613,13 @@ static void Transition_BigPokeball_Vblank(void)
static void VBlankCB0_Phase2_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_020393A8, &REG_BG0HOFS, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BG0HOFS, 0xA2400001);
}
static void VBlankCB1_Phase2_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_020393A8, &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_PokeballsTrail(u8 taskId)
@@ -1741,7 +1739,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->WININ = 0;
sTransitionStructPtr->WINOUT = 63;
@@ -1750,7 +1748,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_020393A8[i] = 0xF3F4;
+ gScanlineEffectRegBuffers[1][i] = 0xF3F4;
}
SetVBlankCallback(VBlankCB_Phase2_Clockwise_BlackFade);
@@ -1767,7 +1765,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func2(struct Task *task)
sub_814A1AC(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->data[4], -1, 1, 1);
do
{
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] + 1) | 0x7800;
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] + 1) | 0x7800;
} while (!sub_814A228(sTransitionStructPtr->data, 1, 1));
sTransitionStructPtr->data[4] += 16;
@@ -1795,7 +1793,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func3(struct Task *task)
r1 = 120, r3 = sTransitionStructPtr->data[2] + 1;
if (sTransitionStructPtr->data[5] >= 80)
r1 = sTransitionStructPtr->data[2], r3 = 240;
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r3) | (r1 << 8);
if (var != 0)
break;
var = sub_814A228(sTransitionStructPtr->data, 1, 1);
@@ -1811,7 +1809,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func3(struct Task *task)
{
while (sTransitionStructPtr->data[3] < sTransitionStructPtr->data[5])
{
- gUnknown_02038C28[0][++sTransitionStructPtr->data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][++sTransitionStructPtr->data[3]] = (r3) | (r1 << 8);
}
}
@@ -1826,7 +1824,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func4(struct Task *task)
sub_814A1AC(sTransitionStructPtr->data, 120, 80, sTransitionStructPtr->data[4], 160, 1, 1);
do
{
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] << 8) | 0xF0;
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (sTransitionStructPtr->data[2] << 8) | 0xF0;
} while (!sub_814A228(sTransitionStructPtr->data, 1, 1));
sTransitionStructPtr->data[4] -= 16;
@@ -1851,12 +1849,12 @@ static bool8 Phase2_Clockwise_BlackFade_Func5(struct Task *task)
while (1)
{
- r1 = (gUnknown_02038C28[0][sTransitionStructPtr->data[3]]) & 0xFF;
+ r1 = (gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]]) & 0xFF;
r2 = sTransitionStructPtr->data[2];
if (sTransitionStructPtr->data[5] <= 80)
r2 = 120, r1 = sTransitionStructPtr->data[2];
var4 = (r1) | (r2 << 8);
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = var4;
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = var4;
if (var != 0)
break;
var = sub_814A228(sTransitionStructPtr->data, 1, 1);
@@ -1872,7 +1870,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func5(struct Task *task)
{
while (sTransitionStructPtr->data[3] > sTransitionStructPtr->data[5])
{
- gUnknown_02038C28[0][--sTransitionStructPtr->data[3]] = (r1) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][--sTransitionStructPtr->data[3]] = (r1) | (r2 << 8);
}
}
@@ -1892,7 +1890,7 @@ static bool8 Phase2_Clockwise_BlackFade_Func6(struct Task *task)
r2 = 120, r3 = sTransitionStructPtr->data[2];
if (sTransitionStructPtr->data[2] >= 120)
r2 = 0, r3 = 240;
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r3) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r3) | (r2 << 8);
} while (!sub_814A228(sTransitionStructPtr->data, 1, 1));
@@ -1917,12 +1915,12 @@ static void VBlankCB_Phase2_Clockwise_BlackFade(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = sTransitionStructPtr->WININ;
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
- REG_WIN0H = gUnknown_02038C28[1][0];
- DmaSet(0, gUnknown_02038C28[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Ripple(u8 taskId)
@@ -1935,11 +1933,11 @@ static bool8 Phase2_Ripple_Func1(struct Task *task)
u8 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 160; i++)
{
- gUnknown_020393A8[i] = sTransitionStructPtr->field_16;
+ gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_16;
}
SetVBlankCallback(VBlankCB_Phase2_Ripple);
@@ -1971,7 +1969,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task)
// todo: fix the asm
s16 var = r4 >> 8;
asm("");
- gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3);
}
if (++task->tData3 == 81)
@@ -1991,12 +1989,12 @@ static void VBlankCB_Phase2_Ripple(void)
{
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Ripple(void)
{
- u16 var = gUnknown_02038C28[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -2012,7 +2010,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task)
u8 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->WININ = 63;
sTransitionStructPtr->WINOUT = 0;
@@ -2021,7 +2019,7 @@ static bool8 Phase2_Wave_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = 242;
+ gScanlineEffectRegBuffers[1][i] = 242;
}
SetVBlankCallback(VBlankCB_Phase2_Wave);
@@ -2037,7 +2035,7 @@ static bool8 Phase2_Wave_Func2(struct Task *task)
bool8 nextFunc;
sTransitionStructPtr->VBlank_DMA = FALSE;
- toStore = gUnknown_02038C28[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->tData2;
task->tData2 += 16;
task->tData1 += 8;
@@ -2073,11 +2071,11 @@ static void VBlankCB_Phase2_Wave(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = sTransitionStructPtr->WININ;
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
- DmaSet(0, gUnknown_02038C28[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Sydney(u8 taskId)
@@ -2120,7 +2118,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task)
u8 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
Mugshots_CreateOpponentPlayerSprites(task);
task->tData1 = 0;
@@ -2132,7 +2130,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = 0xF0F1;
+ gScanlineEffectRegBuffers[1][i] = 0xF0F1;
}
SetVBlankCallback(VBlankCB0_Phase2_Mugshots);
@@ -2177,7 +2175,7 @@ static bool8 Phase2_Mugshot_Func3(struct Task *task)
sTransitionStructPtr->VBlank_DMA = FALSE;
- toStore = gUnknown_02038C28[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->tData1;
task->tData1 += 0x10;
@@ -2223,7 +2221,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task *task)
sTransitionStructPtr->VBlank_DMA = FALSE;
- for (i = 0, toStore = gUnknown_02038C28[0]; i < 160; i++, toStore++)
+ for (i = 0, toStore = gScanlineEffectRegBuffers[0]; i < 160; i++, toStore++)
{
*toStore = 0xF0;
}
@@ -2266,8 +2264,8 @@ static bool8 Phase2_Mugshot_Func6(struct Task *task)
sTransitionStructPtr->VBlank_DMA = FALSE;
SetVBlankCallback(NULL);
DmaStop(0);
- memset(gUnknown_02038C28[0], 0, 0x140);
- memset(gUnknown_02038C28[1], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[0], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[1], 0, 0x140);
SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
SetGpuReg(REG_OFFSET_BLDY, 0);
task->tState++;
@@ -2300,15 +2298,15 @@ static bool8 Phase2_Mugshot_Func7(struct Task *task)
{
s16 index1 = 0x50 - i;
s16 index2 = 0x50 + i;
- if (gUnknown_02038C28[0][index1] <= 15)
+ if (gScanlineEffectRegBuffers[0][index1] <= 15)
{
r6 = TRUE;
- gUnknown_02038C28[0][index1]++;
+ gScanlineEffectRegBuffers[0][index1]++;
}
- if (gUnknown_02038C28[0][index2] <= 15)
+ if (gScanlineEffectRegBuffers[0][index2] <= 15)
{
r6 = TRUE;
- gUnknown_02038C28[0][index2]++;
+ gScanlineEffectRegBuffers[0][index2]++;
}
}
}
@@ -2336,7 +2334,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task *task)
sTransitionStructPtr->VBlank_DMA = FALSE;
task->tData3++;
- memset(gUnknown_02038C28[0], task->tData3, 0x140);
+ memset(gScanlineEffectRegBuffers[0], task->tData3, 0x140);
if (task->tData3 > 15)
task->tState++;
@@ -2357,12 +2355,12 @@ static void VBlankCB0_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BG0VOFS = sTransitionStructPtr->BG0VOFS;
REG_WININ = sTransitionStructPtr->WININ;
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
- DmaSet(0, gUnknown_02038C28[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_Mugshots(void)
@@ -2370,9 +2368,9 @@ static void VBlankCB1_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BLDCNT = sTransitionStructPtr->BLDCNT;
- DmaSet(0, gUnknown_02038C28[1], &REG_BLDY, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BLDY, 0xA2400001);
}
static void HBlankCB_Phase2_Mugshots(void)
@@ -2500,7 +2498,7 @@ static bool8 Phase2_Slice_Func1(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->tData2 = 256;
task->tData3 = 1;
@@ -2511,8 +2509,8 @@ static bool8 Phase2_Slice_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = sTransitionStructPtr->field_14;
- gUnknown_02038C28[1][160 + i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_14;
+ gScanlineEffectRegBuffers[1][160 + i] = 0xF0;
}
EnableInterrupts(INTR_FLAG_HBLANK);
@@ -2541,8 +2539,8 @@ static bool8 Phase2_Slice_Func2(struct Task *task)
for (i = 0; i < 160; i++)
{
- u16 *storeLoc1 = &gUnknown_02038C28[0][i];
- u16 *storeLoc2 = &gUnknown_02038C28[0][i + 160];
+ u16 *storeLoc1 = &gScanlineEffectRegBuffers[0][i];
+ u16 *storeLoc2 = &gScanlineEffectRegBuffers[0][i + 160];
if (i & 1)
{
*storeLoc1 = sTransitionStructPtr->field_14 + task->tData1;
@@ -2578,15 +2576,15 @@ static void VBlankCB_Phase2_Slice(void)
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 640);
- DmaSet(0, &gUnknown_02038C28[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void HBlankCB_Phase2_Slice(void)
{
if (REG_VCOUNT < 160)
{
- u16 var = gUnknown_02038C28[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -2603,7 +2601,7 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->WININ = 63;
sTransitionStructPtr->WINOUT = 0;
@@ -2611,13 +2609,13 @@ static bool8 Phase2_ShredSplit_Func1(struct Task *task)
for (i = 0; i < 0xA0; i++)
{
- gUnknown_02038C28[1][i] = sTransitionStructPtr->field_14;
- gUnknown_02038C28[1][0xA0 + i] = 0xF0;
- gUnknown_02038C28[0][i] = sTransitionStructPtr->field_14;
- gUnknown_02038C28[0][0xA0 + i] = 0xF0;
- gUnknown_02038C28[0][0x140 + i] = 0;
- gUnknown_02038C28[0][0x1E0 + i] = 0x100;
- gUnknown_02038C28[0][0x280 + i] = 1;
+ gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_14;
+ gScanlineEffectRegBuffers[1][0xA0 + i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_14;
+ gScanlineEffectRegBuffers[0][0xA0 + i] = 0xF0;
+ gScanlineEffectRegBuffers[0][0x140 + i] = 0;
+ gScanlineEffectRegBuffers[0][0x1E0 + i] = 0x100;
+ gScanlineEffectRegBuffers[0][0x280 + i] = 1;
}
task->tData4 = 0;
@@ -2657,9 +2655,9 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task)
unkVar = (arr1[j]) + (arr2[k] * -(i) * 2);
if (unkVar >= 0 && (unkVar != 79 || j != 1))
{
- ptr4 = &gUnknown_02038C28[0][unkVar + 320];
- ptr3 = &gUnknown_02038C28[0][unkVar + 480];
- ptr1 = &gUnknown_02038C28[0][unkVar + 640];
+ ptr4 = &gScanlineEffectRegBuffers[0][unkVar + 320];
+ ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 480];
+ ptr1 = &gScanlineEffectRegBuffers[0][unkVar + 640];
if (*ptr4 > 0xEF)
{
*ptr4 = 0xF0;
@@ -2673,8 +2671,8 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task)
if (*ptr3 <= 0xFFF)
*ptr3 += *ptr1;
}
- ptr2 = &gUnknown_02038C28[0][unkVar];
- ptr3 = &gUnknown_02038C28[0][unkVar + 160];
+ ptr2 = &gScanlineEffectRegBuffers[0][unkVar];
+ ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 160];
*ptr2 = sTransitionStructPtr->field_14 + *ptr4;
*ptr3 = 0xF0 - *ptr4;
@@ -2691,9 +2689,9 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task)
unkVar = (arr1[j] + 1) + (arr2[k] * -(i) * 2);
if (unkVar <= 160 && (unkVar != 80 || j != 1))
{
- ptr4 = &gUnknown_02038C28[0][unkVar + 320];
- ptr3 = &gUnknown_02038C28[0][unkVar + 480];
- ptr1 = &gUnknown_02038C28[0][unkVar + 640];
+ ptr4 = &gScanlineEffectRegBuffers[0][unkVar + 320];
+ ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 480];
+ ptr1 = &gScanlineEffectRegBuffers[0][unkVar + 640];
if (*ptr4 > 0xEF)
{
*ptr4 = 0xF0;
@@ -2707,8 +2705,8 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task)
if (*ptr3 <= 0xFFF)
*ptr3 += *ptr1;
}
- ptr2 = &gUnknown_02038C28[0][unkVar];
- ptr3 = &gUnknown_02038C28[0][unkVar + 160];
+ ptr2 = &gScanlineEffectRegBuffers[0][unkVar];
+ ptr3 = &gScanlineEffectRegBuffers[0][unkVar + 160];
*ptr2 = sTransitionStructPtr->field_14 - *ptr4;
*ptr3 = (*ptr4 << 8) | (0xF1);
@@ -2732,7 +2730,7 @@ static bool8 Phase2_ShredSplit_Func2(struct Task *task)
// This function never increments the state counter, because the loop condition
// is always false, resulting in the game being stuck in an infinite loop.
-// It's possible this transition is only partially
+// It's possible this transition is only partially
// done and the second part was left out.
static bool8 Phase2_ShredSplit_Func3(struct Task *task)
{
@@ -2742,7 +2740,7 @@ static bool8 Phase2_ShredSplit_Func3(struct Task *task)
for (i = 0; i < 0xA0; i++)
{
- if (gUnknown_02038C28[1][i] != 0xF0 && gUnknown_02038C28[1][i] != checkVar2)
+ if (gScanlineEffectRegBuffers[1][i] != 0xF0 && gScanlineEffectRegBuffers[1][i] != checkVar2)
done = FALSE; // a break statement should be put here
}
@@ -2775,7 +2773,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task)
s32 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->WININ = 0;
sTransitionStructPtr->WINOUT = 63;
@@ -2784,7 +2782,7 @@ static bool8 Phase2_Blackhole_Func1(struct Task *task)
for (i = 0; i < 0xA0; i++)
{
- gUnknown_02038C28[1][i] = 0;
+ gScanlineEffectRegBuffers[1][i] = 0;
}
SetVBlankCallback(VBlankCB1_Phase2_BigPokeball);
@@ -2814,7 +2812,7 @@ static bool8 Phase2_Blackhole1_Func3(struct Task *task)
task->tData1 += (task->tData2 >> 8);
if (task->tData1 > 0xA0)
task->tData1 = 0xA0;
- sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1);
+ sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1);
if (task->tData1 == 0xA0)
{
task->tFuncState = 1;
@@ -2840,7 +2838,7 @@ static bool8 Phase2_Blackhole1_Func2(struct Task *task)
}
task->tData1 += gUnknown_085C8C80[task->tData6];
task->tData6 = (task->tData6 + 1) % 2;
- sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1);
+ sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1);
if (task->tData1 < 9)
{
task->tState++;
@@ -2866,7 +2864,7 @@ static bool8 Phase2_Blackhole2_Func2(struct Task *task)
if (task->tData1 > 0xA0)
task->tData1 = 0xA0;
- sub_814A014(gUnknown_02038C28[0], 0x78, 0x50, task->tData1);
+ sub_814A014(gScanlineEffectRegBuffers[0], 0x78, 0x50, task->tData1);
if (task->tData1 == 0xA0)
{
DmaStop(0);
@@ -3113,7 +3111,7 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
SetGpuReg(REG_OFFSET_BG0CNT, 0x9A08);
sub_8149F58(&dst1, &dst2);
@@ -3126,8 +3124,8 @@ static bool8 Phase2_Rayquaza_Func3(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[0][i] = 0;
- gUnknown_02038C28[1][i] = 0x100;
+ gScanlineEffectRegBuffers[0][i] = 0;
+ gScanlineEffectRegBuffers[1][i] = 0x100;
}
SetVBlankCallback(VBlankCB_Phase2_Rayquaza);
@@ -3212,7 +3210,7 @@ static bool8 Phase2_Rayquaza_Func9(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = 0;
+ gScanlineEffectRegBuffers[1][i] = 0;
}
SetVBlankCallback(VBlankCB1_Phase2_BigPokeball);
@@ -3233,11 +3231,11 @@ static void VBlankCB_Phase2_Rayquaza(void)
VBlankCB_BattleTransition();
if (sTransitionStructPtr->field_20 == 0)
- dmaSrc = gUnknown_02038C28[0];
+ dmaSrc = gScanlineEffectRegBuffers[0];
else if (sTransitionStructPtr->field_20 == 1)
- dmaSrc = gUnknown_02038C28[1];
+ dmaSrc = gScanlineEffectRegBuffers[1];
else
- dmaSrc = gUnknown_02038C28[0];
+ dmaSrc = gScanlineEffectRegBuffers[0];
DmaSet(0, dmaSrc, &REG_BG0VOFS, 0xA2400001);
}
@@ -3252,7 +3250,7 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->BLDCNT = 0xBF;
sTransitionStructPtr->BLDY = 0;
@@ -3262,8 +3260,8 @@ static bool8 Phase2_WhiteFade_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = 0;
- gUnknown_02038C28[1][i + 160] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0;
+ gScanlineEffectRegBuffers[1][i + 160] = 0xF0;
}
EnableInterrupts(INTR_FLAG_HBLANK);
@@ -3343,8 +3341,8 @@ static void VBlankCB0_Phase2_WhiteFade(void)
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 640);
- DmaSet(0, &gUnknown_02038C28[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_WhiteFade(void)
@@ -3360,7 +3358,7 @@ static void VBlankCB1_Phase2_WhiteFade(void)
static void HBlankCB_Phase2_WhiteFade(void)
{
- REG_BLDY = gUnknown_02038C28[1][REG_VCOUNT];
+ REG_BLDY = gScanlineEffectRegBuffers[1][REG_VCOUNT];
}
static void sub_8149864(struct Sprite *sprite)
@@ -3374,8 +3372,8 @@ static void sub_8149864(struct Sprite *sprite)
else
{
u16 i;
- u16* ptr1 = &gUnknown_02038C28[0][sprite->pos1.y];
- u16* ptr2 = &gUnknown_02038C28[0][sprite->pos1.y + 160];
+ u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->pos1.y];
+ u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->pos1.y + 160];
for (i = 0; i < 20; i++)
{
ptr1[i] = sprite->data[0] >> 8;
@@ -3465,7 +3463,7 @@ static bool8 Phase2_Shards_Func1(struct Task *task)
u16 i;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sTransitionStructPtr->WININ = 0x3F;
sTransitionStructPtr->WINOUT = 0;
@@ -3473,10 +3471,10 @@ static bool8 Phase2_Shards_Func1(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
}
- CpuSet(gUnknown_02038C28[0], gUnknown_02038C28[1], 0xA0);
+ CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 0xA0);
SetVBlankCallback(VBlankCB_Phase2_Shards);
task->tState++;
@@ -3505,8 +3503,8 @@ static bool8 Phase2_Shards_Func3(struct Task *task)
for (i = 0, nextFunc = FALSE; i < 16; i++)
{
- s16 r3 = gUnknown_02038C28[0][sTransitionStructPtr->data[3]] >> 8;
- s16 r4 = gUnknown_02038C28[0][sTransitionStructPtr->data[3]] & 0xFF;
+ s16 r3 = gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] >> 8;
+ s16 r4 = gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] & 0xFF;
if (task->tData2 == 0)
{
if (r3 < sTransitionStructPtr->data[2])
@@ -3521,7 +3519,7 @@ static bool8 Phase2_Shards_Func3(struct Task *task)
if (r4 <= r3)
r4 = r3;
}
- gUnknown_02038C28[0][sTransitionStructPtr->data[3]] = (r4) | (r3 << 8);
+ gScanlineEffectRegBuffers[0][sTransitionStructPtr->data[3]] = (r4) | (r3 << 8);
if (nextFunc)
{
task->tState++;
@@ -3568,12 +3566,12 @@ static void VBlankCB_Phase2_Shards(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = sTransitionStructPtr->WININ;
REG_WINOUT = sTransitionStructPtr->WINOUT;
REG_WIN0V = sTransitionStructPtr->WIN0V;
- REG_WIN0H = gUnknown_02038C28[1][0];
- DmaSet(0, gUnknown_02038C28[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
// sub-task for phase2
@@ -3875,7 +3873,7 @@ static bool8 Phase2_29_Func2(struct Task *task)
sub_8149F58(&dst1, &dst2);
LZ77UnCompVram(gUnknown_085C828C, dst1);
- sub_8149F98(gUnknown_02038C28[0], 0, task->tData4, 0x84, task->tData5, 160);
+ sub_8149F98(gScanlineEffectRegBuffers[0], 0, task->tData4, 0x84, task->tData5, 160);
task->tState++;
return TRUE;
@@ -3896,7 +3894,7 @@ static bool8 Phase2_30_Func1(struct Task *task)
u16 *dst1, *dst2;
sub_8149F08();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
task->tData2 = 0x2000;
task->tData1 = 0x7FFF;
@@ -3934,7 +3932,7 @@ static bool8 Phase2_30_Func3(struct Task *task)
for (i = 0; i < 160; i++)
{
- gUnknown_02038C28[1][i] = sTransitionStructPtr->field_16;
+ gScanlineEffectRegBuffers[1][i] = sTransitionStructPtr->field_16;
}
SetVBlankCallback(VBlankCB_Phase2_30);
@@ -3980,7 +3978,7 @@ static bool8 Phase2_30_Func4(struct Task *task)
{
s16 index = var6 / 256;
asm("");
- gUnknown_02038C28[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude);
+ gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(index, amplitude);
}
if (++task->tData3 == 101)
@@ -4004,12 +4002,12 @@ static void VBlankCB_Phase2_30(void)
REG_BLDALPHA = sTransitionStructPtr->BLDALPHA;
if (sTransitionStructPtr->VBlank_DMA)
- DmaCopy16(3, gUnknown_02038C28[0], gUnknown_02038C28[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_30(void)
{
- u16 var = gUnknown_02038C28[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG0VOFS = var;
}
diff --git a/src/battle_util.c b/src/battle_util.c
index 2ce37cfbd..bbb4bf41d 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -24,39 +24,39 @@
#include "berry.h"
extern const u8* gBattlescriptCurrInstr;
-extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT];
-extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u8 gActiveBank;
-extern u8 gStringBank;
+extern const u8* gSelectionBattleScripts[MAX_BATTLERS_COUNT];
+extern const u8* gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u8 gActiveBattler;
+extern u8 gStringBattler;
extern u16 gCurrentMove;
extern u16 gLastUsedItem;
-extern u8 gNoOfAllBanks;
-extern u32 gStatuses3[BATTLE_BANKS_COUNT];
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
-extern u8 gAbsentBankFlags;
+extern u8 gBattlersCount;
+extern u32 gStatuses3[MAX_BATTLERS_COUNT];
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
+extern u8 gAbsentBattlerFlags;
extern u16 gBattleWeather;
-extern u8 gBanksByTurnOrder[BATTLE_BANKS_COUNT];
-extern u16 gSideAffecting[2];
+extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
+extern u16 gSideStatuses[2];
extern u8 gBattleCommunication[];
extern void (*gBattleMainFunc)(void);
extern s32 gBattleMoveDamage;
-extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
-extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
+extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
+extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
extern u32 gBattleTypeFlags;
-extern u16 gLastMoves[BATTLE_BANKS_COUNT];
+extern u16 gLastMoves[MAX_BATTLERS_COUNT];
extern u32 gHitMarker;
extern u8 gEffectBank;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern u8 gBank1;
-extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
-extern u8 gBattleMoveFlags;
-extern s32 gTakenDmg[BATTLE_BANKS_COUNT];
-extern u8 gTakenDmgBanks[BATTLE_BANKS_COUNT];
+extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
+extern u8 gMoveResultFlags;
+extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
+extern u8 gTakenDmgBanks[MAX_BATTLERS_COUNT];
extern u8 gLastUsedAbility;
extern u8 gCurrentActionFuncId;
-extern u32 gBattleExecBuffer;
+extern u32 gBattleControllerExecFlags;
extern u16 gRandomMove;
extern u8 gCurrMovePos;
extern u8 gUnknown_020241E9;
@@ -79,10 +79,10 @@ u8 GetBattleBank(u8 caseId)
switch (caseId)
{
case BS_GET_TARGET:
- ret = gBankTarget;
+ ret = gBattlerTarget;
break;
case BS_GET_ATTACKER:
- ret = gBankAttacker;
+ ret = gBattlerAttacker;
break;
case BS_GET_EFFECT_BANK:
ret = gEffectBank;
@@ -91,7 +91,7 @@ u8 GetBattleBank(u8 caseId)
ret = 0;
break;
case BS_GET_SCRIPTING_BANK:
- ret = gBattleScripting.bank;
+ ret = gBattleScripting.battler;
break;
case BS_GET_gBank1:
ret = gBank1;
@@ -104,142 +104,138 @@ u8 GetBattleBank(u8 caseId)
case 8:
case 9:
case BS_GET_PLAYER1:
- ret = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ ret = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
break;
case BS_GET_OPPONENT1:
- ret = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ ret = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
break;
case BS_GET_PLAYER2:
- ret = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ ret = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
break;
case BS_GET_OPPONENT2:
- ret = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ ret = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
break;
}
return ret;
}
-void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move)
+void PressurePPLose(u8 defender, u8 attacker, u16 move)
{
s32 i;
- if (gBattleMons[bankDef].ability != ABILITY_PRESSURE)
+ if (gBattleMons[defender].ability != ABILITY_PRESSURE)
return;
for (i = 0; i < 4; i++)
{
- if (gBattleMons[bankAtk].moves[i] == move)
+ if (gBattleMons[attacker].moves[i] == move)
break;
}
if (i == 4) // mons don't share any moves
return;
- if (gBattleMons[bankAtk].pp[i] != 0)
- gBattleMons[bankAtk].pp[i]--;
+ if (gBattleMons[attacker].pp[i] != 0)
+ gBattleMons[attacker].pp[i]--;
- if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i]))
+ if (!(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[attacker].unk18_b & gBitTable[i]))
{
- gActiveBank = bankAtk;
- EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = attacker;
+ BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
-void PressurePPLoseOnUsingImprision(u8 bankAtk)
+void PressurePPLoseOnUsingImprision(u8 attacker)
{
s32 i, j;
s32 imprisionPos = 4;
- u8 atkSide = GetBankSide(bankAtk);
+ u8 atkSide = GetBattlerSide(attacker);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE)
+ if (atkSide != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE)
{
for (j = 0; j < 4; j++)
{
- if (gBattleMons[bankAtk].moves[j] == MOVE_IMPRISON)
+ if (gBattleMons[attacker].moves[j] == MOVE_IMPRISON)
break;
}
if (j != 4)
{
imprisionPos = j;
- if (gBattleMons[bankAtk].pp[j] != 0)
- gBattleMons[bankAtk].pp[j]--;
+ if (gBattleMons[attacker].pp[j] != 0)
+ gBattleMons[attacker].pp[j]--;
}
}
}
if (imprisionPos != 4
- && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos]))
+ && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[attacker].unk18_b & gBitTable[imprisionPos]))
{
- gActiveBank = bankAtk;
- EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = attacker;
+ BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisionPos]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
-void PressurePPLoseOnUsingPerishSong(u8 bankAtk)
+void PressurePPLoseOnUsingPerishSong(u8 attacker)
{
s32 i, j;
s32 perishSongPos = 4;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk)
+ if (gBattleMons[i].ability == ABILITY_PRESSURE && i != attacker)
{
for (j = 0; j < 4; j++)
{
- if (gBattleMons[bankAtk].moves[j] == MOVE_PERISH_SONG)
+ if (gBattleMons[attacker].moves[j] == MOVE_PERISH_SONG)
break;
}
if (j != 4)
{
perishSongPos = j;
- if (gBattleMons[bankAtk].pp[j] != 0)
- gBattleMons[bankAtk].pp[j]--;
+ if (gBattleMons[attacker].pp[j] != 0)
+ gBattleMons[attacker].pp[j]--;
}
}
}
if (perishSongPos != 4
- && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED)
- && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos]))
+ && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED)
+ && !(gDisableStructs[attacker].unk18_b & gBitTable[perishSongPos]))
{
- gActiveBank = bankAtk;
- EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = attacker;
+ BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]);
+ MarkBattlerForControllerExec(gActiveBattler);
}
}
-void MarkAllBufferBanksForExecution(void) // unused
+void MarkAllBattlersForControllerExec(void) // unused
{
s32 i;
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
- for (i = 0; i < gNoOfAllBanks; i++)
- gBattleExecBuffer |= gBitTable[i] << 0x1C;
+ for (i = 0; i < gBattlersCount; i++)
+ gBattleControllerExecFlags |= gBitTable[i] << 0x1C;
}
else
{
- for (i = 0; i < gNoOfAllBanks; i++)
- gBattleExecBuffer |= gBitTable[i];
+ for (i = 0; i < gBattlersCount; i++)
+ gBattleControllerExecFlags |= gBitTable[i];
}
}
-void MarkBufferBankForExecution(u8 bank)
+void MarkBattlerForControllerExec(u8 battlerId)
{
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
- {
- gBattleExecBuffer |= gBitTable[bank] << 0x1C;
- }
+ gBattleControllerExecFlags |= gBitTable[battlerId] << 0x1C;
else
- {
- gBattleExecBuffer |= gBitTable[bank];
- }
+ gBattleControllerExecFlags |= gBitTable[battlerId];
}
void sub_803F850(u8 arg0)
@@ -247,45 +243,45 @@ void sub_803F850(u8 arg0)
s32 i;
for (i = 0; i < GetLinkPlayerCount(); i++)
- gBattleExecBuffer |= gBitTable[arg0] << (i << 2);
+ gBattleControllerExecFlags |= gBitTable[arg0] << (i << 2);
- gBattleExecBuffer &= ~(0x10000000 << arg0);
+ gBattleControllerExecFlags &= ~(0x10000000 << arg0);
}
-void CancelMultiTurnMoves(u8 bank)
+void CancelMultiTurnMoves(u8 battler)
{
- gBattleMons[bank].status2 &= ~(STATUS2_MULTIPLETURNS);
- gBattleMons[bank].status2 &= ~(STATUS2_LOCK_CONFUSE);
- gBattleMons[bank].status2 &= ~(STATUS2_UPROAR);
- gBattleMons[bank].status2 &= ~(STATUS2_BIDE);
+ gBattleMons[battler].status2 &= ~(STATUS2_MULTIPLETURNS);
+ gBattleMons[battler].status2 &= ~(STATUS2_LOCK_CONFUSE);
+ gBattleMons[battler].status2 &= ~(STATUS2_UPROAR);
+ gBattleMons[battler].status2 &= ~(STATUS2_BIDE);
- gStatuses3[bank] &= ~(STATUS3_SEMI_INVULNERABLE);
+ gStatuses3[battler] &= ~(STATUS3_SEMI_INVULNERABLE);
- gDisableStructs[bank].rolloutCounter1 = 0;
- gDisableStructs[bank].furyCutterCounter = 0;
+ gDisableStructs[battler].rolloutCounter1 = 0;
+ gDisableStructs[battler].furyCutterCounter = 0;
}
-bool8 WasUnableToUseMove(u8 bank)
+bool8 WasUnableToUseMove(u8 battler)
{
- if (gProtectStructs[bank].prlzImmobility
- || gProtectStructs[bank].targetNotAffected
- || gProtectStructs[bank].usedImprisionedMove
- || gProtectStructs[bank].loveImmobility
- || gProtectStructs[bank].usedDisabledMove
- || gProtectStructs[bank].usedTauntedMove
- || gProtectStructs[bank].flag2Unknown
- || gProtectStructs[bank].flinchImmobility
- || gProtectStructs[bank].confusionSelfDmg)
+ if (gProtectStructs[battler].prlzImmobility
+ || gProtectStructs[battler].targetNotAffected
+ || gProtectStructs[battler].usedImprisionedMove
+ || gProtectStructs[battler].loveImmobility
+ || gProtectStructs[battler].usedDisabledMove
+ || gProtectStructs[battler].usedTauntedMove
+ || gProtectStructs[battler].flag2Unknown
+ || gProtectStructs[battler].flinchImmobility
+ || gProtectStructs[battler].confusionSelfDmg)
return TRUE;
else
return FALSE;
}
-void PrepareStringBattle(u16 stringId, u8 bank)
+void PrepareStringBattle(u16 stringId, u8 battler)
{
- gActiveBank = bank;
- EmitPrintString(0, stringId);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = battler;
+ BtlController_EmitPrintString(0, stringId);
+ MarkBattlerForControllerExec(gActiveBattler);
}
void ResetSentPokesToOpponentValue(void)
@@ -296,161 +292,161 @@ void ResetSentPokesToOpponentValue(void)
gSentPokesToOpponent[0] = 0;
gSentPokesToOpponent[1] = 0;
- for (i = 0; i < gNoOfAllBanks; i += 2)
- bits |= gBitTable[gBattlePartyID[i]];
+ for (i = 0; i < gBattlersCount; i += 2)
+ bits |= gBitTable[gBattlerPartyIndexes[i]];
- for (i = 1; i < gNoOfAllBanks; i += 2)
- gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits;
+ for (i = 1; i < gBattlersCount; i += 2)
+ gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits;
}
-void sub_803F9EC(u8 bank)
+void sub_803F9EC(u8 battler)
{
s32 i = 0;
u32 bits = 0;
- if (GetBankSide(bank) == SIDE_OPPONENT)
+ if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
- u8 id = ((bank & BIT_MON) >> 1);
- gSentPokesToOpponent[id] = 0;
+ u8 flank = ((battler & BIT_FLANK) >> 1);
+ gSentPokesToOpponent[flank] = 0;
- for (i = 0; i < gNoOfAllBanks; i += 2)
+ for (i = 0; i < gBattlersCount; i += 2)
{
- if (!(gAbsentBankFlags & gBitTable[i]))
- bits |= gBitTable[gBattlePartyID[i]];
+ if (!(gAbsentBattlerFlags & gBitTable[i]))
+ bits |= gBitTable[gBattlerPartyIndexes[i]];
}
- gSentPokesToOpponent[id] = bits;
+ gSentPokesToOpponent[flank] = bits;
}
}
-void sub_803FA70(u8 bank)
+void sub_803FA70(u8 battler)
{
- if (GetBankSide(bank) == SIDE_OPPONENT)
+ if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
- sub_803F9EC(bank);
+ sub_803F9EC(battler);
}
else
{
s32 i;
- for (i = 1; i < gNoOfAllBanks; i++)
- gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]];
+ for (i = 1; i < gBattlersCount; i++)
+ gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlerPartyIndexes[battler]];
}
}
void BattleScriptPush(const u8* bsPtr)
{
- BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = bsPtr;
+ gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = bsPtr;
}
void BattleScriptPushCursor(void)
{
- BATTLESCRIPTS_STACK->ptr[BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr;
+ gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = gBattlescriptCurrInstr;
}
void BattleScriptPop(void)
{
- gBattlescriptCurrInstr = BATTLESCRIPTS_STACK->ptr[--BATTLESCRIPTS_STACK->size];
+ gBattlescriptCurrInstr = gBattleResources->battleScriptsStack->ptr[--gBattleResources->battleScriptsStack->size];
}
u8 TrySetCantSelectMoveBattleScript(void)
{
u8 limitations = 0;
- u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]];
+ u16 move = gBattleMons[gActiveBattler].moves[gBattleBufferB[gActiveBattler][2]];
u8 holdEffect;
- u16* choicedMove = &gBattleStruct->choicedMove[gActiveBank];
+ u16* choicedMove = &gBattleStruct->choicedMove[gActiveBattler];
- if (gDisableStructs[gActiveBank].disabledMove == move && move != 0)
+ if (gDisableStructs[gActiveBattler].disabledMove == move && move != 0)
{
- gBattleScripting.bank = gActiveBank;
+ gBattleScripting.battler = gActiveBattler;
gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMoveInPalace;
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMoveInPalace;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMove;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMove;
limitations = 1;
}
}
- if (move == gLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT))
+ if (move == gLastMoves[gActiveBattler] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT))
{
- CancelMultiTurnMoves(gActiveBank);
+ CancelMultiTurnMoves(gActiveBattler);
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMoveInPalace;
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMoveInPalace;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMove;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMove;
limitations++;
}
}
- if (gDisableStructs[gActiveBank].tauntTimer1 != 0 && gBattleMoves[move].power == 0)
+ if (gDisableStructs[gActiveBattler].tauntTimer1 != 0 && gBattleMoves[move].power == 0)
{
gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTauntInPalace;
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTauntInPalace;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTaunt;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTaunt;
limitations++;
}
}
- if (GetImprisonedMovesCount(gActiveBank, move))
+ if (GetImprisonedMovesCount(gActiveBattler, move))
{
gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMoveInPalace;
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gPalaceSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMoveInPalace;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMove;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisionedMove;
limitations++;
}
}
- if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY)
- holdEffect = gEnigmaBerries[gActiveBank].holdEffect;
+ if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY)
+ holdEffect = gEnigmaBerries[gActiveBattler].holdEffect;
else
- holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item);
+ holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item);
- gStringBank = gActiveBank;
+ gStringBattler = gActiveBattler;
if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move)
{
gCurrentMove = *choicedMove;
- gLastUsedItem = gBattleMons[gActiveBank].item;
+ gLastUsedItem = gBattleMons[gActiveBattler].item;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveChoiceItem;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveChoiceItem;
limitations++;
}
}
- if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0)
+ if (gBattleMons[gActiveBattler].pp[gBattleBufferB[gActiveBattler][2]] == 0)
{
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{
- gProtectStructs[gActiveBank].flag_x10 = 1;
+ gProtectStructs[gActiveBattler].flag_x10 = 1;
}
else
{
- gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingMoveWithNoPP;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingMoveWithNoPP;
limitations++;
}
}
@@ -469,9 +465,9 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check)
else
holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item);
- gStringBank = bank;
+ gStringBattler = bank;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE)
unusableMoves |= gBitTable[i];
@@ -496,16 +492,16 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check)
bool8 AreAllMovesUnusable(void)
{
u8 unusable;
- unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF);
+ unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF);
if (unusable == 0xF) // all moves are unusable
{
- gProtectStructs[gActiveBank].onlyStruggle = 1;
- gSelectionBattleScripts[gActiveBank] = BattleScript_NoMovesLeft;
+ gProtectStructs[gActiveBattler].onlyStruggle = 1;
+ gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft;
}
else
{
- gProtectStructs[gActiveBank].onlyStruggle = 0;
+ gProtectStructs[gActiveBattler].onlyStruggle = 0;
}
return (unusable == 0xF);
@@ -515,11 +511,11 @@ u8 GetImprisonedMovesCount(u8 bank, u16 move)
{
s32 i;
u8 imprisionedMoves = 0;
- u8 bankSide = GetBankSide(bank);
+ u8 bankSide = GetBattlerSide(bank);
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
+ if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS)
{
s32 j;
for (j = 0; j < 4; j++)
@@ -540,10 +536,10 @@ u8 UpdateTurnCounters(void)
u8 effect = 0;
s32 i;
- for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++)
+ for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerAttacker]; gBattlerAttacker++)
{
}
- for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++)
+ for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerTarget]; gBattlerTarget++)
{
}
@@ -554,16 +550,16 @@ u8 UpdateTurnCounters(void)
switch (gBattleStruct->turncountersTracker)
{
case 0:
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- gBanksByTurnOrder[i] = i;
+ gBattleTurnOrder[i] = i;
}
- for (i = 0; i < gNoOfAllBanks - 1; i++)
+ for (i = 0; i < gBattlersCount - 1; i++)
{
s32 j;
- for (j = i + 1; j < gNoOfAllBanks; j++)
+ for (j = i + 1; j < gBattlersCount; j++)
{
- if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0))
+ if (GetWhoStrikesFirst(gBattleTurnOrder[i], gBattleTurnOrder[j], 0))
SwapTurnOrder(i, j);
}
}
@@ -579,12 +575,12 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
sideBank = gBattleStruct->turnSideTracker;
- gActiveBank = gBankAttacker = gSideTimers[sideBank].reflectBank;
- if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT)
+ gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].reflectBank;
+ if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT)
{
if (--gSideTimers[sideBank].reflectTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT);
effect++;
@@ -604,12 +600,12 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
sideBank = gBattleStruct->turnSideTracker;
- gActiveBank = gBankAttacker = gSideTimers[sideBank].lightscreenBank;
- if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN)
+ gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].lightscreenBank;
+ if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN)
{
if (--gSideTimers[sideBank].lightscreenTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN);
@@ -630,11 +626,11 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
sideBank = gBattleStruct->turnSideTracker;
- gActiveBank = gBankAttacker = gSideTimers[sideBank].mistBank;
+ gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].mistBank;
if (gSideTimers[sideBank].mistTimer != 0
&& --gSideTimers[sideBank].mistTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST;
BattleScriptExecute(BattleScript_SideStatusWoreOff);
gBattleCommunication[MULTISTRING_CHOOSER] = sideBank;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST);
@@ -654,12 +650,12 @@ u8 UpdateTurnCounters(void)
while (gBattleStruct->turnSideTracker < 2)
{
sideBank = gBattleStruct->turnSideTracker;
- gActiveBank = gBankAttacker = gSideTimers[sideBank].safeguardBank;
- if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD)
+ gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].safeguardBank;
+ if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD)
{
if (--gSideTimers[sideBank].safeguardTimer == 0)
{
- gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
+ gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD;
BattleScriptExecute(BattleScript_SafeguardEnds);
effect++;
}
@@ -675,14 +671,14 @@ u8 UpdateTurnCounters(void)
}
break;
case 5:
- while (gBattleStruct->turnSideTracker < gNoOfAllBanks)
+ while (gBattleStruct->turnSideTracker < gBattlersCount)
{
- gActiveBank = gBanksByTurnOrder[gBattleStruct->turnSideTracker];
- if (gWishFutureKnock.wishCounter[gActiveBank] != 0
- && --gWishFutureKnock.wishCounter[gActiveBank] == 0
- && gBattleMons[gActiveBank].hp != 0)
+ gActiveBattler = gBattleTurnOrder[gBattleStruct->turnSideTracker];
+ if (gWishFutureKnock.wishCounter[gActiveBattler] != 0
+ && --gWishFutureKnock.wishCounter[gActiveBattler] == 0
+ && gBattleMons[gActiveBattler].hp != 0)
{
- gBankTarget = gActiveBank;
+ gBattlerTarget = gActiveBattler;
BattleScriptExecute(BattleScript_WishComesTrue);
effect++;
}
@@ -798,10 +794,10 @@ u8 TurnBasedEffects(void)
u8 effect = 0;
gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20);
- while (gBattleStruct->turnEffectsBank < gNoOfAllBanks && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
+ while (gBattleStruct->turnEffectsBank < gBattlersCount && gBattleStruct->turnEffectsTracker <= TURNBASED_MAX_CASE)
{
- gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->turnEffectsBank];
- if (gAbsentBankFlags & gBitTable[gActiveBank])
+ gActiveBattler = gBattlerAttacker = gBattleTurnOrder[gBattleStruct->turnEffectsBank];
+ if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
{
gBattleStruct->turnEffectsBank++;
}
@@ -810,11 +806,11 @@ u8 TurnBasedEffects(void)
switch (gBattleStruct->turnEffectsTracker)
{
case 0: // ingrain
- if ((gStatuses3[gActiveBank] & STATUS3_ROOTED)
- && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP
- && gBattleMons[gActiveBank].hp != 0)
+ if ((gStatuses3[gActiveBattler] & STATUS3_ROOTED)
+ && gBattleMons[gActiveBattler].hp != gBattleMons[gActiveBattler].maxHP
+ && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
@@ -824,40 +820,40 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 1: // end turn abilities
- if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0))
+ if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
case 2: // item effects
- if (ItemBattleEffects(1, gActiveBank, 0))
+ if (ItemBattleEffects(1, gActiveBattler, 0))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
case 18: // item effects again
- if (ItemBattleEffects(1, gActiveBank, 1))
+ if (ItemBattleEffects(1, gActiveBattler, 1))
effect++;
gBattleStruct->turnEffectsTracker++;
break;
case 3: // leech seed
- if ((gStatuses3[gActiveBank] & STATUS3_LEECHSEED)
- && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0
- && gBattleMons[gActiveBank].hp != 0)
+ if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED)
+ && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0
+ && gBattleMons[gActiveBattler].hp != 0)
{
- gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
+ gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- gBattleScripting.animArg1 = gBankTarget;
- gBattleScripting.animArg2 = gBankAttacker;
+ gBattleScripting.animArg1 = gBattlerTarget;
+ gBattleScripting.animArg2 = gBattlerAttacker;
BattleScriptExecute(BattleScript_LeechSeedTurnDrain);
effect++;
}
gBattleStruct->turnEffectsTracker++;
break;
case 4: // poison
- if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BattleScriptExecute(BattleScript_PoisonTurnDmg);
@@ -866,23 +862,23 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 5: // toxic poison
- if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
- if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) // not 16 turns
- gBattleMons[gActiveBank].status1 += 0x100;
- gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8;
+ if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) // not 16 turns
+ gBattleMons[gActiveBattler].status1 += 0x100;
+ gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & 0xF00) >> 8;
BattleScriptExecute(BattleScript_PoisonTurnDmg);
effect++;
}
gBattleStruct->turnEffectsTracker++;
break;
case 6: // burn
- if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BattleScriptExecute(BattleScript_BurnTurnDmg);
@@ -891,13 +887,13 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 7: // spooky nightmares
- if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0)
{
// R/S does not perform this sleep check, which causes the nighmare effect to
// persist even after the affected Pokemon has been awakened by Shed Skin
- if (gBattleMons[gActiveBank].status1 & STATUS_SLEEP)
+ if (gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BattleScriptExecute(BattleScript_NightmareTurnDmg);
@@ -905,15 +901,15 @@ u8 TurnBasedEffects(void)
}
else
{
- gBattleMons[gActiveBank].status2 &= ~STATUS2_NIGHTMARE;
+ gBattleMons[gActiveBattler].status2 &= ~STATUS2_NIGHTMARE;
}
}
gBattleStruct->turnEffectsTracker++;
break;
case 8: // curse
- if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BattleScriptExecute(BattleScript_CurseTurnDmg);
@@ -922,21 +918,21 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 9: // wrap
- if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0)
+ if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0)
{
- gBattleMons[gActiveBank].status2 -= 0x2000;
- if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap
+ gBattleMons[gActiveBattler].status2 -= 0x2000;
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) // damaged by wrap
{
// This is the only way I could get this array access to match.
- gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0);
- gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1);
+ gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0);
+ gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1);
gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
gBattleTextBuff1[1] = B_BUFF_MOVE;
- gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0);
- gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1);
+ gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0);
+ gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapTurnDmg;
- gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
}
@@ -944,8 +940,8 @@ u8 TurnBasedEffects(void)
{
gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN;
gBattleTextBuff1[1] = B_BUFF_MOVE;
- gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0);
- gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1);
+ gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0);
+ gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 1);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapEnds;
}
@@ -955,46 +951,46 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 10: // uproar
- if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR)
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
{
- for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++)
+ for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++)
{
- if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP)
- && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF)
+ if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP)
+ && gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF)
{
- gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
BattleScriptExecute(BattleScript_MonWokeUpInUproar);
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
}
}
- if (gBankAttacker != gNoOfAllBanks)
+ if (gBattlerAttacker != gBattlersCount)
{
effect = 2; // a pokemon was awaken
break;
}
else
{
- gBankAttacker = gActiveBank;
- gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down
- if (WasUnableToUseMove(gActiveBank))
+ gBattlerAttacker = gActiveBattler;
+ gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down
+ if (WasUnableToUseMove(gActiveBattler))
{
- CancelMultiTurnMoves(gActiveBank);
+ CancelMultiTurnMoves(gActiveBattler);
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
}
- else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR)
+ else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS;
+ gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS;
}
else
{
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- CancelMultiTurnMoves(gActiveBank);
+ CancelMultiTurnMoves(gActiveBattler);
}
BattleScriptExecute(BattleScript_PrintUproarOverTurns);
effect = 1;
@@ -1004,20 +1000,20 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 11: // thrash
- if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE)
{
- gBattleMons[gActiveBank].status2 -= 0x400;
- if (WasUnableToUseMove(gActiveBank))
- CancelMultiTurnMoves(gActiveBank);
- else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE)
- && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS))
+ gBattleMons[gActiveBattler].status2 -= 0x400;
+ if (WasUnableToUseMove(gActiveBattler))
+ CancelMultiTurnMoves(gActiveBattler);
+ else if (!(gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE)
+ && (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS))
{
- gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS);
- if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION))
+ gBattleMons[gActiveBattler].status2 &= ~(STATUS2_MULTIPLETURNS);
+ if (!(gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION))
{
gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER;
SetMoveEffect(1, 0);
- if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)
BattleScriptExecute(BattleScript_ThrashConfuses);
effect++;
}
@@ -1026,22 +1022,22 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 12: // disable
- if (gDisableStructs[gActiveBank].disableTimer1 != 0)
+ if (gDisableStructs[gActiveBattler].disableTimer1 != 0)
{
int i;
for (i = 0; i < 4; i++)
{
- if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i])
+ if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i])
break;
}
if (i == 4) // pokemon does not have the disabled move anymore
{
- gDisableStructs[gActiveBank].disabledMove = 0;
- gDisableStructs[gActiveBank].disableTimer1 = 0;
+ gDisableStructs[gActiveBattler].disabledMove = 0;
+ gDisableStructs[gActiveBattler].disableTimer1 = 0;
}
- else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends
+ else if (--gDisableStructs[gActiveBattler].disableTimer1 == 0) // disable ends
{
- gDisableStructs[gActiveBank].disabledMove = 0;
+ gDisableStructs[gActiveBattler].disabledMove = 0;
BattleScriptExecute(BattleScript_DisabledNoMore);
effect++;
}
@@ -1049,18 +1045,18 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 13: // encore
- if (gDisableStructs[gActiveBank].encoreTimer1 != 0)
+ if (gDisableStructs[gActiveBattler].encoreTimer1 != 0)
{
- if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore
+ if (gBattleMons[gActiveBattler].moves[gDisableStructs[gActiveBattler].encoredMovePos] != gDisableStructs[gActiveBattler].encoredMove) // pokemon does not have the encored move anymore
{
- gDisableStructs[gActiveBank].encoredMove = 0;
- gDisableStructs[gActiveBank].encoreTimer1 = 0;
+ gDisableStructs[gActiveBattler].encoredMove = 0;
+ gDisableStructs[gActiveBattler].encoreTimer1 = 0;
}
- else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0
- || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0)
+ else if (--gDisableStructs[gActiveBattler].encoreTimer1 == 0
+ || gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0)
{
- gDisableStructs[gActiveBank].encoredMove = 0;
- gDisableStructs[gActiveBank].encoreTimer1 = 0;
+ gDisableStructs[gActiveBattler].encoredMove = 0;
+ gDisableStructs[gActiveBattler].encoreTimer1 = 0;
BattleScriptExecute(BattleScript_EncoredNoMore);
effect++;
}
@@ -1068,33 +1064,33 @@ u8 TurnBasedEffects(void)
gBattleStruct->turnEffectsTracker++;
break;
case 14: // lock-on decrement
- if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS)
- gStatuses3[gActiveBank] -= 0x8;
+ if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS)
+ gStatuses3[gActiveBattler] -= 0x8;
gBattleStruct->turnEffectsTracker++;
break;
case 15: // charge
- if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0)
- gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP;
+ if (gDisableStructs[gActiveBattler].chargeTimer1 && --gDisableStructs[gActiveBattler].chargeTimer1 == 0)
+ gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP;
gBattleStruct->turnEffectsTracker++;
break;
case 16: // taunt
- if (gDisableStructs[gActiveBank].tauntTimer1)
- gDisableStructs[gActiveBank].tauntTimer1--;
+ if (gDisableStructs[gActiveBattler].tauntTimer1)
+ gDisableStructs[gActiveBattler].tauntTimer1--;
gBattleStruct->turnEffectsTracker++;
break;
case 17: // yawn
- if (gStatuses3[gActiveBank] & STATUS3_YAWN)
- {
- gStatuses3[gActiveBank] -= 0x800;
- if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY)
- && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT
- && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank))
- {
- CancelMultiTurnMoves(gActiveBank);
- gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
- gEffectBank = gActiveBank;
+ if (gStatuses3[gActiveBattler] & STATUS3_YAWN)
+ {
+ gStatuses3[gActiveBattler] -= 0x800;
+ if (!(gStatuses3[gActiveBattler] & STATUS3_YAWN) && !(gBattleMons[gActiveBattler].status1 & STATUS1_ANY)
+ && gBattleMons[gActiveBattler].ability != ABILITY_VITAL_SPIRIT
+ && gBattleMons[gActiveBattler].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBattler))
+ {
+ CancelMultiTurnMoves(gActiveBattler);
+ gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
+ gEffectBank = gActiveBattler;
BattleScriptExecute(BattleScript_YawnMakesAsleep);
effect++;
}
@@ -1121,37 +1117,37 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
switch (gBattleStruct->wishPerishSongState)
{
case 0:
- while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks)
+ while (gBattleStruct->wishPerishSongBank < gBattlersCount)
{
- gActiveBank = gBattleStruct->wishPerishSongBank;
- if (gAbsentBankFlags & gBitTable[gActiveBank])
+ gActiveBattler = gBattleStruct->wishPerishSongBank;
+ if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
{
gBattleStruct->wishPerishSongBank++;
continue;
}
gBattleStruct->wishPerishSongBank++;
- if (gWishFutureKnock.futureSightCounter[gActiveBank] != 0
- && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0
- && gBattleMons[gActiveBank].hp != 0)
+ if (gWishFutureKnock.futureSightCounter[gActiveBattler] != 0
+ && --gWishFutureKnock.futureSightCounter[gActiveBattler] == 0
+ && gBattleMons[gActiveBattler].hp != 0)
{
- if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT)
+ if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT)
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBank]);
+ PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]);
- gBankTarget = gActiveBank;
- gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank];
- gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank];
- gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF;
+ gBattlerTarget = gActiveBattler;
+ gBattlerAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler];
+ gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler];
+ gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0xFFFF;
BattleScriptExecute(BattleScript_MonTookFutureAttack);
- if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0
- && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0)
+ if (gWishFutureKnock.futureSightCounter[gActiveBattler] == 0
+ && gWishFutureKnock.futureSightCounter[gActiveBattler ^ BIT_FLANK] == 0)
{
- gSideAffecting[GET_BANK_SIDE(gBankTarget)] &= ~(SIDE_STATUS_FUTUREATTACK);
+ gSideStatuses[GET_BATTLER_SIDE(gBattlerTarget)] &= ~(SIDE_STATUS_FUTUREATTACK);
}
return TRUE;
}
@@ -1164,27 +1160,27 @@ bool8 HandleWishPerishSongOnTurnEnd(void)
}
// fall through
case 1:
- while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks)
+ while (gBattleStruct->wishPerishSongBank < gBattlersCount)
{
- gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->wishPerishSongBank];
- if (gAbsentBankFlags & gBitTable[gActiveBank])
+ gActiveBattler = gBattlerAttacker = gBattleTurnOrder[gBattleStruct->wishPerishSongBank];
+ if (gAbsentBattlerFlags & gBitTable[gActiveBattler])
{
gBattleStruct->wishPerishSongBank++;
continue;
}
gBattleStruct->wishPerishSongBank++;
- if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG)
+ if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG)
{
- PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBank].perishSongTimer1);
- if (gDisableStructs[gActiveBank].perishSongTimer1 == 0)
+ PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBattler].perishSongTimer1);
+ if (gDisableStructs[gActiveBattler].perishSongTimer1 == 0)
{
- gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG;
- gBattleMoveDamage = gBattleMons[gActiveBank].hp;
+ gStatuses3[gActiveBattler] &= ~STATUS3_PERISH_SONG;
+ gBattleMoveDamage = gBattleMons[gActiveBattler].hp;
gBattlescriptCurrInstr = BattleScript_PerishSongTakesLife;
}
else
{
- gDisableStructs[gActiveBank].perishSongTimer1--;
+ gDisableStructs[gActiveBattler].perishSongTimer1--;
gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown;
}
BattleScriptExecute(gBattlescriptCurrInstr);
@@ -1235,30 +1231,30 @@ bool8 HandleFaintedMonActions(void)
case 0:
gBattleStruct->faintedActionsBank = 0;
gBattleStruct->faintedActionsState++;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gAbsentBankFlags & gBitTable[i] && !sub_80423F4(i, 6, 6))
- gAbsentBankFlags &= ~(gBitTable[i]);
+ if (gAbsentBattlerFlags & gBitTable[i] && !sub_80423F4(i, 6, 6))
+ gAbsentBattlerFlags &= ~(gBitTable[i]);
}
// fall through
case 1:
do
{
- gBank1 = gBankTarget = gBattleStruct->faintedActionsBank;
+ gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBank;
if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0
- && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->faintedActionsBank]])
- && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank]))
+ && !(gBattleStruct->field_DF & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBank]])
+ && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank]))
{
BattleScriptExecute(BattleScript_GiveExp);
gBattleStruct->faintedActionsState = 2;
return TRUE;
}
- } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks);
+ } while (++gBattleStruct->faintedActionsBank != gBattlersCount);
gBattleStruct->faintedActionsState = 3;
break;
case 2:
sub_803F9EC(gBank1);
- if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks)
+ if (++gBattleStruct->faintedActionsBank == gBattlersCount)
gBattleStruct->faintedActionsState = 3;
else
gBattleStruct->faintedActionsState = 1;
@@ -1270,19 +1266,19 @@ bool8 HandleFaintedMonActions(void)
case 4:
do
{
- gBank1 = gBankTarget = gBattleStruct->faintedActionsBank;
+ gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBank;
if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0
- && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank]))
+ && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBank]))
{
BattleScriptExecute(BattleScript_HandleFaintedMon);
gBattleStruct->faintedActionsState = 5;
return TRUE;
}
- } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks);
+ } while (++gBattleStruct->faintedActionsBank != gBattlersCount);
gBattleStruct->faintedActionsState = 6;
break;
case 5:
- if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks)
+ if (++gBattleStruct->faintedActionsBank == gBattlersCount)
gBattleStruct->faintedActionsState = 6;
else
gBattleStruct->faintedActionsState = 4;
@@ -1302,9 +1298,9 @@ bool8 HandleFaintedMonActions(void)
void TryClearRageStatuses(void)
{
int i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMovesByBanks[i] != MOVE_RAGE)
+ if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMoveByBattler[i] != MOVE_RAGE)
gBattleMons[i].status2 &= ~(STATUS2_RAGE);
}
}
@@ -1320,17 +1316,17 @@ u8 AtkCanceller_UnableToUseMove(void)
switch (gBattleStruct->atkCancellerTracker)
{
case 0: // flags clear
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND);
- gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_DESTINY_BOND);
+ gStatuses3[gBattlerAttacker] &= ~(STATUS3_GRUDGE);
gBattleStruct->atkCancellerTracker++;
break;
case 1: // check being asleep
- if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP)
+ if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP)
{
- if (UproarWakeUpCheck(gBankAttacker))
+ if (UproarWakeUpCheck(gBattlerAttacker))
{
- gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
@@ -1339,15 +1335,15 @@ u8 AtkCanceller_UnableToUseMove(void)
else
{
u8 toSub;
- if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD)
+ if (gBattleMons[gBattlerAttacker].ability == ABILITY_EARLY_BIRD)
toSub = 2;
else
toSub = 1;
- if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub)
- gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP);
+ if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) < toSub)
+ gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP);
else
- gBattleMons[gBankAttacker].status1 -= toSub;
- if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP)
+ gBattleMons[gBattlerAttacker].status1 -= toSub;
+ if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP)
{
if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK)
{
@@ -1358,7 +1354,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else
{
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp;
@@ -1369,7 +1365,7 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 2: // check being frozen
- if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE)
+ if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE)
{
if (Random() % 5)
{
@@ -1386,7 +1382,7 @@ u8 AtkCanceller_UnableToUseMove(void)
}
else // unfreeze
{
- gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
@@ -1396,23 +1392,23 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 3: // truant
- if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter)
+ if (gBattleMons[gBattlerAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter)
{
- CancelMultiTurnMoves(gBankAttacker);
+ CancelMultiTurnMoves(gBattlerAttacker);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
- gBattleMoveFlags |= MOVESTATUS_MISSED;
+ gMoveResultFlags |= MOVE_RESULT_MISSED;
effect = 1;
}
gBattleStruct->atkCancellerTracker++;
break;
case 4: // recharge
- if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE)
{
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE);
- gDisableStructs[gBankAttacker].rechargeCounter = 0;
- CancelMultiTurnMoves(gBankAttacker);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE);
+ gDisableStructs[gBattlerAttacker].rechargeCounter = 0;
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1420,11 +1416,11 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 5: // flinch
- if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED)
{
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED);
- gProtectStructs[gBankAttacker].flinchImmobility = 1;
- CancelMultiTurnMoves(gBankAttacker);
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_FLINCHED);
+ gProtectStructs[gBattlerAttacker].flinchImmobility = 1;
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1432,11 +1428,11 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 6: // disabled move
- if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0)
+ if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != 0)
{
- gProtectStructs[gBankAttacker].usedDisabledMove = 1;
- gBattleScripting.bank = gBankAttacker;
- CancelMultiTurnMoves(gBankAttacker);
+ gProtectStructs[gBattlerAttacker].usedDisabledMove = 1;
+ gBattleScripting.battler = gBattlerAttacker;
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1444,10 +1440,10 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 7: // taunt
- if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0)
+ if (gDisableStructs[gBattlerAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0)
{
- gProtectStructs[gBankAttacker].usedTauntedMove = 1;
- CancelMultiTurnMoves(gBankAttacker);
+ gProtectStructs[gBattlerAttacker].usedTauntedMove = 1;
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1455,10 +1451,10 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 8: // imprisoned
- if (GetImprisonedMovesCount(gBankAttacker, gCurrentMove))
+ if (GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove))
{
- gProtectStructs[gBankAttacker].usedImprisionedMove = 1;
- CancelMultiTurnMoves(gBankAttacker);
+ gProtectStructs[gBattlerAttacker].usedImprisionedMove = 1;
+ CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1466,10 +1462,10 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 9: // confusion
- if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION)
{
- gBattleMons[gBankAttacker].status2--;
- if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION)
+ gBattleMons[gBattlerAttacker].status2--;
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION)
{
if (Random() & 1)
{
@@ -1479,9 +1475,9 @@ u8 AtkCanceller_UnableToUseMove(void)
else // confusion dmg
{
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- gBankTarget = gBankAttacker;
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker);
- gProtectStructs[gBankAttacker].confusionSelfDmg = 1;
+ gBattlerTarget = gBattlerAttacker;
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker);
+ gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
}
gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused;
@@ -1496,11 +1492,11 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 10: // paralysis
- if ((gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS) && (Random() % 4) == 0)
+ if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0)
{
- gProtectStructs[gBankAttacker].prlzImmobility = 1;
+ gProtectStructs[gBattlerAttacker].prlzImmobility = 1;
// This is removed in Emerald for some reason
- //CancelMultiTurnMoves(gBankAttacker);
+ //CancelMultiTurnMoves(gBattlerAttacker);
gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
effect = 1;
@@ -1508,17 +1504,17 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 11: // infatuation
- if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION)
{
- gBattleScripting.bank = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
+ gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10);
if (Random() & 1)
BattleScriptPushCursor();
else
{
BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack);
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
- gProtectStructs[gBankAttacker].loveImmobility = 1;
- CancelMultiTurnMoves(gBankAttacker);
+ gProtectStructs[gBattlerAttacker].loveImmobility = 1;
+ CancelMultiTurnMoves(gBattlerAttacker);
}
gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove;
effect = 1;
@@ -1526,22 +1522,22 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 12: // bide
- if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE)
{
- gBattleMons[gBankAttacker].status2 -= 0x100;
- if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE)
+ gBattleMons[gBattlerAttacker].status2 -= 0x100;
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE)
gBattlescriptCurrInstr = BattleScript_BideStoringEnergy;
else
{
// This is removed in Emerald for some reason
- //gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
- if (gTakenDmg[gBankAttacker])
+ //gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_MULTIPLETURNS);
+ if (gTakenDmg[gBattlerAttacker])
{
gCurrentMove = MOVE_BIDE;
- *bideDmg = gTakenDmg[gBankAttacker] * 2;
- gBankTarget = gTakenDmgBanks[gBankAttacker];
- if (gAbsentBankFlags & gBitTable[gBankTarget])
- gBankTarget = GetMoveTarget(MOVE_BIDE, 1);
+ *bideDmg = gTakenDmg[gBattlerAttacker] * 2;
+ gBattlerTarget = gTakenDmgBanks[gBattlerAttacker];
+ if (gAbsentBattlerFlags & gBitTable[gBattlerTarget])
+ gBattlerTarget = GetMoveTarget(MOVE_BIDE, 1);
gBattlescriptCurrInstr = BattleScript_BideAttack;
}
else
@@ -1552,11 +1548,11 @@ u8 AtkCanceller_UnableToUseMove(void)
gBattleStruct->atkCancellerTracker++;
break;
case 13: // move thawing
- if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE)
+ if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE)
{
if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT)
{
- gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -1573,14 +1569,14 @@ u8 AtkCanceller_UnableToUseMove(void)
if (effect == 2)
{
- gActiveBank = gBankAttacker;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = gBattlerAttacker;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
}
return effect;
}
-bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
+bool8 sub_80423F4(u8 battler, u8 r1, u8 r2)
{
struct Pokemon* party;
u8 r7;
@@ -1590,11 +1586,11 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
- r6 = ((bank & 2) / 2);
+ r6 = ((battler & 2) / 2);
for (i = r6 * 3; i < r6 * 3 + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
@@ -1608,10 +1604,10 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
{
if (gBattleTypeFlags & BATTLE_TYPE_x800000)
{
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
{
party = gPlayerParty;
- r7 = GetBankMultiplayerId(bank);
+ r7 = GetBattlerMultiplayerId(battler);
r6 = sub_806D82C(r7);
}
else
@@ -1624,14 +1620,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
#endif // NONMATCHING
party = gEnemyParty;
- var = bank ^ 1;
+ var = battler ^ 1;
r6 = (var != 0) ? 1 : 0;
}
}
else
{
- r7 = GetBankMultiplayerId(bank);
- if (GetBankSide(bank) == SIDE_PLAYER)
+ r7 = GetBattlerMultiplayerId(battler);
+ if (GetBattlerSide(battler) == B_SIDE_PLAYER)
party = gPlayerParty;
else
party = gEnemyParty;
@@ -1646,11 +1642,11 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
}
return (i == r6 * 3 + 3);
}
- else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBankSide(bank) == SIDE_OPPONENT)
+ else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
party = gEnemyParty;
- if (bank == 1)
+ if (battler == 1)
r6 = 0;
else
r6 = 3;
@@ -1665,22 +1661,22 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2)
}
else
{
- if (GetBankSide(bank) == SIDE_OPPONENT)
+ if (GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
- r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- r6 = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ r6 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
party = gEnemyParty;
}
else
{
- r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1);
- r6 = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
+ r6 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
party = gPlayerParty;
}
if (r1 == 6)
- r1 = gBattlePartyID[r7];
+ r1 = gBattlerPartyIndexes[r7];
if (r2 == 6)
- r2 = gBattlePartyID[r6];
+ r2 = gBattlerPartyIndexes[r6];
for (i = 0; i < 6; i++)
{
if (GetMonData(&party[i], MON_DATA_HP) != 0
@@ -1703,48 +1699,48 @@ enum
CASTFORM_TO_ICE, //4
};
-u8 CastformDataTypeChange(u8 bank)
+u8 CastformDataTypeChange(u8 battler)
{
u8 formChange = 0;
- if (gBattleMons[bank].species != SPECIES_CASTFORM || gBattleMons[bank].ability != ABILITY_FORECAST || gBattleMons[bank].hp == 0)
+ if (gBattleMons[battler].species != SPECIES_CASTFORM || gBattleMons[battler].ability != ABILITY_FORECAST || gBattleMons[battler].hp == 0)
return CASTFORM_NO_CHANGE;
- if (!WEATHER_HAS_EFFECT && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL)
+ if (!WEATHER_HAS_EFFECT && gBattleMons[battler].type1 != TYPE_NORMAL && gBattleMons[battler].type2 != TYPE_NORMAL)
{
- gBattleMons[bank].type1 = TYPE_NORMAL;
- gBattleMons[bank].type2 = TYPE_NORMAL;
+ gBattleMons[battler].type1 = TYPE_NORMAL;
+ gBattleMons[battler].type2 = TYPE_NORMAL;
return CASTFORM_TO_NORMAL;
}
if (!WEATHER_HAS_EFFECT)
return CASTFORM_NO_CHANGE;
- if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL)
+ if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[battler].type1 != TYPE_NORMAL && gBattleMons[battler].type2 != TYPE_NORMAL)
{
- gBattleMons[bank].type1 = TYPE_NORMAL;
- gBattleMons[bank].type2 = TYPE_NORMAL;
+ gBattleMons[battler].type1 = TYPE_NORMAL;
+ gBattleMons[battler].type2 = TYPE_NORMAL;
formChange = CASTFORM_TO_NORMAL;
}
- if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[bank].type1 != TYPE_FIRE && gBattleMons[bank].type2 != TYPE_FIRE)
+ if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[battler].type1 != TYPE_FIRE && gBattleMons[battler].type2 != TYPE_FIRE)
{
- gBattleMons[bank].type1 = TYPE_FIRE;
- gBattleMons[bank].type2 = TYPE_FIRE;
+ gBattleMons[battler].type1 = TYPE_FIRE;
+ gBattleMons[battler].type2 = TYPE_FIRE;
formChange = CASTFORM_TO_FIRE;
}
- if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[bank].type1 != TYPE_WATER && gBattleMons[bank].type2 != TYPE_WATER)
+ if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[battler].type1 != TYPE_WATER && gBattleMons[battler].type2 != TYPE_WATER)
{
- gBattleMons[bank].type1 = TYPE_WATER;
- gBattleMons[bank].type2 = TYPE_WATER;
+ gBattleMons[battler].type1 = TYPE_WATER;
+ gBattleMons[battler].type2 = TYPE_WATER;
formChange = CASTFORM_TO_WATER;
}
- if (gBattleWeather & WEATHER_HAIL && gBattleMons[bank].type1 != TYPE_ICE && gBattleMons[bank].type2 != TYPE_ICE)
+ if (gBattleWeather & WEATHER_HAIL && gBattleMons[battler].type1 != TYPE_ICE && gBattleMons[battler].type2 != TYPE_ICE)
{
- gBattleMons[bank].type1 = TYPE_ICE;
- gBattleMons[bank].type2 = TYPE_ICE;
+ gBattleMons[battler].type1 = TYPE_ICE;
+ gBattleMons[battler].type2 = TYPE_ICE;
formChange = CASTFORM_TO_ICE;
}
return formChange;
}
// The largest function in the game, but even it could not save itself from decompiling.
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
+u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveArg)
{
u8 effect = 0;
struct Pokemon *pokeAtk;
@@ -1754,19 +1750,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
u32 pidAtk;
u32 pidDef;
- if (gBankAttacker >= gNoOfAllBanks)
- gBankAttacker = bank;
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
- pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]];
+ if (gBattlerAttacker >= gBattlersCount)
+ gBattlerAttacker = battler;
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
+ pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]];
else
- pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]];
+ pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]];
- if (gBankTarget >= gNoOfAllBanks)
- gBankTarget = bank;
- if (GetBankSide(gBankTarget) == SIDE_PLAYER)
- pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]];
+ if (gBattlerTarget >= gBattlersCount)
+ gBattlerTarget = battler;
+ if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER)
+ pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]];
else
- pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]];
+ pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]];
speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES);
pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY);
@@ -1785,7 +1781,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (special)
gLastUsedAbility = special;
else
- gLastUsedAbility = gBattleMons[bank].ability;
+ gLastUsedAbility = gBattleMons[battler].ability;
if (moveArg)
move = moveArg;
@@ -1797,8 +1793,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (caseID)
{
case ABILITYEFFECT_ON_SWITCHIN: // 0
- if (gBankAttacker >= gNoOfAllBanks)
- gBankAttacker = bank;
+ if (gBattlerAttacker >= gBattlersCount)
+ gBattlerAttacker = battler;
switch (gLastUsedAbility)
{
case ABILITYEFFECT_SWITCH_IN_WEATHER:
@@ -1813,7 +1809,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES;
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
@@ -1822,7 +1818,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES;
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
@@ -1831,7 +1827,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES;
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
@@ -1848,7 +1844,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
@@ -1857,7 +1853,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
@@ -1866,44 +1862,44 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
case ABILITY_INTIMIDATE:
- if (!(gSpecialStatuses[bank].intimidatedPoke))
+ if (!(gSpecialStatuses[battler].intimidatedPoke))
{
- gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES;
- gSpecialStatuses[bank].intimidatedPoke = 1;
+ gStatuses3[battler] |= STATUS3_INTIMIDATE_POKES;
+ gSpecialStatuses[battler].intimidatedPoke = 1;
}
break;
case ABILITY_FORECAST:
- effect = CastformDataTypeChange(bank);
+ effect = CastformDataTypeChange(battler);
if (effect != 0)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
*(&gBattleStruct->formToChangeInto) = effect - 1;
}
break;
case ABILITY_TRACE:
- if (!(gSpecialStatuses[bank].traced))
+ if (!(gSpecialStatuses[battler].traced))
{
- gStatuses3[bank] |= STATUS3_TRACE;
- gSpecialStatuses[bank].traced = 1;
+ gStatuses3[battler] |= STATUS3_TRACE;
+ gSpecialStatuses[battler].traced = 1;
}
break;
case ABILITY_CLOUD_NINE:
case ABILITY_AIR_LOCK:
{
- // that's a weird choice for a variable, why not use i or bank?
- for (target1 = 0; target1 < gNoOfAllBanks; target1++)
+ // that's a weird choice for a variable, why not use i or battler?
+ for (target1 = 0; target1 < gBattlersCount; target1++)
{
effect = CastformDataTypeChange(target1);
if (effect != 0)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
- gBattleScripting.bank = target1;
+ gBattleScripting.battler = target1;
*(&gBattleStruct->formToChangeInto) = effect - 1;
break;
}
@@ -1913,18 +1909,18 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_ENDTURN: // 1
- if (gBattleMons[bank].hp != 0)
+ if (gBattleMons[battler].hp != 0)
{
- gBankAttacker = bank;
+ gBattlerAttacker = battler;
switch (gLastUsedAbility)
{
case ABILITY_RAIN_DISH:
if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY)
- && gBattleMons[bank].maxHP > gBattleMons[bank].hp)
+ && gBattleMons[battler].maxHP > gBattleMons[battler].hp)
{
gLastUsedAbility = ABILITY_RAIN_DISH; // why
BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates);
- gBattleMoveDamage = gBattleMons[bank].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[battler].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
@@ -1932,40 +1928,40 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_SHED_SKIN:
- if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0)
+ if ((gBattleMons[battler].status1 & STATUS1_ANY) && (Random() % 3) == 0)
{
- if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON))
+ if (gBattleMons[battler].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON))
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[battler].status1 & STATUS1_SLEEP)
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[battler].status1 & STATUS1_PARALYSIS)
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[battler].status1 & STATUS1_BURN)
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[battler].status1 & STATUS1_FREEZE)
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
- gBattleMons[bank].status1 = 0;
- gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch
- gBattleScripting.bank = gActiveBank = bank;
+ gBattleMons[battler].status1 = 0;
+ gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch
+ gBattleScripting.battler = gActiveBattler = battler;
BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates);
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
effect++;
}
break;
case ABILITY_SPEED_BOOST:
- if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2)
+ if (gBattleMons[battler].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2)
{
- gBattleMons[bank].statStages[STAT_STAGE_SPEED]++;
+ gBattleMons[battler].statStages[STAT_STAGE_SPEED]++;
gBattleScripting.animArg1 = 0x11;
gBattleScripting.animArg2 = 0;
BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
effect++;
}
break;
case ABILITY_TRUANT:
- gDisableStructs[gBankAttacker].truantCounter ^= 1;
+ gDisableStructs[gBattlerAttacker].truantCounter ^= 1;
break;
}
}
@@ -1980,7 +1976,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
if (sSoundMovesTable[i] != 0xFFFF)
{
- if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)
+ if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)
gHitMarker |= HITMARKER_NO_PPDEDUCT;
gBattlescriptCurrInstr = BattleScript_SoundproofProtected;
effect = 1;
@@ -1995,7 +1991,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_VOLT_ABSORB:
if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0)
{
- if (gProtectStructs[gBankAttacker].notFirstStrike)
+ if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
else
gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
@@ -2006,7 +2002,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_WATER_ABSORB:
if (moveType == TYPE_WATER && gBattleMoves[move].power != 0)
{
- if (gProtectStructs[gBankAttacker].notFirstStrike)
+ if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_MoveHPDrain;
else
gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss;
@@ -2015,23 +2011,23 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_FLASH_FIRE:
- if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE))
+ if (moveType == TYPE_FIRE && !(gBattleMons[battler].status1 & STATUS1_FREEZE))
{
- if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE))
+ if (!(gBattleResources->flags->flags[battler] & UNKNOWN_FLAG_FLASH_FIRE))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- if (gProtectStructs[gBankAttacker].notFirstStrike)
+ if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
- gBattleResources->flags->flags[bank] |= UNKNOWN_FLAG_FLASH_FIRE;
+ gBattleResources->flags->flags[battler] |= UNKNOWN_FLAG_FLASH_FIRE;
effect = 2;
}
else
{
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
- if (gProtectStructs[gBankAttacker].notFirstStrike)
+ if (gProtectStructs[gBattlerAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
@@ -2043,16 +2039,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
if (effect == 1)
{
- if (gBattleMons[bank].maxHP == gBattleMons[bank].hp)
+ if (gBattleMons[battler].maxHP == gBattleMons[battler].hp)
{
- if ((gProtectStructs[gBankAttacker].notFirstStrike))
+ if ((gProtectStructs[gBattlerAttacker].notFirstStrike))
gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless;
else
gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss;
}
else
{
- gBattleMoveDamage = gBattleMons[bank].maxHP / 4;
+ gBattleMoveDamage = gBattleMons[battler].maxHP / 4;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
@@ -2064,16 +2060,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (gLastUsedAbility)
{
case ABILITY_COLOR_CHANGE:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
&& move != MOVE_STRUGGLE
&& gBattleMoves[move].power != 0
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && gBattleMons[bank].type1 != moveType
- && gBattleMons[bank].type2 != moveType
- && gBattleMons[bank].hp != 0)
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
+ && gBattleMons[battler].type1 != moveType
+ && gBattleMons[battler].type2 != moveType
+ && gBattleMons[battler].hp != 0)
{
- gBattleMons[bank].type1 = moveType;
- gBattleMons[bank].type2 = moveType;
+ gBattleMons[battler].type1 = moveType;
+ gBattleMons[battler].type2 = moveType;
PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType)
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ColorChangeActivates;
@@ -2081,13 +2077,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_ROUGH_SKIN:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT))
{
- gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16;
+ gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = 1;
BattleScriptPushCursor();
@@ -2096,10 +2092,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_EFFECT_SPORE:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
&& (Random() % 10) == 0)
{
@@ -2119,10 +2115,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_POISON_POINT:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
&& (Random() % 3) == 0)
{
@@ -2134,10 +2130,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_STATIC:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
&& (Random() % 3) == 0)
{
@@ -2149,11 +2145,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_FLAME_BODY:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (Random() % 3) == 0)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN;
@@ -2164,20 +2160,20 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITY_CUTE_CHARM:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gBattleMons[gBankAttacker].hp != 0
- && !gProtectStructs[gBankAttacker].confusionSelfDmg
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gBattleMons[gBattlerAttacker].hp != 0
+ && !gProtectStructs[gBattlerAttacker].confusionSelfDmg
&& (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
- && gBattleMons[gBankTarget].hp != 0
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
+ && gBattleMons[gBattlerTarget].hp != 0
&& (Random() % 3) == 0
- && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS
+ && gBattleMons[gBattlerAttacker].ability != ABILITY_OBLIVIOUS
&& GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef)
- && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION)
+ && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION)
&& GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS
&& GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS)
{
- gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankTarget);
+ gBattleMons[gBattlerAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattlerTarget);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_CuteCharmActivates;
effect++;
@@ -2186,26 +2182,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_IMMUNITY: // 5
- for (bank = 0; bank < gNoOfAllBanks; bank++)
+ for (battler = 0; battler < gBattlersCount; battler++)
{
- switch (gBattleMons[bank].ability)
+ switch (gBattleMons[battler].ability)
{
case ABILITY_IMMUNITY:
- if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER))
+ if (gBattleMons[battler].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON | STATUS1_TOXIC_COUNTER))
{
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
effect = 1;
}
break;
case ABILITY_OWN_TEMPO:
- if (gBattleMons[bank].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[battler].status2 & STATUS2_CONFUSION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn);
effect = 2;
}
break;
case ABILITY_LIMBER:
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[battler].status1 & STATUS1_PARALYSIS)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
effect = 1;
@@ -2213,29 +2209,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
break;
case ABILITY_INSOMNIA:
case ABILITY_VITAL_SPIRIT:
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[battler].status1 & STATUS1_SLEEP)
{
- gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
+ gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE);
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
effect = 1;
}
break;
case ABILITY_WATER_VEIL:
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[battler].status1 & STATUS1_BURN)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
effect = 1;
}
break;
case ABILITY_MAGMA_ARMOR:
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[battler].status1 & STATUS1_FREEZE)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
effect = 1;
}
break;
case ABILITY_OBLIVIOUS:
- if (gBattleMons[bank].status2 & STATUS2_INFATUATION)
+ if (gBattleMons[battler].status2 & STATUS2_INFATUATION)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn);
effect = 3;
@@ -2247,36 +2243,36 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (effect)
{
case 1: // status cleared
- gBattleMons[bank].status1 = 0;
+ gBattleMons[battler].status1 = 0;
break;
case 2: // get rid of confusion
- gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION);
+ gBattleMons[battler].status2 &= ~(STATUS2_CONFUSION);
break;
case 3: // get rid of infatuation
- gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION);
+ gBattleMons[battler].status2 &= ~(STATUS2_INFATUATION);
break;
}
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus;
- gBattleScripting.bank = bank;
- gActiveBank = bank;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gBattleScripting.battler = battler;
+ gActiveBattler = battler;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
return effect;
}
}
break;
case ABILITYEFFECT_FORECAST: // 6
- for (bank = 0; bank < gNoOfAllBanks; bank++)
+ for (battler = 0; battler < gBattlersCount; battler++)
{
- if (gBattleMons[bank].ability == ABILITY_FORECAST)
+ if (gBattleMons[battler].ability == ABILITY_FORECAST)
{
- effect = CastformDataTypeChange(bank);
+ effect = CastformDataTypeChange(battler);
if (effect)
{
BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
- gBattleScripting.bank = bank;
+ gBattleScripting.battler = battler;
*(&gBattleStruct->formToChangeInto) = effect - 1;
return effect;
}
@@ -2292,7 +2288,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON;
gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER;
- gBattleScripting.bank = gBankTarget;
+ gBattleScripting.battler = gBattlerTarget;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2308,7 +2304,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON;
gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect;
- gBattleScripting.bank = gBankAttacker;
+ gBattleScripting.battler = gBattlerAttacker;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_SynchronizeActivates;
gHitMarker |= HITMARKER_IGNORE_SAFEGUARD;
@@ -2316,7 +2312,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_INTIMIDATE1: // 9
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES)
{
@@ -2330,42 +2326,42 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_TRACE: // 11
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE))
{
u8 target2;
- side = (GetBankIdentity(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
- target1 = GetBankByIdentity(side);
- target2 = GetBankByIdentity(side + BIT_MON);
+ side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon
+ target1 = GetBattlerAtPosition(side);
+ target2 = GetBattlerAtPosition(side + BIT_FLANK);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0
&& gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
- gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side);
- gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
+ gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side);
+ gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
effect++;
}
else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0)
{
- gActiveBank = target1;
- gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
+ gActiveBattler = target1;
+ gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
effect++;
}
else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0)
{
- gActiveBank = target2;
- gBattleMons[i].ability = gBattleMons[gActiveBank].ability;
- gLastUsedAbility = gBattleMons[gActiveBank].ability;
+ gActiveBattler = target2;
+ gBattleMons[i].ability = gBattleMons[gActiveBattler].ability;
+ gLastUsedAbility = gBattleMons[gActiveBattler].ability;
effect++;
}
}
else
{
- gActiveBank = target1;
+ gActiveBattler = target1;
if (gBattleMons[target1].ability && gBattleMons[target1].hp)
{
gBattleMons[i].ability = gBattleMons[target1].ability;
@@ -2377,9 +2373,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
BattleScriptPushCursorAndCallback(BattleScript_TraceActivates);
gStatuses3[i] &= ~(STATUS3_TRACE);
- gBattleScripting.bank = i;
+ gBattleScripting.battler = i;
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank])
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler])
PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility)
break;
}
@@ -2387,7 +2383,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_INTIMIDATE2: // 10
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES))
{
@@ -2402,10 +2398,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12
- side = GetBankSide(bank);
- for (i = 0; i < gNoOfAllBanks; i++)
+ side = GetBattlerSide(battler);
+ for (i = 0; i < gBattlersCount; i++)
{
- if (GetBankSide(i) != side && gBattleMons[i].ability == ability)
+ if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability)
{
gLastUsedAbility = ability;
effect = i + 1;
@@ -2413,10 +2409,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_BANK_SIDE: // 13
- side = GetBankSide(bank);
- for (i = 0; i < gNoOfAllBanks; i++)
+ side = GetBattlerSide(battler);
+ for (i = 0; i < gBattlersCount; i++)
{
- if (GetBankSide(i) == side && gBattleMons[i].ability == ability)
+ if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability)
{
gLastUsedAbility = ability;
effect = i + 1;
@@ -2427,21 +2423,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
switch (gLastUsedAbility)
{
case 0xFD:
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gStatuses3[i] & STATUS3_MUDSPORT)
effect = i + 1;
}
break;
case 0xFE:
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gStatuses3[i] & STATUS3_WATERSPORT)
effect = i + 1;
}
break;
default:
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ability)
{
@@ -2453,7 +2449,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_ON_FIELD: // 19
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0)
{
@@ -2463,9 +2459,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBattleMons[i].ability == ability && i != bank)
+ if (gBattleMons[i].ability == ability && i != battler)
{
gLastUsedAbility = ability;
effect = i + 1;
@@ -2473,10 +2469,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_OTHER_SIDE: // 16
- side = GetBankSide(bank);
- for (i = 0; i < gNoOfAllBanks; i++)
+ side = GetBattlerSide(battler);
+ for (i = 0; i < gBattlersCount; i++)
{
- if (GetBankSide(i) != side && gBattleMons[i].ability == ability)
+ if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability)
{
gLastUsedAbility = ability;
effect++;
@@ -2484,10 +2480,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_BANK_SIDE: // 17
- side = GetBankSide(bank);
- for (i = 0; i < gNoOfAllBanks; i++)
+ side = GetBattlerSide(battler);
+ for (i = 0; i < gBattlersCount; i++)
{
- if (GetBankSide(i) == side && gBattleMons[i].ability == ability)
+ if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability)
{
gLastUsedAbility = ability;
effect++;
@@ -2495,9 +2491,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
break;
case ABILITYEFFECT_COUNT_ON_FIELD: // 18
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
- if (gBattleMons[i].ability == ability && i != bank)
+ if (gBattleMons[i].ability == ability && i != battler)
{
gLastUsedAbility = ability;
effect++;
@@ -2507,7 +2503,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
}
if (effect && caseID < ABILITYEFFECT_CHECK_OTHER_SIDE && gLastUsedAbility != 0xFF)
- RecordAbilityBattle(bank, gLastUsedAbility);
+ RecordAbilityBattle(battler, gLastUsedAbility);
}
return effect;
@@ -2516,7 +2512,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
void BattleScriptExecute(const u8 *BS_ptr)
{
gBattlescriptCurrInstr = BS_ptr;
- BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc;
+ gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size++] = gBattleMainFunc;
gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack;
gCurrentActionFuncId = 0;
}
@@ -2525,7 +2521,7 @@ void BattleScriptPushCursorAndCallback(const u8 *BS_ptr)
{
BattleScriptPushCursor();
gBattlescriptCurrInstr = BS_ptr;
- BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc;
+ gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size++] = gBattleMainFunc;
gBattleMainFunc = RunBattleScriptCommands;
}
@@ -2560,11 +2556,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem);
}
- atkItem = gBattleMons[gBankAttacker].item;
+ atkItem = gBattleMons[gBattlerAttacker].item;
if (atkItem == ITEM_ENIGMA_BERRY)
{
- atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect;
- atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam;
+ atkHoldEffect = gEnigmaBerries[gBattlerAttacker].holdEffect;
+ atkQuality = gEnigmaBerries[gBattlerAttacker].holdEffectParam;
}
else
{
@@ -2573,11 +2569,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
// def variables are unused
- defItem = gBattleMons[gBankTarget].item;
+ defItem = gBattleMons[gBattlerTarget].item;
if (defItem == ITEM_ENIGMA_BERRY)
{
- defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect;
- defQuality = gEnigmaBerries[gBankTarget].holdEffectParam;
+ defHoldEffect = gEnigmaBerries[gBattlerTarget].holdEffect;
+ defQuality = gEnigmaBerries[gBattlerTarget].holdEffectParam;
}
else
{
@@ -2591,7 +2587,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
switch (bankHoldEffect)
{
case HOLD_EFFECT_DOUBLE_PRIZE:
- if (GetBankSide(bank) == SIDE_PLAYER)
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
gBattleStruct->moneyMultiplier = 2;
break;
case HOLD_EFFECT_RESTORE_STATS:
@@ -2605,9 +2601,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- gBattleScripting.bank = bank;
- gStringBank = bank;
- gActiveBank = gBankAttacker = bank;
+ gBattleScripting.battler = bank;
+ gStringBattler = bank;
+ gActiveBattler = gBattlerAttacker = bank;
BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
@@ -2636,10 +2632,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
u8 ppBonuses;
u16 move;
- if (GetBankSide(bank) == SIDE_PLAYER)
- mon = &gPlayerParty[gBattlePartyID[bank]];
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
+ mon = &gPlayerParty[gBattlerPartyIndexes[bank]];
else
- mon = &gEnemyParty[gBattlePartyID[bank]];
+ mon = &gEnemyParty[gBattlerPartyIndexes[bank]];
for (i = 0; i < 4; i++)
{
move = GetMonData(mon, MON_DATA_MOVE1 + i);
@@ -2659,8 +2655,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
PREPARE_MOVE_BUFFER(gBattleTextBuff1, move);
BattleScriptExecute(BattleScript_BerryPPHealEnd2);
- EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP);
+ MarkBattlerForControllerExec(gActiveBattler);
effect = ITEM_PP_CHANGE;
}
}
@@ -2676,9 +2672,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- gBattleScripting.bank = bank;
- gStringBank = bank;
- gActiveBank = gBankAttacker = bank;
+ gBattleScripting.battler = bank;
+ gStringBattler = bank;
+ gActiveBattler = gBattlerAttacker = bank;
BattleScriptExecute(BattleScript_WhiteHerbEnd2);
}
break;
@@ -2898,41 +2894,41 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
break;
case HOLD_EFFECT_CURE_PAR:
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS1_PARALYSIS)
{
- gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
+ gBattleMons[bank].status1 &= ~(STATUS1_PARALYSIS);
BattleScriptExecute(BattleScript_BerryCurePrlzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_PSN:
- if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
+ if (gBattleMons[bank].status1 & STATUS1_PSN_ANY)
{
- gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
+ gBattleMons[bank].status1 &= ~(STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER);
BattleScriptExecute(BattleScript_BerryCurePsnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_BRN:
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS1_BURN)
{
- gBattleMons[bank].status1 &= ~(STATUS_BURN);
+ gBattleMons[bank].status1 &= ~(STATUS1_BURN);
BattleScriptExecute(BattleScript_BerryCureBrnEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_FRZ:
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{
- gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[bank].status1 &= ~(STATUS1_FREEZE);
BattleScriptExecute(BattleScript_BerryCureFrzEnd2);
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_SLP:
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
- gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
+ gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptExecute(BattleScript_BerryCureSlpEnd2);
effect = ITEM_STATUS_CHANGE;
@@ -2947,31 +2943,31 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
break;
case HOLD_EFFECT_CURE_STATUS:
- if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[bank].status1 & STATUS1_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
i = 0;
- if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
+ if (gBattleMons[bank].status1 & STATUS1_PSN_ANY)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
i++;
}
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
i++;
}
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS1_PARALYSIS)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
i++;
}
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS1_BURN)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
i++;
}
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
i++;
@@ -3004,14 +3000,14 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- gBattleScripting.bank = bank;
- gStringBank = bank;
- gActiveBank = gBankAttacker = bank;
+ gBattleScripting.battler = bank;
+ gStringBattler = bank;
+ gActiveBattler = gBattlerAttacker = bank;
switch (effect)
{
case ITEM_STATUS_CHANGE:
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
case ITEM_PP_CHANGE:
if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i]))
@@ -3024,7 +3020,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
case 2:
break;
case 3:
- for (bank = 0; bank < gNoOfAllBanks; bank++)
+ for (bank = 0; bank < gBattlersCount; bank++)
{
gLastUsedItem = gBattleMons[bank].item;
if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY)
@@ -3040,45 +3036,45 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
switch (bankHoldEffect)
{
case HOLD_EFFECT_CURE_PAR:
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS1_PARALYSIS)
{
- gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS);
+ gBattleMons[bank].status1 &= ~(STATUS1_PARALYSIS);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureParRet;
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_PSN:
- if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
+ if (gBattleMons[bank].status1 & STATUS1_PSN_ANY)
{
- gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER);
+ gBattleMons[bank].status1 &= ~(STATUS1_PSN_ANY | STATUS1_TOXIC_COUNTER);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet;
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_BRN:
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS1_BURN)
{
- gBattleMons[bank].status1 &= ~(STATUS_BURN);
+ gBattleMons[bank].status1 &= ~(STATUS1_BURN);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet;
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_FRZ:
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{
- gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[bank].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet;
effect = ITEM_STATUS_CHANGE;
}
break;
case HOLD_EFFECT_CURE_SLP:
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
- gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
+ gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet;
@@ -3106,26 +3102,26 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
break;
case HOLD_EFFECT_CURE_STATUS:
- if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION)
+ if (gBattleMons[bank].status1 & STATUS1_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION)
{
- if (gBattleMons[bank].status1 & STATUS_PSN_ANY)
+ if (gBattleMons[bank].status1 & STATUS1_PSN_ANY)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn);
}
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn);
}
- if (gBattleMons[bank].status1 & STATUS_PARALYSIS)
+ if (gBattleMons[bank].status1 & STATUS1_PARALYSIS)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn);
}
- if (gBattleMons[bank].status1 & STATUS_BURN)
+ if (gBattleMons[bank].status1 & STATUS1_BURN)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn);
}
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{
StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn);
}
@@ -3152,8 +3148,8 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- gBattleScripting.bank = bank;
- gStringBank = bank;
+ gBattleScripting.battler = bank;
+ gStringBattler = bank;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_WhiteHerbRet;
return effect; // unnecessary return
@@ -3162,11 +3158,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
if (effect)
{
- gBattleScripting.bank = bank;
- gStringBank = bank;
- gActiveBank = bank;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gBattleScripting.battler = bank;
+ gStringBattler = bank;
+ gActiveBattler = bank;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
break;
}
}
@@ -3177,11 +3173,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
switch (atkHoldEffect)
{
case HOLD_EFFECT_FLINCH:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && (gSpecialStatuses[gBattlerTarget].moveturnLostHP_physical || gSpecialStatuses[gBattlerTarget].moveturnLostHP_special)
&& (Random() % 100) < atkQuality
&& gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED
- && gBattleMons[gBankTarget].hp)
+ && gBattleMons[gBattlerTarget].hp)
{
gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH;
BattleScriptPushCursor();
@@ -3190,20 +3186,20 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn)
}
break;
case HOLD_EFFECT_SHELL_BELL:
- if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- && gSpecialStatuses[gBankTarget].moveturnLostHP != 0
- && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF
- && gBankAttacker != gBankTarget
- && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP
- && gBattleMons[gBankAttacker].hp != 0)
+ if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)
+ && gSpecialStatuses[gBattlerTarget].moveturnLostHP != 0
+ && gSpecialStatuses[gBattlerTarget].moveturnLostHP != 0xFFFF
+ && gBattlerAttacker != gBattlerTarget
+ && gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP
+ && gBattleMons[gBattlerAttacker].hp != 0)
{
gLastUsedItem = atkItem;
- gStringBank = gBankAttacker;
- gBattleScripting.bank = gBankAttacker;
- gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1;
+ gStringBattler = gBattlerAttacker;
+ gBattleScripting.battler = gBattlerAttacker;
+ gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].moveturnLostHP / atkQuality) * -1;
if (gBattleMoveDamage == 0)
gBattleMoveDamage = -1;
- gSpecialStatuses[gBankTarget].moveturnLostHP = 0;
+ gSpecialStatuses[gBattlerTarget].moveturnLostHP = 0;
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret;
effect++;
@@ -3226,7 +3222,7 @@ void ClearFuryCutterDestinyBondGrudge(u8 bank)
void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands
{
- if (gBattleExecBuffer == 0)
+ if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[*gBattlescriptCurrInstr]();
}
@@ -3244,21 +3240,21 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget)
switch (moveTarget)
{
case MOVE_TARGET_SELECTED:
- side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
targetBank = gSideTimers[side].followmeTarget;
else
{
- side = GetBankSide(gBankAttacker);
+ side = GetBattlerSide(gBattlerAttacker);
do
{
- targetBank = Random() % gNoOfAllBanks;
- } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]);
+ targetBank = Random() % gBattlersCount;
+ } while (targetBank == gBattlerAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]);
if (gBattleMoves[move].type == TYPE_ELECTRIC
- && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0)
+ && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0)
&& gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD)
{
- targetBank ^= BIT_MON;
+ targetBank ^= BIT_FLANK;
RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability);
gSpecialStatuses[targetBank].lightningRodRedirected = 1;
}
@@ -3268,55 +3264,55 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget)
case MOVE_TARGET_BOTH:
case MOVE_TARGET_FOES_AND_ALLY:
case MOVE_TARGET_OPPONENTS_FIELD:
- targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE);
- if (gAbsentBankFlags & gBitTable[targetBank])
- targetBank ^= BIT_MON;
+ targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
+ if (gAbsentBattlerFlags & gBitTable[targetBank])
+ targetBank ^= BIT_FLANK;
break;
case MOVE_TARGET_RANDOM:
- side = GetBankSide(gBankAttacker) ^ BIT_SIDE;
+ side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE;
if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp)
targetBank = gSideTimers[side].followmeTarget;
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM)
{
- if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)
{
if (Random() & 1)
- targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
else
- targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
}
else
{
if (Random() & 1)
- targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON1);
+ targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT);
else
- targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON2);
+ targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT);
}
- if (gAbsentBankFlags & gBitTable[targetBank])
- targetBank ^= BIT_MON;
+ if (gAbsentBattlerFlags & gBitTable[targetBank])
+ targetBank ^= BIT_FLANK;
}
else
- targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE);
+ targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE);
break;
case MOVE_TARGET_USER:
case MOVE_TARGET_x10:
- targetBank = gBankAttacker;
+ targetBank = gBattlerAttacker;
break;
}
- *(gBattleStruct->moveTarget + gBankAttacker) = targetBank;
+ *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBank;
return targetBank;
}
static bool32 HasObedientBitSet(u8 bank)
{
- if (GetBankSide(bank) == SIDE_OPPONENT)
+ if (GetBattlerSide(bank) == B_SIDE_OPPONENT)
return TRUE;
- if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS
- && GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW)
+ if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS
+ && GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES, NULL) != SPECIES_MEW)
return TRUE;
- return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_OBEDIENCE, NULL);
+ return GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_OBEDIENCE, NULL);
}
u8 IsMonDisobedient(void)
@@ -3327,18 +3323,18 @@ u8 IsMonDisobedient(void)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
return 0;
- if (GetBankSide(gBankAttacker) == SIDE_OPPONENT)
+ if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT)
return 0;
- if (HasObedientBitSet(gBankAttacker)) // only if species is Mew or Deoxys
+ if (HasObedientBitSet(gBattlerAttacker)) // only if species is Mew or Deoxys
{
- if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gBankAttacker) == 2)
+ if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBattlerPosition(gBattlerAttacker) == 2)
return 0;
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER)
return 0;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
return 0;
- if (!IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName))
+ if (!IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName))
return 0;
if (FlagGet(FLAG_BADGE08_GET))
return 0;
@@ -3353,27 +3349,27 @@ u8 IsMonDisobedient(void)
obedienceLevel = 70;
}
- if (gBattleMons[gBankAttacker].level <= obedienceLevel)
+ if (gBattleMons[gBattlerAttacker].level <= obedienceLevel)
return 0;
rnd = (Random() & 255);
- calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8;
+ calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8;
if (calc < obedienceLevel)
return 0;
// is not obedient
if (gCurrentMove == MOVE_RAGE)
- gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE);
- if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK))
+ gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RAGE);
+ if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK))
{
gBattlescriptCurrInstr = BattleScript_82DB695;
return 1;
}
rnd = (Random() & 255);
- calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8;
+ calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8;
if (calc < obedienceLevel)
{
- calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF);
+ calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF);
if (calc == 0xF) // all moves cannot be used
{
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3;
@@ -3387,28 +3383,28 @@ u8 IsMonDisobedient(void)
gCurrMovePos = gUnknown_020241E9 = Random() & 3;
} while (gBitTable[gCurrMovePos] & calc);
- gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
+ gRandomMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove;
- gBankTarget = GetMoveTarget(gRandomMove, 0);
+ gBattlerTarget = GetMoveTarget(gRandomMove, 0);
gHitMarker |= HITMARKER_x200000;
return 2;
}
}
else
{
- obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel;
+ obedienceLevel = gBattleMons[gBattlerAttacker].level - obedienceLevel;
calc = (Random() & 255);
- if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA)
+ if (calc < obedienceLevel && !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattlerAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattlerAttacker].ability != ABILITY_INSOMNIA)
{
// try putting asleep
int i;
- for (i = 0; i < gNoOfAllBanks; i++)
+ for (i = 0; i < gBattlersCount; i++)
{
if (gBattleMons[i].status2 & STATUS2_UPROAR)
break;
}
- if (i == gNoOfAllBanks)
+ if (i == gBattlersCount)
{
gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep;
return 1;
@@ -3417,8 +3413,8 @@ u8 IsMonDisobedient(void)
calc -= obedienceLevel;
if (calc < obedienceLevel)
{
- gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker);
- gBankTarget = gBankAttacker;
+ gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker);
+ gBattlerTarget = gBattlerAttacker;
gBattlescriptCurrInstr = BattleScript_82DB6F0;
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
return 2;
diff --git a/src/battle_util2.c b/src/battle_util2.c
index 538c1c641..ba42d4ea9 100644
--- a/src/battle_util2.c
+++ b/src/battle_util2.c
@@ -8,12 +8,12 @@
#include "random.h"
#include "battle_scripts.h"
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern u8 gUnknown_0203CF00[];
extern const u8 *gBattlescriptCurrInstr;
extern u8 gBattleCommunication[];
-extern u8 gActiveBank;
+extern u8 gActiveBattler;
extern void sub_81D55D0(void);
extern void sub_81D5694(void);
@@ -87,33 +87,33 @@ void AdjustFriendshipOnBattleFaint(u8 bank)
{
u8 opposingBank2;
- opposingBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- opposingBank2 = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
+ opposingBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ opposingBank2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
if (gBattleMons[opposingBank2].level > gBattleMons[opposingBank].level)
opposingBank = opposingBank2;
}
else
{
- opposingBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ opposingBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
}
if (gBattleMons[opposingBank].level > gBattleMons[bank].level)
{
if (gBattleMons[opposingBank].level - gBattleMons[bank].level > 29)
- AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 8);
+ AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 8);
else
- AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 6);
+ AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 6);
}
else
{
- AdjustFriendship(&gPlayerParty[gBattlePartyID[bank]], 6);
+ AdjustFriendship(&gPlayerParty[gBattlerPartyIndexes[bank]], 6);
}
}
void sub_80571DC(u8 bank, u8 arg1)
{
- if (GetBankSide(bank) != SIDE_OPPONENT)
+ if (GetBattlerSide(bank) != B_SIDE_OPPONENT)
{
s32 i;
@@ -122,7 +122,7 @@ void sub_80571DC(u8 bank, u8 arg1)
for (i = 0; i < 3; i++)
gUnknown_0203CF00[i] = *(0 * 3 + i + (u8*)(gBattleStruct->field_60));
- sub_81B8FB0(pokemon_order_func(gBattlePartyID[bank]), pokemon_order_func(arg1));
+ sub_81B8FB0(pokemon_order_func(gBattlerPartyIndexes[bank]), pokemon_order_func(arg1));
for (i = 0; i < 3; i++)
*(0 * 3 + i + (u8*)(gBattleStruct->field_60)) = gUnknown_0203CF00[i];
@@ -138,11 +138,11 @@ u32 sub_805725C(u8 bank)
switch (gBattleCommunication[MULTIUSE_STATE])
{
case 0:
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
if (UproarWakeUpCheck(bank))
{
- gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
+ gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE);
BattleScriptPushCursor();
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
@@ -158,12 +158,12 @@ u32 sub_805725C(u8 bank)
else
toSub = 1;
- if ((gBattleMons[bank].status1 & STATUS_SLEEP) < toSub)
- gBattleMons[bank].status1 &= ~(STATUS_SLEEP);
+ if ((gBattleMons[bank].status1 & STATUS1_SLEEP) < toSub)
+ gBattleMons[bank].status1 &= ~(STATUS1_SLEEP);
else
gBattleMons[bank].status1 -= toSub;
- if (gBattleMons[bank].status1 & STATUS_SLEEP)
+ if (gBattleMons[bank].status1 & STATUS1_SLEEP)
{
gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep;
effect = 2;
@@ -181,7 +181,7 @@ u32 sub_805725C(u8 bank)
gBattleCommunication[MULTIUSE_STATE]++;
break;
case 1:
- if (gBattleMons[bank].status1 & STATUS_FREEZE)
+ if (gBattleMons[bank].status1 & STATUS1_FREEZE)
{
if (Random() % 5 != 0)
{
@@ -189,7 +189,7 @@ u32 sub_805725C(u8 bank)
}
else
{
- gBattleMons[bank].status1 &= ~(STATUS_FREEZE);
+ gBattleMons[bank].status1 &= ~(STATUS1_FREEZE);
BattleScriptPushCursor();
gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
@@ -206,9 +206,9 @@ u32 sub_805725C(u8 bank)
if (effect == 2)
{
- gActiveBank = bank;
- EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1);
- MarkBufferBankForExecution(gActiveBank);
+ gActiveBattler = bank;
+ BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1);
+ MarkBattlerForControllerExec(gActiveBattler);
}
return effect;
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index f487489d4..f6a5895a9 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -6,7 +6,7 @@
#include "main.h"
#include "sprite.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "window.h"
#include "text.h"
#include "menu.h"
@@ -133,7 +133,7 @@ extern const u8 gMultiBootProgram_BerryGlitchFix_End[];
// .text
-void InitBerryFixProgram(void)
+void CB2_InitBerryFixProgram(void)
{
DisableInterrupts(0xFFFF);
EnableInterrupts(0x0001);
@@ -217,10 +217,9 @@ static void berry_fix_main(void)
}
}
-#ifdef NONMATCHING
static void berry_fix_gpu_set(void)
{
- s32 width;
+ s32 width, left;
SetGpuReg(REG_OFFSET_BG0CNT, 0x0000);
SetGpuReg(REG_OFFSET_BG1CNT, 0x0000);
@@ -249,230 +248,27 @@ static void berry_fix_gpu_set(void)
FillWindowPixelBuffer(3, 0);
FillWindowPixelBuffer(0, 0xAA);
-// This block is a meme among memes
- width = (0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2;
- box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E9B);
- width = (s32)(0x78 - GetStringWidth(0, sUnknown_08617E9B, 0)) / 2 + 0x78;
- box_print(2, 0, width, 3, sUnknown_0861815B, -1, sUnknown_08617E8D);
- width = (0x70 - GetStringWidth(0, sUnknown_08617E8D, 0)) / 2;
- box_print(3, 0, width, 0, sUnknown_0861815B, -1, sUnknown_08617E8D);
- width = (0xd0 - GetStringWidth(1, sUnknown_08617E78, 0)) / 2;
- box_print(0, 1, width, 2, sUnknown_08618158, -1, sUnknown_08617E78);
+ width = GetStringWidth(0, sUnknown_08617E9B, 0);
+ left = (0x78 - width) / 2;
+ box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
+
+ width = GetStringWidth(0, sUnknown_08617E8D, 0);
+ left = (0x78 - width) / 2 + 0x78;
+ box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+
+ width = GetStringWidth(0, sUnknown_08617E8D, 0);
+ left = (0x70 - width) / 2;
+ box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+
+ width = GetStringWidth(1, sUnknown_08617E78, 0);
+ left = (0xD0 - width) / 2;
+ box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2);
CopyWindowToVram(0, 2);
}
-#else
-__attribute__((naked)) static void berry_fix_gpu_set(void)
-{
- asm(".syntax unified\n"
- "\tpush {r4-r6,lr}\n"
- "\tmov r6, r8\n"
- "\tpush {r6}\n"
- "\tsub sp, 0x10\n"
- "\tmovs r0, 0x8\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0xA\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x10\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x12\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x14\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x16\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x50\n"
- "\tmovs r1, 0\n"
- "\tbl SetGpuReg\n"
- "\tmovs r1, 0\n"
- "\tstr r1, [sp, 0xC]\n"
- "\tldr r4, =0x040000d4\n"
- "\tadd r0, sp, 0xC\n"
- "\tstr r0, [r4]\n"
- "\tmovs r0, 0xC0\n"
- "\tlsls r0, 19\n"
- "\tstr r0, [r4, 0x4]\n"
- "\tldr r0, =0x85006000\n"
- "\tstr r0, [r4, 0x8]\n"
- "\tldr r0, [r4, 0x8]\n"
- "\tstr r1, [sp, 0xC]\n"
- "\tadd r0, sp, 0xC\n"
- "\tstr r0, [r4]\n"
- "\tmovs r0, 0xE0\n"
- "\tlsls r0, 19\n"
- "\tstr r0, [r4, 0x4]\n"
- "\tldr r2, =0x85000100\n"
- "\tstr r2, [r4, 0x8]\n"
- "\tldr r0, [r4, 0x8]\n"
- "\tstr r1, [sp, 0xC]\n"
- "\tadd r0, sp, 0xC\n"
- "\tstr r0, [r4]\n"
- "\tmovs r0, 0xA0\n"
- "\tlsls r0, 19\n"
- "\tstr r0, [r4, 0x4]\n"
- "\tstr r2, [r4, 0x8]\n"
- "\tldr r0, [r4, 0x8]\n"
- "\tmovs r0, 0\n"
- "\tbl ResetBgsAndClearDma3BusyFlags\n"
- "\tldr r1, =gUnknown_08618108\n"
- "\tmovs r0, 0\n"
- "\tmovs r2, 0x2\n"
- "\tbl InitBgsFromTemplates\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0\n"
- "\tmovs r2, 0\n"
- "\tbl ChangeBgX\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0\n"
- "\tmovs r2, 0\n"
- "\tbl ChangeBgY\n"
- "\tmovs r0, 0x1\n"
- "\tmovs r1, 0\n"
- "\tmovs r2, 0\n"
- "\tbl ChangeBgX\n"
- "\tmovs r0, 0x1\n"
- "\tmovs r1, 0\n"
- "\tmovs r2, 0\n"
- "\tbl ChangeBgY\n"
- "\tldr r0, =gUnknown_08618110\n"
- "\tbl InitWindows\n"
- "\tbl DeactivateAllTextPrinters\n"
- "\tldr r0, =sUnknown_08618138\n"
- "\tstr r0, [r4]\n"
- "\tldr r0, =0x050001e0\n"
- "\tstr r0, [r4, 0x4]\n"
- "\tldr r0, =0x84000008\n"
- "\tstr r0, [r4, 0x8]\n"
- "\tldr r0, [r4, 0x8]\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0x40\n"
- "\tbl SetGpuReg\n"
- "\tmovs r0, 0x2\n"
- "\tmovs r1, 0\n"
- "\tbl FillWindowPixelBuffer\n"
- "\tmovs r0, 0x3\n"
- "\tmovs r1, 0\n"
- "\tbl FillWindowPixelBuffer\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0xAA\n"
- "\tbl FillWindowPixelBuffer\n"
- "\tldr r5, =sUnknown_08617E9B\n"
- "\tmovs r0, 0\n"
- "\tadds r1, r5, 0\n"
- "\tmovs r2, 0\n"
- "\tbl GetStringWidth\n"
- "\tadds r1, r0, 0\n"
- "\tmovs r4, 0x78\n"
- "\tsubs r0, r4, r1\n"
- "\tlsrs r1, r0, 31\n"
- "\tadds r0, r1\n"
- "\tasrs r0, 1\n"
- "\tlsls r2, r0, 24\n"
- "\tlsrs r2, 24\n"
- "\tldr r6, =sUnknown_0861815B\n"
- "\tstr r6, [sp]\n"
- "\tmovs r0, 0x1\n"
- "\tnegs r0, r0\n"
- "\tmov r8, r0\n"
- "\tstr r0, [sp, 0x4]\n"
- "\tstr r5, [sp, 0x8]\n"
- "\tmovs r0, 0x2\n"
- "\tmovs r1, 0\n"
- "\tmovs r3, 0x3\n"
- "\tbl box_print\n"
- "\tldr r5, =sUnknown_08617E8D\n"
- "\tmovs r0, 0\n"
- "\tadds r1, r5, 0\n"
- "\tmovs r2, 0\n"
- "\tbl GetStringWidth\n"
- "\tadds r1, r0, 0\n"
- "\tsubs r4, r1\n"
- "\tlsrs r0, r4, 31\n"
- "\tadds r4, r0\n"
- "\tasrs r4, 1\n"
- "\tadds r0, r4, 0\n"
- "\tadds r0, 0x78\n"
- "\tlsls r2, r0, 24\n"
- "\tlsrs r2, 24\n"
- "\tstr r6, [sp]\n"
- "\tmov r0, r8\n"
- "\tstr r0, [sp, 0x4]\n"
- "\tstr r5, [sp, 0x8]\n"
- "\tmovs r0, 0x2\n"
- "\tmovs r1, 0\n"
- "\tmovs r3, 0x3\n"
- "\tbl box_print\n"
- "\tmovs r0, 0\n"
- "\tadds r1, r5, 0\n"
- "\tmovs r2, 0\n"
- "\tbl GetStringWidth\n"
- "\tadds r1, r0, 0\n"
- "\tmovs r0, 0x70\n"
- "\tsubs r0, r1\n"
- "\tlsrs r1, r0, 31\n"
- "\tadds r0, r1\n"
- "\tasrs r0, 1\n"
- "\tlsls r2, r0, 24\n"
- "\tlsrs r2, 24\n"
- "\tstr r6, [sp]\n"
- "\tmov r0, r8\n"
- "\tstr r0, [sp, 0x4]\n"
- "\tstr r5, [sp, 0x8]\n"
- "\tmovs r0, 0x3\n"
- "\tmovs r1, 0\n"
- "\tmovs r3, 0\n"
- "\tbl box_print\n"
- "\tldr r4, =sUnknown_08617E78\n"
- "\tmovs r0, 0x1\n"
- "\tadds r1, r4, 0\n"
- "\tmovs r2, 0\n"
- "\tbl GetStringWidth\n"
- "\tadds r1, r0, 0\n"
- "\tmovs r0, 0xD0\n"
- "\tsubs r0, r1\n"
- "\tlsrs r1, r0, 31\n"
- "\tadds r0, r1\n"
- "\tasrs r0, 1\n"
- "\tlsls r2, r0, 24\n"
- "\tlsrs r2, 24\n"
- "\tldr r0, =sUnknown_08618158\n"
- "\tstr r0, [sp]\n"
- "\tmov r0, r8\n"
- "\tstr r0, [sp, 0x4]\n"
- "\tstr r4, [sp, 0x8]\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0x1\n"
- "\tmovs r3, 0x2\n"
- "\tbl box_print\n"
- "\tmovs r0, 0x2\n"
- "\tmovs r1, 0x2\n"
- "\tbl CopyWindowToVram\n"
- "\tmovs r0, 0x3\n"
- "\tmovs r1, 0x2\n"
- "\tbl CopyWindowToVram\n"
- "\tmovs r0, 0\n"
- "\tmovs r1, 0x2\n"
- "\tbl CopyWindowToVram\n"
- "\tadd sp, 0x10\n"
- "\tpop {r3}\n"
- "\tmov r8, r3\n"
- "\tpop {r4-r6}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.pool\n"
- ".syntax divided");
-}
-#endif
-
static int berry_fix_text_update(int checkval)
{
if (berry_fix_mb_manager->unk1 == checkval)
@@ -522,7 +318,7 @@ static void berry_fix_text_print(int scene)
ShowBg(1);
}
-static void berry_fix_bg_hide()
+static void berry_fix_bg_hide(void)
{
HideBg(0);
HideBg(1);
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
new file mode 100644
index 000000000..f86f350bf
--- /dev/null
+++ b/src/berry_tag_screen.c
@@ -0,0 +1,653 @@
+#include "global.h"
+#include "berry_tag_screen.h"
+#include "berry.h"
+#include "decompress.h"
+#include "field_map_obj.h"
+#include "item_menu.h"
+#include "constants/items.h"
+#include "item.h"
+#include "item_use.h"
+#include "main.h"
+#include "menu.h"
+#include "text.h"
+#include "window.h"
+#include "task.h"
+#include "menu_helpers.h"
+#include "palette.h"
+#include "overworld.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "bg.h"
+#include "malloc.h"
+#include "scanline_effect.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "item_menu_icons.h"
+#include "decompress.h"
+#include "international_string_util.h"
+
+// There are 4 windows used in berry tag screen.
+enum
+{
+ WIN_BERRY_NAME,
+ WIN_SIZE_FIRM,
+ WIN_DESC,
+ WIN_BERRY_TAG
+};
+
+struct BerryTagScreenStruct
+{
+ u16 tilemapBuffers[3][0x400];
+ u16 berryId;
+ u8 berrySpriteId;
+ u8 flavorCircleIds[FLAVOR_COUNT];
+ u16 gfxState;
+};
+
+// EWRAM vars
+static EWRAM_DATA struct BerryTagScreenStruct *sBerryTag = NULL;
+
+// const rom data
+static const struct BgTemplate sBackgroundTemplates[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0
+ }
+};
+
+static const u16 sFontPalette[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal");
+
+static const u8 sTextColors[2][3] =
+{
+ {0, 2, 3},
+ {15, 14, 13}
+};
+
+static const struct WindowTemplate sWindowTemplates[] =
+{
+ {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, // WIN_BERRY_NAME
+ {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, // WIN_SIZE_FIRM
+ {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, // WIN_DESC
+ {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, // WIN_BERRY_TAG
+ DUMMY_WIN_TEMPLATE
+};
+
+static const u8 *const sBerryFirmnessStrings[] =
+{
+ gBerryFirmnessString_VerySoft,
+ gBerryFirmnessString_Soft,
+ gBerryFirmnessString_Hard,
+ gBerryFirmnessString_VeryHard,
+ gBerryFirmnessString_SuperHard
+};
+
+// this file's functions
+static void CB2_InitBerryTagScreen(void);
+static void HandleInitBackgrounds(void);
+static void HandleInitWindows(void);
+static void AddBerryTagTextToBg0(void);
+static void PrintAllBerryData(void);
+static void CreateBerrySprite(void);
+static void CreateFlavorCircleSprites(void);
+static void SetFlavorCirclesVisiblity(void);
+static void PrintBerryNumberAndName(void);
+static void PrintBerrySize(void);
+static void PrintBerryFirmness(void);
+static void PrintBerryDescription1(void);
+static void PrintBerryDescription2(void);
+static bool8 InitBerryTagScreen(void);
+static bool8 LoadBerryTagGfx(void);
+static void Task_HandleInput(u8 taskId);
+static void Task_CloseBerryTagScreen(u8 taskId);
+static void Task_DisplayAnotherBerry(u8 taskId);
+static void TryChangeDisplayedBerry(u8 taskId, s8 toMove);
+static void HandleBagCursorPositionChange(s8 toMove);
+
+// code
+void DoBerryTagScreen(void)
+{
+ sBerryTag = AllocZeroed(sizeof(*sBerryTag));
+ sBerryTag->berryId = ItemIdToBerryType(gSpecialVar_ItemId);
+ SetMainCallback2(CB2_InitBerryTagScreen);
+}
+
+static void CB2_BerryTagScreen(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void VblankCB(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void CB2_InitBerryTagScreen(void)
+{
+ while (1)
+ {
+ if (sub_81221EC() == TRUE)
+ break;
+ if (InitBerryTagScreen() == TRUE)
+ break;
+ if (sub_81221AC() == TRUE)
+ break;
+ }
+}
+
+static bool8 InitBerryTagScreen(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankHBlankCallbacksToNull();
+ ResetVramOamAndBgCntRegs();
+ clear_scheduled_bg_copies_to_vram();
+ gMain.state++;
+ break;
+ case 1:
+ ScanlineEffect_Stop();
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = 1;
+ gMain.state++;
+ break;
+ case 3:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 4:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 5:
+ if (!sub_81221AC())
+ ResetTasks();
+ gMain.state++;
+ break;
+ case 6:
+ HandleInitBackgrounds();
+ sBerryTag->gfxState = 0;
+ gMain.state++;
+ break;
+ case 7:
+ if (LoadBerryTagGfx())
+ gMain.state++;
+ break;
+ case 8:
+ HandleInitWindows();
+ gMain.state++;
+ break;
+ case 9:
+ AddBerryTagTextToBg0();
+ gMain.state++;
+ break;
+ case 10:
+ PrintAllBerryData();
+ gMain.state++;
+ break;
+ case 11:
+ CreateBerrySprite();
+ gMain.state++;
+ break;
+ case 12:
+ CreateFlavorCircleSprites();
+ SetFlavorCirclesVisiblity();
+ gMain.state++;
+ break;
+ case 13:
+ CreateTask(Task_HandleInput, 0);
+ gMain.state++;
+ break;
+ case 14:
+ BlendPalettes(-1, 0x10, 0);
+ gMain.state++;
+ break;
+ case 15:
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ gMain.state++;
+ break;
+ default: // done
+ SetVBlankCallback(VblankCB);
+ SetMainCallback2(CB2_BerryTagScreen);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void HandleInitBackgrounds(void)
+{
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
+ SetBgTilemapBuffer(2, sBerryTag->tilemapBuffers[0]);
+ SetBgTilemapBuffer(3, sBerryTag->tilemapBuffers[1]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(2);
+ schedule_bg_copy_tilemap_to_vram(3);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+}
+
+static bool8 LoadBerryTagGfx(void)
+{
+ u16 i;
+
+ switch (sBerryTag->gfxState)
+ {
+ case 0:
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(2, gUnknown_08D9BB44, 0, 0, 0);
+ sBerryTag->gfxState++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != TRUE)
+ {
+ LZDecompressWram(gUnknown_08D9BF98, sBerryTag->tilemapBuffers[0]);
+ sBerryTag->gfxState++;
+ }
+ break;
+ case 2:
+ LZDecompressWram(gUnknown_08D9C13C, sBerryTag->tilemapBuffers[2]);
+ sBerryTag->gfxState++;
+ break;
+ case 3:
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++)
+ sBerryTag->tilemapBuffers[1][i] = 0x4042;
+ }
+ else
+ {
+ for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++)
+ sBerryTag->tilemapBuffers[1][i] = 0x5042;
+ }
+ sBerryTag->gfxState++;
+ break;
+ case 4:
+ LoadCompressedPalette(gUnknown_08D9BEF0, 0, 0xC0);
+ sBerryTag->gfxState++;
+ break;
+ case 5:
+ LoadCompressedObjectPic(&gUnknown_0857FDEC);
+ sBerryTag->gfxState++;
+ break;
+ default:
+ LoadCompressedObjectPalette(&gUnknown_0857FDF4);
+ return TRUE; // done
+ }
+
+ return FALSE;
+}
+
+static void HandleInitWindows(void)
+{
+ u16 i;
+
+ InitWindows(sWindowTemplates);
+ DeactivateAllTextPrinters();
+ LoadPalette(sFontPalette, 0xF0, 0x20);
+ for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++)
+ PutWindowTilemap(i);
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+}
+
+static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId)
+{
+ AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text);
+}
+
+static void AddBerryTagTextToBg0(void)
+{
+ memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2]));
+ FillWindowPixelBuffer(WIN_BERRY_TAG, 0xFF);
+ PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1);
+ PutWindowTilemap(WIN_BERRY_TAG);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void PrintAllBerryData(void)
+{
+ PrintBerryNumberAndName();
+ PrintBerrySize();
+ PrintBerryFirmness();
+ PrintBerryDescription1();
+ PrintBerryDescription2();
+}
+
+static void PrintBerryNumberAndName(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+ ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, 2, 2);
+ StringCopy(gStringVar2, berry->name);
+ StringExpandPlaceholders(gStringVar4, gText_UnkF908Var1Var2);
+ PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0);
+}
+
+static void PrintBerrySize(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL);
+ if (berry->size != 0)
+ {
+ u32 inches, fraction;
+
+ inches = 1000 * berry->size / 254;
+ if (inches % 10 > 4)
+ inches += 10;
+ fraction = (inches % 100) / 10;
+ inches /= 100;
+
+ ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2);
+ ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2);
+ StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2);
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL);
+ }
+ else
+ {
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL);
+ }
+}
+
+static void PrintBerryFirmness(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL);
+ if (berry->firmness != 0)
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL);
+ else
+ PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL);
+}
+
+static void PrintBerryDescription1(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+ PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL);
+}
+
+static void PrintBerryDescription2(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+ PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL);
+}
+
+static void CreateBerrySprite(void)
+{
+ sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->berryId - 1, 56, 64);
+}
+
+static void DestroyBerrySprite(void)
+{
+ DestroySprite(&gSprites[sBerryTag->berrySpriteId]);
+ FreeBerryTagSpritePalette();
+}
+
+static void CreateFlavorCircleSprites(void)
+{
+ sBerryTag->flavorCircleIds[FLAVOR_SPICY] = CreateBerryFlavorCircleSprite(64);
+ sBerryTag->flavorCircleIds[FLAVOR_DRY] = CreateBerryFlavorCircleSprite(104);
+ sBerryTag->flavorCircleIds[FLAVOR_SWEET] = CreateBerryFlavorCircleSprite(144);
+ sBerryTag->flavorCircleIds[FLAVOR_BITTER] = CreateBerryFlavorCircleSprite(184);
+ sBerryTag->flavorCircleIds[FLAVOR_SOUR] = CreateBerryFlavorCircleSprite(224);
+}
+
+static void SetFlavorCirclesVisiblity(void)
+{
+ const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
+
+ if (berry->spicy)
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 0;
+ else
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 1;
+
+ if (berry->dry)
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 0;
+ else
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 1;
+
+ if (berry->sweet)
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 0;
+ else
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 1;
+
+ if (berry->bitter)
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 0;
+ else
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 1;
+
+ if (berry->sour)
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 0;
+ else
+ gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1;
+}
+
+static void DestroyFlavorCircleSprites(void)
+{
+ u16 i;
+
+ for (i = 0; i < FLAVOR_COUNT; i++)
+ DestroySprite(&gSprites[sBerryTag->flavorCircleIds[i]]);
+}
+
+static void PrepareToCloseBerryTagScreen(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_CloseBerryTagScreen;
+}
+
+static void Task_CloseBerryTagScreen(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ DestroyBerrySprite();
+ DestroyFlavorCircleSprites();
+ Free(sBerryTag);
+ FreeAllWindowBuffers();
+ SetMainCallback2(bag_menu_mail_related);
+ DestroyTask(taskId);
+ }
+}
+
+static void Task_HandleInput(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ u16 arrowKeys = gMain.newAndRepeatedKeys & DPAD_ANY;
+ if (arrowKeys == DPAD_UP)
+ TryChangeDisplayedBerry(taskId, -1);
+ else if (arrowKeys == DPAD_DOWN)
+ TryChangeDisplayedBerry(taskId, 1);
+ else if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ PrepareToCloseBerryTagScreen(taskId);
+ }
+}
+
+static void TryChangeDisplayedBerry(u8 taskId, s8 toMove)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 currPocketPosition = gUnknown_0203CE58.unk12[3] + gUnknown_0203CE58.unk8[3];
+ u32 newPocketPosition = currPocketPosition + toMove;
+ if (newPocketPosition < 46 && BagGetItemIdByPocketPosition(BAG_BERRIES, newPocketPosition) != 0)
+ {
+ if (toMove < 0)
+ data[1] = 2;
+ else
+ data[1] = 1;
+
+ data[0] = 0;
+ PlaySE(SE_SELECT);
+ HandleBagCursorPositionChange(toMove);
+ gTasks[taskId].func = Task_DisplayAnotherBerry;
+ }
+}
+
+static void HandleBagCursorPositionChange(s8 toMove)
+{
+ u16 *scrollPos = &gUnknown_0203CE58.unk12[3];
+ u16 *cursorPos = &gUnknown_0203CE58.unk8[3];
+ if (toMove > 0)
+ {
+ if (*cursorPos < 4 || BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + 8) == 0)
+ *cursorPos += toMove;
+ else
+ *scrollPos += toMove;
+ }
+ else
+ {
+ if (*cursorPos > 3 || *scrollPos == 0)
+ *cursorPos += toMove;
+ else
+ *scrollPos += toMove;
+ }
+
+ sBerryTag->berryId = ItemIdToBerryType(BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + *cursorPos));
+}
+
+static void Task_DisplayAnotherBerry(u8 taskId)
+{
+ u16 i;
+ s16 posY;
+ s16 *data = gTasks[taskId].data;
+ data[0] += 0x10;
+ data[0] &= 0xFF;
+
+ if (data[1] == 1)
+ {
+ switch (data[0])
+ {
+ case 0x30:
+ FillWindowPixelBuffer(0, 0);
+ break;
+ case 0x40:
+ PrintBerryNumberAndName();
+ break;
+ case 0x50:
+ DestroyBerrySprite();
+ CreateBerrySprite();
+ break;
+ case 0x60:
+ FillWindowPixelBuffer(1, 0);
+ break;
+ case 0x70:
+ PrintBerrySize();
+ break;
+ case 0x80:
+ PrintBerryFirmness();
+ break;
+ case 0x90:
+ SetFlavorCirclesVisiblity();
+ break;
+ case 0xA0:
+ FillWindowPixelBuffer(2, 0);
+ break;
+ case 0xB0:
+ PrintBerryDescription1();
+ break;
+ case 0xC0:
+ PrintBerryDescription2();
+ break;
+ }
+ }
+ else
+ {
+ switch (data[0])
+ {
+ case 0x30:
+ FillWindowPixelBuffer(2, 0);
+ break;
+ case 0x40:
+ PrintBerryDescription2();
+ break;
+ case 0x50:
+ PrintBerryDescription1();
+ break;
+ case 0x60:
+ SetFlavorCirclesVisiblity();
+ break;
+ case 0x70:
+ FillWindowPixelBuffer(1, 0);
+ break;
+ case 0x80:
+ PrintBerryFirmness();
+ break;
+ case 0x90:
+ PrintBerrySize();
+ break;
+ case 0xA0:
+ DestroyBerrySprite();
+ CreateBerrySprite();
+ break;
+ case 0xB0:
+ FillWindowPixelBuffer(0, 0);
+ break;
+ case 0xC0:
+ PrintBerryNumberAndName();
+ break;
+ }
+ }
+
+ if (data[1] == 1)
+ posY = -data[0];
+ else
+ posY = data[0];
+
+ gSprites[sBerryTag->berrySpriteId].pos2.y = posY;
+ for (i = 0; i < FLAVOR_COUNT; i++)
+ gSprites[sBerryTag->flavorCircleIds[i]].pos2.y = posY;
+
+ ChangeBgY(1, 0x1000, data[1]);
+ ChangeBgY(2, 0x1000, data[1]);
+
+ if (data[0] == 0)
+ gTasks[taskId].func = Task_HandleInput;
+}
diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c
index d30599607..b6b83086b 100644
--- a/src/calculate_base_damage.c
+++ b/src/calculate_base_damage.c
@@ -177,7 +177,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
damage = damage / damageHelper;
damage /= 50;
- if ((attacker->status1 & STATUS_BURN) && attacker->ability != ABILITY_GUTS)
+ if ((attacker->status1 & STATUS1_BURN) && attacker->ability != ABILITY_GUTS)
damage /= 2;
if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1)
diff --git a/src/coord_event_weather.c b/src/coord_event_weather.c
new file mode 100644
index 000000000..60b87fa30
--- /dev/null
+++ b/src/coord_event_weather.c
@@ -0,0 +1,119 @@
+#include "global.h"
+#include "constants/weather.h"
+#include "coord_event_weather.h"
+#include "field_weather.h"
+
+struct CoordEventWeather
+{
+ u8 coordEventWeather;
+ void (*func)(void);
+};
+
+static void CoordEventWeather_Clouds(void);
+static void CoordEventWeather_Sunny(void);
+static void CoordEventWeather_LightRain(void);
+static void CoordEventWeather_Snow(void);
+static void CoordEventWeather_Thunderstorm(void);
+static void CoordEventWeather_Fog(void);
+static void CoordEventWeather_DiagonalFog(void);
+static void CoordEventWeather_Ash(void);
+static void CoordEventWeather_Sandstorm(void);
+static void CoordEventWeather_Dark(void);
+static void CoordEventWeather_Drought(void);
+static void CoordEventWeather_Route119Cycle(void);
+static void CoordEventWeather_Route123Cycle(void);
+
+static const struct CoordEventWeather sCoordEventWeatherFuncs[] =
+{
+ { COORD_EVENT_WEATHER_CLOUDS, CoordEventWeather_Clouds },
+ { COORD_EVENT_WEATHER_SUNNY, CoordEventWeather_Sunny },
+ { COORD_EVENT_WEATHER_RAIN_LIGHT, CoordEventWeather_LightRain },
+ { COORD_EVENT_WEATHER_SNOW, CoordEventWeather_Snow },
+ { COORD_EVENT_WEATHER_RAIN_MED, CoordEventWeather_Thunderstorm },
+ { COORD_EVENT_WEATHER_FOG_1, CoordEventWeather_Fog },
+ { COORD_EVENT_WEATHER_FOG_2, CoordEventWeather_DiagonalFog },
+ { COORD_EVENT_WEATHER_ASH, CoordEventWeather_Ash },
+ { COORD_EVENT_WEATHER_SANDSTORM, CoordEventWeather_Sandstorm },
+ { COORD_EVENT_WEATHER_SHADE, CoordEventWeather_Dark },
+ { COORD_EVENT_WEATHER_DROUGHT, CoordEventWeather_Drought },
+ { COORD_EVENT_WEATHER_ROUTE119_CYCLE, CoordEventWeather_Route119Cycle },
+ { COORD_EVENT_WEATHER_ROUTE123_CYCLE, CoordEventWeather_Route123Cycle },
+};
+
+static void CoordEventWeather_Clouds(void)
+{
+ SetWeather(WEATHER_CLOUDS);
+}
+
+static void CoordEventWeather_Sunny(void)
+{
+ SetWeather(WEATHER_SUNNY);
+}
+
+static void CoordEventWeather_LightRain(void)
+{
+ SetWeather(WEATHER_RAIN_LIGHT);
+}
+
+static void CoordEventWeather_Snow(void)
+{
+ SetWeather(WEATHER_SNOW);
+}
+
+static void CoordEventWeather_Thunderstorm(void)
+{
+ SetWeather(WEATHER_RAIN_MED);
+}
+
+static void CoordEventWeather_Fog(void)
+{
+ SetWeather(WEATHER_FOG_1);
+}
+
+static void CoordEventWeather_DiagonalFog(void)
+{
+ SetWeather(WEATHER_FOG_2);
+}
+
+static void CoordEventWeather_Ash(void)
+{
+ SetWeather(WEATHER_ASH);
+}
+
+static void CoordEventWeather_Sandstorm(void)
+{
+ SetWeather(WEATHER_SANDSTORM);
+}
+
+static void CoordEventWeather_Dark(void)
+{
+ SetWeather(WEATHER_SHADE);
+}
+
+static void CoordEventWeather_Drought(void)
+{
+ SetWeather(WEATHER_DROUGHT);
+}
+
+static void CoordEventWeather_Route119Cycle(void)
+{
+ SetWeather(WEATHER_ROUTE119_CYCLE);
+}
+
+static void CoordEventWeather_Route123Cycle(void)
+{
+ SetWeather(WEATHER_ROUTE123_CYCLE);
+}
+
+void DoCoordEventWeather(u8 coordEventWeather)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sCoordEventWeatherFuncs); i++)
+ {
+ if (sCoordEventWeatherFuncs[i].coordEventWeather == coordEventWeather)
+ {
+ sCoordEventWeatherFuncs[i].func();
+ return;
+ }
+ }
+}
diff --git a/src/decoration.c b/src/decoration.c
index 885b1b0b0..db19ff4c6 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -529,7 +529,7 @@ void SecretBasePC_PutAway(u8 taskId)
{
sub_8126A58(0);
sub_8197434(0, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_8129ABC;
}
@@ -1247,7 +1247,7 @@ void sub_8127F68(u8 taskId)
{
if (sub_8127F38() == TRUE)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_8128060;
}
@@ -1661,7 +1661,7 @@ void sub_8128BA0(u8 taskId)
void sub_8128BBC(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = c1_overworld_prev_quest;
}
@@ -2013,9 +2013,9 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor)
{
return MAX_SPRITES;
}
- LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gUnknown_0203CEBC);
- CopyItemIconPicTo4x4Buffer(gUnknown_0203CEBC, gUnknown_0203CEC0);
- sheet.data = gUnknown_0203CEC0;
+ LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gItemIconDecompressionBuffer);
+ CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer);
+ sheet.data = gItemIcon4x4Buffer;
sheet.size = 0x200;
sheet.tag = tilesTag;
LoadSpriteSheet(&sheet);
@@ -2023,7 +2023,7 @@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor)
palette.tag = paletteTag;
LoadCompressedObjectPalette(&palette);
template = malloc(sizeof(struct SpriteTemplate));
- *template = gUnknown_08614FF4;
+ *template = gItemIconSpriteTemplate;
template->tileTag = tilesTag;
template->paletteTag = paletteTag;
spriteId = CreateSprite(template, 0, 0, 0);
@@ -2635,7 +2635,7 @@ void sub_812A1A0(u8 taskId)
void sub_812A1C0(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_81298EC;
}
@@ -2654,7 +2654,7 @@ void sub_812A210(u8 taskId)
void sub_812A22C(u8 taskId)
{
- fade_screen(1, 0);
+ FadeScreen(1, 0);
gTasks[taskId].data[2] = 0;
gTasks[taskId].func = sub_812A25C;
}
diff --git a/src/diploma.c b/src/diploma.c
index 987596227..289e0e043 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -3,7 +3,7 @@
#include "palette.h"
#include "main.h"
#include "gpu_regs.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "task.h"
#include "malloc.h"
#include "decompress.h"
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index c78cb2c08..5a2fe5ca2 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -61,7 +61,7 @@ extern u8 sav1_map_get_name(void);
extern s8 ProcessMenuInputNoWrap_(void);
extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8);
extern void sub_806A068(u16, u8);
-extern void fade_screen(u8, u8);
+extern void FadeScreen(u8, u8);
extern void overworld_free_bg_tilemaps(void);
extern void sub_80AF168(void);
extern void AllocateMonSpritesGfx(void);
@@ -465,7 +465,7 @@ void EggHatch(void)
{
ScriptContext2_Enable();
CreateTask(Task_EggHatch, 10);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
static void Task_EggHatch(u8 taskID)
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 5dfc36cb2..cbd37be52 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -11,7 +11,7 @@
#include "pokemon.h"
#include "string_util.h"
#include "battle.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "decompress.h"
#include "m4a.h"
#include "menu.h"
@@ -1367,7 +1367,7 @@ static void VBlankCB_EvolutionScene(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_80BA0A8();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void VBlankCB_TradeEvolutionScene(void)
@@ -1384,7 +1384,7 @@ static void VBlankCB_TradeEvolutionScene(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- sub_80BA0A8();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void sub_813FDEC(u8 taskId)
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index df80494b3..906eff4b7 100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -14,7 +14,7 @@
#include "rom_818CFC8.h"
#include "rom_81BE66C.h"
#include "field_ground_effect.h"
-#include "map_obj_8097404.h"
+#include "field_map_obj_helpers.h"
#include "mauville_old_man.h"
#include "metatile_behavior.h"
#include "field_effect.h"
diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c
new file mode 100755
index 000000000..de26cb034
--- /dev/null
+++ b/src/field_map_obj_helpers.c
@@ -0,0 +1,844 @@
+#include "global.h"
+#include "field_ground_effect.h"
+#include "field_map_obj.h"
+#include "field_effect.h"
+#include "field_map_obj_helpers.h"
+#include "malloc.h"
+#include "task.h"
+#include "util.h"
+
+typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 dir);
+
+extern const struct Coords16 gUnknown_0850DB7C[4];
+extern s16 gUnknown_0850E768[];
+extern SpriteStepFunc *const gUnknown_0850E754[];
+extern const s8 gUnknown_0850E772[];
+extern const s8 gUnknown_0850E7BA[];
+extern const s8 *const gUnknown_0850E834[];
+extern s16 gUnknown_0850E840[];
+extern u8 gUnknown_0850E846[];
+extern s16 gUnknown_0850E84A[];
+extern u8 gUnknown_0850E850[];
+
+void sub_8097D68(struct Sprite *sprite);
+void sub_8097FE4(u8);
+
+bool8 FreezeMapObject(struct MapObject *mapObject)
+{
+ if (mapObject->mapobj_bit_6 || mapObject->mapobj_bit_8)
+ {
+ return TRUE;
+ }
+ else
+ {
+ mapObject->mapobj_bit_8 = 1;
+ mapObject->mapobj_bit_23 = gSprites[mapObject->spriteId].animPaused;
+ mapObject->mapobj_bit_24 = gSprites[mapObject->spriteId].affineAnimPaused;
+ gSprites[mapObject->spriteId].animPaused = 1;
+ gSprites[mapObject->spriteId].affineAnimPaused = 1;
+ return FALSE;
+ }
+}
+
+void FreezeMapObjects(void)
+{
+ u8 i;
+ for (i = 0; i < MAP_OBJECTS_COUNT; i++)
+ if (gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
+ FreezeMapObject(&gMapObjects[i]);
+}
+
+void FreezeMapObjectsExceptOne(u8 a1)
+{
+ u8 i;
+ for (i = 0; i < MAP_OBJECTS_COUNT; i++)
+ if (i != a1 && gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
+ FreezeMapObject(&gMapObjects[i]);
+}
+
+void npc_sync_anim_pause_bits(struct MapObject *mapObject)
+{
+ if (mapObject->active && mapObject->mapobj_bit_8)
+ {
+ mapObject->mapobj_bit_8 = 0;
+ gSprites[mapObject->spriteId].animPaused = mapObject->mapobj_bit_23;
+ gSprites[mapObject->spriteId].affineAnimPaused = mapObject->mapobj_bit_24;
+ }
+}
+
+void UnfreezeMapObjects(void)
+{
+ u8 i;
+ for (i = 0; i < MAP_OBJECTS_COUNT; i++)
+ if (gMapObjects[i].active)
+ npc_sync_anim_pause_bits(&gMapObjects[i]);
+}
+
+void little_step(struct Sprite *sprite, u8 dir)
+{
+ sprite->pos1.x += gUnknown_0850DB7C[dir].x;
+ sprite->pos1.y += gUnknown_0850DB7C[dir].y;
+}
+
+void double_little_steps(struct Sprite *sprite, u8 dir)
+{
+ sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x;
+ sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y;
+}
+
+void triple_little_steps(struct Sprite *sprite, u8 dir)
+{
+ sprite->pos1.x += 2 * (u16) gUnknown_0850DB7C[dir].x + (u16) gUnknown_0850DB7C[dir].x;
+ sprite->pos1.y += 2 * (u16) gUnknown_0850DB7C[dir].y + (u16) gUnknown_0850DB7C[dir].y;
+}
+
+void quad_little_steps(struct Sprite *sprite, u8 dir)
+{
+ sprite->pos1.x += 4 * (u16) gUnknown_0850DB7C[dir].x;
+ sprite->pos1.y += 4 * (u16) gUnknown_0850DB7C[dir].y;
+}
+
+void oct_little_steps(struct Sprite *sprite, u8 dir)
+{
+ sprite->pos1.x += 8 * (u16) gUnknown_0850DB7C[dir].x;
+ sprite->pos1.y += 8 * (u16) gUnknown_0850DB7C[dir].y;
+}
+
+void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3)
+{
+ sprite->data[3] = a2;
+ sprite->data[4] = a3;
+ sprite->data[5] = 0;
+}
+
+bool8 obj_npc_ministep(struct Sprite *sprite)
+{
+ if (sprite->data[5] >= gUnknown_0850E768[sprite->data[4]])
+ return FALSE;
+
+ gUnknown_0850E754[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]);
+
+ sprite->data[5]++;
+
+ if (sprite->data[5] < gUnknown_0850E768[sprite->data[4]])
+ return FALSE;
+
+ return TRUE;
+}
+
+void sub_80976DC(struct Sprite *sprite, u8 a2)
+{
+ sprite->data[3] = a2;
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
+}
+
+bool8 sub_80976EC(struct Sprite *sprite)
+{
+ if (!(sprite->data[4] & 1))
+ {
+ little_step(sprite, sprite->data[3]);
+ sprite->data[5]++;
+ }
+
+ sprite->data[4]++;
+
+ if (sprite->data[5] > 15)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+// new helper added here in the middle. Perhaps Game Freak kept these organized in alphebetical order or some other heirarchy?
+
+s16 sub_8097728(s16 a1)
+{
+ return gUnknown_0850E7BA[a1];
+}
+
+s16 sub_809773C(s16 a1)
+{
+ return gUnknown_0850E772[a1];
+}
+
+void sub_8097750(struct Sprite *sprite)
+{
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
+}
+
+bool8 sub_8097758(struct Sprite *sprite)
+{
+ bool8 result = FALSE;
+
+ switch(sprite->data[7])
+ {
+ case 0:
+ sprite->pos2.x += sub_809773C(sprite->data[6]);
+ sprite->pos2.y += sub_8097728(sprite->data[6]);
+ break;
+ case 1:
+ sprite->pos2.x -= sub_809773C(0x47 - sprite->data[6]);
+ sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
+ break;
+ case 2:
+ sprite->pos2.x -= sub_809773C(sprite->data[6]);
+ sprite->pos2.y += sub_8097728(sprite->data[6]);
+ break;
+ case 3:
+ sprite->pos2.x += sub_809773C(0x47 - sprite->data[6]);
+ sprite->pos2.y += sub_8097728(0x47 - sprite->data[6]);
+ break;
+ }
+ if(++sprite->data[6] == 0x48)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7]++;
+ }
+ if(sprite->data[7] == 0x4)
+ {
+ sprite->pos2.y = 0;
+ sprite->pos2.x = 0;
+ result = TRUE;
+ }
+ return result;
+}
+
+s16 sub_8097820(s16 a1, u8 a2)
+{
+ return gUnknown_0850E834[a2][a1];
+}
+
+void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
+{
+ sprite->data[3] = a2;
+ sprite->data[4] = a3;
+ sprite->data[5] = a4;
+ sprite->data[6] = 0;
+}
+
+u8 sub_809785C(struct Sprite *sprite)
+{
+ s16 v5[3];
+ u8 v6[3];
+ u8 v2;
+
+ memcpy(v5, gUnknown_0850E840, 6); // TODO: get rid of memcpy
+ memcpy(v6, gUnknown_0850E846, 3);
+ v2 = 0;
+
+ if (sprite->data[4])
+ little_step(sprite, sprite->data[3]);
+
+ sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
+
+ sprite->data[6]++;
+
+ if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
+ v2 = 1;
+
+ if (sprite->data[6] >= v5[sprite->data[4]])
+ {
+ sprite->pos2.y = 0;
+ v2 = -1;
+ }
+
+ return v2;
+}
+
+u8 sub_80978E4(struct Sprite *sprite)
+{
+ s16 v5[3];
+ u8 v6[3];
+ u8 v2;
+
+ memcpy(v5, gUnknown_0850E84A, 6);
+ memcpy(v6, gUnknown_0850E850, 3);
+ v2 = 0;
+
+ if (sprite->data[4] && !(sprite->data[6] & 1))
+ little_step(sprite, sprite->data[3]);
+
+ sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
+
+ sprite->data[6]++;
+
+ if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
+ v2 = 1;
+
+ if (sprite->data[6] >= v5[sprite->data[4]])
+ {
+ sprite->pos2.y = 0;
+ v2 = -1;
+ }
+
+ return v2;
+}
+
+void SetFieldObjectStepTimer(struct Sprite *sprite, u16 timer)
+{
+ sprite->data[3] = timer;
+}
+
+
+bool8 RunFieldObjectStepTimer(struct Sprite *sprite)
+{
+ sprite->data[3]--;
+
+ if (sprite->data[3] == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3)
+{
+ sprite->animNum = a2;
+ sprite->animPaused = 0 ;
+ SeekSpriteAnim(sprite, a3);
+}
+
+bool8 sub_80979BC(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_80979D4(struct Sprite *sprite, bool8 invisible)
+{
+ u16 x, y;
+ s16 x2, y2;
+
+ sprite->invisible = invisible;
+
+ if (sprite->coordOffsetEnabled)
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
+ }
+ else
+ {
+ x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
+ y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
+ }
+
+ x2 = x - (sprite->centerToCornerVecX >> 1);
+ y2 = y - (sprite->centerToCornerVecY >> 1);
+
+ if ((s16)x > 255 || x2 < -16)
+ sprite->invisible = 1;
+ if ((s16)y > 175 || y2 < -16)
+ sprite->invisible = 1;
+}
+
+void sub_8097AC8(struct Sprite *sprite)
+{
+ sub_8097D68(sprite);
+ SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1);
+ sub_80979D4(sprite, sprite->data[2]);
+}
+
+void sub_8097AF0(void)
+{
+ int i;
+
+ for(i = 0; i < MAX_SPRITES; i++)
+ {
+ struct Sprite *sprite = &gSprites[i];
+ if(sprite->inUse && sprite->callback == sub_8097AC8)
+ DestroySprite(sprite);
+ }
+}
+
+int sub_8097B2C(u8 var) // this should return a u8, because all that call this shifts to u8, but it wont match because it doesnt shift u8 at the end.
+{
+ int i;
+
+ for(i = 0; i < MAX_SPRITES; i++)
+ {
+ struct Sprite *sprite = &gSprites[i];
+ if(sprite->inUse && sprite->callback == sub_8097AC8 && (u8)sprite->data[0] == var)
+ return i;
+ }
+ return MAX_SPRITES;
+}
+
+void sub_8097B78(u8 var1, u8 var2)
+{
+ u8 spriteId = sub_8097B2C(var1);
+
+ if(spriteId != MAX_SPRITES)
+ StartSpriteAnim(&gSprites[spriteId], FieldObjectDirectionToImageAnimId(var2));
+}
+
+void sub_8097BB4(u8 var1, u8 var2)
+{
+ int spriteId = sub_8097B2C(var1);
+
+ if(spriteId != MAX_SPRITES)
+ {
+ struct Sprite *sprite = &gSprites[spriteId];
+ const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(var2);
+ u16 tileNum = sprite->oam.tileNum;
+
+ sprite->oam = *gfxInfo->oam;
+ sprite->oam.tileNum = tileNum;
+ sprite->oam.paletteNum = gfxInfo->paletteSlot;
+ sprite->images = gfxInfo->images;
+
+ if(gfxInfo->subspriteTables == NULL)
+ {
+ sprite->subspriteTables = NULL;
+ sprite->subspriteTableNum = 0;
+ sprite->subspriteMode = 0;
+ }
+ else
+ {
+ SetSubspriteTables(sprite, gfxInfo->subspriteTables);
+ sprite->subspriteMode = 2;
+ }
+ StartSpriteAnim(sprite, 0);
+ }
+}
+
+void sub_8097C44(u8 var, bool32 var2)
+{
+ u8 spriteId = sub_8097B2C(var);
+
+ if(spriteId == MAX_SPRITES)
+ return;
+
+ if(var2)
+ gSprites[spriteId].data[2] = 1;
+ else
+ gSprites[spriteId].data[2] = 0;
+}
+
+bool32 sub_8097C8C(u8 var)
+{
+ u8 spriteId = sub_8097B2C(var);
+
+ if(spriteId == MAX_SPRITES)
+ return FALSE;
+
+ return (gSprites[spriteId].data[2] == TRUE);
+}
+
+void sub_8097CC4(u8 var1, u8 var2)
+{
+ u8 spriteId = sub_8097B2C(var1);
+
+ if(spriteId != MAX_SPRITES)
+ {
+ gSprites[spriteId].data[3] = var2;
+ gSprites[spriteId].data[4] = 0;
+ }
+}
+
+void sub_8097CF4(struct Sprite *sprite)
+{
+ switch(sprite->data[4])
+ {
+ case 0:
+ sprite->pos2.y = 0;
+ sprite->data[4]++;
+ case 1:
+ sprite->pos2.y -= 8;
+ if(sprite->pos2.y == -160)
+ {
+ sprite->pos2.y = 0;
+ sprite->data[2] = 1;
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ }
+ }
+}
+
+void sub_8097D30(struct Sprite *sprite)
+{
+ switch(sprite->data[4])
+ {
+ case 0:
+ sprite->pos2.y = -160;
+ sprite->data[4]++;
+ case 1:
+ sprite->pos2.y += 8;
+ if(sprite->pos2.y == 0)
+ {
+ sprite->data[3] = 0;
+ sprite->data[4] = 0;
+ }
+ }
+}
+
+void sub_8097D68(struct Sprite *sprite)
+{
+ switch(sprite->data[3])
+ {
+ case 1:
+ sub_8097D30(sprite);
+ break;
+ case 2:
+ sub_8097CF4(sprite);
+ break;
+ case 0:
+ break;
+ default:
+ sprite->data[3] = 0;
+ break;
+ }
+}
+
+bool32 sub_8097D9C(u8 var)
+{
+ u8 spriteId = sub_8097B2C(var);
+
+ if(spriteId == MAX_SPRITES)
+ return FALSE;
+
+ if(gSprites[spriteId].data[3] != FALSE)
+ return TRUE;
+
+ return FALSE;
+}
+
+u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct MapObject *mapObject)
+{
+ FieldObjectGetLocalIdAndMap(mapObject, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
+ return FieldEffectStart(fieldEffectId);
+}
+
+void DoShadowFieldEffect(struct MapObject *mapObject)
+{
+ if (!mapObject->mapobj_bit_22)
+ {
+ mapObject->mapobj_bit_22 = 1;
+ oe_exec_and_other_stuff(FLDEFF_SHADOW, mapObject);
+ }
+}
+
+void DoRippleFieldEffect(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ const struct MapObjectGraphicsInfo *gfxInfo = GetFieldObjectGraphicsInfo(mapObject->graphicsId);
+ gFieldEffectArguments[0] = sprite->pos1.x;
+ gFieldEffectArguments[1] = sprite->pos1.y + (gfxInfo->height >> 1) - 2;
+ gFieldEffectArguments[2] = 151;
+ gFieldEffectArguments[3] = 3;
+ FieldEffectStart(FLDEFF_RIPPLE);
+}
+
+#ifdef NONMATCHING
+bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ bool32 ableToStore = FALSE;
+ if (gUnknown_020375B8 == NULL)
+ {
+ gUnknown_020375B8 = AllocZeroed(0x14);
+ gUnknown_020375B8[0] = mapObject->localId;
+ gUnknown_020375B8[16] = 1;
+ ableToStore = TRUE;
+ }
+ else
+ {
+ u8 i;
+ u8 firstFreeSlot;
+ bool32 found;
+ for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
+ {
+ if (firstFreeSlot == 16 && gUnknown_020375B8[i] == 0)
+ firstFreeSlot = i;
+
+ if (gUnknown_020375B8[i] == mapObject->localId)
+ {
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found && firstFreeSlot != 16)
+ {
+ gUnknown_020375B8[firstFreeSlot] = mapObject->localId;
+ gUnknown_020375B8[16]++;
+ ableToStore = TRUE; // the nonmatching problem is that ableToStore == TRUE isnt being merged with the above ableToStore = TRUE assignment.
+ }
+ }
+
+ if (ableToStore == TRUE)
+ {
+ mapObject->mapobj_bit_12 = TRUE;
+ mapObject->mapobj_bit_9 = TRUE;
+ }
+
+ sprite->data[2] = 1;
+ return TRUE;
+}
+#else
+__attribute__((naked))
+bool32 sub_8097E50(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ adds r4, r0, 0\n\
+ mov r8, r1\n\
+ movs r0, 0\n\
+ mov r12, r0\n\
+ ldr r0, =gUnknown_020375B8\n\
+ ldr r1, [r0]\n\
+ adds r6, r0, 0\n\
+ cmp r1, 0\n\
+ bne _08097E80\n\
+ movs r0, 0x14\n\
+ bl AllocZeroed\n\
+ str r0, [r6]\n\
+ ldrb r1, [r4, 0x8]\n\
+ strb r1, [r0]\n\
+ ldr r1, [r6]\n\
+ movs r0, 0x1\n\
+ strb r0, [r1, 0x10]\n\
+ b _08097ECC\n\
+ .pool\n\
+_08097E80:\n\
+ movs r2, 0x10\n\
+ movs r5, 0\n\
+ movs r1, 0\n\
+ adds r3, r6, 0\n\
+ b _08097E90\n\
+_08097E8A:\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+_08097E90:\n\
+ cmp r1, 0xF\n\
+ bhi _08097EB2\n\
+ cmp r2, 0x10\n\
+ bne _08097EA4\n\
+ ldr r0, [r3]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _08097EA4\n\
+ adds r2, r1, 0\n\
+_08097EA4:\n\
+ ldr r0, [r3]\n\
+ adds r0, r1\n\
+ ldrb r0, [r0]\n\
+ ldrb r7, [r4, 0x8]\n\
+ cmp r0, r7\n\
+ bne _08097E8A\n\
+ movs r5, 0x1\n\
+_08097EB2:\n\
+ cmp r5, 0\n\
+ bne _08097ECE\n\
+ cmp r2, 0x10\n\
+ beq _08097ECE\n\
+ ldr r0, [r6]\n\
+ adds r0, r2\n\
+ ldrb r1, [r4, 0x8]\n\
+ strb r1, [r0]\n\
+ ldr r1, [r6]\n\
+ ldrb r0, [r1, 0x10]\n\
+ adds r0, 0x1\n\
+ strb r0, [r1, 0x10]\n\
+ movs r0, 0x1\n\
+_08097ECC:\n\
+ mov r12, r0\n\
+_08097ECE:\n\
+ mov r1, r12\n\
+ cmp r1, 0x1\n\
+ bne _08097EE0\n\
+ ldrb r0, [r4, 0x1]\n\
+ movs r1, 0x10\n\
+ orrs r0, r1\n\
+ movs r1, 0x2\n\
+ orrs r0, r1\n\
+ strb r0, [r4, 0x1]\n\
+_08097EE0:\n\
+ movs r0, 0x1\n\
+ mov r7, r8\n\
+ strh r0, [r7, 0x32]\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided");
+}
+#endif
+
+// this function is very similar to the above one and I don't want to decompile this one until the above is matching.
+__attribute__((naked))
+bool32 sub_8097EF0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ adds r6, r0, 0\n\
+ mov r8, r1\n\
+ movs r0, 0x1\n\
+ strh r0, [r1, 0x32]\n\
+ ldr r5, =gUnknown_020375B8\n\
+ ldr r0, [r5]\n\
+ cmp r0, 0\n\
+ beq _08097F68\n\
+ movs r7, 0\n\
+ adds r0, r6, 0\n\
+ bl sub_8097F78\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x10\n\
+ beq _08097F28\n\
+ ldr r0, [r5]\n\
+ adds r0, r1\n\
+ movs r1, 0\n\
+ strb r1, [r0]\n\
+ ldr r1, [r5]\n\
+ ldrb r0, [r1, 0x10]\n\
+ subs r0, 0x1\n\
+ strb r0, [r1, 0x10]\n\
+ movs r7, 0x1\n\
+_08097F28:\n\
+ ldr r0, [r5]\n\
+ ldrb r4, [r0, 0x10]\n\
+ cmp r4, 0\n\
+ bne _08097F36\n\
+ bl Free\n\
+ str r4, [r5]\n\
+_08097F36:\n\
+ cmp r7, 0x1\n\
+ bne _08097F68\n\
+ ldrb r0, [r6, 0x5]\n\
+ bl GetFieldObjectGraphicsInfo\n\
+ ldrb r1, [r0, 0xC]\n\
+ lsls r1, 25\n\
+ lsrs r1, 31\n\
+ lsls r1, 4\n\
+ ldrb r2, [r6, 0x1]\n\
+ movs r0, 0x11\n\
+ negs r0, r0\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ movs r1, 0x3\n\
+ negs r1, r1\n\
+ ands r0, r1\n\
+ strb r0, [r6, 0x1]\n\
+ mov r2, r8\n\
+ adds r2, 0x2C\n\
+ ldrb r1, [r2]\n\
+ movs r0, 0x41\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r2]\n\
+_08097F68:\n\
+ movs r0, 0x1\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .pool\n\
+ .syntax divided");
+}
+
+u8 sub_8097F78(struct MapObject *mapObject)
+{
+ u8 i;
+
+ for(i = 0; i < MAP_OBJECTS_COUNT; i++)
+ {
+ if(gUnknown_020375B8[i] == mapObject->localId)
+ return i;
+ }
+ return MAP_OBJECTS_COUNT;
+}
+
+void sub_8097FA4(struct MapObject *mapObject)
+{
+ u8 taskId = CreateTask(sub_8097FE4, 0xFF);
+ struct Task *task = &gTasks[taskId];
+
+ StoreWordInTwoHalfwords(&task->data[0], (u32)mapObject);
+ mapObject->mapobj_unk_1B = taskId;
+ task->data[3] = 0xFFFF;
+}
+
+void sub_8097FE4(u8 taskId)
+{
+ struct MapObject *mapObject;
+ struct Sprite *sprite;
+ struct Task *task = &gTasks[taskId];
+
+ LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&mapObject); // load the map object pointer.
+ sprite = &gSprites[mapObject->spriteId];
+
+ if(!(task->data[2] & 0x3))
+ sprite->pos2.y += task->data[3];
+
+ if(!(task->data[2] & 0xF))
+ task->data[3] = -task->data[3];
+
+ task->data[2]++;
+}
+
+void sub_8098044(u8 taskId)
+{
+ u32 word;
+ struct Task *task = &gTasks[taskId];
+
+ LoadWordFromTwoHalfwords(&task->data[0], &word); // huh??? why does it load a word that never gets used???
+ DestroyTask(taskId);
+}
+
+void sub_8098074(u8 var1, u8 var2)
+{
+ u8 i;
+
+ for(i = 0; i < MAP_OBJECTS_COUNT; i++)
+ {
+ if(i != var1 && i != var2 &&
+ gMapObjects[i].active && i != gPlayerAvatar.mapObjectId)
+ FreezeMapObject(&gMapObjects[i]);
+ }
+}
+
+bool32 sub_80980C0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->pos2.y = 0;
+ sprite->data[2]++;
+ return FALSE;
+}
+
+bool32 sub_80980D0(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->pos2.y -= 8;
+
+ if(sprite->pos2.y == -160)
+ sprite->data[2]++;
+ return FALSE;
+}
+
+bool32 sub_80980F4(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->pos2.y = -160;
+ sprite->data[2]++;
+ return FALSE;
+}
+
+bool32 sub_8098108(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->pos2.y += 8;
+
+ if(!sprite->pos2.y)
+ sprite->data[2]++;
+ return FALSE;
+}
+
+// though this function returns TRUE without doing anything, this header is required due to being in an array of functions which needs it.
+bool32 sub_8098124(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return TRUE;
+}
diff --git a/src/field_message_box.c b/src/field_message_box.c
new file mode 100755
index 000000000..8ca291e33
--- /dev/null
+++ b/src/field_message_box.c
@@ -0,0 +1,155 @@
+#include "global.h"
+#include "menu.h"
+#include "string.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "battle_frontier_1.h"
+
+EWRAM_DATA u8 gUnknown_020375BC = 0;
+
+void textbox_fdecode_auto_and_task_add(u8*, int);
+void textbox_auto_and_task_add(void);
+
+void sub_8098128(void)
+{
+ gUnknown_020375BC = 0;
+ gTextFlags.flag_0 = 0;
+ gTextFlags.flag_1 = 0;
+ gTextFlags.flag_2 = 0;
+ gTextFlags.flag_3 = 0;
+}
+
+void sub_8098154(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->data[0])
+ {
+ case 0:
+ sub_81973A4();
+ task->data[0]++;
+ break;
+ case 1:
+ NewMenuHelpers_DrawDialogueFrame(0, 1);
+ task->data[0]++;
+ break;
+ case 2:
+ if (sub_8197224() != 1)
+ {
+ gUnknown_020375BC = 0;
+ DestroyTask(taskId);
+ }
+ }
+}
+
+void task_add_textbox(void)
+{
+ CreateTask(sub_8098154, 0x50);
+}
+
+void task_del_textbox(void)
+{
+ u8 taskId = FindTaskIdByFunc(sub_8098154);
+ if (taskId != 0xFF)
+ DestroyTask(taskId);
+}
+
+bool8 ShowFieldMessage(u8 *str)
+{
+ if (gUnknown_020375BC != 0)
+ return FALSE;
+ textbox_fdecode_auto_and_task_add(str, 1);
+ gUnknown_020375BC = 2;
+ return TRUE;
+}
+
+void sub_8098214(u8 taskId)
+{
+ if (sub_8196094() == 0)
+ {
+ gUnknown_020375BC = 0;
+ DestroyTask(taskId);
+ }
+}
+
+bool8 sub_8098238(u8 *str)
+{
+ if (gUnknown_020375BC != 0)
+ return FALSE;
+ StringExpandPlaceholders(gStringVar4, str);
+ CreateTask(sub_8098214, 0);
+ sub_8196080(str);
+ gUnknown_020375BC = 2;
+ return TRUE;
+}
+
+bool8 ShowFieldAutoScrollMessage(u8 *str)
+{
+ if (gUnknown_020375BC != 0)
+ return FALSE;
+ gUnknown_020375BC = 3;
+ textbox_fdecode_auto_and_task_add(str, 0);
+ return TRUE;
+}
+
+bool8 sub_80982A0(u8 *str)
+{
+ gUnknown_020375BC = 3;
+ textbox_fdecode_auto_and_task_add(str, 1);
+ return TRUE;
+}
+
+bool8 sub_80982B8(void)
+{
+ if (gUnknown_020375BC != 0)
+ return FALSE;
+ gUnknown_020375BC = 2;
+ textbox_auto_and_task_add();
+ return TRUE;
+}
+
+void textbox_fdecode_auto_and_task_add(u8* str, int a)
+{
+ StringExpandPlaceholders(gStringVar4, str);
+ AddTextPrinterForMessage(a);
+ task_add_textbox();
+}
+
+void textbox_auto_and_task_add(void)
+{
+ AddTextPrinterForMessage(1);
+ task_add_textbox();
+}
+
+void HideFieldMessageBox(void)
+{
+ task_del_textbox();
+ sub_8197434(0, 1);
+ gUnknown_020375BC = 0;
+}
+
+u8 textbox_any_visible(void)
+{
+ return gUnknown_020375BC;
+}
+
+bool8 IsFieldMessageBoxHidden(void)
+{
+ if (gUnknown_020375BC == 0)
+ return TRUE;
+ return FALSE;
+}
+
+void sub_8098358(void)
+{
+ task_del_textbox();
+ NewMenuHelpers_DrawStdWindowFrame(0, 1);
+ gUnknown_020375BC = 0;
+}
+
+void sub_8098374(void)
+{
+ task_del_textbox();
+ gUnknown_020375BC = 0;
+}
diff --git a/src/field_poison.c b/src/field_poison.c
index b83788210..98819c450 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -42,7 +42,7 @@ static bool32 sub_80F958C(void)
static void sub_80F95C0(u8 partyIdx)
{
struct Pokemon *pokemon = gPlayerParty + partyIdx;
- unsigned int status = STATUS_NONE;
+ unsigned int status = STATUS1_NONE;
AdjustFriendship(pokemon, 0x07);
SetMonData(pokemon, MON_DATA_STATUS, &status);
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 9ac415c32..6dda6ad9c 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -20,11 +20,12 @@
#include "string_util.h"
#include "m4a.h"
#include "international_string_util.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "trig.h"
#include "random.h"
#include "event_data.h"
#include "overworld.h"
+#include "menu.h"
struct HallofFameMon
{
@@ -53,7 +54,6 @@ static EWRAM_DATA struct HofGfx *sHofGfxPtr = NULL;
extern bool8 gHasHallOfFameRecords;
extern u32 gUnknown_0203BCD4;
-extern u8 gDecompressionBuffer[];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern MainCallback gGameContinueCallback;
extern u32 gDamagedSaveSectors;
diff --git a/src/item_icon.c b/src/item_icon.c
new file mode 100644
index 000000000..4aaad9c31
--- /dev/null
+++ b/src/item_icon.c
@@ -0,0 +1,169 @@
+#include "global.h"
+#include "item_icon.h"
+#include "malloc.h"
+#include "sprite.h"
+#include "decompress.h"
+#include "constants/items.h"
+
+// EWRAM vars
+EWRAM_DATA void *gItemIconDecompressionBuffer = NULL;
+EWRAM_DATA void *gItemIcon4x4Buffer = NULL;
+
+// const rom data
+extern const void *const gItemIconTable[][2]; // todo: move to C file
+
+static const struct OamData sOamData_ItemIcon =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 2,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_ItemIcon[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_ItemIcon[] =
+{
+ sSpriteAnim_ItemIcon
+};
+
+const struct SpriteTemplate gItemIconSpriteTemplate =
+{
+ .tileTag = 0,
+ .paletteTag = 0,
+ .oam = &sOamData_ItemIcon,
+ .anims = sSpriteAnimTable_ItemIcon,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// code
+bool8 AllocItemIconTemporaryBuffers(void)
+{
+ gItemIconDecompressionBuffer = gItemIconDecompressionBuffer; // needed to match
+ gItemIconDecompressionBuffer = Alloc(0x120);
+ if (gItemIconDecompressionBuffer == NULL)
+ return FALSE;
+
+ gItemIcon4x4Buffer = gItemIcon4x4Buffer; // needed to match
+ gItemIcon4x4Buffer = AllocZeroed(0x200);
+ if (gItemIcon4x4Buffer == NULL)
+ {
+ Free(gItemIconDecompressionBuffer);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+void FreeItemIconTemporaryBuffers(void)
+{
+ Free(gItemIconDecompressionBuffer);
+ Free(gItemIcon4x4Buffer);
+}
+
+void CopyItemIconPicTo4x4Buffer(const void *src, void *dest)
+{
+ u8 i;
+
+ for (i = 0; i < 3; i++)
+ CpuCopy16(src + i * 96, dest + i * 128, 0x60);
+}
+
+u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId)
+{
+ if (!AllocItemIconTemporaryBuffers())
+ {
+ return MAX_SPRITES;
+ }
+ else
+ {
+ u8 spriteId;
+ struct SpriteSheet spriteSheet;
+ struct CompressedSpritePalette spritePalette;
+ struct SpriteTemplate *spriteTemplate;
+
+ LZDecompressWram(GetItemIconPicOrPalette(itemId, 0), gItemIconDecompressionBuffer);
+ CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer);
+ spriteSheet.data = gItemIcon4x4Buffer;
+ spriteSheet.size = 0x200;
+ spriteSheet.tag = tilesTag;
+ LoadSpriteSheet(&spriteSheet);
+
+ spritePalette.data = GetItemIconPicOrPalette(itemId, 1);
+ spritePalette.tag = paletteTag;
+ LoadCompressedObjectPalette(&spritePalette);
+
+ spriteTemplate = Alloc(sizeof(*spriteTemplate));
+ CpuCopy16(&gItemIconSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate));
+ spriteTemplate->tileTag = tilesTag;
+ spriteTemplate->paletteTag = paletteTag;
+ spriteId = CreateSprite(spriteTemplate, 0, 0, 0);
+
+ FreeItemIconTemporaryBuffers();
+ Free(spriteTemplate);
+
+ return spriteId;
+ }
+}
+
+u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId)
+{
+ if (!AllocItemIconTemporaryBuffers())
+ {
+ return MAX_SPRITES;
+ }
+ else
+ {
+ u8 spriteId;
+ struct SpriteSheet spriteSheet;
+ struct CompressedSpritePalette spritePalette;
+ struct SpriteTemplate *spriteTemplate;
+
+ LZDecompressWram(GetItemIconPicOrPalette(itemId, 0), gItemIconDecompressionBuffer);
+ CopyItemIconPicTo4x4Buffer(gItemIconDecompressionBuffer, gItemIcon4x4Buffer);
+ spriteSheet.data = gItemIcon4x4Buffer;
+ spriteSheet.size = 0x200;
+ spriteSheet.tag = tilesTag;
+ LoadSpriteSheet(&spriteSheet);
+
+ spritePalette.data = GetItemIconPicOrPalette(itemId, 1);
+ spritePalette.tag = paletteTag;
+ LoadCompressedObjectPalette(&spritePalette);
+
+ spriteTemplate = Alloc(sizeof(*spriteTemplate));
+ CpuCopy16(customSpriteTemplate, spriteTemplate, sizeof(*spriteTemplate));
+ spriteTemplate->tileTag = tilesTag;
+ spriteTemplate->paletteTag = paletteTag;
+ spriteId = CreateSprite(spriteTemplate, 0, 0, 0);
+
+ FreeItemIconTemporaryBuffers();
+ Free(spriteTemplate);
+
+ return spriteId;
+ }
+}
+
+const void *GetItemIconPicOrPalette(u16 itemId, u8 which)
+{
+ if (itemId == 0xFFFF)
+ itemId = ITEM_FIELD_ARROW;
+ else if (itemId > ITEM_LAST_ID)
+ itemId = 0;
+
+ return gItemIconTable[itemId][which];
+}
diff --git a/src/item_use.c b/src/item_use.c
new file mode 100755
index 000000000..6f585ed8b
--- /dev/null
+++ b/src/item_use.c
@@ -0,0 +1,1124 @@
+#include "global.h"
+#include "battle.h"
+#include "berry.h"
+#include "bike.h"
+#include "coins.h"
+#include "constants/flags.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+#include "constants/vars.h"
+#include "data2.h"
+#include "event_data.h"
+#include "fieldmap.h"
+#include "field_map_obj.h"
+#include "field_player_avatar.h"
+#include "field_screen.h"
+#include "field_weather.h"
+#include "item.h"
+#include "field_map_obj_helpers.h"
+#include "mail.h"
+#include "metatile_behavior.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokemon.h"
+#include "rom_818CFC8.h"
+#include "script.h"
+#include "sound.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+
+extern u16 gSpecialVar_ItemId;
+extern void(**gUnknown_0203CE54)(void);
+extern void(**gUnknown_0203CF2C)(void);
+extern void(*gUnknown_0203A0F4)(u8 taskId);
+extern void(*gUnknown_085920D8[])(void);
+extern void (*gUnknown_03006328)(u8, u16, TaskFunc);
+extern void unknown_ItemMenu_Confirm(u8 taskId);
+extern void sub_81C5B14(u8 taskId);
+extern u8 gText_DadsAdvice[];
+extern u8 gText_CantDismountBike[];
+extern void sub_8197434(u8 a, u8 b);
+extern void sub_80984F4(void);
+extern void ItemUseOutOfBattle_TMHM(u8 a);
+extern void ItemUseOutOfBattle_EvolutionStone(u8 b);
+extern void bag_menu_mail_related(void);
+extern void OpenPokeblockCase(u8 a, void(*b)(void));
+extern void overworld_free_bg_tilemaps(void);
+extern bool32 sav1_map_is_biking_allowed(void);
+extern bool8 IsPlayerFacingSurfableFishableWater(void);
+extern bool8 sub_81221AC(void);
+extern u8 gText_ItemFinderNothing[];
+extern u8 gText_ItemFinderNearby[];
+extern u8 gText_ItemFinderOnTop[];
+extern u8 gText_CoinCase[];
+extern u8 gText_PowderQty[];
+extern u8 gUnknown_085920E4[];
+extern u8 Route102_EventScript_274482[];
+extern u8 Route102_EventScript_2744C0[];
+extern u8 BattleFrontier_OutsideEast_EventScript_242CFC[];
+extern u8 gText_BootedUpHM[];
+extern u8 gText_BootedUpTM[];
+extern u8 gText_TMHMContainedVar1[];
+extern u8 gText_PlayerUsedVar2[];
+extern u8 gText_RepelEffectsLingered[];
+extern u8 gText_UsedVar2WildLured[];
+extern u8 gText_UsedVar2WildRepelled[];
+extern u8 gText_BoxFull[];
+extern u8 gText_WontHaveEffect[];
+extern int sub_80247BC(void);
+extern struct MapHeader* mapconnection_get_mapheader(struct MapConnection *connection);
+extern void SetUpItemUseCallback(u8 taskId);
+extern void ItemUseCB_Medicine(u8, u16, TaskFunc);
+extern void sub_81B67C8(u8, u16, TaskFunc);
+extern void sub_81B79E8(u8, u16, TaskFunc);
+extern void dp05_ether(u8, u16, TaskFunc);
+extern void dp05_pp_up(u8, u16, TaskFunc);
+extern void dp05_rare_candy(u8, u16, TaskFunc);
+extern void sub_81B6DC4(u8, u16, TaskFunc);
+extern void sub_81B7C74(u8, u16, TaskFunc);
+extern u16 ItemIdToBattleMoveId(u16);
+extern void bag_menu_yes_no(u8, u8, void(**)(u8 taskId));
+extern void (*gUnknown_085920E8[])(u8 taskId);
+extern void sub_81C5924(void);
+extern void sub_81C59BC(void);
+extern void sub_81AB9A8(u8);
+extern void sub_81ABA88(u8);
+extern void sub_80B7CC8(void);
+extern void flagmods_08054D70(void);
+extern u8* sub_806CF78(u16);
+extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon*, u16, u8, u8);
+extern u8 gBankInMenu;
+extern u16 gBattlerPartyIndexes[];
+extern void sub_81B89F0(void);
+extern u8 GetItemEffectType(u16);
+extern struct MapConnection *sub_8088A8C(s16, s16);
+
+void MapPostLoadHook_UseItem(void);
+extern void sub_80AF6D4(void);
+void Task_CallItemUseOnFieldCallback(u8 taskId);
+void bag_menu_inits_lists_menu(u8 taskId);
+void ItemUseOnFieldCB_Bike(u8 taskId);
+void ItemUseOnFieldCB_Rod(u8 taskId);
+void ItemUseOnFieldCB_Itemfinder(u8 taskId);
+void sub_80FD504(u8 taskId);
+void sub_80FD5CC(u8 taskId);
+void sub_80FDA94(u8 taskId);
+void sub_80FDADC(u8 taskId);
+void sub_80FD7C8(u8 taskId);
+void sub_80FDC00(u8 taskId);
+void sub_80FDD74(u8 taskId);
+void sub_80FDE08(u8 taskId);
+void sub_80FDE7C(u8 taskId);
+void sub_80FDF90(u8 taskId);
+void task08_0809AD8C(u8 taskId);
+void sub_80FE024(u8 taskId);
+void sub_80FE124(u8 taskId);
+void sub_80FE164(u8 taskId);
+
+void DisplayItemMessage(u8 taskId, u8 a, u8* str, void(*callback)(u8 taskId));
+void DisplayItemMessageInBattlePyramid(u8 taskId, u8* str, void(*callback)(u8 taskId));
+void DisplayItemMessageOnField(u8 taskId, u8* str, void(*callback)(u8 taskId));
+void sub_81C6714(u8 taskId);
+void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId);
+void StartFishing(u8 a);
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8);
+u8 sub_80FD9B0(s16 a, s16 b);
+void sub_80FDA24(u8 a);
+void sub_80FD8E0(u8 taskId, s16 x, s16 y);
+void sub_80FDBEC(void);
+bool8 sub_80FDE2C(void);
+void ItemUseOutOfBattle_CannotUse(u8 taskId);
+
+void SetUpItemUseCallback(u8 taskId)
+{
+ u8 type;
+ if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY)
+ type = gTasks[taskId].data[4] - 1;
+ else
+ type = ItemId_GetType(gSpecialVar_ItemId) - 1;
+ if (!InBattlePyramid())
+ {
+ *gUnknown_0203CE54 = gUnknown_085920D8[type];
+ unknown_ItemMenu_Confirm(taskId);
+ }
+ else
+ {
+ *gUnknown_0203CF2C = gUnknown_085920D8[type];
+ sub_81C5B14(taskId);
+ }
+}
+
+void SetUpItemUseOnFieldCallback(u8 taskId)
+{
+ if (gTasks[taskId].data[3] != 1)
+ {
+ gFieldCallback = MapPostLoadHook_UseItem;
+ SetUpItemUseCallback(taskId);
+ }
+ else
+ gUnknown_0203A0F4(taskId);
+}
+
+void MapPostLoadHook_UseItem(void)
+{
+ pal_fill_black();
+ CreateTask(Task_CallItemUseOnFieldCallback, 8);
+}
+
+void Task_CallItemUseOnFieldCallback(u8 taskId)
+{
+ if (sub_80ABDFC() == 1)
+ gUnknown_0203A0F4(taskId);
+}
+
+void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, const u8 *str)
+{
+ StringExpandPlaceholders(gStringVar4, str);
+ if (!isUsingRegisteredKeyItemOnField)
+ {
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714);
+ }
+ else
+ DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+}
+
+void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
+{
+ DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_DadsAdvice);
+}
+
+void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
+{
+ DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_CantDismountBike);
+}
+
+void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId)
+{
+ sub_8197434(0, 1);
+ DestroyTask(taskId);
+ sub_80984F4();
+ ScriptContext2_Disable();
+}
+
+u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
+{
+ if (ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_TMHM)
+ return 1;
+ else if (ItemId_GetFieldFunc(itemId) == ItemUseOutOfBattle_EvolutionStone)
+ return 2;
+ else
+ return 0;
+}
+
+void sub_80FD254()
+{
+ struct MailStruct mail;
+ mail.itemId = gSpecialVar_ItemId;
+ ReadMail(&mail, bag_menu_mail_related, 0);
+}
+
+void ItemUseOutOfBattle_Mail(u8 taskId)
+{
+ *gUnknown_0203CE54 = sub_80FD254;
+ unknown_ItemMenu_Confirm(taskId);
+}
+
+void ItemUseOutOfBattle_Bike(u8 taskId)
+{
+ s16* data = gTasks[taskId].data;
+ s16 coordsY;
+ s16 coordsX;
+ u8 behavior;
+ PlayerGetDestCoords(&coordsX, &coordsY);
+ behavior = MapGridGetMetatileBehaviorAt(coordsX, coordsY);
+ if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE || MetatileBehavior_IsVerticalRail(behavior) == TRUE || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE)
+ DisplayCannotDismountBikeMessage(taskId, data[3]);
+ else
+ {
+ if (sav1_map_is_biking_allowed() == TRUE && IsBikingDisallowedByPlayer() == 0)
+ {
+ gUnknown_0203A0F4 = ItemUseOnFieldCB_Bike;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ DisplayDadsAdviceCannotUseItemMessage(taskId, data[3]);
+ }
+}
+
+void ItemUseOnFieldCB_Bike(u8 taskId)
+{
+ if (!ItemId_GetSecondaryId(gSpecialVar_ItemId))
+ GetOnOffBike(2);
+ else
+ GetOnOffBike(4);
+ sub_80984F4();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+bool32 CanFish()
+{
+ s16 x, y;
+ u16 tileBehavior;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+
+ if (MetatileBehavior_IsWaterfall(tileBehavior))
+ return FALSE;
+
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_4))
+ return FALSE;
+
+ if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
+ {
+ if (IsPlayerFacingSurfableFishableWater())
+ return TRUE;
+ }
+ else
+ {
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior) && !MapGridIsImpassableAt(x, y))
+ return TRUE;
+ if (MetatileBehavior_8089510(tileBehavior) == TRUE)
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void ItemUseOutOfBattle_Rod(u8 taskId)
+{
+ if (CanFish() == TRUE)
+ {
+ gUnknown_0203A0F4 = ItemUseOnFieldCB_Rod;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+}
+
+void ItemUseOnFieldCB_Rod(u8 taskId)
+{
+ StartFishing(ItemId_GetSecondaryId(gSpecialVar_ItemId));
+ DestroyTask(taskId);
+}
+
+void ItemUseOutOfBattle_Itemfinder(u8 var)
+{
+ IncrementGameStat(0x27);
+ gUnknown_0203A0F4 = ItemUseOnFieldCB_Itemfinder;
+ SetUpItemUseOnFieldCallback(var);
+}
+
+void ItemUseOnFieldCB_Itemfinder(u8 taskId)
+{
+ if (ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE)
+ gTasks[taskId].func = sub_80FD504;
+ else
+ DisplayItemMessageOnField(taskId, gText_ItemFinderNothing, sub_80FD5CC);
+}
+
+void sub_80FD504(u8 taskId)
+{
+ u8 playerDir;
+ u8 playerDirToItem;
+ u8 i;
+ s16* data = gTasks[taskId].data;
+ if (!data[3])
+ {
+ if (data[4] == 4)
+ {
+ playerDirToItem = sub_80FD9B0(data[0], data[1]);
+ if (playerDirToItem)
+ {
+ sub_80FDA24(gUnknown_085920E4[playerDirToItem - 1]);
+ gTasks[taskId].func = sub_80FDA94;
+ }
+ else
+ {
+ playerDir = player_get_direction_lower_nybble();
+ for (i = 0; i < 4; i++)
+ {
+ if (playerDir == gUnknown_085920E4[i])
+ data[5] = (i + 1) & 3;
+ }
+ gTasks[taskId].func = sub_80FDADC;
+ data[3] = 0;
+ data[2] = 0;
+ }
+ return;
+ }
+ PlaySE(SE_DAUGI);
+ data[4]++;
+ }
+ data[3] = (data[3] + 1) & 0x1F;
+}
+
+void sub_80FD5CC(u8 taskId)
+{
+ sub_8197434(0, 1);
+ sub_80984F4();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId)
+{
+ int distanceX, distanceY;
+ s16 x, y, i, newDistanceX, newDistanceY;
+ PlayerGetDestCoords(&x, &y);
+ gTasks[taskId].data[2] = FALSE;
+ for (i = 0; i < events->bgEventCount; i++)
+ {
+ if (events->bgEvents[i].kind == 7 && !FlagGet(events->bgEvents[i].bgUnion.hiddenItem.hiddenItemId + 0x1F4))
+ {
+ distanceX = (u16)events->bgEvents[i].x + 7;
+ newDistanceX = distanceX - x;
+ distanceY = (u16)events->bgEvents[i].y + 7;
+ newDistanceY = distanceY - y;
+
+ if ((u16)(newDistanceX + 7) < 15 && (newDistanceY >= -5) && (newDistanceY < 6))
+ sub_80FD8E0(taskId, newDistanceX, newDistanceY);
+ }
+ }
+
+ sub_80FD7C8(taskId);
+ if (gTasks[taskId].data[2] == TRUE)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_80FD6D4(struct MapEvents *events, s16 x, s16 y)
+{
+ u8 bgEventCount = events->bgEventCount;
+ struct BgEvent *bgEvent = events->bgEvents;
+ int i;
+
+ for (i = 0; i < bgEventCount; i++)
+ {
+ if (bgEvent[i].kind == 7 && x == (u16)bgEvent[i].x && y == (u16)bgEvent[i].y) // hidden item and coordinates matches x and y passed?
+ {
+ if (!FlagGet(bgEvent[i].bgUnion.hiddenItem.hiddenItemId + 0x1F4))
+ return TRUE;
+ else
+ return FALSE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_80FD730(struct MapConnection *connection, int x, int y)
+{
+ struct MapHeader *mapHeader;
+ u16 localX, localY;
+ u32 localOffset;
+ s32 localLength;
+
+ mapHeader = mapconnection_get_mapheader(connection);
+
+ switch (connection->direction)
+ {
+ // same weird temp variable behavior seen in sub_80FD6D4
+ case 2:
+ localOffset = connection->offset + 7;
+ localX = x - localOffset;
+ localLength = mapHeader->mapData->height - 7;
+ localY = localLength + y; // additions are reversed for some reason
+ break;
+ case 1:
+ localOffset = connection->offset + 7;
+ localX = x - localOffset;
+ localLength = gMapHeader.mapData->height + 7;
+ localY = y - localLength;
+ break;
+ case 3:
+ localLength = mapHeader->mapData->width - 7;
+ localX = localLength + x; // additions are reversed for some reason
+ localOffset = connection->offset + 7;
+ localY = y - localOffset;
+ break;
+ case 4:
+ localLength = gMapHeader.mapData->width + 7;
+ localX = x - localLength;
+ localOffset = connection->offset + 7;
+ localY = y - localOffset;
+ break;
+ default:
+ return FALSE;
+ }
+ return sub_80FD6D4(mapHeader->events, localX, localY);
+}
+
+void sub_80FD7C8(u8 taskId)
+{
+ s16 x, y;
+ s16 curX, curY;
+ s16 width = gMapHeader.mapData->width + 7;
+ s16 height = gMapHeader.mapData->height + 7;
+
+ s16 var1 = 7;
+ s16 var2 = 7;
+
+ PlayerGetDestCoords(&x, &y);
+
+ for (curX = x - 7; curX <= x + 7; curX++)
+ {
+ for (curY = y - 5; curY <= y + 5; curY++)
+ {
+ if (var1 > curX
+ || curX >= width
+ || var2 > curY
+ || curY >= height)
+ {
+ struct MapConnection *conn = sub_8088A8C(curX, curY);
+ if (conn && sub_80FD730(conn, curX, curY) == TRUE)
+ sub_80FD8E0(taskId, curX - x, curY - y);
+ }
+ }
+ }
+}
+
+void sub_80FD8E0(u8 taskId, s16 x, s16 y)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 var1, var2, var3, var4;
+
+ if (data[2] == FALSE)
+ {
+ data[0] = x;
+ data[1] = y;
+ data[2] = TRUE;
+ }
+ else
+ {
+ // data[0] and data[1] contain the player's coordinates.
+ // x and y contain the item's coordinates.
+ if (data[0] < 0)
+ var1 = data[0] * -1; // item is to the left
+ else
+ var1 = data[0]; // item is to the right
+
+ if (data[1] < 0)
+ var2 = data[1] * -1; // item is to the north
+ else
+ var2 = data[1]; // item is to the south
+
+ if (x < 0)
+ var3 = x * -1;
+ else
+ var3 = x;
+
+ if (y < 0)
+ var4 = y * -1;
+ else
+ var4 = y;
+
+ if (var1 + var2 > var3 + var4)
+ {
+ data[0] = x;
+ data[1] = y;
+ }
+ else
+ {
+ if (var1 + var2 == var3 + var4 && (var2 > var4 || (var2 == var4 && data[1] < y)))
+ {
+ data[0] = x;
+ data[1] = y;
+ }
+ }
+ }
+}
+
+u8 sub_80FD9B0(s16 itemX, s16 itemY)
+{
+ s16 abX, abY;
+
+ if (itemX == 0 && itemY == 0)
+ return DIR_NONE; // player is standing on the item.
+
+ // get absolute X distance.
+ if (itemX < 0)
+ abX = itemX * -1;
+ else
+ abX = itemX;
+
+ // get absolute Y distance.
+ if (itemY < 0)
+ abY = itemY * -1;
+ else
+ abY = itemY;
+
+ if (abX > abY)
+ {
+ if (itemX < 0)
+ return DIR_EAST;
+ else
+ return DIR_NORTH;
+ }
+ else
+ {
+ if (abX < abY)
+ {
+ if (itemY < 0)
+ return DIR_SOUTH;
+ else
+ return DIR_WEST;
+ }
+ if (abX == abY)
+ {
+ if (itemY < 0)
+ return DIR_SOUTH;
+ else
+ return DIR_WEST;
+ }
+ return DIR_NONE; // should never get here. return something so it doesnt crash.
+ }
+}
+
+void sub_80FDA24(u8 direction)
+{
+ FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
+ FieldObjectClearAnim(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
+ npc_sync_anim_pause_bits(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
+ PlayerTurnInPlace(direction);
+}
+
+void sub_80FDA94(u8 taskId)
+{
+ if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]) == TRUE)
+ DisplayItemMessageOnField(taskId, gText_ItemFinderNearby, sub_80FD5CC);
+}
+
+void sub_80FDADC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]) == TRUE
+ || data[2] == FALSE)
+ {
+ sub_80FDA24(gUnknown_085920E4[data[5]]);
+ data[2] = 1;
+ data[5] = (data[5] + 1) & 3;
+ data[3]++;
+
+ if (data[3] == 4)
+ DisplayItemMessageOnField(taskId, gText_ItemFinderOnTop, sub_80FD5CC);
+ }
+}
+
+void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
+{
+ if (sub_81221AC() == TRUE)
+ {
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ }
+ else if (gTasks[taskId].data[3] != TRUE)
+ {
+ *gUnknown_0203CE54 = sub_80FDBEC;
+ unknown_ItemMenu_Confirm(taskId);
+ }
+ else
+ {
+ gFieldCallback = sub_80AF6D4;
+ FadeScreen(1, 0);
+ gTasks[taskId].func = sub_80FDC00;
+ }
+}
+
+void sub_80FDBEC(void)
+{
+ OpenPokeblockCase(0, bag_menu_mail_related);
+}
+
+void sub_80FDC00(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ overworld_free_bg_tilemaps();
+ OpenPokeblockCase(0, c2_exit_to_overworld_2_switch);
+ DestroyTask(taskId);
+ }
+}
+
+void ItemUseOutOfBattle_CoinCase(u8 taskId)
+{
+ ConvertIntToDecimalStringN(gStringVar1, GetCoins(), 0, 4);
+ StringExpandPlaceholders(gStringVar4, gText_CoinCase);
+
+ if (!gTasks[taskId].data[3])
+ {
+ DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu);
+ }
+ else
+ {
+ DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+ }
+}
+
+void ItemUseOutOfBattle_PowderJar(u8 taskId)
+{
+ ConvertIntToDecimalStringN(gStringVar1, sub_80247BC(), 0, 5);
+ StringExpandPlaceholders(gStringVar4, gText_PowderQty);
+
+ if (!gTasks[taskId].data[3])
+ {
+ DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu);
+ }
+ else
+ {
+ DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+ }
+}
+
+void sub_80FDD10(u8 taskId)
+{
+ if (IsPlayerFacingPlantedBerryTree() == TRUE)
+ {
+ gUnknown_0203A0F4 = sub_80FDD74;
+ gFieldCallback = MapPostLoadHook_UseItem;
+ *gUnknown_0203CE54 = c2_exit_to_overworld_2_switch;
+ unknown_ItemMenu_Confirm(taskId);
+ }
+ else
+ {
+ ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId);
+ }
+}
+
+void sub_80FDD74(u8 taskId)
+{
+ RemoveBagItem(gSpecialVar_ItemId, 1);
+ ScriptContext2_Enable();
+ ScriptContext1_SetupScript(Route102_EventScript_274482);
+ DestroyTask(taskId);
+}
+
+void ItemUseOutOfBattle_WailmerPail(u8 taskId)
+{
+ if (sub_80FDE2C() == TRUE)
+ {
+ gUnknown_0203A0F4 = sub_80FDE7C;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else if (TryToWaterBerryTree() == TRUE)
+ {
+ gUnknown_0203A0F4 = sub_80FDE08;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ {
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ }
+}
+
+void sub_80FDE08(u8 taskId)
+{
+ ScriptContext2_Enable();
+ ScriptContext1_SetupScript(Route102_EventScript_2744C0);
+ DestroyTask(taskId);
+}
+
+bool8 sub_80FDE2C(void)
+{
+ u16 x, y;
+ u8 z;
+ u8 objId;
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ z = PlayerGetZCoord();
+ objId = GetFieldObjectIdByXYZ(x, y, z);
+ if (objId == 16 || gMapObjects[objId].graphicsId != 0xE4)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+void sub_80FDE7C(u8 taskId)
+{
+ ScriptContext2_Enable();
+ ScriptContext1_SetupScript(BattleFrontier_OutsideEast_EventScript_242CFC);
+ DestroyTask(taskId);
+}
+
+void ItemUseOutOfBattle_Medicine(u8 taskId)
+{
+ gUnknown_03006328 = ItemUseCB_Medicine;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_ReduceEV(u8 taskId)
+{
+ gUnknown_03006328 = sub_81B67C8;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_SacredAsh(u8 taskId)
+{
+ gUnknown_03006328 = sub_81B79E8;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_PPRecovery(u8 taskId)
+{
+ gUnknown_03006328 = dp05_ether;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_PPUp(u8 taskId)
+{
+ gUnknown_03006328 = dp05_pp_up;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_RareCandy(u8 taskId)
+{
+ gUnknown_03006328 = dp05_rare_candy;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseOutOfBattle_TMHM(u8 taskId)
+{
+ if (gSpecialVar_ItemId >= ITEM_HM01)
+ DisplayItemMessage(taskId, 1, gText_BootedUpHM, sub_80FDF90); // HM
+ else
+ DisplayItemMessage(taskId, 1, gText_BootedUpTM, sub_80FDF90); // TM
+}
+
+void sub_80FDF90(u8 taskId)
+{
+ PlaySE(SE_PC_LOGIN);
+ gTasks[taskId].func = task08_0809AD8C;
+}
+
+void task08_0809AD8C(u8 taskId)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]);
+ StringExpandPlaceholders(gStringVar4, gText_TMHMContainedVar1);
+ DisplayItemMessage(taskId, 1, gStringVar4, sub_80FE024);
+ }
+}
+
+void sub_80FE024(u8 taskId)
+{
+ bag_menu_yes_no(taskId, 6, gUnknown_085920E8);
+}
+
+void sub_80FE03C(u8 taskId)
+{
+ gUnknown_03006328 = sub_81B6DC4;
+ SetUpItemUseCallback(taskId);
+}
+
+void sub_80FE058(void)
+{
+ RemoveBagItem(gSpecialVar_ItemId, 1);
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
+ StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2);
+ if (!InBattlePyramid())
+ {
+ sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId));
+ sub_81ABA88(ItemId_GetPocket(gSpecialVar_ItemId));
+ }
+ else
+ {
+ sub_81C5924();
+ sub_81C59BC();
+ }
+}
+
+void ItemUseOutOfBattle_Repel(u8 taskId)
+{
+ if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
+ gTasks[taskId].func = sub_80FE124;
+ else if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gText_RepelEffectsLingered, bag_menu_inits_lists_menu);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, sub_81C6714);
+}
+
+void sub_80FE124(u8 taskId)
+{
+ s16* data = gTasks[taskId].data;
+
+ if (++data[8] > 7)
+ {
+ data[8] = 0;
+ PlaySE(SE_TU_SAA);
+ gTasks[taskId].func = sub_80FE164;
+ }
+}
+
+void sub_80FE164(u8 taskId)
+{
+ if (!IsSEPlaying())
+ {
+ VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
+ sub_80FE058();
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714);
+ }
+}
+
+void sub_80FE1D0(u8 taskId)
+{
+ if(++gTasks[taskId].data[8] > 7)
+ {
+ PlaySE(SE_BIDORO);
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gStringVar4, bag_menu_inits_lists_menu);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714);
+ }
+}
+
+void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId)
+{
+ CopyItemName(gSpecialVar_ItemId, gStringVar2);
+ if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE)
+ {
+ FlagSet(FLAG_SYS_ENC_UP_ITEM);
+ FlagClear(FLAG_SYS_ENC_DOWN_ITEM);
+ StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured);
+ }
+ else
+ {
+ FlagSet(FLAG_SYS_ENC_DOWN_ITEM);
+ FlagClear(FLAG_SYS_ENC_UP_ITEM);
+ StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled);
+ }
+ gTasks[taskId].data[8] = 0;
+ gTasks[taskId].func = sub_80FE1D0;
+}
+
+void task08_080A1C44(u8 taskId)
+{
+ player_avatar_init_params_reset();
+ sub_80B7CC8();
+ DestroyTask(taskId);
+}
+
+void re_escape_rope(u8 taskId)
+{
+ flagmods_08054D70();
+ sub_80FE058();
+ gTasks[taskId].data[0] = 0;
+ DisplayItemMessageOnField(taskId, gStringVar4, task08_080A1C44);
+}
+
+bool8 sub_80FE314(void)
+{
+ if (gMapHeader.flags & 2)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void ItemUseOutOfBattle_EscapeRope(u8 taskId)
+{
+ if (sub_80FE314() == TRUE)
+ {
+ gUnknown_0203A0F4 = re_escape_rope;
+ SetUpItemUseOnFieldCallback(taskId);
+ }
+ else
+ {
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ }
+}
+
+void ItemUseOutOfBattle_EvolutionStone(u8 taskId)
+{
+ gUnknown_03006328 = sub_81B7C74;
+ SetUpItemUseCallback(taskId);
+}
+
+void ItemUseInBattle_PokeBall(u8 taskId)
+{
+ if (IsPlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon?
+ {
+ RemoveBagItem(gSpecialVar_ItemId, 1);
+ if (!InBattlePyramid())
+ unknown_ItemMenu_Confirm(taskId);
+ else
+ sub_81C5B14(taskId);
+ }
+ else if (!InBattlePyramid())
+ {
+ DisplayItemMessage(taskId, 1, gText_BoxFull, bag_menu_inits_lists_menu);
+ }
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, sub_81C6714);
+}
+
+void sub_80FE408(u8 taskId)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ if (!InBattlePyramid())
+ unknown_ItemMenu_Confirm(taskId);
+ else
+ sub_81C5B14(taskId);
+ }
+}
+
+void sub_80FE440(u8 taskId)
+{
+ if(++gTasks[taskId].data[8] > 7)
+ {
+ PlaySE(SE_KAIFUKU);
+ RemoveBagItem(gSpecialVar_ItemId, 1);
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, sub_806CF78(gSpecialVar_ItemId), sub_80FE408);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, sub_806CF78(gSpecialVar_ItemId), sub_80FE408);
+ }
+}
+
+void ItemUseInBattle_StatIncrease(u8 taskId)
+{
+ u16 partyId = gBattlerPartyIndexes[gBankInMenu];
+
+ if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
+ {
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gText_WontHaveEffect, bag_menu_inits_lists_menu);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, sub_81C6714);
+ }
+ else
+ {
+ gTasks[taskId].func = sub_80FE440;
+ gTasks[taskId].data[8] = 0;
+ }
+}
+
+void sub_80FE54C(u8 taskId)
+{
+ if (!InBattlePyramid())
+ {
+ *gUnknown_0203CE54 = sub_81B89F0;
+ unknown_ItemMenu_Confirm(taskId);
+ }
+ else
+ {
+ *gUnknown_0203CF2C = sub_81B89F0;
+ sub_81C5B14(taskId);
+ }
+}
+
+void ItemUseInBattle_Medicine(u8 taskId)
+{
+ gUnknown_03006328 = ItemUseCB_Medicine;
+ sub_80FE54C(taskId);
+}
+
+void sub_80FE5AC(u8 taskId)
+{
+ gUnknown_03006328 = sub_81B79E8;
+ sub_80FE54C(taskId);
+}
+
+void ItemUseInBattle_PPRecovery(u8 taskId)
+{
+ gUnknown_03006328 = dp05_ether;
+ sub_80FE54C(taskId);
+}
+
+void ItemUseInBattle_Escape(u8 taskId)
+{
+
+ if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE)
+ {
+ sub_80FE058();
+ if (!InBattlePyramid())
+ DisplayItemMessage(taskId, 1, gStringVar4, unknown_ItemMenu_Confirm);
+ else
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C5B14);
+ }
+ else
+ {
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ }
+}
+
+void ItemUseOutOfBattle_EnigmaBerry(u8 taskId)
+{
+ switch (GetItemEffectType(gSpecialVar_ItemId) - 1)
+ {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ gTasks[taskId].data[4] = 1;
+ ItemUseOutOfBattle_Medicine(taskId);
+ break;
+ case 9:
+ gTasks[taskId].data[4] = 1;
+ ItemUseOutOfBattle_SacredAsh(taskId);
+ break;
+ case 0:
+ gTasks[taskId].data[4] = 1;
+ ItemUseOutOfBattle_RareCandy(taskId);
+ break;
+ case 18:
+ case 19:
+ gTasks[taskId].data[4] = 1;
+ ItemUseOutOfBattle_PPUp(taskId);
+ break;
+ case 20:
+ gTasks[taskId].data[4] = 1;
+ ItemUseOutOfBattle_PPRecovery(taskId);
+ break;
+ default:
+ gTasks[taskId].data[4] = 4;
+ ItemUseOutOfBattle_CannotUse(taskId);
+ }
+}
+
+void ItemUseInBattle_EnigmaBerry(u8 taskId)
+{
+ switch (GetItemEffectType(gSpecialVar_ItemId))
+ {
+ case 0:
+ ItemUseInBattle_StatIncrease(taskId);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 11:
+ ItemUseInBattle_Medicine(taskId);
+ break;
+ case 21:
+ ItemUseInBattle_PPRecovery(taskId);
+ break;
+ default:
+ ItemUseOutOfBattle_CannotUse(taskId);
+ }
+}
+
+void ItemUseOutOfBattle_CannotUse(u8 taskId)
+{
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+}
diff --git a/src/mail.c b/src/mail.c
index c3cbe4a3c..ac263ac67 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -4,7 +4,7 @@
#include "main.h"
#include "overworld.h"
#include "task.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "palette.h"
#include "text.h"
#include "menu.h"
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
new file mode 100644
index 000000000..31b366ae9
--- /dev/null
+++ b/src/mystery_event_menu.c
@@ -0,0 +1,302 @@
+#include "global.h"
+#include "mystery_event_menu.h"
+#include "link.h"
+#include "main.h"
+#include "menu.h"
+#include "mystery_event_script.h"
+#include "palette.h"
+#include "save.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "bg.h"
+#include "window.h"
+#include "gpu_regs.h"
+#include "text_window.h"
+#include "decompress.h"
+
+// this file's functions
+static void CB2_MysteryEventMenu(void);
+static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed);
+
+// EWRAM vars
+static EWRAM_DATA u8 sUnknown_0203BCF8 = 0; // set but unused
+
+// const rom data
+static const struct BgTemplate sBgTemplates[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ }
+};
+
+static const struct WindowTemplate sWindowTemplates[] =
+{
+ {0, 4, 15, 22, 4, 14, 20},
+ {0, 7, 6, 16, 4, 14, 0x6C},
+ DUMMY_WIN_TEMPLATE
+};
+
+// code
+static void VBlankCB(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static bool8 CheckLanguageMatch(void)
+{
+ return (gLinkPlayers[0].language == gLinkPlayers[1].language);
+}
+
+void CB2_InitMysteryEventMenu(void)
+{
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ SetVBlankCallback(VBlankCB);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates));
+ if (InitWindows(sWindowTemplates))
+ {
+ s32 i;
+
+ DeactivateAllTextPrinters();
+ for (i = 0; i < 2; i++)
+ FillWindowPixelBuffer(i, 0);
+
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14);
+ sub_809882C(0, 1u, 0xD0u);
+ sub_81978B0(0xE0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ CreateTask(Task_DestroySelf, 0);
+ StopMapMusic();
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ FillPalette(0, 0, 2);
+ SetMainCallback2(CB2_MysteryEventMenu);
+ }
+}
+
+static bool8 GetEventLoadMessage(u8 *dest, u32 status)
+{
+ bool8 retVal = TRUE;
+
+ if (status == 0)
+ {
+ StringCopy(dest, gText_EventSafelyLoaded);
+ retVal = FALSE;
+ }
+
+ if (status == 2)
+ retVal = FALSE;
+
+ if (status == 1)
+ StringCopy(dest, gText_LoadErrorEndingSession);
+
+ return retVal;
+}
+
+static void CB2_MysteryEventMenu(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetWindowBorderStyle(0, 1, 1, 0xD);
+ PutWindowTilemap(0);
+ CopyWindowToVram(0, 3);
+ ShowBg(0);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ gMain.state++;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ PrintMysteryMenuText(0, gText_LinkStandby2, 1, 2, 1);
+ gMain.state++;
+ }
+ break;
+ case 2:
+ if (!IsTextPrinterActive(0))
+ {
+ gMain.state++;
+ gLinkType = 21761;
+ OpenLink();
+ }
+ break;
+ case 3:
+ if ((gLinkStatus & 0x20) && (gLinkStatus & 0x1C) > 4)
+ {
+ PlaySE(SE_PIN);
+ PrintMysteryMenuText(0, gText_PressAToLoadEvent, 1, 2, 1);
+ gMain.state++;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 4:
+ if (!IsTextPrinterActive(0))
+ gMain.state++;
+ break;
+ case 5:
+ if (GetLinkPlayerCount_2() == 2)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_800A620();
+ SetWindowBorderStyle(1, 1, 1, 0xD);
+ PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0);
+ PutWindowTilemap(1);
+ CopyWindowToVram(1, 3);
+ gMain.state++;
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ }
+ else
+ {
+ GetEventLoadMessage(gStringVar4, 1);
+ PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
+ gMain.state = 13;
+ }
+ break;
+ case 6:
+ if (IsLinkConnectionEstablished())
+ {
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ if (sub_800A0C8(2, 2) == 3)
+ {
+ sub_800AC34();
+ GetEventLoadMessage(gStringVar4, 1);
+ PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
+ gMain.state = 13;
+ }
+ else if (CheckLanguageMatch())
+ {
+ PrintMysteryMenuText(0, gText_DontRemoveCableTurnOff, 1, 2, 1);
+ gMain.state++;
+ }
+ else
+ {
+ CloseLink();
+ GetEventLoadMessage(gStringVar4, 1);
+ PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
+ gMain.state = 13;
+ }
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ CloseLink();
+ gMain.state = 15;
+ }
+ break;
+ case 7:
+ if (!IsTextPrinterActive(0))
+ gMain.state++;
+ break;
+ case 8:
+ if (GetBlockReceivedStatus())
+ {
+ ResetBlockReceivedFlags();
+ gMain.state++;
+ }
+ break;
+ case 9:
+ gMain.state++;
+ break;
+ case 10:
+ sub_800AC34();
+ gMain.state++;
+ break;
+ case 11:
+ if (gReceivedRemoteLinkPlayers == 0)
+ {
+ u16 unkVal = RunMysteryEventScript(gDecompressionBuffer);
+ CpuFill32(0, gDecompressionBuffer, 0x7D4);
+ if (!GetEventLoadMessage(gStringVar4, unkVal))
+ TrySavingData(NORMAL_SAVE);
+ gMain.state++;
+ }
+ break;
+ case 12:
+ PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
+ gMain.state++;
+ break;
+ case 13:
+ if (!IsTextPrinterActive(0))
+ {
+ gMain.state++;
+ sUnknown_0203BCF8 = 0;
+ }
+ break;
+ case 14:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gMain.state++;
+ }
+ break;
+ case 15:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gMain.state++;
+ break;
+ case 16:
+ if (!gPaletteFade.active)
+ DoSoftReset();
+ break;
+ }
+
+ if (gLinkStatus & 0x40 && !IsLinkMaster())
+ {
+ CloseLink();
+ GetEventLoadMessage(gStringVar4, 1);
+ PrintMysteryMenuText(0, gStringVar4, 1, 2, 1);
+ gMain.state = 13;
+ }
+
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+}
+
+static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed)
+{
+ u8 textColor[3];
+ u8 letterSpacing = 0;
+ u8 lineSpacing = 1;
+ textColor[0] = 1;
+ textColor[1] = 2;
+ textColor[2] = 3;
+
+ FillWindowPixelBuffer(windowId, (textColor[0]) | (textColor[0] << 4));
+ AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text);
+}
diff --git a/src/option_menu.c b/src/option_menu.c
index 7f92756ab..cbbe14b77 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -2,7 +2,7 @@
#include "option_menu.h"
#include "main.h"
#include "menu.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "palette.h"
#include "sprite.h"
#include "task.h"
diff --git a/src/palette.c b/src/palette.c
index d7b6ad479..fd4ad32ad 100644
--- a/src/palette.c
+++ b/src/palette.c
@@ -4,6 +4,7 @@
#include "decompress.h"
#include "gpu_regs.h"
#include "task.h"
+#include "constants/rgb.h"
enum
{
@@ -839,289 +840,94 @@ void BlendPalettesUnfaded(u32 selectedPalettes, u8 coeff, u16 color)
void TintPalette_GrayScale(u16 *palette, u16 count)
{
- int r;
- int g;
- int b;
+ s32 r, g, b, i;
u32 gray;
- int i;
for (i = 0; i < count; i++)
{
- r = *palette & 0x1F;
- g = (*palette >> 5) & 0x1F;
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
b = (*palette >> 10) & 0x1F;
- r = r * Q_8_8(0.2969);
- r += g * Q_8_8(0.5899);
- r += b * Q_8_8(0.1133);
-
- gray = r >> 8;
+ gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8;
- *palette++ = gray << 10 | gray << 5 | gray;
+ *palette++ = (gray << 10) | (gray << 5) | (gray << 0);
}
}
void TintPalette_GrayScale2(u16 *palette, u16 count)
{
- int r;
- int g;
- int b;
+ s32 r, g, b, i;
u32 gray;
- int i;
for (i = 0; i < count; i++)
{
- r = *palette & 0x1F;
- g = (*palette >> 5) & 0x1F;
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
b = (*palette >> 10) & 0x1F;
- r = r * Q_8_8(0.2969);
- r += g * Q_8_8(0.5899);
- r += b * Q_8_8(0.1133);
-
- gray = r >> 8;
+ gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8;
if (gray > 0x1F)
gray = 0x1F;
gray = sRoundedDownGrayscaleMap[gray];
- *palette++ = gray << 10 | gray << 5 | gray;
+ *palette++ = (gray << 10) | (gray << 5) | (gray << 0);
}
}
-#ifdef NONMATCHING
void TintPalette_SepiaTone(u16 *palette, u16 count)
{
- int red;
- int green;
- int blue;
+ s32 r, g, b, i;
u32 gray;
- u32 sepia;
- s8 r2;
- s8 g2;
- s8 b2;
-
- int i;
+
for (i = 0; i < count; i++)
{
- r = *palette & 0x1F;
- g = (*palette >> 5) & 0x1F;
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
b = (*palette >> 10) & 0x1F;
- r *= 0x4C;
- r += g * 0x97;
- r += b * 0x1D;
+ gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8;
- gray = (s32)(r >> 8);
+ r = (u16)((Q_8_8(1.2) * gray)) >> 8;
+ g = (u16)((Q_8_8(1.0) * gray)) >> 8;
+ b = (u16)((Q_8_8(0.94) * gray)) >> 8;
- sepia = (gray * 0x133);
+ if (r > 31)
+ r = 31;
- r2 = (u16)sepia >> 8;
-
- g2 = gray;
-
- b2 = (gray * 15);
-
- if (r2 > 0x1F)
- r2 = 0x1F;
-
- *palette++ = b2 << 10 | g2 << 5 | r2;
+ *palette++ = (b << 10) | (g << 5) | (r << 0);
}
}
-#else
-__attribute__((naked))
-void TintPalette_SepiaTone(u16 *palette, u16 count)
-{
- asm("push {r4-r7,lr}\n\
- add r5, r0, #0\n\
- lsl r1, #16\n\
- lsr r1, #16\n\
- cmp r1, #0\n\
- beq _080A2BA2\n\
- mov r7, #0x1F\n\
- add r6, r1, #0\n\
-_080A2B50:\n\
- ldrh r0, [r5]\n\
- mov r1, #0x1F\n\
- and r1, r0\n\
- lsl r0, #16\n\
- lsr r2, r0, #21\n\
- and r2, r7\n\
- lsr r3, r0, #26\n\
- and r3, r7\n\
- mov r0, #0x4C\n\
- mul r1, r0\n\
- mov r0, #0x97\n\
- mul r0, r2\n\
- add r1, r0\n\
- lsl r0, r3, #3\n\
- sub r0, r3\n\
- lsl r0, #2\n\
- add r0, r3\n\
- add r1, r0\n\
- asr r1, #8\n\
- ldr r0, =0x00000133\n\
- mul r0, r1\n\
- lsl r0, #16\n\
- lsr r2, r0, #24\n\
- lsl r0, r1, #24\n\
- lsr r4, r0, #24\n\
- lsl r0, r1, #4\n\
- sub r0, r1\n\
- lsl r0, #20\n\
- lsr r3, r0, #24\n\
- cmp r2, #0x1F\n\
- ble _080A2B90\n\
- mov r2, #0x1F\n\
-_080A2B90:\n\
- lsl r0, r3, #10\n\
- lsl r1, r4, #5\n\
- orr r0, r1\n\
- orr r0, r2\n\
- strh r0, [r5]\n\
- add r5, #0x2\n\
- sub r6, #0x1\n\
- cmp r6, #0\n\
- bne _080A2B50\n\
-_080A2BA2:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
-}
-#endif // NONMATCHING
-#ifdef NONMATCHING
-void TintPalette_CustomTone(u16 *palette, u16 count, u16 a3, u16 a4, u16 a5)
+void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone)
{
- s32 r;
- s32 g;
- s32 b;
- s32 gray;
- u8 r2;
- u8 g2;
- u8 b2;
+ s32 r, g, b, i;
+ u32 gray;
- int i;
for (i = 0; i < count; i++)
{
- r = *palette & 0x1F;
- g = (*palette >> 5) & 0x1F;
+ r = (*palette >> 0) & 0x1F;
+ g = (*palette >> 5) & 0x1F;
b = (*palette >> 10) & 0x1F;
- r *= 0x4C;
- r += g * 0x97;
- r += b * 0x1D;
-
- gray = r >> 8;
-
- r2 = (u16)(gray * a3) >> 8;
+ gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8;
- g2 = (u16)(gray * a4) >> 8;
+ r = (u16)((rTone * gray)) >> 8;
+ g = (u16)((gTone * gray)) >> 8;
+ b = (u16)((bTone * gray)) >> 8;
- b2 = (u16)(gray * a5) >> 8;
+ if (r > 31)
+ r = 31;
+ if (g > 31)
+ g = 31;
+ if (b > 31)
+ b = 31;
- if (r2 > 0x1F)
- r2 = 0x1F;
-
- if (g2 > 0x1F)
- g2 = 0x1F;
-
- if (b2 > 0x1F)
- b2 = 0x1F;
-
- *palette++ = b2 << 10 | g2 << 5 | r2;
+ *palette++ = (b << 10) | (g << 5) | (r << 0);
}
- return;
-}
-#else
-__attribute__((naked))
-void TintPalette_CustomTone(u16 *palette, u16 count, u16 a3, u16 a4, u16 a5)
-{
- asm("push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- add r5, r0, #0\n\
- ldr r0, [sp, #0x1C]\n\
- lsl r1, #16\n\
- lsr r1, #16\n\
- lsl r2, #16\n\
- lsr r2, #16\n\
- mov r9, r2\n\
- lsl r3, #16\n\
- lsr r3, #16\n\
- mov r8, r3\n\
- lsl r0, #16\n\
- lsr r0, #16\n\
- mov r12, r0\n\
- cmp r1, #0\n\
- beq _080A2C38\n\
- mov r7, #0x1F\n\
- add r6, r1, #0\n\
-_080A2BD6:\n\
- ldrh r0, [r5]\n\
- mov r1, #0x1F\n\
- and r1, r0\n\
- lsl r0, #16\n\
- lsr r2, r0, #21\n\
- and r2, r7\n\
- lsr r3, r0, #26\n\
- and r3, r7\n\
- mov r0, #0x4C\n\
- mul r1, r0\n\
- mov r0, #0x97\n\
- mul r0, r2\n\
- add r1, r0\n\
- lsl r0, r3, #3\n\
- sub r0, r3\n\
- lsl r0, #2\n\
- add r0, r3\n\
- add r1, r0\n\
- asr r1, #8\n\
- mov r0, r9\n\
- mul r0, r1\n\
- lsl r0, #16\n\
- lsr r4, r0, #24\n\
- mov r0, r8\n\
- mul r0, r1\n\
- lsl r0, #16\n\
- lsr r2, r0, #24\n\
- mov r0, r12\n\
- mul r0, r1\n\
- lsl r0, #16\n\
- lsr r3, r0, #24\n\
- cmp r4, #0x1F\n\
- ble _080A2C1A\n\
- mov r4, #0x1F\n\
-_080A2C1A:\n\
- cmp r2, #0x1F\n\
- ble _080A2C20\n\
- mov r2, #0x1F\n\
-_080A2C20:\n\
- cmp r3, #0x1F\n\
- ble _080A2C26\n\
- mov r3, #0x1F\n\
-_080A2C26:\n\
- lsl r0, r3, #10\n\
- lsl r1, r2, #5\n\
- orr r0, r1\n\
- orr r0, r4\n\
- strh r0, [r5]\n\
- add r5, #0x2\n\
- sub r6, #0x1\n\
- cmp r6, #0\n\
- bne _080A2BD6\n\
-_080A2C38:\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0");
}
-#endif
void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7)
{
diff --git a/src/pokeball.c b/src/pokeball.c
index b48e55135..ada0258db 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -16,11 +16,11 @@
#include "graphics.h"
extern bool8 gDoingBattleAnim;
-extern u8 gActiveBank;
-extern u8 gBankTarget;
-extern u16 gBattlePartyID[];
-extern u8 gBankSpriteIds[];
-extern u8 gHealthBoxesIds[];
+extern u8 gActiveBattler;
+extern u8 gBattlerTarget;
+extern u16 gBattlerPartyIndexes[];
+extern u8 gBattlerSpriteIds[];
+extern u8 gHealthboxSpriteIds[];
extern struct MusicPlayerInfo gMPlayInfo_BGM;
// this file's functions
@@ -334,12 +334,12 @@ u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
u8 taskId;
gDoingBattleAnim = TRUE;
- gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive = 1;
+ gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive = 1;
taskId = CreateTask(Task_DoPokeballSendOutAnim, 5);
gTasks[taskId].tPan = pan;
gTasks[taskId].tThrowId = kindOfThrow;
- gTasks[taskId].tBank = gActiveBank;
+ gTasks[taskId].tBank = gActiveBattler;
return 0;
}
@@ -363,10 +363,10 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
throwCaseId = gTasks[taskId].tThrowId;
bank = gTasks[taskId].tBank;
- if (GetBankSide(bank) != SIDE_PLAYER)
- itemId = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL);
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
+ itemId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL);
else
- itemId = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL);
+ itemId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL);
ballId = ItemIdToBallId(itemId);
LoadBallGfx(ballId);
@@ -378,25 +378,25 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
switch (throwCaseId)
{
case POKEBALL_PLAYER_SENDOUT:
- gBankTarget = bank;
+ gBattlerTarget = bank;
gSprites[ballSpriteId].pos1.x = 24;
gSprites[ballSpriteId].pos1.y = 68;
gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1;
break;
case POKEBALL_OPPONENT_SENDOUT:
- gSprites[ballSpriteId].pos1.x = GetBankPosition(bank, BANK_X_POS);
- gSprites[ballSpriteId].pos1.y = GetBankPosition(bank, BANK_Y_POS) + 24;
- gBankTarget = bank;
+ gSprites[ballSpriteId].pos1.x = GetBattlerSpriteCoord(bank, BANK_X_POS);
+ gSprites[ballSpriteId].pos1.y = GetBattlerSpriteCoord(bank, BANK_Y_POS) + 24;
+ gBattlerTarget = bank;
gSprites[ballSpriteId].data[0] = 0;
gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut;
break;
default:
- gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
+ gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
notSendOut = TRUE;
break;
}
- gSprites[ballSpriteId].sBank = gBankTarget;
+ gSprites[ballSpriteId].sBank = gBattlerTarget;
if (!notSendOut)
{
DestroyTask(taskId);
@@ -405,12 +405,12 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
// this will perform an unused ball throw animation
gSprites[ballSpriteId].data[0] = 0x22;
- gSprites[ballSpriteId].data[2] = GetBankPosition(gBankTarget, BANK_X_POS);
- gSprites[ballSpriteId].data[4] = GetBankPosition(gBankTarget, BANK_Y_POS) - 16;
+ gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BANK_X_POS);
+ gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BANK_Y_POS) - 16;
gSprites[ballSpriteId].data[5] = -40;
sub_80A68D4(&gSprites[ballSpriteId]);
gSprites[ballSpriteId].oam.affineParam = taskId;
- gTasks[taskId].tOpponentBank = gBankTarget;
+ gTasks[taskId].tOpponentBank = gBattlerTarget;
gTasks[taskId].func = TaskDummy;
PlaySE(SE_NAGERU);
}
@@ -458,9 +458,9 @@ static void sub_80756E0(struct Sprite *sprite)
{
sprite->data[5] = 0;
sprite->callback = sub_807574C;
- StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 2);
- AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]);
- gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0;
+ StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBank]], 2);
+ AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]);
+ gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] = 0;
}
}
@@ -469,17 +469,17 @@ static void sub_807574C(struct Sprite *sprite)
sprite->data[5]++;
if (sprite->data[5] == 11)
PlaySE(SE_SUIKOMU);
- if (gSprites[gBankSpriteIds[sprite->sBank]].affineAnimEnded)
+ if (gSprites[gBattlerSpriteIds[sprite->sBank]].affineAnimEnded)
{
StartSpriteAnim(sprite, 2);
- gSprites[gBankSpriteIds[sprite->sBank]].invisible = TRUE;
+ gSprites[gBattlerSpriteIds[sprite->sBank]].invisible = TRUE;
sprite->data[5] = 0;
sprite->callback = sub_80757E4;
}
else
{
- gSprites[gBankSpriteIds[sprite->sBank]].data[1] += 0x60;
- gSprites[gBankSpriteIds[sprite->sBank]].pos2.y = -gSprites[gBankSpriteIds[sprite->sBank]].data[1] >> 8;
+ gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] += 0x60;
+ gSprites[gBattlerSpriteIds[sprite->sBank]].pos2.y = -gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] >> 8;
}
}
@@ -755,19 +755,19 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
u16 wantedCryCase;
u8 taskId;
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
{
- mon = &gEnemyParty[gBattlePartyID[bank]];
+ mon = &gEnemyParty[gBattlerPartyIndexes[bank]];
pan = 25;
}
else
{
- mon = &gPlayerParty[gBattlePartyID[bank]];
+ mon = &gPlayerParty[gBattlerPartyIndexes[bank]];
pan = -25;
}
species = GetMonData(mon, MON_DATA_SPECIES);
- if ((bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1))
+ if ((bank == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || bank == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1)
{
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
@@ -783,7 +783,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1)
wantedCryCase = 0;
- else if (bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1))
+ else if (bank == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || bank == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
wantedCryCase = 1;
else
wantedCryCase = 2;
@@ -795,21 +795,21 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
gTasks[taskId].tCryTaskPan = pan;
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
gTasks[taskId].tCryTaskBank = bank;
- gTasks[taskId].tCryTaskMonSpriteId = gBankSpriteIds[sprite->sBank];
+ gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBank];
gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10;
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
gTasks[taskId].tCryTaskState = 0;
}
- StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 1);
+ StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBank]], 1);
- if (GetBankSide(sprite->sBank) == SIDE_OPPONENT)
- gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039B58;
+ if (GetBattlerSide(sprite->sBank) == B_SIDE_OPPONENT)
+ gSprites[gBattlerSpriteIds[sprite->sBank]].callback = sub_8039B58;
else
- gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039E44;
+ gSprites[gBattlerSpriteIds[sprite->sBank]].callback = sub_8039E44;
- AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]);
- gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0x1000;
+ AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]);
+ gSprites[gBattlerSpriteIds[sprite->sBank]].data[1] = 0x1000;
}
#undef tCryTaskSpecies
@@ -836,35 +836,35 @@ static void HandleBallAnimEnd(struct Sprite *sprite)
bool8 affineAnimEnded = FALSE;
u8 bank = sprite->sBank;
- gSprites[gBankSpriteIds[bank]].invisible = FALSE;
+ gSprites[gBattlerSpriteIds[bank]].invisible = FALSE;
if (sprite->animEnded)
sprite->invisible = TRUE;
- if (gSprites[gBankSpriteIds[bank]].affineAnimEnded)
+ if (gSprites[gBattlerSpriteIds[bank]].affineAnimEnded)
{
- StartSpriteAffineAnim(&gSprites[gBankSpriteIds[bank]], 0);
+ StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[bank]], 0);
affineAnimEnded = TRUE;
}
else
{
- gSprites[gBankSpriteIds[bank]].data[1] -= 288;
- gSprites[gBankSpriteIds[bank]].pos2.y = gSprites[gBankSpriteIds[bank]].data[1] >> 8;
+ gSprites[gBattlerSpriteIds[bank]].data[1] -= 288;
+ gSprites[gBattlerSpriteIds[bank]].pos2.y = gSprites[gBattlerSpriteIds[bank]].data[1] >> 8;
}
if (sprite->animEnded && affineAnimEnded)
{
s32 i, doneBanks;
- gSprites[gBankSpriteIds[bank]].pos2.y = 0;
+ gSprites[gBattlerSpriteIds[bank]].pos2.y = 0;
gDoingBattleAnim = FALSE;
gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0;
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
- for (doneBanks = 0, i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (doneBanks = 0, i = 0; i < MAX_BATTLERS_COUNT; i++)
{
if (gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive == 0)
doneBanks++;
}
- if (doneBanks == BATTLE_BANKS_COUNT)
+ if (doneBanks == MAX_BATTLERS_COUNT)
{
for (i = 0; i < POKEBALL_COUNT; i++)
FreeBallGfx(i);
@@ -889,8 +889,8 @@ static void sub_80760F8(struct Sprite *sprite)
}
else if (sprite->data[4] == 315)
{
- FreeOamMatrix(gSprites[gBankSpriteIds[sprite->sBank]].oam.matrixNum);
- DestroySprite(&gSprites[gBankSpriteIds[sprite->sBank]]);
+ FreeOamMatrix(gSprites[gBattlerSpriteIds[sprite->sBank]].oam.matrixNum);
+ DestroySprite(&gSprites[gBattlerSpriteIds[sprite->sBank]]);
DestroySpriteAndFreeResources(sprite);
if (gMain.inBattle)
gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0;
@@ -900,8 +900,8 @@ static void sub_80760F8(struct Sprite *sprite)
static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite)
{
sprite->data[0] = 25;
- sprite->data[2] = GetBankPosition(sprite->sBank, 2);
- sprite->data[4] = GetBankPosition(sprite->sBank, 3) + 24;
+ sprite->data[2] = GetBattlerSpriteCoord(sprite->sBank, 2);
+ sprite->data[4] = GetBattlerSpriteCoord(sprite->sBank, 3) + 24;
sprite->data[5] = -30;
sprite->oam.affineParam = sprite->sBank;
sub_80A68D4(sprite);
@@ -956,7 +956,7 @@ static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite)
sprite->data[0] = 0;
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1
- && sprite->sBank == GetBankByIdentity(IDENTITY_PLAYER_MON2))
+ && sprite->sBank == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))
sprite->callback = SpriteCB_ReleaseMon2FromBall;
else
sprite->callback = SpriteCB_ReleaseMonFromBall;
@@ -982,7 +982,7 @@ static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite)
{
sprite->data[0] = 0;
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1
- && sprite->sBank == GetBankByIdentity(IDENTITY_OPPONENT_MON2))
+ && sprite->sBank == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))
sprite->callback = SpriteCB_ReleaseMon2FromBall;
else
sprite->callback = SpriteCB_ReleaseMonFromBall;
@@ -1183,14 +1183,14 @@ static void DestroySpriteAndFreeResources_(struct Sprite *sprite)
void sub_8076918(u8 bank)
{
- struct Sprite *healthboxSprite = &gSprites[gHealthBoxesIds[bank]];
+ struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[bank]];
healthboxSprite->data[0] = 5;
healthboxSprite->data[1] = 0;
healthboxSprite->pos2.x = 0x73;
healthboxSprite->pos2.y = 0;
healthboxSprite->callback = sub_80769CC;
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
{
healthboxSprite->data[0] = -healthboxSprite->data[0];
healthboxSprite->data[1] = -healthboxSprite->data[1];
@@ -1198,7 +1198,7 @@ void sub_8076918(u8 bank)
healthboxSprite->pos2.y = -healthboxSprite->pos2.y;
}
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
- if (GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
+ if (GetBattlerPosition(bank) == B_POSITION_PLAYER_RIGHT)
healthboxSprite->callback = sub_80769A8;
}
@@ -1226,7 +1226,7 @@ void DoHitAnimHealthboxEffect(u8 bank)
spriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HitAnimHealthoxEffect);
gSprites[spriteId].data[0] = 1;
- gSprites[spriteId].data[1] = gHealthBoxesIds[bank];
+ gSprites[spriteId].data[1] = gHealthboxSpriteIds[bank];
gSprites[spriteId].callback = SpriteCB_HitAnimHealthoxEffect;
}
@@ -1275,8 +1275,8 @@ void FreeBallGfx(u8 ballId)
static u16 GetBankPokeballItemId(u8 bank)
{
- if (GetBankSide(bank) == SIDE_PLAYER)
- return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL);
+ if (GetBattlerSide(bank) == B_SIDE_PLAYER)
+ return GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL);
else
- return GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL);
+ return GetMonData(&gEnemyParty[gBattlerPartyIndexes[bank]], MON_DATA_POKEBALL);
}
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 2623e12c4..b9d1d94c6 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -13,7 +13,7 @@
#include "battle.h"
#include "battle_controllers.h"
#include "palette.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "list_menu.h"
#include "gpu_regs.h"
#include "decompress.h"
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index db176e025..730f245d7 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -14,10 +14,10 @@ struct Unknown_020249B4
struct SpriteTemplate* templates;
};
-extern u8 gAbsentBankFlags;
-extern u8 gActiveBank;
-extern u8 gBankAttacker;
-extern u8 gBankTarget;
+extern u8 gAbsentBattlerFlags;
+extern u8 gActiveBattler;
+extern u8 gBattlerAttacker;
+extern u8 gBattlerTarget;
extern u8 gLastUsedAbility;
extern u16 gTrainerBattleOpponent_A;
extern u32 gBattleTypeFlags;
@@ -34,9 +34,9 @@ extern const union AnimCmd* const * const gUnknown_0830536C[];
extern const u8 gText_BadEgg[];
extern const u8 gText_EggNickname[];
-extern u8 GetBankSide(u8 bank);
-extern u8 GetBankByIdentity(u8 bank);
-extern u8 GetBankIdentity(u8 bank);
+extern u8 GetBattlerSide(u8 bank);
+extern u8 GetBattlerAtPosition(u8 bank);
+extern u8 GetBattlerPosition(u8 bank);
u8 CountAliveMonsInBattle(u8 caseId)
{
@@ -48,21 +48,21 @@ u8 CountAliveMonsInBattle(u8 caseId)
case BATTLE_ALIVE_EXCEPT_ACTIVE:
for (i = 0; i < 4; i++)
{
- if (i != gActiveBank && !(gAbsentBankFlags & gBitTable[i]))
+ if (i != gActiveBattler && !(gAbsentBattlerFlags & gBitTable[i]))
retVal++;
}
break;
case BATTLE_ALIVE_ATK_SIDE:
for (i = 0; i < 4; i++)
{
- if (GetBankSide(i) == GetBankSide(gBankAttacker) && !(gAbsentBankFlags & gBitTable[i]))
+ if (GetBattlerSide(i) == GetBattlerSide(gBattlerAttacker) && !(gAbsentBattlerFlags & gBitTable[i]))
retVal++;
}
break;
case BATTLE_ALIVE_DEF_SIDE:
for (i = 0; i < 4; i++)
{
- if (GetBankSide(i) == GetBankSide(gBankTarget) && !(gAbsentBankFlags & gBitTable[i]))
+ if (GetBattlerSide(i) == GetBattlerSide(gBattlerTarget) && !(gAbsentBattlerFlags & gBitTable[i]))
retVal++;
}
break;
@@ -75,7 +75,7 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 bank)
{
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_x2000000 | BATTLE_TYPE_FRONTIER))
return FALSE;
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(bank) != B_SIDE_PLAYER)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT)
return FALSE;
@@ -86,11 +86,11 @@ bool8 ShouldGetStatBadgeBoost(u16 badgeFlag, u8 bank)
u8 GetDefaultMoveTarget(u8 bank)
{
- u8 status = GetBankIdentity(bank) & 1;
+ u8 status = GetBattlerPosition(bank) & 1;
status ^= 1;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
- return GetBankByIdentity(status);
+ return GetBattlerAtPosition(status);
if (CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_ACTIVE) > 1)
{
u8 val;
@@ -99,14 +99,14 @@ u8 GetDefaultMoveTarget(u8 bank)
val = status ^ 2;
else
val = status;
- return GetBankByIdentity(val);
+ return GetBattlerAtPosition(val);
}
else
{
- if ((gAbsentBankFlags & gBitTable[status]))
- return GetBankByIdentity(status ^ 2);
+ if ((gAbsentBattlerFlags & gBitTable[status]))
+ return GetBattlerAtPosition(status ^ 2);
else
- return GetBankByIdentity(status);
+ return GetBattlerAtPosition(status);
}
}
@@ -1197,26 +1197,26 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord)
for (i = 0; i < PARTY_SIZE; i++)
{
- if (gBattleResources->secretBase->partySpecies[i])
+ if (gBattleResources->secretBase->party.species[i])
{
CreateMon(&gEnemyParty[i],
- gBattleResources->secretBase->partySpecies[i],
- gBattleResources->secretBase->partyLevels[i],
+ gBattleResources->secretBase->party.species[i],
+ gBattleResources->secretBase->party.levels[i],
15,
1,
- gBattleResources->secretBase->partyPersonality[i],
+ gBattleResources->secretBase->party.personality[i],
2,
0);
- SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->partyHeldItems[i]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]);
for (j = 0; j < 6; j++)
- SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->partyEVs[i]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->party.EVs[i]);
for (j = 0; j < 4; j++)
{
- SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->partyMoves[i * 4 + j]);
- SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->partyMoves[i * 4 + j]].pp);
+ SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, &gBattleResources->secretBase->party.moves[i * 4 + j]);
+ SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[gBattleResources->secretBase->party.moves[i * 4 + j]].pp);
}
}
}
@@ -1353,7 +1353,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex)
StringCopy10(gBattleMons[bank].nickname, nickname);
GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[bank].otName);
- hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBankSide(bank)];
+ hpSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(bank)];
*hpSwitchout = gBattleMons[bank].hp;
for (i = 0; i < 8; i++)
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index 95ec4b6a2..6442679a6 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -25,15 +25,15 @@
extern struct BattlePokemon gBattleMons[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
-extern u8 gActiveBank;
+extern u8 gActiveBattler;
extern u8 gBankInMenu;
-extern u8 gBankTarget;
-extern u8 gBankAttacker;
-extern u8 gStringBank;
+extern u8 gBattlerTarget;
+extern u8 gBattlerAttacker;
+extern u8 gStringBattler;
extern u16 gTrainerBattleOpponent_A;
extern u32 gBattleTypeFlags;
extern u8 gBattleMonForms[4];
-extern u16 gBattlePartyID[4];
+extern u16 gBattlerPartyIndexes[4];
extern u8 gLastUsedAbility;
extern u16 gPartnerTrainerId;
extern u32 gHitMarker;
@@ -74,8 +74,6 @@ extern u8 GetFrontierOpponentClass(u16 trainerId);
extern u8 pokemon_order_func(u8 bankPartyId);
extern void GetFrontierTrainerName(u8* dest, u16 trainerId);
extern void sub_81C488C(u8);
-extern void sub_817F578(struct Sprite*, u8 frontAnimId);
-extern u8 GetSpeciesBackAnimId(u16 species);
static void sub_806E6CC(u8 taskId);
@@ -115,7 +113,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
if (itemId == ITEM_ENIGMA_BERRY)
{
- temp = gEnigmaBerries[gActiveBank].itemEffect;
+ temp = gEnigmaBerries[gActiveBattler].itemEffect;
}
itemEffect = temp;
@@ -212,7 +210,7 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
void sub_806CF24(s32 stat)
{
- gBankTarget = gBankInMenu;
+ gBattlerTarget = gBankInMenu;
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[stat]]);
StringCopy(gBattleTextBuff2, gText_StatRose);
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2);
@@ -235,7 +233,7 @@ u8 *sub_806CF78(u16 itemId)
itemEffect = gItemEffectTable[itemId - 13];
}
- gStringBank = gBankInMenu;
+ gStringBattler = gBankInMenu;
for (i = 0; i < 3; i++)
{
@@ -249,7 +247,7 @@ u8 *sub_806CF78(u16 itemId)
}
else
{
- gBankAttacker = gBankInMenu;
+ gBattlerAttacker = gBankInMenu;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnGettingPumped);
}
}
@@ -257,7 +255,7 @@ u8 *sub_806CF78(u16 itemId)
if (itemEffect[3] & 0x80)
{
- gBankAttacker = gBankInMenu;
+ gBattlerAttacker = gBankInMenu;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist);
}
@@ -617,7 +615,7 @@ bool16 sub_806D82C(u8 id)
return retVal;
}
-s32 GetBankMultiplayerId(u16 a1)
+s32 GetBattlerMultiplayerId(u16 a1)
{
s32 id;
for (id = 0; id < MAX_LINK_PLAYERS; id++)
@@ -1368,12 +1366,12 @@ void sub_806E994(void)
gBattleTextBuff1[2] = gBattleStruct->field_49;
gBattleTextBuff1[4] = B_BUFF_EOS;
- if (!GetBankSide(gBattleStruct->field_49))
- gBattleTextBuff1[3] = pokemon_order_func(gBattlePartyID[gBattleStruct->field_49]);
+ if (!GetBattlerSide(gBattleStruct->field_49))
+ gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->field_49]);
else
- gBattleTextBuff1[3] = gBattlePartyID[gBattleStruct->field_49];
+ gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->field_49];
- PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBankInMenu, pokemon_order_func(gBattlePartyID[gBankInMenu]))
+ PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBankInMenu, pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]))
BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4);
}
@@ -1480,7 +1478,7 @@ const u8 *GetTrainerPartnerName(void)
else
{
u8 id = GetMultiplayerId();
- return gLinkPlayers[GetBankMultiplayerId(gLinkPlayers[id].lp_field_18 ^ 2)].name;
+ return gLinkPlayers[GetBattlerMultiplayerId(gLinkPlayers[id].lp_field_18 ^ 2)].name;
}
}
@@ -1508,7 +1506,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId)
{
if (--gTasks[taskId].data[3] == 0)
{
- sub_817F578(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]);
+ StartMonSummaryAnimation(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]);
sub_81C488C(0xFF);
DestroyTask(taskId);
}
@@ -1523,7 +1521,6 @@ void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u
}
extern void SpriteCallbackDummy_2(struct Sprite*);
-extern void sub_817F60C(struct Sprite*);
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3)
{
@@ -1580,11 +1577,11 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF
gTasks[taskId].data[2] = gMonFrontAnimIdsTable[species - 1];
gTasks[taskId].data[3] = gMonAnimationDelayTable[species - 1];
sub_81C488C(taskId);
- sub_817F60C(sprite);
+ SetSpriteCB_MonAnimDummy(sprite);
}
else
{
- sub_817F578(sprite, gMonFrontAnimIdsTable[species - 1]);
+ StartMonSummaryAnimation(sprite, gMonFrontAnimIdsTable[species - 1]);
}
}
@@ -1603,7 +1600,7 @@ void BattleAnimateBackSprite(struct Sprite* sprite, u16 species)
}
else
{
- LaunchAnimationTaskForBackSprite(sprite, GetSpeciesBackAnimId(species));
+ LaunchAnimationTaskForBackSprite(sprite, GetSpeciesBackAnimSet(species));
sprite->callback = SpriteCallbackDummy_2;
}
}
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
new file mode 100644
index 000000000..02755fe40
--- /dev/null
+++ b/src/pokemon_animation.c
@@ -0,0 +1,5658 @@
+#include "global.h"
+#include "pokemon.h"
+#include "sprite.h"
+#include "pokemon_animation.h"
+#include "trig.h"
+#include "task.h"
+#include "blend_palette.h"
+#include "constants/rgb.h"
+
+struct UnkAnimStruct
+{
+ u16 field_0;
+ s16 field_2;
+ s16 field_4;
+ s16 field_6;
+ s16 field_8;
+};
+
+extern u16 gBattlerPartyIndexes[];
+
+// this file's functions
+static void pokemonanimfunc_00(struct Sprite *sprite);
+static void pokemonanimfunc_01(struct Sprite *sprite);
+static void pokemonanimfunc_02(struct Sprite *sprite);
+static void pokemonanimfunc_03(struct Sprite *sprite);
+static void pokemonanimfunc_04(struct Sprite *sprite);
+static void pokemonanimfunc_05(struct Sprite *sprite);
+static void pokemonanimfunc_06(struct Sprite *sprite);
+static void pokemonanimfunc_07(struct Sprite *sprite);
+static void pokemonanimfunc_08(struct Sprite *sprite);
+static void pokemonanimfunc_09(struct Sprite *sprite);
+static void pokemonanimfunc_0A(struct Sprite *sprite);
+static void pokemonanimfunc_0B(struct Sprite *sprite);
+static void pokemonanimfunc_0C(struct Sprite *sprite);
+static void pokemonanimfunc_0D(struct Sprite *sprite);
+static void pokemonanimfunc_0E(struct Sprite *sprite);
+static void pokemonanimfunc_0F(struct Sprite *sprite);
+static void pokemonanimfunc_10(struct Sprite *sprite);
+static void pokemonanimfunc_11(struct Sprite *sprite);
+static void pokemonanimfunc_12(struct Sprite *sprite);
+static void pokemonanimfunc_13(struct Sprite *sprite);
+static void pokemonanimfunc_14(struct Sprite *sprite);
+static void pokemonanimfunc_15(struct Sprite *sprite);
+static void pokemonanimfunc_16(struct Sprite *sprite);
+static void pokemonanimfunc_17(struct Sprite *sprite);
+static void pokemonanimfunc_18(struct Sprite *sprite);
+static void pokemonanimfunc_19(struct Sprite *sprite);
+static void pokemonanimfunc_1A(struct Sprite *sprite);
+static void pokemonanimfunc_1B(struct Sprite *sprite);
+static void pokemonanimfunc_1C(struct Sprite *sprite);
+static void pokemonanimfunc_1D(struct Sprite *sprite);
+static void pokemonanimfunc_1E(struct Sprite *sprite);
+static void pokemonanimfunc_1F(struct Sprite *sprite);
+static void pokemonanimfunc_20(struct Sprite *sprite);
+static void pokemonanimfunc_21(struct Sprite *sprite);
+static void pokemonanimfunc_22(struct Sprite *sprite);
+static void pokemonanimfunc_23(struct Sprite *sprite);
+static void pokemonanimfunc_24(struct Sprite *sprite);
+static void pokemonanimfunc_25(struct Sprite *sprite);
+static void pokemonanimfunc_26(struct Sprite *sprite);
+static void pokemonanimfunc_27(struct Sprite *sprite);
+static void pokemonanimfunc_28(struct Sprite *sprite);
+static void pokemonanimfunc_29(struct Sprite *sprite);
+static void pokemonanimfunc_2A(struct Sprite *sprite);
+static void pokemonanimfunc_2B(struct Sprite *sprite);
+static void pokemonanimfunc_2C(struct Sprite *sprite);
+static void pokemonanimfunc_2D(struct Sprite *sprite);
+static void pokemonanimfunc_2E(struct Sprite *sprite);
+static void pokemonanimfunc_2F(struct Sprite *sprite);
+static void pokemonanimfunc_30(struct Sprite *sprite);
+static void pokemonanimfunc_31(struct Sprite *sprite);
+static void pokemonanimfunc_32(struct Sprite *sprite);
+static void pokemonanimfunc_33(struct Sprite *sprite);
+static void pokemonanimfunc_34(struct Sprite *sprite);
+static void pokemonanimfunc_35(struct Sprite *sprite);
+static void pokemonanimfunc_36(struct Sprite *sprite);
+static void pokemonanimfunc_37(struct Sprite *sprite);
+static void pokemonanimfunc_38(struct Sprite *sprite);
+static void pokemonanimfunc_39(struct Sprite *sprite);
+static void pokemonanimfunc_3A(struct Sprite *sprite);
+static void pokemonanimfunc_3B(struct Sprite *sprite);
+static void pokemonanimfunc_3C(struct Sprite *sprite);
+static void pokemonanimfunc_3D(struct Sprite *sprite);
+static void pokemonanimfunc_3E(struct Sprite *sprite);
+static void pokemonanimfunc_3F(struct Sprite *sprite);
+static void pokemonanimfunc_40(struct Sprite *sprite);
+static void pokemonanimfunc_41(struct Sprite *sprite);
+static void pokemonanimfunc_42(struct Sprite *sprite);
+static void pokemonanimfunc_43(struct Sprite *sprite);
+static void pokemonanimfunc_44(struct Sprite *sprite);
+static void pokemonanimfunc_45(struct Sprite *sprite);
+static void pokemonanimfunc_46(struct Sprite *sprite);
+static void pokemonanimfunc_47(struct Sprite *sprite);
+static void pokemonanimfunc_48(struct Sprite *sprite);
+static void pokemonanimfunc_49(struct Sprite *sprite);
+static void pokemonanimfunc_4A(struct Sprite *sprite);
+static void pokemonanimfunc_4B(struct Sprite *sprite);
+static void pokemonanimfunc_4C(struct Sprite *sprite);
+static void pokemonanimfunc_4D(struct Sprite *sprite);
+static void pokemonanimfunc_4E(struct Sprite *sprite);
+static void pokemonanimfunc_4F(struct Sprite *sprite);
+static void pokemonanimfunc_50(struct Sprite *sprite);
+static void pokemonanimfunc_51(struct Sprite *sprite);
+static void pokemonanimfunc_52(struct Sprite *sprite);
+static void pokemonanimfunc_53(struct Sprite *sprite);
+static void pokemonanimfunc_54(struct Sprite *sprite);
+static void pokemonanimfunc_55(struct Sprite *sprite);
+static void pokemonanimfunc_56(struct Sprite *sprite);
+static void pokemonanimfunc_57(struct Sprite *sprite);
+static void pokemonanimfunc_58(struct Sprite *sprite);
+static void pokemonanimfunc_59(struct Sprite *sprite);
+static void pokemonanimfunc_5A(struct Sprite *sprite);
+static void pokemonanimfunc_5B(struct Sprite *sprite);
+static void pokemonanimfunc_5C(struct Sprite *sprite);
+static void pokemonanimfunc_5D(struct Sprite *sprite);
+static void pokemonanimfunc_5E(struct Sprite *sprite);
+static void pokemonanimfunc_5F(struct Sprite *sprite);
+static void pokemonanimfunc_60(struct Sprite *sprite);
+static void pokemonanimfunc_61(struct Sprite *sprite);
+static void pokemonanimfunc_62(struct Sprite *sprite);
+static void pokemonanimfunc_63(struct Sprite *sprite);
+static void pokemonanimfunc_64(struct Sprite *sprite);
+static void pokemonanimfunc_65(struct Sprite *sprite);
+static void pokemonanimfunc_66(struct Sprite *sprite);
+static void pokemonanimfunc_67(struct Sprite *sprite);
+static void pokemonanimfunc_68(struct Sprite *sprite);
+static void pokemonanimfunc_69(struct Sprite *sprite);
+static void pokemonanimfunc_6A(struct Sprite *sprite);
+static void pokemonanimfunc_6B(struct Sprite *sprite);
+static void pokemonanimfunc_6C(struct Sprite *sprite);
+static void pokemonanimfunc_6D(struct Sprite *sprite);
+static void pokemonanimfunc_6E(struct Sprite *sprite);
+static void pokemonanimfunc_6F(struct Sprite *sprite);
+static void pokemonanimfunc_70(struct Sprite *sprite);
+static void pokemonanimfunc_71(struct Sprite *sprite);
+static void pokemonanimfunc_72(struct Sprite *sprite);
+static void pokemonanimfunc_73(struct Sprite *sprite);
+static void pokemonanimfunc_74(struct Sprite *sprite);
+static void pokemonanimfunc_75(struct Sprite *sprite);
+static void pokemonanimfunc_76(struct Sprite *sprite);
+static void pokemonanimfunc_77(struct Sprite *sprite);
+static void pokemonanimfunc_78(struct Sprite *sprite);
+static void pokemonanimfunc_79(struct Sprite *sprite);
+static void pokemonanimfunc_7A(struct Sprite *sprite);
+static void pokemonanimfunc_7B(struct Sprite *sprite);
+static void pokemonanimfunc_7C(struct Sprite *sprite);
+static void pokemonanimfunc_7D(struct Sprite *sprite);
+static void pokemonanimfunc_7E(struct Sprite *sprite);
+static void pokemonanimfunc_7F(struct Sprite *sprite);
+static void pokemonanimfunc_80(struct Sprite *sprite);
+static void pokemonanimfunc_81(struct Sprite *sprite);
+static void pokemonanimfunc_82(struct Sprite *sprite);
+static void pokemonanimfunc_83(struct Sprite *sprite);
+static void pokemonanimfunc_84(struct Sprite *sprite);
+static void pokemonanimfunc_85(struct Sprite *sprite);
+static void pokemonanimfunc_86(struct Sprite *sprite);
+static void pokemonanimfunc_87(struct Sprite *sprite);
+static void pokemonanimfunc_88(struct Sprite *sprite);
+static void pokemonanimfunc_89(struct Sprite *sprite);
+static void pokemonanimfunc_8A(struct Sprite *sprite);
+static void pokemonanimfunc_8B(struct Sprite *sprite);
+static void pokemonanimfunc_8C(struct Sprite *sprite);
+static void pokemonanimfunc_8D(struct Sprite *sprite);
+static void pokemonanimfunc_8E(struct Sprite *sprite);
+static void pokemonanimfunc_8F(struct Sprite *sprite);
+static void pokemonanimfunc_90(struct Sprite *sprite);
+static void pokemonanimfunc_91(struct Sprite *sprite);
+static void pokemonanimfunc_92(struct Sprite *sprite);
+static void pokemonanimfunc_93(struct Sprite *sprite);
+static void pokemonanimfunc_94(struct Sprite *sprite);
+static void pokemonanimfunc_95(struct Sprite *sprite);
+static void pokemonanimfunc_96(struct Sprite *sprite);
+
+static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite);
+
+#define STRUCT_COUNT 4
+
+// IWRAM bss
+static IWRAM_DATA struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT];
+static IWRAM_DATA u8 sUnknown_03001270;
+static IWRAM_DATA bool32 sUnknown_03001274;
+
+// const rom data
+static const u8 sSpeciesToBackAnimSet[] =
+{
+ 0x00, // SPECIES_NONE
+ 0x13, // SPECIES_BULBASAUR
+ 0x02, // SPECIES_IVYSAUR
+ 0x08, // SPECIES_VENUSAUR
+ 0x12, // SPECIES_CHARMANDER
+ 0x15, // SPECIES_CHARMELEON
+ 0x17, // SPECIES_CHARIZARD
+ 0x12, // SPECIES_SQUIRTLE
+ 0x12, // SPECIES_WARTORTLE
+ 0x19, // SPECIES_BLASTOISE
+ 0x02, // SPECIES_CATERPIE
+ 0x13, // SPECIES_METAPOD
+ 0x11, // SPECIES_BUTTERFREE
+ 0x02, // SPECIES_WEEDLE
+ 0x13, // SPECIES_KAKUNA
+ 0x01, // SPECIES_BEEDRILL
+ 0x0f, // SPECIES_PIDGEY
+ 0x15, // SPECIES_PIDGEOTTO
+ 0x0f, // SPECIES_PIDGEOT
+ 0x0a, // SPECIES_RATTATA
+ 0x0a, // SPECIES_RATICATE
+ 0x0f, // SPECIES_SPEAROW
+ 0x15, // SPECIES_FEAROW
+ 0x0f, // SPECIES_EKANS
+ 0x09, // SPECIES_ARBOK
+ 0x16, // SPECIES_PIKACHU
+ 0x16, // SPECIES_RAICHU
+ 0x12, // SPECIES_SANDSHREW
+ 0x10, // SPECIES_SANDSLASH
+ 0x12, // SPECIES_NIDORAN_F
+ 0x15, // SPECIES_NIDORINA
+ 0x09, // SPECIES_NIDOQUEEN
+ 0x12, // SPECIES_NIDORAN_M
+ 0x15, // SPECIES_NIDORINO
+ 0x09, // SPECIES_NIDOKING
+ 0x13, // SPECIES_CLEFAIRY
+ 0x13, // SPECIES_CLEFABLE
+ 0x10, // SPECIES_VULPIX
+ 0x01, // SPECIES_NINETALES
+ 0x13, // SPECIES_JIGGLYPUFF
+ 0x06, // SPECIES_WIGGLYTUFF
+ 0x11, // SPECIES_ZUBAT
+ 0x09, // SPECIES_GOLBAT
+ 0x02, // SPECIES_ODDISH
+ 0x02, // SPECIES_GLOOM
+ 0x14, // SPECIES_VILEPLUME
+ 0x02, // SPECIES_PARAS
+ 0x08, // SPECIES_PARASECT
+ 0x0a, // SPECIES_VENONAT
+ 0x11, // SPECIES_VENOMOTH
+ 0x09, // SPECIES_DIGLETT
+ 0x09, // SPECIES_DUGTRIO
+ 0x10, // SPECIES_MEOWTH
+ 0x0f, // SPECIES_PERSIAN
+ 0x02, // SPECIES_PSYDUCK
+ 0x14, // SPECIES_GOLDUCK
+ 0x10, // SPECIES_MANKEY
+ 0x10, // SPECIES_PRIMEAPE
+ 0x15, // SPECIES_GROWLITHE
+ 0x15, // SPECIES_ARCANINE
+ 0x12, // SPECIES_POLIWAG
+ 0x09, // SPECIES_POLIWHIRL
+ 0x0e, // SPECIES_POLIWRATH
+ 0x14, // SPECIES_ABRA
+ 0x14, // SPECIES_KADABRA
+ 0x0d, // SPECIES_ALAKAZAM
+ 0x15, // SPECIES_MACHOP
+ 0x09, // SPECIES_MACHOKE
+ 0x09, // SPECIES_MACHAMP
+ 0x0b, // SPECIES_BELLSPROUT
+ 0x0b, // SPECIES_WEEPINBELL
+ 0x0b, // SPECIES_VICTREEBEL
+ 0x02, // SPECIES_TENTACOOL
+ 0x02, // SPECIES_TENTACRUEL
+ 0x0e, // SPECIES_GEODUDE
+ 0x08, // SPECIES_GRAVELER
+ 0x08, // SPECIES_GOLEM
+ 0x17, // SPECIES_PONYTA
+ 0x15, // SPECIES_RAPIDASH
+ 0x02, // SPECIES_SLOWPOKE
+ 0x13, // SPECIES_SLOWBRO
+ 0x0f, // SPECIES_MAGNEMITE
+ 0x0f, // SPECIES_MAGNETON
+ 0x02, // SPECIES_FARFETCHD
+ 0x0f, // SPECIES_DODUO
+ 0x15, // SPECIES_DODRIO
+ 0x13, // SPECIES_SEEL
+ 0x02, // SPECIES_DEWGONG
+ 0x0b, // SPECIES_GRIMER
+ 0x0c, // SPECIES_MUK
+ 0x13, // SPECIES_SHELLDER
+ 0x0f, // SPECIES_CLOYSTER
+ 0x01, // SPECIES_GASTLY
+ 0x01, // SPECIES_HAUNTER
+ 0x14, // SPECIES_GENGAR
+ 0x09, // SPECIES_ONIX
+ 0x13, // SPECIES_DROWZEE
+ 0x14, // SPECIES_HYPNO
+ 0x0a, // SPECIES_KRABBY
+ 0x09, // SPECIES_KINGLER
+ 0x15, // SPECIES_VOLTORB
+ 0x15, // SPECIES_ELECTRODE
+ 0x02, // SPECIES_EXEGGCUTE
+ 0x10, // SPECIES_EXEGGUTOR
+ 0x15, // SPECIES_CUBONE
+ 0x10, // SPECIES_MAROWAK
+ 0x02, // SPECIES_HITMONLEE
+ 0x0f, // SPECIES_HITMONCHAN
+ 0x02, // SPECIES_LICKITUNG
+ 0x06, // SPECIES_KOFFING
+ 0x06, // SPECIES_WEEZING
+ 0x0e, // SPECIES_RHYHORN
+ 0x0e, // SPECIES_RHYDON
+ 0x12, // SPECIES_CHANSEY
+ 0x0b, // SPECIES_TANGELA
+ 0x12, // SPECIES_KANGASKHAN
+ 0x13, // SPECIES_HORSEA
+ 0x11, // SPECIES_SEADRA
+ 0x11, // SPECIES_GOLDEEN
+ 0x11, // SPECIES_SEAKING
+ 0x13, // SPECIES_STARYU
+ 0x19, // SPECIES_STARMIE
+ 0x14, // SPECIES_MR_MIME
+ 0x0f, // SPECIES_SCYTHER
+ 0x13, // SPECIES_JYNX
+ 0x16, // SPECIES_ELECTABUZZ
+ 0x17, // SPECIES_MAGMAR
+ 0x0e, // SPECIES_PINSIR
+ 0x0e, // SPECIES_TAUROS
+ 0x10, // SPECIES_MAGIKARP
+ 0x09, // SPECIES_GYARADOS
+ 0x19, // SPECIES_LAPRAS
+ 0x05, // SPECIES_DITTO
+ 0x12, // SPECIES_EEVEE
+ 0x19, // SPECIES_VAPOREON
+ 0x16, // SPECIES_JOLTEON
+ 0x17, // SPECIES_FLAREON
+ 0x01, // SPECIES_PORYGON
+ 0x13, // SPECIES_OMANYTE
+ 0x13, // SPECIES_OMASTAR
+ 0x13, // SPECIES_KABUTO
+ 0x15, // SPECIES_KABUTOPS
+ 0x15, // SPECIES_AERODACTYL
+ 0x13, // SPECIES_SNORLAX
+ 0x19, // SPECIES_ARTICUNO
+ 0x16, // SPECIES_ZAPDOS
+ 0x17, // SPECIES_MOLTRES
+ 0x02, // SPECIES_DRATINI
+ 0x0f, // SPECIES_DRAGONAIR
+ 0x09, // SPECIES_DRAGONITE
+ 0x0d, // SPECIES_MEWTWO
+ 0x12, // SPECIES_MEW
+ 0x12, // SPECIES_CHIKORITA
+ 0x02, // SPECIES_BAYLEEF
+ 0x09, // SPECIES_MEGANIUM
+ 0x12, // SPECIES_CYNDAQUIL
+ 0x15, // SPECIES_QUILAVA
+ 0x17, // SPECIES_TYPHLOSION
+ 0x15, // SPECIES_TOTODILE
+ 0x15, // SPECIES_CROCONAW
+ 0x09, // SPECIES_FERALIGATR
+ 0x12, // SPECIES_SENTRET
+ 0x10, // SPECIES_FURRET
+ 0x11, // SPECIES_HOOTHOOT
+ 0x0f, // SPECIES_NOCTOWL
+ 0x0a, // SPECIES_LEDYBA
+ 0x11, // SPECIES_LEDIAN
+ 0x0a, // SPECIES_SPINARAK
+ 0x02, // SPECIES_ARIADOS
+ 0x0f, // SPECIES_CROBAT
+ 0x0b, // SPECIES_CHINCHOU
+ 0x16, // SPECIES_LANTURN
+ 0x12, // SPECIES_PICHU
+ 0x13, // SPECIES_CLEFFA
+ 0x13, // SPECIES_IGGLYBUFF
+ 0x13, // SPECIES_TOGEPI
+ 0x11, // SPECIES_TOGETIC
+ 0x12, // SPECIES_NATU
+ 0x14, // SPECIES_XATU
+ 0x12, // SPECIES_MAREEP
+ 0x13, // SPECIES_FLAAFFY
+ 0x16, // SPECIES_AMPHAROS
+ 0x11, // SPECIES_BELLOSSOM
+ 0x12, // SPECIES_MARILL
+ 0x13, // SPECIES_AZUMARILL
+ 0x02, // SPECIES_SUDOWOODO
+ 0x10, // SPECIES_POLITOED
+ 0x11, // SPECIES_HOPPIP
+ 0x11, // SPECIES_SKIPLOOM
+ 0x11, // SPECIES_JUMPLUFF
+ 0x10, // SPECIES_AIPOM
+ 0x13, // SPECIES_SUNKERN
+ 0x02, // SPECIES_SUNFLORA
+ 0x11, // SPECIES_YANMA
+ 0x0b, // SPECIES_WOOPER
+ 0x02, // SPECIES_QUAGSIRE
+ 0x14, // SPECIES_ESPEON
+ 0x14, // SPECIES_UMBREON
+ 0x12, // SPECIES_MURKROW
+ 0x13, // SPECIES_SLOWKING
+ 0x01, // SPECIES_MISDREAVUS
+ 0x14, // SPECIES_UNOWN
+ 0x0b, // SPECIES_WOBBUFFET
+ 0x14, // SPECIES_GIRAFARIG
+ 0x08, // SPECIES_PINECO
+ 0x09, // SPECIES_FORRETRESS
+ 0x0f, // SPECIES_DUNSPARCE
+ 0x05, // SPECIES_GLIGAR
+ 0x09, // SPECIES_STEELIX
+ 0x15, // SPECIES_SNUBBULL
+ 0x09, // SPECIES_GRANBULL
+ 0x0d, // SPECIES_QWILFISH
+ 0x15, // SPECIES_SCIZOR
+ 0x13, // SPECIES_SHUCKLE
+ 0x15, // SPECIES_HERACROSS
+ 0x0f, // SPECIES_SNEASEL
+ 0x13, // SPECIES_TEDDIURSA
+ 0x09, // SPECIES_URSARING
+ 0x17, // SPECIES_SLUGMA
+ 0x17, // SPECIES_MAGCARGO
+ 0x0a, // SPECIES_SWINUB
+ 0x08, // SPECIES_PILOSWINE
+ 0x02, // SPECIES_CORSOLA
+ 0x02, // SPECIES_REMORAID
+ 0x05, // SPECIES_OCTILLERY
+ 0x0f, // SPECIES_DELIBIRD
+ 0x02, // SPECIES_MANTINE
+ 0x15, // SPECIES_SKARMORY
+ 0x09, // SPECIES_HOUNDOUR
+ 0x09, // SPECIES_HOUNDOOM
+ 0x19, // SPECIES_KINGDRA
+ 0x15, // SPECIES_PHANPY
+ 0x0e, // SPECIES_DONPHAN
+ 0x01, // SPECIES_PORYGON2
+ 0x13, // SPECIES_STANTLER
+ 0x02, // SPECIES_SMEARGLE
+ 0x0f, // SPECIES_TYROGUE
+ 0x07, // SPECIES_HITMONTOP
+ 0x02, // SPECIES_SMOOCHUM
+ 0x08, // SPECIES_ELEKID
+ 0x17, // SPECIES_MAGBY
+ 0x02, // SPECIES_MILTANK
+ 0x13, // SPECIES_BLISSEY
+ 0x16, // SPECIES_RAIKOU
+ 0x17, // SPECIES_ENTEI
+ 0x19, // SPECIES_SUICUNE
+ 0x0e, // SPECIES_LARVITAR
+ 0x09, // SPECIES_PUPITAR
+ 0x0e, // SPECIES_TYRANITAR
+ 0x19, // SPECIES_LUGIA
+ 0x17, // SPECIES_HO_OH
+ 0x18, // SPECIES_CELEBI
+ 0x00, // SPECIES_OLD_UNOWN_B
+ 0x00, // SPECIES_OLD_UNOWN_C
+ 0x00, // SPECIES_OLD_UNOWN_D
+ 0x00, // SPECIES_OLD_UNOWN_E
+ 0x00, // SPECIES_OLD_UNOWN_F
+ 0x00, // SPECIES_OLD_UNOWN_G
+ 0x00, // SPECIES_OLD_UNOWN_H
+ 0x00, // SPECIES_OLD_UNOWN_I
+ 0x00, // SPECIES_OLD_UNOWN_J
+ 0x00, // SPECIES_OLD_UNOWN_K
+ 0x00, // SPECIES_OLD_UNOWN_L
+ 0x00, // SPECIES_OLD_UNOWN_M
+ 0x00, // SPECIES_OLD_UNOWN_N
+ 0x00, // SPECIES_OLD_UNOWN_O
+ 0x00, // SPECIES_OLD_UNOWN_P
+ 0x00, // SPECIES_OLD_UNOWN_Q
+ 0x00, // SPECIES_OLD_UNOWN_R
+ 0x00, // SPECIES_OLD_UNOWN_S
+ 0x00, // SPECIES_OLD_UNOWN_T
+ 0x00, // SPECIES_OLD_UNOWN_U
+ 0x00, // SPECIES_OLD_UNOWN_V
+ 0x00, // SPECIES_OLD_UNOWN_W
+ 0x00, // SPECIES_OLD_UNOWN_X
+ 0x00, // SPECIES_OLD_UNOWN_Y
+ 0x00, // SPECIES_OLD_UNOWN_Z
+ 0x10, // SPECIES_TREECKO
+ 0x15, // SPECIES_GROVYLE
+ 0x09, // SPECIES_SCEPTILE
+ 0x12, // SPECIES_TORCHIC
+ 0x10, // SPECIES_COMBUSKEN
+ 0x17, // SPECIES_BLAZIKEN
+ 0x02, // SPECIES_MUDKIP
+ 0x12, // SPECIES_MARSHTOMP
+ 0x19, // SPECIES_SWAMPERT
+ 0x12, // SPECIES_POOCHYENA
+ 0x08, // SPECIES_MIGHTYENA
+ 0x0f, // SPECIES_ZIGZAGOON
+ 0x15, // SPECIES_LINOONE
+ 0x0b, // SPECIES_WURMPLE
+ 0x08, // SPECIES_SILCOON
+ 0x11, // SPECIES_BEAUTIFLY
+ 0x08, // SPECIES_CASCOON
+ 0x0f, // SPECIES_DUSTOX
+ 0x02, // SPECIES_LOTAD
+ 0x10, // SPECIES_LOMBRE
+ 0x10, // SPECIES_LUDICOLO
+ 0x13, // SPECIES_SEEDOT
+ 0x09, // SPECIES_NUZLEAF
+ 0x14, // SPECIES_SHIFTRY
+ 0x0a, // SPECIES_NINCADA
+ 0x01, // SPECIES_NINJASK
+ 0x14, // SPECIES_SHEDINJA
+ 0x12, // SPECIES_TAILLOW
+ 0x15, // SPECIES_SWELLOW
+ 0x13, // SPECIES_SHROOMISH
+ 0x15, // SPECIES_BRELOOM
+ 0x07, // SPECIES_SPINDA
+ 0x11, // SPECIES_WINGULL
+ 0x11, // SPECIES_PELIPPER
+ 0x03, // SPECIES_SURSKIT
+ 0x11, // SPECIES_MASQUERAIN
+ 0x19, // SPECIES_WAILMER
+ 0x19, // SPECIES_WAILORD
+ 0x13, // SPECIES_SKITTY
+ 0x12, // SPECIES_DELCATTY
+ 0x01, // SPECIES_KECLEON
+ 0x13, // SPECIES_BALTOY
+ 0x14, // SPECIES_CLAYDOL
+ 0x0e, // SPECIES_NOSEPASS
+ 0x17, // SPECIES_TORKOAL
+ 0x01, // SPECIES_SABLEYE
+ 0x0b, // SPECIES_BARBOACH
+ 0x09, // SPECIES_WHISCASH
+ 0x04, // SPECIES_LUVDISC
+ 0x0f, // SPECIES_CORPHISH
+ 0x15, // SPECIES_CRAWDAUNT
+ 0x03, // SPECIES_FEEBAS
+ 0x19, // SPECIES_MILOTIC
+ 0x04, // SPECIES_CARVANHA
+ 0x15, // SPECIES_SHARPEDO
+ 0x13, // SPECIES_TRAPINCH
+ 0x01, // SPECIES_VIBRAVA
+ 0x0f, // SPECIES_FLYGON
+ 0x0e, // SPECIES_MAKUHITA
+ 0x0e, // SPECIES_HARIYAMA
+ 0x15, // SPECIES_ELECTRIKE
+ 0x09, // SPECIES_MANECTRIC
+ 0x0e, // SPECIES_NUMEL
+ 0x17, // SPECIES_CAMERUPT
+ 0x13, // SPECIES_SPHEAL
+ 0x09, // SPECIES_SEALEO
+ 0x09, // SPECIES_WALREIN
+ 0x0a, // SPECIES_CACNEA
+ 0x08, // SPECIES_CACTURNE
+ 0x0f, // SPECIES_SNORUNT
+ 0x0f, // SPECIES_GLALIE
+ 0x13, // SPECIES_LUNATONE
+ 0x13, // SPECIES_SOLROCK
+ 0x10, // SPECIES_AZURILL
+ 0x10, // SPECIES_SPOINK
+ 0x14, // SPECIES_GRUMPIG
+ 0x12, // SPECIES_PLUSLE
+ 0x12, // SPECIES_MINUN
+ 0x09, // SPECIES_MAWILE
+ 0x14, // SPECIES_MEDITITE
+ 0x14, // SPECIES_MEDICHAM
+ 0x11, // SPECIES_SWABLU
+ 0x11, // SPECIES_ALTARIA
+ 0x12, // SPECIES_WYNAUT
+ 0x01, // SPECIES_DUSKULL
+ 0x01, // SPECIES_DUSCLOPS
+ 0x18, // SPECIES_ROSELIA
+ 0x02, // SPECIES_SLAKOTH
+ 0x10, // SPECIES_VIGOROTH
+ 0x08, // SPECIES_SLAKING
+ 0x0b, // SPECIES_GULPIN
+ 0x0b, // SPECIES_SWALOT
+ 0x0e, // SPECIES_TROPIUS
+ 0x13, // SPECIES_WHISMUR
+ 0x09, // SPECIES_LOUDRED
+ 0x0d, // SPECIES_EXPLOUD
+ 0x13, // SPECIES_CLAMPERL
+ 0x11, // SPECIES_HUNTAIL
+ 0x11, // SPECIES_GOREBYSS
+ 0x14, // SPECIES_ABSOL
+ 0x01, // SPECIES_SHUPPET
+ 0x01, // SPECIES_BANETTE
+ 0x0b, // SPECIES_SEVIPER
+ 0x15, // SPECIES_ZANGOOSE
+ 0x02, // SPECIES_RELICANTH
+ 0x15, // SPECIES_ARON
+ 0x09, // SPECIES_LAIRON
+ 0x0e, // SPECIES_AGGRON
+ 0x11, // SPECIES_CASTFORM
+ 0x11, // SPECIES_VOLBEAT
+ 0x11, // SPECIES_ILLUMISE
+ 0x0c, // SPECIES_LILEEP
+ 0x0b, // SPECIES_CRADILY
+ 0x0f, // SPECIES_ANORITH
+ 0x09, // SPECIES_ARMALDO
+ 0x14, // SPECIES_RALTS
+ 0x14, // SPECIES_KIRLIA
+ 0x14, // SPECIES_GARDEVOIR
+ 0x09, // SPECIES_BAGON
+ 0x09, // SPECIES_SHELGON
+ 0x08, // SPECIES_SALAMENCE
+ 0x0f, // SPECIES_BELDUM
+ 0x15, // SPECIES_METANG
+ 0x09, // SPECIES_METAGROSS
+ 0x09, // SPECIES_REGIROCK
+ 0x09, // SPECIES_REGICE
+ 0x09, // SPECIES_REGISTEEL
+ 0x19, // SPECIES_KYOGRE
+ 0x17, // SPECIES_GROUDON
+ 0x0d, // SPECIES_RAYQUAZA
+ 0x01, // SPECIES_LATIAS
+ 0x01, // SPECIES_LATIOS
+ 0x11, // SPECIES_JIRACHI
+ 0x14, // SPECIES_DEOXYS
+ 0x11, // SPECIES_CHIMECHO
+};
+
+static const u8 sUnknown_0860AA64[][2] =
+{
+ {0, 5},
+ {1, 1},
+ {0, 15},
+ {1, 4},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {0, 0xFF}
+};
+
+static const u8 sUnknown_0860AA80[][2] =
+{
+ {6, 30},
+ {0xFE, 15},
+ {6, 30},
+ {0xFF, 0}
+};
+
+static void (* const sMonAnimFunctions[])(struct Sprite *sprite) =
+{
+ pokemonanimfunc_00,
+ pokemonanimfunc_01,
+ pokemonanimfunc_02,
+ pokemonanimfunc_03,
+ pokemonanimfunc_04,
+ pokemonanimfunc_05,
+ pokemonanimfunc_06,
+ pokemonanimfunc_07,
+ pokemonanimfunc_08,
+ pokemonanimfunc_09,
+ pokemonanimfunc_0A,
+ pokemonanimfunc_0B,
+ pokemonanimfunc_0C,
+ pokemonanimfunc_0D,
+ pokemonanimfunc_0E,
+ pokemonanimfunc_0F,
+ pokemonanimfunc_10,
+ pokemonanimfunc_11,
+ pokemonanimfunc_12,
+ pokemonanimfunc_13,
+ pokemonanimfunc_14,
+ pokemonanimfunc_15,
+ pokemonanimfunc_16,
+ pokemonanimfunc_17,
+ pokemonanimfunc_18,
+ pokemonanimfunc_19,
+ pokemonanimfunc_1A,
+ pokemonanimfunc_1B,
+ pokemonanimfunc_1C,
+ pokemonanimfunc_1D,
+ pokemonanimfunc_1E,
+ pokemonanimfunc_1F,
+ pokemonanimfunc_20,
+ pokemonanimfunc_21,
+ pokemonanimfunc_22,
+ pokemonanimfunc_23,
+ pokemonanimfunc_24,
+ pokemonanimfunc_25,
+ pokemonanimfunc_26,
+ pokemonanimfunc_27,
+ pokemonanimfunc_28,
+ pokemonanimfunc_29,
+ pokemonanimfunc_2A,
+ pokemonanimfunc_2B,
+ pokemonanimfunc_2C,
+ pokemonanimfunc_2D,
+ pokemonanimfunc_2E,
+ pokemonanimfunc_2F,
+ pokemonanimfunc_30,
+ pokemonanimfunc_31,
+ pokemonanimfunc_32,
+ pokemonanimfunc_33,
+ pokemonanimfunc_34,
+ pokemonanimfunc_35,
+ pokemonanimfunc_36,
+ pokemonanimfunc_37,
+ pokemonanimfunc_38,
+ pokemonanimfunc_39,
+ pokemonanimfunc_3A,
+ pokemonanimfunc_3B,
+ pokemonanimfunc_3C,
+ pokemonanimfunc_3D,
+ pokemonanimfunc_3E,
+ pokemonanimfunc_3F,
+ pokemonanimfunc_40,
+ pokemonanimfunc_41,
+ pokemonanimfunc_42,
+ pokemonanimfunc_43,
+ pokemonanimfunc_44,
+ pokemonanimfunc_45,
+ pokemonanimfunc_46,
+ pokemonanimfunc_47,
+ pokemonanimfunc_48,
+ pokemonanimfunc_49,
+ pokemonanimfunc_4A,
+ pokemonanimfunc_4B,
+ pokemonanimfunc_4C,
+ pokemonanimfunc_4D,
+ pokemonanimfunc_4E,
+ pokemonanimfunc_4F,
+ pokemonanimfunc_50,
+ pokemonanimfunc_51,
+ pokemonanimfunc_52,
+ pokemonanimfunc_53,
+ pokemonanimfunc_54,
+ pokemonanimfunc_55,
+ pokemonanimfunc_56,
+ pokemonanimfunc_57,
+ pokemonanimfunc_58,
+ pokemonanimfunc_59,
+ pokemonanimfunc_5A,
+ pokemonanimfunc_5B,
+ pokemonanimfunc_5C,
+ pokemonanimfunc_5D,
+ pokemonanimfunc_5E,
+ pokemonanimfunc_5F,
+ pokemonanimfunc_60,
+ pokemonanimfunc_61,
+ pokemonanimfunc_62,
+ pokemonanimfunc_63,
+ pokemonanimfunc_64,
+ pokemonanimfunc_65,
+ pokemonanimfunc_66,
+ pokemonanimfunc_67,
+ pokemonanimfunc_68,
+ pokemonanimfunc_69,
+ pokemonanimfunc_6A,
+ pokemonanimfunc_6B,
+ pokemonanimfunc_6C,
+ pokemonanimfunc_6D,
+ pokemonanimfunc_6E,
+ pokemonanimfunc_6F,
+ pokemonanimfunc_70,
+ pokemonanimfunc_71,
+ pokemonanimfunc_72,
+ pokemonanimfunc_73,
+ pokemonanimfunc_74,
+ pokemonanimfunc_75,
+ pokemonanimfunc_76,
+ pokemonanimfunc_77,
+ pokemonanimfunc_78,
+ pokemonanimfunc_79,
+ pokemonanimfunc_7A,
+ pokemonanimfunc_7B,
+ pokemonanimfunc_7C,
+ pokemonanimfunc_7D,
+ pokemonanimfunc_7E,
+ pokemonanimfunc_7F,
+ pokemonanimfunc_80,
+ pokemonanimfunc_81,
+ pokemonanimfunc_82,
+ pokemonanimfunc_83,
+ pokemonanimfunc_84,
+ pokemonanimfunc_85,
+ pokemonanimfunc_86,
+ pokemonanimfunc_87,
+ pokemonanimfunc_88,
+ pokemonanimfunc_89,
+ pokemonanimfunc_8A,
+ pokemonanimfunc_8B,
+ pokemonanimfunc_8C,
+ pokemonanimfunc_8D,
+ pokemonanimfunc_8E,
+ pokemonanimfunc_8F,
+ pokemonanimfunc_90,
+ pokemonanimfunc_91,
+ pokemonanimfunc_92,
+ pokemonanimfunc_93,
+ pokemonanimfunc_94,
+ pokemonanimfunc_95,
+ pokemonanimfunc_96
+};
+
+// counting from Id 1, because 0 in sSpeciesToBackAnimSet is used for mons with no back animation
+static const u8 sBackAnimationIds[] =
+{
+ 0x60, 0x5f, 0x02, // 1
+ 0x5e, 0x03, 0x46, // 2
+ 0x6d, 0x3e, 0x6e, // 3
+ 0x6f, 0x70, 0x3f, // 4
+ 0x71, 0x13, 0x72, // 5
+ 0x6c, 0x6b, 0x3a, // 6
+ 0x64, 0x14, 0x4f, // 7
+ 0x5d, 0x0f, 0x4c, // 8
+ 0x61, 0x57, 0x58, // 9
+ 0x67, 0x66, 0x59, // 0xA
+ 0x74, 0x73, 0x5a, // 0xB
+ 0x75, 0x76, 0x5b, // 0xC
+ 0x77, 0x78, 0x65, // 0xD
+ 0x63, 0x5c, 0x62, // 0xE
+ 0x6a, 0x69, 0x68, // 0xF
+ 0x7b, 0x7a, 0x79, // 0x10
+ 0x7e, 0x7d, 0x7c, // 0x11
+ 0x81, 0x80, 0x7f, // 0x12
+ 0x84, 0x82, 0x83, // 0x13
+ 0x85, 0x86, 0x87, // 0x14
+ 0x88, 0x89, 0x8a, // 0x15
+ 0x8b, 0x8c, 0x8d, // 0x16
+ 0x8e, 0x8f, 0x90, // 0x17
+ 0x91, 0x92, 0x93, // 0x18
+ 0x94, 0x95, 0x96, // 0x19
+};
+
+static const u8 sBackAnimNatureModTable[] =
+{
+ 0x00, // NATURE_HARDY
+ 0x02, // NATURE_LONELY
+ 0x00, // NATURE_BRAVE
+ 0x00, // NATURE_ADAMANT
+ 0x00, // NATURE_NAUGHTY
+ 0x01, // NATURE_BOLD
+ 0x01, // NATURE_DOCILE
+ 0x01, // NATURE_RELAXED
+ 0x00, // NATURE_IMPISH
+ 0x01, // NATURE_LAX
+ 0x02, // NATURE_TIMID
+ 0x00, // NATURE_HASTY
+ 0x01, // NATURE_SERIOUS
+ 0x00, // NATURE_JOLLY
+ 0x00, // NATURE_NAIVE
+ 0x02, // NATURE_MODEST
+ 0x02, // NATURE_MILD
+ 0x02, // NATURE_QUIET
+ 0x02, // NATURE_BASHFUL
+ 0x01, // NATURE_RASH
+ 0x01, // NATURE_CALM
+ 0x02, // NATURE_GENTLE
+ 0x01, // NATURE_SASSY
+ 0x02, // NATURE_CAREFUL
+ 0x01, // NATURE_QUIRKY
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_860AD48[] =
+{
+ AFFINEANIMCMD_FRAME(256, 256, 0, 0),
+ AFFINEANIMCMDTYPE_END
+};
+
+static const union AffineAnimCmd sSpriteAffineAnim_860AD58[] =
+{
+ AFFINEANIMCMD_FRAME(-256, 256, 0, 0),
+ AFFINEANIMCMDTYPE_END
+};
+
+static const union AffineAnimCmd *const sSpriteAffineAnimTable_860AD68[] =
+{
+ sSpriteAffineAnim_860AD48,
+ sSpriteAffineAnim_860AD58
+};
+
+// code
+static void MonAnimDummySpriteCallback(struct Sprite *sprite)
+{
+}
+
+static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY)
+{
+ s16 xAdder, yAdder;
+
+ amplitudeX *= -1;
+ amplitudeY *= -1;
+
+ xAdder = Cos(index, amplitudeX) - Sin(index, amplitudeY);
+ yAdder = Cos(index, amplitudeY) + Sin(index, amplitudeX);
+
+ amplitudeX *= -1;
+ amplitudeY *= -1;
+
+ sprite->pos2.x = xAdder + amplitudeX;
+ sprite->pos2.y = yAdder + amplitudeY;
+}
+
+u8 GetSpeciesBackAnimSet(u16 species)
+{
+ if (sSpeciesToBackAnimSet[species] != 0)
+ return sSpeciesToBackAnimSet[species] - 1;
+ else
+ return 0;
+}
+
+#define tState data[0]
+#define tPtrLO data[1]
+#define tPtrHI data[2]
+#define tAnimId data[3]
+#define tSaved0 data[4]
+#define tSaved2 data[5]
+
+static void Task_HandleMonAnimation(u8 taskId)
+{
+ u32 i;
+ struct Sprite *sprite = (struct Sprite*)(u32)((gTasks[taskId].tPtrLO << 0x10) | (gTasks[taskId].tPtrHI));
+
+ if (gTasks[taskId].tState == 0)
+ {
+ gTasks[taskId].tSaved0 = sprite->data[0];
+ gTasks[taskId].tSaved2 = sprite->data[2];
+ sprite->data[1] = 1;
+ sprite->data[0] = 0;
+
+ for (i = 2; i < ARRAY_COUNT(sprite->data); i++)
+ sprite->data[i] = 0;
+
+ sprite->callback = sMonAnimFunctions[gTasks[taskId].tAnimId];
+ sUnknown_03001274 = FALSE;
+
+ gTasks[taskId].tState++;
+ }
+ if (sprite->callback == SpriteCallbackDummy)
+ {
+ sprite->data[0] = gTasks[taskId].tSaved0;
+ sprite->data[2] = gTasks[taskId].tSaved2;
+ sprite->data[1] = 0;
+
+ DestroyTask(taskId);
+ }
+}
+
+void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId)
+{
+ u8 taskId = CreateTask(Task_HandleMonAnimation, 128);
+ gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrHI = (u32)(sprite);
+ gTasks[taskId].tAnimId = frontAnimId;
+}
+
+void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId)
+{
+ sUnknown_03001274 = TRUE;
+ sprite->callback = sMonAnimFunctions[frontAnimId];
+}
+
+void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
+{
+ u8 nature, taskId, animId, bank;
+
+ taskId = CreateTask(Task_HandleMonAnimation, 128);
+ gTasks[taskId].tPtrLO = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrHI = (u32)(sprite);
+
+ bank = sprite->data[0];
+ nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[bank]]);
+
+ animId = 3 * backAnimSet + sBackAnimNatureModTable[nature];
+ gTasks[taskId].tAnimId = sBackAnimationIds[animId];
+}
+
+#undef tState
+#undef tPtrLO
+#undef tPtrHI
+#undef tAnimId
+#undef tSaved0
+#undef tSaved2
+
+void SetSpriteCB_MonAnimDummy(struct Sprite *sprite)
+{
+ sprite->callback = MonAnimDummySpriteCallback;
+}
+
+static void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation)
+{
+ u8 matrixNum;
+ struct ObjAffineSrcData affineSrcData;
+ struct OamMatrix dest;
+
+ affineSrcData.xScale = xScale;
+ affineSrcData.yScale = yScale;
+ affineSrcData.rotation = rotation;
+
+ matrixNum = sprite->oam.matrixNum;
+
+ ObjAffineSet(&affineSrcData, &dest, 1, 2);
+ gOamMatrices[matrixNum].a = dest.a;
+ gOamMatrices[matrixNum].b = dest.b;
+ gOamMatrices[matrixNum].c = dest.c;
+ gOamMatrices[matrixNum].d = dest.d;
+}
+
+static void HandleStartAffineAnim(struct Sprite *sprite)
+{
+ sprite->oam.affineMode = 3;
+ sprite->affineAnims = sSpriteAffineAnimTable_860AD68;
+
+ if (sUnknown_03001274 == TRUE)
+ InitSpriteAffineAnim(sprite);
+
+ if (!sprite->data[1])
+ StartSpriteAffineAnim(sprite, 1);
+ else
+ StartSpriteAffineAnim(sprite, 0);
+
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
+ sprite->affineAnimPaused = 1;
+}
+
+static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation)
+{
+ if (!sprite->data[1])
+ {
+ xScale *= -1;
+ rotation *= -1;
+ }
+
+ SetAffineData(sprite, xScale, yScale, rotation);
+}
+
+static void sub_817F70C(struct Sprite *sprite)
+{
+ if (!sprite->data[1])
+ sprite->pos2.x *= -1;
+}
+
+static bool32 sub_817F724(u8 id)
+{
+ if (id >= STRUCT_COUNT)
+ {
+ return FALSE;
+ }
+ else
+ {
+ sUnknown_03001240[id].field_6 = 0;
+ sUnknown_03001240[id].field_0 = 0;
+ sUnknown_03001240[id].field_4 = 1;
+ sUnknown_03001240[id].field_2 = 0;
+ sUnknown_03001240[id].field_8 = 0;
+ return TRUE;
+ }
+}
+
+static u8 sub_817F758(void)
+{
+ sUnknown_03001270 = (sUnknown_03001270 + 1) % STRUCT_COUNT;
+ sub_817F724(sUnknown_03001270);
+ return sUnknown_03001270;
+}
+
+static void sub_817F77C(struct Sprite *sprite)
+{
+ sprite->oam.affineMode = 1;
+ CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
+
+ if (sUnknown_03001274 == TRUE)
+ {
+ if (!sprite->data[1])
+ sprite->hFlip = 1;
+ else
+ sprite->hFlip = 0;
+
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->oam.matrixNum |= (sprite->hFlip << 3);
+ sprite->oam.affineMode = 0;
+ }
+}
+
+static void pokemonanimfunc_01(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 40)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 var = (sprite->data[2] * 512 / 40) % 256;
+
+ sprite->data[4] = Sin(var, 32) + 256;
+ sprite->data[5] = Cos(var, 32) + 256;
+ HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_02(struct Sprite *sprite)
+{
+ if (sprite->data[2] > 40)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign;
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 6) * sign;
+ }
+
+ sprite->data[2]++;
+}
+
+static void sub_817F8FC(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ if (sprite->data[2] > sprite->data[0])
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ sprite->pos2.x = Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6);
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_03(struct Sprite *sprite)
+{
+ sprite->data[0] = 40;
+ sub_817F8FC(sprite);
+ sprite->callback = sub_817F8FC;
+}
+
+static void sub_817F978(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ if (sprite->data[2] > sprite->data[0])
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = -(Sin((sprite->data[2] * 384 / sprite->data[0]) % 256, 6));
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_04(struct Sprite *sprite)
+{
+ sprite->data[0] = 40;
+ sub_817F978(sprite);
+ sprite->callback = sub_817F978;
+}
+
+#ifdef NONMATCHING
+static void sub_817F9F4(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+
+ if (counter > 384)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ s32 divCounter = counter / 128;
+
+ switch (divCounter)
+ {
+ case 0:
+ case 1:
+ sprite->pos2.y = -(Sin(counter % 128, sprite->data[0] * 2));
+ break;
+ case 2:
+ case 3:
+ sprite->pos2.y = -(Sin(counter - 256, sprite->data[0] * 3));
+ break;
+ }
+ }
+
+ sprite->data[2] += 12;
+}
+
+#else
+__attribute__((naked))
+static void sub_817F9F4(struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ adds r4, r0, 0\n\
+ movs r0, 0x32\n\
+ ldrsh r1, [r4, r0]\n\
+ movs r0, 0xC0\n\
+ lsls r0, 1\n\
+ cmp r1, r0\n\
+ ble _0817FA14\n\
+ ldr r0, =SpriteCB_SetDummyOnAnimEnd\n\
+ str r0, [r4, 0x1C]\n\
+ movs r0, 0\n\
+ strh r0, [r4, 0x24]\n\
+ b _0817FA5E\n\
+ .pool\n\
+_0817FA14:\n\
+ adds r0, r1, 0\n\
+ cmp r1, 0\n\
+ bge _0817FA1C\n\
+ adds r0, 0x7F\n\
+_0817FA1C:\n\
+ asrs r2, r0, 7\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0\n\
+ blt _0817FA60\n\
+ cmp r0, 0x1\n\
+ ble _0817FA48\n\
+ cmp r0, 0x3\n\
+ bgt _0817FA60\n\
+ ldr r2, =0xffffff00\n\
+ adds r1, r2\n\
+ lsls r0, r1, 16\n\
+ asrs r0, 16\n\
+ movs r1, 0x2E\n\
+ ldrsh r2, [r4, r1]\n\
+ lsls r1, r2, 1\n\
+ adds r1, r2\n\
+ lsls r1, 16\n\
+ b _0817FA56\n\
+ .pool\n\
+_0817FA48:\n\
+ lsls r0, r2, 7\n\
+ subs r0, r1, r0\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ movs r2, 0x2E\n\
+ ldrsh r1, [r4, r2]\n\
+ lsls r1, 17\n\
+_0817FA56:\n\
+ asrs r1, 16\n\
+ bl Sin\n\
+ negs r0, r0\n\
+_0817FA5E:\n\
+ strh r0, [r4, 0x26]\n\
+_0817FA60:\n\
+ ldrh r0, [r4, 0x32]\n\
+ adds r0, 0xC\n\
+ strh r0, [r4, 0x32]\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided");
+}
+
+#endif // NONMATCHING
+
+static void pokemonanimfunc_1E(struct Sprite *sprite)
+{
+ sprite->data[0] = 4;
+ sub_817F9F4(sprite);
+ sprite->callback = sub_817F9F4;
+}
+
+static void pokemonanimfunc_06(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+
+ if (counter > 768)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ s16 divCounter = counter / 128;
+
+ switch (divCounter)
+ {
+ case 0:
+ case 1:
+ sprite->pos2.x = 0;
+ break;
+ case 2:
+ counter = 0;
+ break;
+ case 3:
+ sprite->pos2.x = -(counter % 128 * 8) / 128;
+ break;
+ case 4:
+ sprite->pos2.x = (counter % 128) / 8 - 8;
+ break;
+ case 5:
+ sprite->pos2.x = -(counter % 128 * 8) / 128 + 8;
+ break;
+ }
+
+ sprite->pos2.y = -(Sin(counter % 128, 8));
+ }
+
+ sprite->data[2] += 12;
+}
+
+static void pokemonanimfunc_09(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 40)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 index = (sprite->data[2] * 256 / 40) % 256;
+
+ if (sprite->data[2] % 2 == 0)
+ {
+ sprite->data[4] = Sin(index, 32) + 256;
+ sprite->data[5] = Sin(index, 32) + 256;
+ }
+ else
+ {
+ sprite->data[4] = Sin(index, 8) + 256;
+ sprite->data[5] = Sin(index, 8) + 256;
+ }
+
+ HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0);
+ }
+
+ sprite->data[2]++;
+}
+
+static const s8 sUnknown_0860AD70[][3] =
+{
+ {-1, -1, 6},
+ {2, 0, 6},
+ {-2, 2, 6},
+ {2, 0, 6},
+ {-2, -2, 6},
+ {2, 0, 6},
+ {-2, 2, 6},
+ {2, 0, 6},
+ {-1, -1, 6},
+ {0, 0, 0},
+};
+
+static void sub_817FC20(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ if (sprite->data[2] == 0)
+ sprite->data[3] = 0;
+
+ if (sUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2])
+ {
+ if (sUnknown_0860AD70[sprite->data[3]][2] == 0)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[3]++;
+ sprite->data[2] = 0;
+ }
+ }
+
+ if (sUnknown_0860AD70[sprite->data[3]][2] == 0)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->pos2.x += sUnknown_0860AD70[sprite->data[3]][0];
+ sprite->pos2.y += sUnknown_0860AD70[sprite->data[3]][1];
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+ }
+}
+
+static void pokemonanimfunc_0A(struct Sprite *sprite)
+{
+ sub_817FC20(sprite);
+ sprite->callback = sub_817FC20;
+}
+
+static void sub_817FCDC(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+
+ if (counter > 2304)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ sprite->pos2.x = Sin(counter % 256, sprite->data[7]);
+ }
+
+ sprite->data[2] += sprite->data[0];
+}
+
+static void pokemonanimfunc_0F(struct Sprite *sprite)
+{
+ sprite->data[0] = 60;
+ sprite->data[7] = 3;
+ sub_817FCDC(sprite);
+ sprite->callback = sub_817FCDC;
+}
+
+static void sub_817FD44(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+
+ if (counter > 2304)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin(counter % 256, 3);
+ }
+
+ sprite->data[2] += sprite->data[0];
+}
+
+static void pokemonanimfunc_10(struct Sprite *sprite)
+{
+ sprite->data[0] = 60;
+ sub_817FD44(sprite);
+ sprite->callback = sub_817FD44;
+}
+
+static void pokemonanimfunc_11(struct Sprite *sprite)
+{
+ if (sprite->data[2] > 512)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ s8 sign;
+ s32 index, amplitude;
+
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ amplitude = Sin(sprite->data[2] / 4, 8);
+ index = sprite->data[2] % 256;
+
+ sprite->pos2.y = Sin(index, amplitude) * sign;
+ sprite->pos2.x = Cos(index, amplitude) * sign;
+ }
+
+ sprite->data[2] += 9;
+}
+
+static void sub_817FE30(struct Sprite *sprite)
+{
+ s16 id = sprite->data[0];
+
+ if (sUnknown_03001240[id].field_0 != 0)
+ {
+ sUnknown_03001240[id].field_0--;
+ }
+ else
+ {
+ if (sprite->data[2] == 0 && sUnknown_03001240[id].field_8 == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sUnknown_03001240[id].field_8++;
+ }
+
+ if (sprite->data[2] > sUnknown_03001240[id].field_6)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+
+ if (sUnknown_03001240[id].field_4 > 1)
+ {
+ sUnknown_03001240[id].field_4--;
+ sUnknown_03001240[id].field_0 = 10;
+ sprite->data[2] = 0;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2] % 256, 4096);
+ HandleSetAffineData(sprite, 256, 256, sprite->data[6]);
+ }
+
+ sprite->data[2] += 16;
+ }
+}
+
+static void pokemonanimfunc_12(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 512;
+ sUnknown_03001240[id].field_0 = 0;
+ sub_817FE30(sprite);
+ sprite->callback = sub_817FE30;
+}
+
+static void sub_817FF3C(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0];
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > sUnknown_03001240[id].field_0)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = (65536 / sUnknown_03001240[id].field_8) * sprite->data[2];
+ HandleSetAffineData(sprite, 256, 256, sprite->data[6]);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_1F(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_0 = 60;
+ sUnknown_03001240[id].field_8 = 20;
+ sub_817FF3C(sprite);
+ sprite->callback = sub_817FF3C;
+}
+
+static void sub_817FFF0(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0];
+
+ sub_817F70C(sprite);
+
+ if (sprite->data[2] > sUnknown_03001240[id].field_6)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 index = (sprite->data[2] + 192) % 256;
+
+ sprite->pos2.x = -(Cos(index, sUnknown_03001240[id].field_8 * 2));
+ sprite->pos2.y = Sin(index, sUnknown_03001240[id].field_8) + sUnknown_03001240[id].field_8;
+ }
+
+ sprite->data[2] += sUnknown_03001240[id].field_2;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_14(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 512;
+ sUnknown_03001240[id].field_8 = 6;
+ sUnknown_03001240[id].field_2 = 24;
+ sub_817FFF0(sprite);
+ sprite->callback = sub_817FFF0;
+}
+
+static void pokemonanimfunc_15(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_BLACK);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 16);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLACK);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_16(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2 = 0;
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 40)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ index2 = (sprite->data[2] * 128) / 40;
+
+ if (sprite->data[2] >= 10 && sprite->data[2] <= 29)
+ {
+ sprite->data[7] += 51;
+ index1 = 0xFF & sprite->data[7];
+ }
+
+ if (sprite->data[1] == 0)
+ sprite->data[4] = (Sin(index2, 40) - 256) + Sin(index1, 16);
+ else
+ sprite->data[4] = (256 - Sin(index2, 40)) - Sin(index1, 16);
+
+ sprite->data[5] = Sin(index2, 16) + 256;
+ SetAffineData(sprite, sprite->data[4], sprite->data[5], 0);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_17(struct Sprite *sprite)
+{
+ s16 posY = 0, index1 = 0, index2 = 0;
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 40)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = posY;
+ }
+ else
+ {
+ index2 = (sprite->data[2] * 128) / 40;
+
+ if (sprite->data[2] >= 10 && sprite->data[2] <= 29)
+ {
+ sprite->data[7] += 51;
+ index1 = 0xFF & sprite->data[7];
+ }
+
+ if (sprite->data[1] == 0)
+ sprite->data[4] = -(Sin(index2, 16)) - 256;
+ else
+ sprite->data[4] = Sin(index2, 16) + 256;
+
+ sprite->data[5] = (256 - Sin(index2, 40)) - Sin(index1, 8);
+
+ if (sprite->data[5] != 256)
+ posY = (256 - sprite->data[5]) / 8;
+
+ sprite->pos2.y = -(posY);
+ SetAffineData(sprite, sprite->data[4], sprite->data[5], 0);
+ }
+
+ sprite->data[2]++;
+}
+
+static void sub_818031C(struct Sprite *sprite)
+{
+ u8 index = sprite->data[2];
+ u8 var7 = sprite->data[6];
+ u8 var5 = sUnknown_0860AA80[sprite->data[5]][0];
+ u8 var6 = sUnknown_0860AA80[sprite->data[5]][1];
+ u8 amplitude = 0;
+
+ if (var5 != 0xFE)
+ amplitude = (var6 - var7) * var5 / var6;
+ else
+ amplitude = 0;
+
+ if (var5 == 0xFF)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin(index, amplitude);
+
+ if (var7 == var6)
+ {
+ sprite->data[5]++;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ sprite->data[2] += sprite->data[0];
+ sprite->data[6]++;
+ }
+ }
+}
+
+static void pokemonanimfunc_19(struct Sprite *sprite)
+{
+ sprite->data[0] = 48;
+ sub_818031C(sprite);
+ sprite->callback = sub_818031C;
+}
+
+static void pokemonanimfunc_1A(struct Sprite *sprite)
+{
+ u8 counter = 0;
+
+ sub_817F70C(sprite);
+ counter = sprite->data[2];
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 35)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s16 index = ((counter - 10) * 128) / 20;
+
+ if (counter < 10)
+ HandleSetAffineData(sprite, 256, 256, counter / 2 * 512);
+ else if (counter >= 10 && counter <= 29)
+ sprite->pos2.x = -(Sin(index, 5));
+ else
+ HandleSetAffineData(sprite, 256, 256, (35 - counter) / 2 * 1024);
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_1B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 100)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 index = (sprite->data[2] * 256) / 100;
+ sprite->pos2.y = Sin(index, 10);
+ HandleSetAffineData(sprite, 256, 256, Sin(index, 3276));
+ }
+
+ sprite->data[2]++;
+}
+
+static void sub_81804F8(struct Sprite *sprite)
+{
+ s32 var = 0;
+ s16 index = 0;
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 100)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ index = (sprite->data[2] * 256) / 100;
+ var = (sprite->data[2] * 512) / 100;
+ var &= 0xFF;
+ sprite->pos2.y = Sin(index, sprite->data[0]);
+ HandleSetAffineData(sprite, 256, 256, Sin(var, 3276));
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_1C(struct Sprite *sprite)
+{
+ sprite->data[0] = 10;
+ sub_81804F8(sprite);
+ sprite->callback = sub_81804F8;
+}
+
+static void sub_81805B0(struct Sprite *sprite)
+{
+ s32 var = 0;
+ s16 index = 0;
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 100)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ index = (sprite->data[2] * 256) / 100;
+ var = (sprite->data[2] * 512) / 100;
+ var &= 0xFF;
+ sprite->pos2.y = -(Sin(index / 2, sprite->data[0] * 2));
+ HandleSetAffineData(sprite, 256, 256, Sin(var, 3276));
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_18(struct Sprite *sprite)
+{
+ sprite->data[0] = 5;
+ sub_81805B0(sprite);
+ sprite->callback = sub_81805B0;
+}
+
+static void pokemonanimfunc_1D(struct Sprite *sprite)
+{
+ s32 var;
+ s16 index = 0;
+
+ sub_817F70C(sprite);
+ var = 0;
+
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ if (sprite->data[2] > 100)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 toDiv = 100;
+
+ index = (sprite->data[2] * 256) / toDiv;
+ var = (sprite->data[2] * 512) / toDiv;
+ var &= 0xFF;
+ sprite->pos2.x = Sin(index, 8);
+ HandleSetAffineData(sprite, 256, 256, Sin(var, 3276));
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void sub_8180714(struct Sprite *sprite)
+{
+ s16 posY = 0;
+
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[3] = 0;
+ }
+
+ sub_817F70C(sprite);
+
+ if (sprite->data[2] > sprite->data[0] * 3)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale = Sin(sprite->data[4], 32) + 256;
+
+ if (sprite->data[2] > sprite->data[0] && sprite->data[2] < sprite->data[0] * 2)
+ sprite->data[3] += (128 / sprite->data[0]);
+ if (yScale > 256)
+ posY = (256 - yScale) / 8;
+
+ sprite->pos2.y = -(Sin(sprite->data[3], 10)) - posY;
+ HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0);
+ sprite->data[2]++;
+ sprite->data[4] = (sprite->data[4] + 128 / sprite->data[0]) & 0xFF;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_00(struct Sprite *sprite)
+{
+ sprite->data[0] = 16;
+ sub_8180714(sprite);
+ sprite->callback = sub_8180714;
+}
+
+static void sub_8180828(struct Sprite *sprite)
+{
+ s16 posY = 0;
+
+ if (sprite->data[2] > (128 / sprite->data[6]) * sprite->data[7])
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale = Sin(sprite->data[4], 32) + 256;
+
+ if (yScale > 256)
+ posY = (256 - yScale) / 8;
+
+ sprite->pos2.y = -(posY);
+ HandleSetAffineData(sprite, Sin(sprite->data[4], 48) + 256, yScale, 0);
+ sprite->data[2]++;
+ sprite->data[4] = (sprite->data[4] + sprite->data[6]) & 0xFF;
+ }
+}
+
+static void pokemonanimfunc_13(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 3;
+ sprite->data[6] = 8;
+ }
+
+ sub_8180828(sprite);
+}
+
+static const s8 sUnknown_0860AD8E[][8][3] =
+{
+ {
+ {0, 8, 8},
+ {8, -8, 12},
+ {-8, 8, 12},
+ {8, -8, 12},
+ {-8, 8, 12},
+ {8, -8, 12},
+ {-8, 0, 12},
+ {0, 0, 0}
+ },
+ {
+ {0, 8, 16},
+ {8, -8, 24},
+ {-8, 8, 24},
+ {8, -8, 24},
+ {-8, 8, 24},
+ {8, -8, 24},
+ {-8, 0, 24},
+ {0, 0, 0}
+ },
+};
+
+static void sub_8180900(struct Sprite *sprite)
+{
+ s16 var;
+ u8 structId;
+ s8 r9;
+ s16 r10;
+ s16 r7;
+ u32 arrId;
+
+ sub_817F70C(sprite);
+ structId = sprite->data[0];
+ var = sUnknown_03001240[structId].field_6;
+ r9 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][0];
+ r10 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9;
+ arrId = sUnknown_03001240[structId].field_8;
+ r7 = sprite->data[3];
+
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ }
+
+ if (sUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ u16 rotation;
+
+ sprite->pos2.y = -(Sin(r7 * 128 / sUnknown_0860AD8E[arrId][sprite->data[4]][2], 10));
+ sprite->pos2.x = (r10 * r7 / sUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9;
+
+ rotation = -(var * sprite->pos2.x) / 8;
+ HandleSetAffineData(sprite, 256, 256, rotation);
+
+ if (r7 == sUnknown_0860AD8E[arrId][sprite->data[4]][2])
+ {
+ sprite->data[4]++;
+ sprite->data[3] = 0;
+ }
+ else
+ {
+ sprite->data[3]++;
+ }
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_05(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_6 = 4096;
+ sUnknown_03001240[id].field_8 = sprite->data[6];
+ sub_8180900(sprite);
+ sprite->callback = sub_8180900;
+}
+
+static void pokemonanimfunc_20(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB(31, 22, 0));
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(31, 22, 0));
+ }
+
+ sprite->data[2] += 2;
+}
+
+static void pokemonanimfunc_21(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_RED);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_RED);
+ }
+
+ sprite->data[2] += 2;
+}
+
+static void pokemonanimfunc_22(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_BLUE);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLUE);
+ }
+
+ sprite->data[2] += 2;
+}
+
+static void pokemonanimfunc_23(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_YELLOW);
+ }
+
+ sprite->data[2] += 2;
+}
+
+static void pokemonanimfunc_24(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+
+ if (sprite->data[2] > 128)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB(24, 0, 24));
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(24, 0, 24));
+ }
+
+ sprite->data[2] += 2;
+}
+
+static void sub_8180CB4(struct Sprite *sprite);
+static void sub_8180CE8(struct Sprite *sprite);
+static void sub_8180D44(struct Sprite *sprite);
+static void sub_8180DC0(struct Sprite *sprite);
+static void sub_8180E28(struct Sprite *sprite);
+
+static void pokemonanimfunc_25(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->callback = sub_8180CB4;
+}
+
+static void sub_8180CB4(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (++sprite->pos2.x > 7)
+ {
+ sprite->pos2.x = 8;
+ sprite->data[7] = 2;
+ sprite->callback = sub_8180CE8;
+ }
+ sub_817F70C(sprite);
+}
+
+static void sub_8180CE8(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ sprite->pos2.x -= sprite->data[7];
+ sprite->data[7]++;
+ if (sprite->pos2.x <= 0)
+ {
+ s16 subResult;
+ u8 var = sprite->data[7];
+ sprite->data[6] = 0;
+ subResult = sprite->pos2.x;
+
+ do
+ {
+ subResult -= var;
+ sprite->data[6]++;
+ var++;
+ }
+ while (subResult > -8);
+
+ sprite->data[5] = 1;
+ sprite->callback = sub_8180D44;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180D44(struct Sprite *sprite)
+{
+ u8 rotation;
+
+ sub_817F70C(sprite);
+ sprite->pos2.x -= sprite->data[7];
+ sprite->data[7]++;
+ rotation = (sprite->data[5] * 6) / sprite->data[6];
+
+ if (++sprite->data[5] > sprite->data[6])
+ sprite->data[5] = sprite->data[6];
+
+ HandleSetAffineData(sprite, 256, 256, rotation * 256);
+
+ if (sprite->pos2.x < -8)
+ {
+ sprite->pos2.x = -8;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[2] = rotation;
+ sprite->callback = sub_8180DC0;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180DC0(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ if (sprite->data[3] > 11)
+ {
+ sprite->data[2] -= 2;
+ if (sprite->data[2] < 0)
+ sprite->data[2] = 0;
+
+ HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8);
+ if (sprite->data[2] == 0)
+ sprite->callback = sub_8180E28;
+ }
+ else
+ {
+ sprite->pos2.x += sprite->data[4];
+ sprite->data[4] *= -1;
+ sprite->data[3]++;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180E28(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ sprite->pos2.x += 2;
+ if (sprite->pos2.x > 0)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180E78(struct Sprite *sprite);
+static void sub_8180ED0(struct Sprite *sprite);
+static void sub_8180F2C(struct Sprite *sprite);
+
+static void pokemonanimfunc_26(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[3] = 0;
+ sprite->callback = sub_8180E78;
+}
+
+static void sub_8180E78(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x++;
+ sprite->pos2.y--;
+
+ if (sprite->pos2.x % 2 == 0 && sprite->data[3] <= 0)
+ sprite->data[3] = 10;
+ if (sprite->pos2.x > 7)
+ {
+ sprite->pos2.x = 8;
+ sprite->pos2.y = -8;
+ sprite->data[4] = 0;
+ sprite->callback = sub_8180ED0;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180ED0(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x = Cos(sprite->data[4], 16) - 8;
+ sprite->pos2.y = Sin(sprite->data[4], 16) - 8;
+
+ if (sprite->data[4] > 63)
+ {
+ sprite->data[2] = 160;
+ sprite->data[3] = 10;
+ sprite->callback = sub_8180F2C;
+ }
+ sprite->data[4] += 8;
+ if (sprite->data[4] > 64)
+ sprite->data[4] = 64;
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8180F2C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+
+ if (sprite->data[3] > 0)
+ {
+ sprite->data[3]--;
+ }
+ else
+ {
+ u32 rotation;
+
+ sprite->pos2.x = Cos(sprite->data[2], 5) - 4;
+ sprite->pos2.y = -(Sin(sprite->data[2], 5)) + 4;
+ sprite->data[2] -= 4;
+ rotation = sprite->data[2] - 32;
+ HandleSetAffineData(sprite, 256, 256, rotation * 512);
+
+ if (sprite->data[2] <= 32)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_27(struct Sprite *sprite)
+{
+ if (sprite->data[3] > 0)
+ {
+ sprite->data[3]--;
+ }
+ else
+ {
+ sprite->data[4] = (sprite->data[4] == 0) ? 1 : 0;
+ sprite->invisible = sprite->data[4];
+ if (++sprite->data[2] > 19)
+ {
+ sprite->invisible = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ sprite->data[3] = 2;
+ }
+}
+
+static void sub_8181024(struct Sprite *sprite);
+static void sub_8181068(struct Sprite *sprite);
+static void sub_81810C4(struct Sprite *sprite);
+
+static void pokemonanimfunc_28(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->callback = sub_8181024;
+}
+
+static void sub_8181024(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x--;
+ sprite->pos2.y++;
+
+ if (sprite->pos2.x <= -16)
+ {
+ sprite->pos2.x = -16;
+ sprite->pos2.y = 16;
+ sprite->callback = sub_8181068;
+ sprite->data[2] = 160;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181068(struct Sprite *sprite)
+{
+ u32 rotation;
+
+ sub_817F70C(sprite);
+ sprite->data[2] -= 4;
+ sprite->pos2.x = Cos(sprite->data[2], 22);
+ sprite->pos2.y = -(Sin(sprite->data[2], 22));
+ rotation = sprite->data[2] - 32;
+ HandleSetAffineData(sprite, 256, 256, rotation * 512);
+
+ if (sprite->data[2] <= 32)
+ sprite->callback = sub_81810C4;
+
+ sub_817F70C(sprite);
+}
+
+static void sub_81810C4(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x--;
+ sprite->pos2.y++;
+
+ if (sprite->pos2.x <= 0)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181110(struct Sprite *sprite);
+static void sub_8181144(struct Sprite *sprite);
+static void sub_81811A4(struct Sprite *sprite);
+
+static void pokemonanimfunc_29(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->callback = sub_8181110;
+}
+
+static void sub_8181110(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x++;
+ sprite->pos2.y--;
+
+ if (sprite->pos2.x > 15)
+ {
+ sprite->data[2] = 0;
+ sprite->callback = sub_8181144;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181144(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[2] += 16;
+
+ if (sprite->pos2.x <= -16)
+ {
+ sprite->pos2.x = -16;
+ sprite->pos2.y = 16;
+ sprite->data[2] = 0;
+ sprite->callback = sub_81811A4;
+ }
+ else
+ {
+ sprite->pos2.x -= 2;
+ sprite->pos2.y += 2;
+ }
+
+ HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8);
+ sub_817F70C(sprite);
+}
+
+static void sub_81811A4(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x++;
+ sprite->pos2.y--;;
+
+ if (sprite->pos2.x >= 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181214(struct Sprite *sprite);
+
+static void pokemonanimfunc_2A(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_2 = 2;
+ sub_8181214(sprite);
+ sprite->callback = sub_8181214;
+}
+
+static void sub_8181214(struct Sprite *sprite)
+{
+ if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ {
+ sUnknown_03001240[sprite->data[0]].field_0--;
+ }
+ else
+ {
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2]++;
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = sUnknown_03001240[sprite->data[0]].field_2;
+ sprite->data[3] = -1;
+ sprite->data[4] = -1;
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ }
+
+ sprite->pos2.x += (sprite->data[7] * 2 * sprite->data[3]);
+ sprite->pos2.y += (sprite->data[7] * sprite->data[4]);
+ sprite->data[6] += 8;
+ if (sprite->pos2.x <= -16 || sprite->pos2.x >= 16)
+ {
+ sprite->pos2.x = sprite->data[3] * 16;
+ sprite->data[3] *= -1;
+ sprite->data[5]++;
+ }
+ else if (sprite->pos2.y <= -16 || sprite->pos2.y >= 16)
+ {
+ sprite->pos2.y = sprite->data[4] * 16;
+ sprite->data[4] *= -1;
+ sprite->data[5]++;
+ }
+
+ if (sprite->data[5] > 5 && sprite->pos2.x <= 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+
+ HandleSetAffineData(sprite, 256, 256, sprite->data[6] << 8);
+ sub_817F70C(sprite);
+ }
+}
+
+static void sub_8181370(struct Sprite *sprite);
+
+static void pokemonanimfunc_2B(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
+ sprite->callback = sub_8181370;
+}
+
+static void sub_8181370(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[6] += 4;
+ sprite->pos2.x = -(Sin(sprite->data[6], 16));
+ sprite->pos2.y = -(Sin((sprite->data[6] * 2) & 0xFF, 8));
+ if (sprite->data[6] > 192 && sprite->data[7] == 1)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->data[7]++;
+ }
+ else if (sprite->data[6] > 64 && sprite->data[7] == 0)
+ {
+ HandleSetAffineData(sprite, -256, 256, 0);
+ sprite->data[7]++;
+ }
+
+ if (sprite->data[6] > 255)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_2C(struct Sprite *sprite)
+{
+ if (++sprite->data[2] == 1)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[6] = 0;
+ sprite->data[5] = 0;
+ sprite->data[4] = 0;
+ }
+
+ if (sUnknown_0860AA64[sprite->data[6]][1] == 0xFF)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ if (sprite->data[4] == 1)
+ {
+ if (sUnknown_0860AA64[sprite->data[6]][0] != 0)
+ BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW);
+ else
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
+
+ sprite->data[4] = 0;
+ }
+
+ if (sUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5])
+ {
+ sprite->data[4] = 1;
+ sprite->data[5] = 0;
+ sprite->data[6]++;
+ }
+ else
+ {
+ sprite->data[5]++;
+ }
+ }
+}
+
+static void sub_81814D4(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ sub_817F70C(sprite);
+ if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sprite->data[2] = 0;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+ else
+ {
+ s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8;
+ sprite->pos2.x = -(Sin(index, 10));
+ HandleSetAffineData(sprite, 256, 256, Sin(index, 3276));
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_2D(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_8 = 50;
+ sub_81814D4(sprite);
+ sprite->callback = sub_81814D4;
+}
+
+static void sub_81815D4(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ HandleStartAffineAnim(sprite);
+
+ sub_817F70C(sprite);
+ if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sprite->data[2] = 0;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+ else
+ {
+ s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8;
+ sprite->pos2.x = -(Sin(index, 10));
+ HandleSetAffineData(sprite, 256, 256, -(Sin(index, 3276)));
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_2E(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_8 = 50;
+ sub_81815D4(sprite);
+ sprite->callback = sub_81815D4;
+}
+
+static void sub_8181708(struct Sprite *sprite);
+static void sub_8181770(struct Sprite *sprite);
+static void sub_8181794(struct Sprite *sprite);
+
+static void pokemonanimfunc_2F(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[6] = -(14 * sprite->centerToCornerVecX / 10);
+ sprite->data[7] = 128;
+ sprite->callback = sub_8181708;
+}
+
+static void sub_8181708(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[7]--;
+ sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6];
+
+ sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match
+
+ HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8);
+ if (sprite->data[7] <= 120)
+ {
+ sprite->data[7] = 120;
+ sprite->data[3] = 0;
+ sprite->callback = sub_8181770;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181770(struct Sprite *sprite)
+{
+ if (sprite->data[3] == 20)
+ {
+ sprite->callback = sub_8181794;
+ sprite->data[3] = 0;
+ }
+
+ sprite->data[3]++;
+}
+
+static void sub_8181794(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[7] += 2;
+ sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6];
+
+ sprite->pos2.y = -(Sin(sprite->data[7], sprite->data[6] += 0)); // dummy += 0 is needed to match
+
+ HandleSetAffineData(sprite, 256, 256, (sprite->data[7] - 128) << 8);
+ if (sprite->data[7] >= 128)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->data[2] = 0;
+ sub_817F77C(sprite);
+ sprite->callback = pokemonanimfunc_10;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181810(struct Sprite *sprite)
+{
+ if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ {
+ sUnknown_03001240[sprite->data[0]].field_0--;
+ }
+ else
+ {
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
+ sprite->data[2] = 1;
+ }
+
+ if (sprite->data[5] == 0)
+ {
+ sprite->data[7] = Sin(sprite->data[4], 256);
+ sprite->pos2.y = Sin(sprite->data[4], 16);
+ sprite->data[6] = Sin(sprite->data[4], 32);
+ HandleSetAffineData(sprite, 256 - sprite->data[6], 256 + sprite->data[7], 0);
+ if (sprite->data[4] == 128)
+ {
+ sprite->data[4] = 0;
+ sprite->data[5] = 1;
+ }
+ }
+ else if (sprite->data[5] == 1)
+ {
+ sprite->data[7] = Sin(sprite->data[4], 32);
+ sprite->pos2.y = -(Sin(sprite->data[4], 8));
+ sprite->data[6] = Sin(sprite->data[4], 128);
+ HandleSetAffineData(sprite, 256 + sprite->data[6], 256 - sprite->data[7], 0);
+ if (sprite->data[4] == 128)
+ {
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
+ }
+ else
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ }
+ }
+
+ sprite->data[4] += sUnknown_03001240[sprite->data[0]].field_6;
+ }
+}
+
+static void pokemonanimfunc_30(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_6 = 4;
+ sub_8181810(sprite);
+ sprite->callback = sub_8181810;
+}
+
+static void pokemonanimfunc_31(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+ sub_817F70C(sprite);
+ if (counter > 512)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ switch (sprite->data[2] / 128)
+ {
+ case 0:
+ sprite->pos2.x = -(counter % 128 * 8) / 128;
+ break;
+ case 1:
+ sprite->pos2.x = (counter % 128 / 16) - 8;
+ break;
+ case 2:
+ sprite->pos2.x = (counter % 128 / 16);
+ break;
+ case 3:
+ sprite->pos2.x = -(counter % 128 * 8) / 128 + 8;
+ break;
+ }
+
+ sprite->pos2.y = -(Sin(counter % 128, 8));
+ }
+
+ sprite->data[2] += 12;
+ sub_817F70C(sprite);
+}
+
+static void sub_8181ABC(struct Sprite *sprite);
+static void sub_8181B4C(struct Sprite *sprite);
+static void sub_8181C2C(struct Sprite *sprite);
+
+static void pokemonanimfunc_32(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_8 = -1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[3] = 0;
+ sub_8181ABC(sprite);
+ sprite->callback = sub_8181ABC;
+}
+
+static void sub_8181ABC(struct Sprite *sprite)
+{
+ if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ {
+ sUnknown_03001240[sprite->data[0]].field_0--;
+ }
+ else
+ {
+ s32 counter;
+
+ sub_817F70C(sprite);
+ counter = sprite->data[2];
+ if (sprite->data[2] > 128)
+ {
+ sprite->data[2] = 0;
+ sprite->callback = sub_8181B4C;
+ }
+ else
+ {
+ s32 var = 8 * sUnknown_03001240[sprite->data[0]].field_8;
+ sprite->pos2.x = var * (counter % 128) / 128;
+ sprite->pos2.y = -(Sin(counter % 128, 8));
+ sprite->data[2] += 12;
+ }
+
+ sub_817F70C(sprite);
+ }
+}
+
+static void sub_8181B4C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 48)
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.y = 0;
+ sprite->data[2] = 0;
+ sprite->callback = sub_8181C2C;
+ }
+ else
+ {
+ s16 yDelta;
+ s16 yScale = Sin(sprite->data[4], 64) + 256;
+ if (sprite->data[2] >= 16 && sprite->data[2] <= 31)
+ {
+ sprite->data[3] += 8;
+ sprite->pos2.x -= sUnknown_03001240[sprite->data[0]].field_8;
+ }
+
+ yDelta = 0;
+ if (yScale > 256)
+ yDelta = (256 - yScale) / 8;
+
+ sprite->pos2.y = -(Sin(sprite->data[3], 20)) - yDelta;
+ HandleSetAffineData(sprite, 256 - Sin(sprite->data[4], 32), yScale, 0);
+ sprite->data[2]++;
+ sprite->data[4] += 8;
+ sprite->data[4] &= 0xFF;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181C2C(struct Sprite *sprite)
+{
+ s32 counter;
+
+ sub_817F70C(sprite);
+ counter = sprite->data[2];
+ if (counter > 128)
+ {
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ sprite->data[3] = 0;
+ sprite->data[2] = 0;
+ sprite->data[4] = 0;
+ sprite->callback = sub_8181ABC;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ register s32 var asm("r4") = sUnknown_03001240[sprite->data[0]].field_8;
+
+ sprite->pos2.x = (var << 3) * (counter % 128) / 128 - (sUnknown_03001240[sprite->data[0]].field_8 * 8);
+ sprite->pos2.y = -(Sin(counter % 128, 8));
+ }
+
+ sprite->data[2] += 12;
+ sub_817F70C(sprite);
+}
+
+static void sub_8181CE8(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ }
+
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 254)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ {
+ sUnknown_03001240[sprite->data[0]].field_4--;
+ sprite->data[2] = 0;
+ sprite->data[7] = 0;
+ }
+ else
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sub_817F70C(sprite);
+ }
+ else
+ {
+ u16 rotation;
+
+ sprite->pos2.x = -(Sin(sprite->data[7], 16));
+ rotation = Sin(sprite->data[7], 32);
+ HandleSetAffineData(sprite, 256, 256, rotation << 8);
+ sprite->data[7] += sUnknown_03001240[sprite->data[0]].field_6;
+ sub_817F70C(sprite);
+ }
+}
+
+static void pokemonanimfunc_33(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+ sUnknown_03001240[id].field_6 = 4;
+ sub_8181CE8(sprite);
+ sprite->callback = sub_8181CE8;
+}
+
+static void pokemonanimfunc_34(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ }
+
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 254)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sub_817F70C(sprite);
+ }
+ else
+ {
+ u16 rotation;
+
+ sprite->pos2.x = -(Sin(sprite->data[7], 16));
+ sprite->pos2.y = -(Sin(sprite->data[7] % 128, 16));
+ rotation = Sin(sprite->data[7], 32);
+ HandleSetAffineData(sprite, 256, 256, rotation << 8);
+ sprite->data[7] += 8;
+ sub_817F70C(sprite);
+ }
+}
+
+static void pokemonanimfunc_35(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[7] = 0;
+
+ if (sprite->data[2] == sprite->data[7])
+ {
+ sprite->data[7] = 0;
+ sprite->data[2]++;
+ sprite->invisible = 0;
+ }
+ else
+ {
+ sprite->data[7]++;
+ sprite->invisible = 1;
+ }
+
+ if (sprite->data[2] > 10)
+ {
+ sprite->invisible = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+}
+
+static void sub_8181F14(struct Sprite *sprite);
+static void sub_8181F50(struct Sprite *sprite);
+static void sub_8181FC0(struct Sprite *sprite);
+
+static void pokemonanimfunc_36(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 0;
+ sprite->callback = sub_8181F14;
+}
+
+static void sub_8181F14(struct Sprite *sprite)
+{
+ if (sprite->data[7] > 31)
+ {
+ sprite->data[7] = 32;
+ sprite->data[2] = 0;
+ sprite->callback = sub_8181F50;
+ }
+ else
+ {
+ sprite->data[7] += 4;
+ }
+
+ HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8);
+}
+
+static void sub_8181F50(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 512)
+ {
+ sprite->callback = sub_8181FC0;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ sprite->pos2.x = -(sprite->data[2] * 16) / 512;
+ sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4));
+ sprite->data[2] += 12;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8181FC0(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[7] -= 2;
+ if (sprite->data[7] < 0)
+ {
+ sprite->data[7] = 0;
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->pos2.x = -(Sin(sprite->data[7] * 2, 16));
+ }
+
+ HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8);
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_37(struct Sprite *sprite)
+{
+ u16 rotation;
+
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 255)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[7] = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[7] += 16;
+ sprite->pos2.x = -(Sin(sprite->data[7] % 128, 8));
+ sprite->pos2.y = -(Sin(sprite->data[7] % 128, 8));
+ }
+
+ rotation = Sin(sprite->data[7] % 128, 16);
+ HandleSetAffineData(sprite, 256, 256, rotation << 8);
+ sub_817F70C(sprite);
+}
+
+static void sub_81820FC(struct Sprite *sprite);
+static void sub_818216C(struct Sprite *sprite);
+static void sub_81821CC(struct Sprite *sprite);
+static void sub_8182248(struct Sprite *sprite);
+
+static void pokemonanimfunc_38(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 0;
+ sprite->data[4] = 0;
+ sprite->callback = sub_81820FC;
+}
+
+static void sub_81820FC(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 24)
+ {
+ if (++sprite->data[4] > 4)
+ {
+ sprite->data[4] = 0;
+ sprite->callback = sub_818216C;
+ }
+ }
+ else
+ {
+ sprite->data[7] += 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+static void sub_818216C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] > 32)
+ {
+ sprite->data[6] = 1;
+ sprite->callback = sub_81821CC;
+ }
+ else
+ {
+ sprite->data[7] += 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+static void sub_81821CC(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->data[7] += (sprite->data[6] * 4);
+ if (sprite->data[5] > 9)
+ {
+ sprite->data[7] = 32;
+ sprite->callback = sub_8182248;
+ }
+
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ if (sprite->data[7] <= 28 || sprite->data[7] >= 36)
+ {
+ sprite->data[6] *= -1;
+ sprite->data[5]++;
+ }
+
+ HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+static void sub_8182248(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[7] <= 0)
+ {
+ sprite->data[7] = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[7] -= 2;
+ sprite->pos2.x = Sin(sprite->data[7], 8);
+ sprite->pos2.y = -(Sin(sprite->data[7], 8));
+ }
+
+ HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_39(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 40)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign;
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ if ((sprite->data[2] % 4) / 2 == 0)
+ {
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 16) * sign;
+ sprite->pos2.y = -(sprite->pos2.x);
+ }
+ else
+ {
+ sprite->pos2.x = -(Sin((sprite->data[2] * 128 / 40) % 256, 16)) * sign;
+ sprite->pos2.y = sprite->pos2.x;
+ }
+ }
+
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_3A(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ sprite->data[7] = 0;
+ sprite->data[2]++;
+ }
+
+ if (sprite->data[6] > 0)
+ {
+ sprite->data[6]--;
+ if (sprite->data[5] != 3)
+ {
+ s16 scale = (8 * sprite->data[6]) / 20;
+ scale = Sin(sprite->data[7] - scale, 64);
+ HandleSetAffineData(sprite, 256 - scale, 256 - scale, 0);
+ }
+ }
+ else
+ {
+ s16 var;
+
+ if (sprite->data[5] == 3)
+ {
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 64;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ var = Cos(sprite->data[7], 64);
+ }
+ else
+ {
+ var = Sin(sprite->data[7], 64);
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[5] = 3;
+ sprite->data[6] = 10;
+ sprite->data[7] = 0;
+ }
+ else
+ {
+ if (var > 48 && sprite->data[5] == 1)
+ {
+ sprite->data[5] = 2;
+ sprite->data[6] = 20;
+ }
+ else if (var > 16 && sprite->data[5] == 0)
+ {
+ sprite->data[5] = 1;
+ sprite->data[6] = 20;
+ }
+ }
+ }
+
+ sprite->data[7] += 2;
+ HandleSetAffineData(sprite, 256 - var, 256 - var, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_3B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale;
+
+ sprite->pos2.y = Sin(sprite->data[7] % 256, 8);
+ sprite->data[7] += 8;
+ yScale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 256, yScale + 256, 0);
+ }
+}
+
+static void pokemonanimfunc_3C(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 256)
+ {
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 yScale;
+
+ sprite->pos2.y = Sin(sprite->data[7], 16);
+ sprite->data[7] += 4;
+ yScale = Sin((sprite->data[7] % 64) * 2, 128);
+ HandleSetAffineData(sprite, 256, yScale + 256, 0);
+ }
+}
+
+static void sub_81825F8(struct Sprite *sprite);
+static void sub_8182648(struct Sprite *sprite);
+static void sub_81826F8(struct Sprite *sprite);
+
+static void pokemonanimfunc_3D(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->callback = sub_81825F8;
+ sprite->data[7] = 0;
+}
+
+static void sub_81825F8(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 8;
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6] = 0;
+ sprite->callback = sub_8182648;
+ yScale = Sin(64, 128); // 128 * 1 = 128
+ }
+ else
+ {
+ yScale = Sin(sprite->data[7], 128);
+ }
+
+ HandleSetAffineData(sprite, 256, 256 + yScale, 0);
+}
+
+static void sub_8182648(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 4;
+ if (sprite->data[7] > 95)
+ {
+ yScale = Cos(0, 128); // 128 * (-1) = -128
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ else
+ {
+ s16 sign, index;
+
+ sprite->pos2.y = -(sprite->data[6] * 4) - Sin(sprite->data[7], 8);
+ if (sprite->data[7] > 63)
+ {
+ sign = -1;
+ index = sprite->data[7] - 64;
+ }
+ else
+ {
+ sign = 1;
+ index = 0;
+ }
+
+ yScale = Cos((index * 2) + sprite->data[7], 128) * sign;
+ }
+
+ HandleSetAffineData(sprite, 256, 256 + yScale, 0);
+ if (sprite->data[6] == 3)
+ {
+ sprite->data[7] = 0;
+ sprite->callback = sub_81826F8;
+ }
+}
+
+static void sub_81826F8(struct Sprite *sprite)
+{
+ s16 yScale;
+
+ sprite->data[7] += 8;
+ yScale = Cos(sprite->data[7], 128);
+ sprite->pos2.y = -(Cos(sprite->data[7], 12));
+ if (sprite->data[7] > 63)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ }
+
+ HandleSetAffineData(sprite, 256, 256 + yScale, 0);
+}
+
+static void sub_8182764(struct Sprite *sprite)
+{
+ if (sprite->data[7] > sprite->data[5])
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ }
+ else
+ {
+ s16 xScale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]);
+ sprite->data[7] += sprite->data[6];
+ xScale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 256 + xScale, 256, 0);
+ }
+}
+
+static void pokemonanimfunc_3E(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 512;
+ sprite->data[4] = 8;
+ }
+
+ sub_8182764(sprite);
+}
+
+static void sub_8182830(struct Sprite *sprite)
+{
+ if (sprite->data[7] > sprite->data[5])
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ }
+ else
+ {
+ s16 xScale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, sprite->data[4]);
+ sprite->data[7] += sprite->data[6];
+ xScale = Sin((sprite->data[7] % 64) * 2, 128);
+ HandleSetAffineData(sprite, 256 + xScale, 256, 0);
+ }
+}
+
+static void pokemonanimfunc_3F(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 4;
+ sprite->data[5] = 256;
+ sprite->data[4] = 16;
+ }
+
+ sub_8182830(sprite);
+}
+
+static void pokemonanimfunc_40(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = Sin(sprite->data[7] % 256, 8);
+ sprite->data[7] += 8;
+ scale = Sin(sprite->data[7] % 128, 96);
+ HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_41(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = -(Sin((sprite->data[7] % 256) / 2, 16));
+ sprite->data[7] += 8;
+ scale = -(Sin((sprite->data[7] % 256) / 2, 64));
+ HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_42(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ }
+
+ if (sprite->data[7] > 512)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->pos2.x = -(Sin(sprite->data[7] % 256 , 8));
+ sprite->data[7] += 8;
+ scale = Sin((sprite->data[7] % 256) / 2, 96);
+ HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_43(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 caseVar = (sprite->data[2] / 512) % 4;
+ switch (caseVar)
+ {
+ case 0:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = (sprite->data[2] % 512 / 32) - 16;
+ break;
+ case 2:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 3:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ }
+
+ sprite->pos2.y = -(Sin(sprite->data[2] % 128, 4));
+ sprite->data[2] += 24;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_44(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[6] = 0;
+ sprite->data[7] = 64;
+ sprite->data[2]++;
+ }
+
+ sprite->data[7] += 8;
+ if (sprite->data[6] == 4)
+ {
+ if (sprite->data[7] > 63)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ }
+ else
+ {
+ if (sprite->data[7] > 127)
+ {
+ sprite->data[7] = 0;
+ sprite->data[6]++;
+ }
+ }
+
+ switch (sprite->data[6])
+ {
+ case 1:
+ sprite->pos2.x = -(Cos(sprite->data[7], 8));
+ sprite->pos2.y = Sin(sprite->data[7], 8) - 8;
+ break;
+ case 2:
+ sprite->pos2.x = Sin(sprite->data[7] + 128, 8) + 8;
+ sprite->pos2.y = -(Cos(sprite->data[7], 8));
+ break;
+ case 3:
+ sprite->pos2.x = Cos(sprite->data[7], 8);
+ sprite->pos2.y = Sin(sprite->data[7] + 128, 8) + 8;
+ break;
+ case 0:
+ case 4:
+ sprite->pos2.x = Sin(sprite->data[7], 8) - 8;
+ sprite->pos2.y = Cos(sprite->data[7], 8);
+ break;
+ default:
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ break;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_45(struct Sprite *sprite)
+{
+ sprite->data[0] = 32;
+ sub_8180714(sprite);
+ sprite->callback = sub_8180714;
+}
+
+static void pokemonanimfunc_46(struct Sprite *sprite)
+{
+ sprite->data[0] = 80;
+ sub_817F8FC(sprite);
+ sprite->callback = sub_817F8FC;
+}
+
+static void pokemonanimfunc_47(struct Sprite *sprite)
+{
+ sprite->data[0] = 80;
+ sub_817F978(sprite);
+ sprite->callback = sub_817F978;
+}
+
+static void pokemonanimfunc_48(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 2048;
+ sUnknown_03001240[id].field_8 = sprite->data[6];
+ sub_8180900(sprite);
+ sprite->callback = sub_8180900;
+}
+
+static void pokemonanimfunc_49(struct Sprite *sprite)
+{
+ sprite->data[6] = 1;
+ pokemonanimfunc_05(sprite);
+}
+
+static void pokemonanimfunc_4A(struct Sprite *sprite)
+{
+ sprite->data[6] = 1;
+ pokemonanimfunc_48(sprite);
+}
+
+static void pokemonanimfunc_4B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ sprite->data[0] = 0;
+
+ if (sprite->data[0] <= 0)
+ {
+ sub_817FC20(sprite);
+ sprite->data[0] = 1;
+ }
+ else
+ {
+ sprite->data[0]--;
+ }
+}
+
+static void pokemonanimfunc_4C(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sprite->data[7] = 3;
+ sub_817FCDC(sprite);
+ sprite->callback = sub_817FCDC;
+}
+
+static void pokemonanimfunc_4D(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sub_817FD44(sprite);
+ sprite->callback = sub_817FD44;
+}
+
+static void pokemonanimfunc_4E(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 1024;
+ sUnknown_03001240[id].field_0 = 0;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_817FE30(sprite);
+ sprite->callback = sub_817FE30;
+}
+
+static void pokemonanimfunc_4F(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 512;
+ sUnknown_03001240[id].field_8 = 3;
+ sUnknown_03001240[id].field_2 = 12;
+ sub_817FFF0(sprite);
+ sprite->callback = sub_817FFF0;
+}
+
+static void pokemonanimfunc_50(struct Sprite *sprite)
+{
+ sprite->data[0] = 24;
+ sub_818031C(sprite);
+ sprite->callback = sub_818031C;
+}
+
+static void pokemonanimfunc_51(struct Sprite *sprite)
+{
+ sprite->data[0] = 5;
+ sub_81804F8(sprite);
+ sprite->callback = sub_81804F8;
+}
+
+static void pokemonanimfunc_52(struct Sprite *sprite)
+{
+ sprite->data[0] = 3;
+ sub_817F9F4(sprite);
+ sprite->callback = sub_817F9F4;
+}
+
+static void pokemonanimfunc_53(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_0 = 60;
+ sUnknown_03001240[id].field_8 = 30;
+ sub_817FF3C(sprite);
+ sprite->callback = sub_817FF3C;
+}
+
+static void pokemonanimfunc_54(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_2 = 1;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_8181214(sprite);
+ sprite->callback = sub_8181214;
+}
+
+static void pokemonanimfunc_55(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 4;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_8181810(sprite);
+ sprite->callback = sub_8181810;
+}
+
+static void pokemonanimfunc_56(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_8 = 1;
+ sUnknown_03001240[id].field_4 = 2;
+ HandleStartAffineAnim(sprite);
+ sprite->data[3] = 0;
+ sub_8181ABC(sprite);
+ sprite->callback = sub_8181ABC;
+}
+
+static void pokemonanimfunc_07(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 2;
+ sub_8181CE8(sprite);
+ sprite->callback = sub_8181CE8;
+}
+
+static void pokemonanimfunc_08(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 4;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_8181CE8(sprite);
+ sprite->callback = sub_8181CE8;
+}
+
+static void pokemonanimfunc_0B(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_8 = 100;
+ sub_81814D4(sprite);
+ sprite->callback = sub_81814D4;
+}
+
+static void pokemonanimfunc_0C(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_8 = 50;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_81814D4(sprite);
+ sprite->callback = sub_81814D4;
+}
+
+static void pokemonanimfunc_0D(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_8 = 100;
+ sub_81815D4(sprite);
+ sprite->callback = sub_81815D4;
+}
+
+static void pokemonanimfunc_0E(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_8 = 50;
+ sUnknown_03001240[id].field_4 = 2;
+ sub_81815D4(sprite);
+ sprite->callback = sub_81815D4;
+}
+
+static void sub_8183140(struct Sprite *sprite)
+{
+ s32 counter = sprite->data[2];
+ if (counter > 2304)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin((counter + 192) % 256, sprite->data[7]) + sprite->data[7];
+ }
+
+ sprite->data[2] += sprite->data[0];
+}
+
+static void pokemonanimfunc_57(struct Sprite *sprite)
+{
+ sprite->data[0] = 60;
+ sprite->data[7] = 3;
+ sub_8183140(sprite);
+ sprite->callback = sub_8183140;
+}
+
+static void pokemonanimfunc_58(struct Sprite *sprite)
+{
+ sprite->data[0] = 30;
+ sprite->data[7] = 3;
+ sub_8183140(sprite);
+ sprite->callback = sub_8183140;
+}
+
+static void pokemonanimfunc_59(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 divCase = (sprite->data[2] / 512) % 4;
+ switch (divCase)
+ {
+ case 0:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 2:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ case 3:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16;
+ break;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[2] % 128, 4);
+ sprite->data[2] += 24;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_81832C8(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2 = 0;
+
+ if (sprite->data[5] > sprite->data[6])
+ {
+ sprite->pos2.y = 0;
+ sprite->data[5] = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ if (sprite->data[4] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ u8 amplitude, cmpVal1, cmpVal2;
+ s16 xScale, yScale;
+
+ index2 = (sprite->data[5] * 128) / sprite->data[6];
+ cmpVal1 = sprite->data[6] / 4;
+ cmpVal2 = cmpVal1 * 3;
+ if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2)
+ {
+ sprite->data[7] += 51;
+ index1 = sprite->data[7] & 0xFF;
+ }
+
+ if (sprite->data[1] == 0)
+ xScale = -256 - Sin(index2, 16);
+ else
+ xScale = 256 + Sin(index2, 16);
+
+ amplitude = sprite->data[3];
+ yScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5);
+ SetAffineData(sprite, xScale, yScale, 0);
+ sprite->data[5]++;
+ }
+}
+
+static void pokemonanimfunc_5A(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 40;
+ sprite->data[3] = 40;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_81832C8(sprite);
+}
+
+static void sub_8183418(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2;
+
+ if (sprite->data[5] > sprite->data[6])
+ {
+ sprite->data[5] = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ if (sprite->data[4] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ u8 amplitude, cmpVal1, cmpVal2;
+ s16 xScale;
+
+ index2 = (sprite->data[5] * 128) / sprite->data[6];
+ cmpVal1 = sprite->data[6] / 4;
+ cmpVal2 = cmpVal1 * 3;
+ if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2)
+ {
+ sprite->data[7] += 51;
+ index1 = sprite->data[7] & 0xFF;
+ }
+
+ amplitude = sprite->data[3];
+
+ if (sprite->data[1] == 0)
+ xScale = -256 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2);
+ else
+ xScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2);
+
+ SetAffineData(sprite, xScale, 256, 0);
+ sprite->data[5]++;
+ }
+}
+
+static void pokemonanimfunc_5B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 40;
+ sprite->data[3] = 40;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_8183418(sprite);
+}
+
+static void sub_8183574(struct Sprite *sprite)
+{
+ u8 var6, var7;
+ u8 var8 = sprite->data[2];
+ u8 var9 = sprite->data[6];
+ u8 var5 = sUnknown_0860AA80[sprite->data[5]][0];
+ u8 var2 = var5;
+ if (var5 != 0xFF)
+ var5 = sprite->data[7];
+ else
+ var5 = 0xFF; // needed to match
+
+ var6 = sUnknown_0860AA80[sprite->data[5]][1];
+ var7 = 0;
+ if (var2 != 0xFE)
+ var7 = (var6 - var9) * var5 / var6;
+
+ if (var5 == 0xFF)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.y = Sin((var8 + 192) % 256, var7) + var7;
+ if (var9 == var6)
+ {
+ sprite->data[5]++;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ sprite->data[2] += sprite->data[0];
+ sprite->data[6]++;
+ }
+ }
+}
+
+static void pokemonanimfunc_5C(struct Sprite *sprite)
+{
+ sprite->data[0] = 40;
+ sprite->data[7] = 6;
+ sub_8183574(sprite);
+ sprite->callback = sub_8183574;
+}
+
+static void pokemonanimfunc_5D(struct Sprite *sprite)
+{
+ sprite->data[0] = 70;
+ sprite->data[7] = 6;
+ sub_817FCDC(sprite);
+ sprite->callback = sub_817FCDC;
+}
+
+static void pokemonanimfunc_5E(struct Sprite *sprite)
+{
+ sprite->data[0] = 20;
+ sub_817F8FC(sprite);
+ sprite->callback = sub_817F8FC;
+}
+
+static void pokemonanimfunc_5F(struct Sprite *sprite)
+{
+ if (sprite->data[2] > 40)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign;
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 9) * sign;
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_60(struct Sprite *sprite)
+{
+ if (sprite->data[2] > 40)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign;
+ if (!(sprite->data[2] & 1))
+ sign = 1;
+ else
+ sign = -1;
+
+ sprite->pos2.x = Sin((sprite->data[2] * 128 / 40) % 256, 12) * sign;
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_61(struct Sprite *sprite)
+{
+ sprite->data[0] = 70;
+ sprite->data[7] = 6;
+ sub_8183140(sprite);
+ sprite->callback = sub_8183140;
+}
+
+static void pokemonanimfunc_62(struct Sprite *sprite)
+{
+ sprite->data[0] = 24;
+ sprite->data[7] = 6;
+ sub_8183574(sprite);
+ sprite->callback = sub_8183574;
+}
+
+static void pokemonanimfunc_63(struct Sprite *sprite)
+{
+ sprite->data[0] = 56;
+ sprite->data[7] = 9;
+ sub_8183574(sprite);
+ sprite->callback = sub_8183574;
+}
+
+static void pokemonanimfunc_64(struct Sprite *sprite)
+{
+ u8 id = sprite->data[0] = sub_817F758();
+
+ sUnknown_03001240[id].field_6 = 1024;
+ sUnknown_03001240[id].field_8 = 6;
+ sUnknown_03001240[id].field_2 = 24;
+ sub_817FFF0(sprite);
+ sprite->callback = sub_817FFF0;
+}
+
+static void sub_81837DC(struct Sprite *sprite)
+{
+ s16 index1 = 0, index2 = 0;
+ if (sprite->data[5] > sprite->data[6])
+ {
+ sprite->pos2.y = 0;
+ sprite->data[5] = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ if (sprite->data[4] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ u8 amplitude, cmpVal1, cmpVal2;
+ s16 xScale, yScale;
+
+ index2 = (sprite->data[5] * 128) / sprite->data[6];
+ cmpVal1 = sprite->data[6] / 4;
+ cmpVal2 = cmpVal1 * 3;
+ if (sprite->data[5] >= cmpVal1 && sprite->data[5] < cmpVal2)
+ {
+ sprite->data[7] += 51;
+ index1 = sprite->data[7] & 0xFF;
+ }
+
+ amplitude = sprite->data[3];
+
+ if (sprite->data[1] == 0)
+ xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 256);
+ else
+ xScale = 256 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude);
+
+ yScale = 256 - Sin(index1, amplitude / 5) - Sin(index2, amplitude);
+ SetAffineData(sprite, xScale, yScale, 0);
+ sprite->data[5]++;
+ }
+}
+
+static void pokemonanimfunc_65(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 40;
+ sprite->data[3] = 40;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_81837DC(sprite);
+}
+
+static void pokemonanimfunc_66(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 divCase = (sprite->data[2] / 512) % 4;
+ switch (divCase)
+ {
+ case 0:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 2:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ case 3:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16;
+ break;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[2] % 128, 4);
+ sprite->data[2] += 48;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_67(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] > 2048)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->data[6] = 0;
+ }
+ else
+ {
+ s16 divCase = (sprite->data[2] / 512) % 4;
+ switch (divCase)
+ {
+ case 0:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32;
+ break;
+ case 2:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512;
+ break;
+ case 1:
+ sprite->pos2.x = -(sprite->data[2] % 512 * 16) / 512 + 16;
+ break;
+ case 3:
+ sprite->pos2.x = (sprite->data[2] % 512) / 32 - 16;
+ break;
+ }
+
+ sprite->pos2.y = Sin(sprite->data[2] % 96, 4);
+ sprite->data[2] += 64;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static const s8 sUnknown_0860ADBE[][3] =
+{
+// x y timer
+ {1, 1, 12},
+ {-2, 0, 12},
+ {1, -1, 12},
+ {0, 0, 0}
+};
+
+static void sub_8183B4C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ sprite->data[3] = 0;
+
+ if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2])
+ {
+ sprite->data[3]++;
+ sprite->data[2] = 0;
+ }
+
+ if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0)
+ {
+ if (--sprite->data[6] == 0)
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ else
+ sprite->data[2] = 0;
+ }
+ else
+ {
+ s32 amplitude = sprite->data[5];
+ sprite->pos2.x += (sUnknown_0860ADBE[sprite->data[3]][0] * amplitude);
+ sprite->pos2.y += (sUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it?
+ sprite->data[2]++;
+ sub_817F70C(sprite);
+ }
+}
+
+static void pokemonanimfunc_68(struct Sprite *sprite)
+{
+ sprite->data[5] = 1;
+ sprite->data[6] = 1;
+ sub_8183B4C(sprite);
+ sprite->callback = sub_8183B4C;
+}
+
+static void pokemonanimfunc_69(struct Sprite *sprite)
+{
+ sprite->data[5] = 2;
+ sprite->data[6] = 1;
+ sub_8183B4C(sprite);
+ sprite->callback = sub_8183B4C;
+}
+
+static void pokemonanimfunc_6A(struct Sprite *sprite)
+{
+ sprite->data[5] = 2;
+ sprite->data[6] = 2;
+ sub_8183B4C(sprite);
+ sprite->callback = sub_8183B4C;
+}
+
+static void sub_8183C6C(struct Sprite *sprite)
+{
+ if (sprite->data[7] > 255)
+ {
+ if (sprite->data[5] <= 1)
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ }
+ else
+ {
+ sprite->data[5]--;
+ sprite->data[7] = 0;
+ }
+ }
+ else
+ {
+ s16 scale;
+
+ sprite->data[7] += sprite->data[6];
+ if (sprite->data[7] > 256)
+ sprite->data[7] = 256;
+
+ scale = Sin(sprite->data[7] / 2, 64);
+ HandleSetAffineData(sprite, 256 - scale, 256 - scale, 0);
+ }
+}
+
+static void pokemonanimfunc_6B(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 4;
+ sprite->data[5] = 1;
+ }
+
+ sub_8183C6C(sprite);
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_6C(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 2;
+ }
+
+ sub_8183C6C(sprite);
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_6D(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 512;
+ sprite->data[4] = 16;
+ }
+
+ sub_8182764(sprite);
+}
+
+static void pokemonanimfunc_6E(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 4;
+ sprite->data[5] = 256;
+ sprite->data[4] = 16;
+ }
+
+ sub_8182764(sprite);
+}
+
+static void pokemonanimfunc_6F(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 512;
+ sprite->data[4] = 16;
+ }
+
+ sub_8182830(sprite);
+}
+
+static void pokemonanimfunc_70(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[2]++;
+ sprite->data[7] = 0;
+ sprite->data[6] = 8;
+ sprite->data[5] = 512;
+ sprite->data[4] = 8;
+ }
+
+ sub_8182830(sprite);
+}
+
+static void pokemonanimfunc_71(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 5;
+ sprite->data[6] = 8;
+ }
+
+ sub_8180828(sprite);
+}
+
+static void pokemonanimfunc_72(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 3;
+ sprite->data[6] = 4;
+ }
+
+ sub_8180828(sprite);
+}
+
+static void pokemonanimfunc_73(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 30;
+ sprite->data[3] = 60;
+ sprite->data[7] = 0;
+ }
+
+ sub_81832C8(sprite);
+}
+
+static void pokemonanimfunc_74(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 2;
+ sprite->data[6] = 20;
+ sprite->data[3] = 70;
+ sprite->data[7] = 0;
+ }
+
+ sub_81832C8(sprite);
+}
+
+static void pokemonanimfunc_75(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 2;
+ sprite->data[6] = 20;
+ sprite->data[3] = 70;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_8183418(sprite);
+}
+
+static void pokemonanimfunc_76(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 30;
+ sprite->data[3] = 60;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_8183418(sprite);
+}
+
+static void pokemonanimfunc_77(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 2;
+ sprite->data[6] = 20;
+ sprite->data[3] = 70;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_81837DC(sprite);
+}
+
+static void pokemonanimfunc_78(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ HandleStartAffineAnim(sprite);
+ sprite->data[4] = 1;
+ sprite->data[6] = 30;
+ sprite->data[3] = 60;
+ sprite->data[5] = 0;
+ sprite->data[7] = 0;
+ }
+
+ sub_81837DC(sprite);
+}
+
+static void sub_8183FA8(struct Sprite *sprite)
+{
+ if (sprite->data[7] > 255)
+ {
+ if (sprite->data[6] <= 1)
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->data[7] %= 256;
+ sprite->data[6]--;
+ }
+ }
+ else
+ {
+ sprite->pos2.x = -(Sin(sprite->data[7], sprite->data[5]));
+ sprite->pos2.y = Sin((sprite->data[7] + 192) % 256, sprite->data[4]);
+ if (sprite->pos2.y > 0)
+ sprite->pos2.y *= -1;
+
+ sprite->pos2.y += sprite->data[4];
+ sprite->data[7] += sprite->data[3];
+ }
+}
+
+static void pokemonanimfunc_79(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 1;
+ sprite->data[7] = 0;
+ sprite->data[5] = 12;
+ sprite->data[4] = 12;
+ sprite->data[3] = 4;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void pokemonanimfunc_7A(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 1;
+ sprite->data[7] = 0;
+ sprite->data[5] = 12;
+ sprite->data[4] = 12;
+ sprite->data[3] = 6;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void pokemonanimfunc_7B(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 2;
+ sprite->data[7] = 0;
+ sprite->data[5] = 12;
+ sprite->data[4] = 12;
+ sprite->data[3] = 8;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void sub_81840C4(struct Sprite *sprite)
+{
+ if (sprite->data[7] > 256)
+ {
+ if (sprite->data[6] <= sprite->data[4])
+ {
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[4]++;
+ sprite->data[7] = 0;
+ }
+
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ s16 posX;
+
+ if (sprite->data[7] > 159)
+ {
+ if (sprite->data[7] > 256)
+ sprite->data[7] = 256;
+
+ sprite->pos2.y = -(Sin(sprite->data[7] % 256, 8));
+ }
+ else if (sprite->data[7] > 95)
+ {
+ sprite->pos2.y = Sin(96, 6) - Sin((sprite->data[7] - 96) * 2, 4);
+ }
+ else
+ {
+ sprite->pos2.y = Sin(sprite->data[7], 6);
+ }
+
+ posX = -(Sin(sprite->data[7] / 2, sprite->data[5]));
+ if (sprite->data[4] % 2 == 0)
+ posX *= -1;
+
+ sprite->pos2.x = posX;
+ sprite->data[7] += sprite->data[3];
+ }
+}
+
+static void pokemonanimfunc_7C(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 2;
+ sprite->data[7] = 0;
+ sprite->data[5] = 16;
+ sprite->data[4] = 1;
+ sprite->data[3] = 4;
+ }
+
+ sub_81840C4(sprite);
+}
+
+static void pokemonanimfunc_7D(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 2;
+ sprite->data[7] = 0;
+ sprite->data[5] = 16;
+ sprite->data[4] = 1;
+ sprite->data[3] = 6;
+ }
+
+ sub_81840C4(sprite);
+}
+
+static void pokemonanimfunc_7E(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 3;
+ sprite->data[7] = 0;
+ sprite->data[5] = 16;
+ sprite->data[4] = 1;
+ sprite->data[3] = 8;
+ }
+
+ sub_81840C4(sprite);
+}
+
+static void pokemonanimfunc_7F(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 1;
+ sprite->data[7] = 0;
+ sprite->data[5] = 4;
+ sprite->data[4] = 6;
+ sprite->data[3] = 4;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void pokemonanimfunc_80(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 1;
+ sprite->data[7] = 0;
+ sprite->data[5] = 4;
+ sprite->data[4] = 6;
+ sprite->data[3] = 6;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void pokemonanimfunc_81(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[2] = 1;
+ sprite->data[6] = 2;
+ sprite->data[7] = 0;
+ sprite->data[5] = 4;
+ sprite->data[4] = 6;
+ sprite->data[3] = 8;
+ }
+
+ sub_8183FA8(sprite);
+}
+
+static void sub_8184290(struct Sprite *sprite)
+{
+ u16 index = Sin((sprite->data[2] * 128) / sprite->data[7], sprite->data[5]);
+ sprite->data[6] = -(index << 8);
+ sub_817F3F0(sprite, index, sprite->data[4], 0);
+ HandleSetAffineData(sprite, 256, 256, sprite->data[6]);
+}
+
+static void pokemonanimfunc_82(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 60;
+ sprite->data[5] = 8;
+ sprite->data[4] = -32;
+ sprite->data[3] = 1;
+ sprite->data[0] = 0;
+ }
+
+ if (sprite->data[2] > sprite->data[7])
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ if (sprite->data[3] <= sprite->data[0])
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ return;
+ }
+ else
+ {
+ sprite->data[2] = 0;
+ }
+ }
+ else
+ {
+ sub_8184290(sprite);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_83(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 90;
+ sprite->data[5] = 8;
+ sprite->data[4] = -32;
+ sprite->data[3] = 1;
+ sprite->data[0] = 0;
+ }
+
+ if (sprite->data[2] > sprite->data[7])
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ if (sprite->data[3] <= sprite->data[0])
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ return;
+ }
+ else
+ {
+ sprite->data[2] = 0;
+ }
+ }
+ else
+ {
+ sub_8184290(sprite);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_84(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 30;
+ sprite->data[5] = 8;
+ sprite->data[4] = -32;
+ sprite->data[3] = 2;
+ sprite->data[0] = 0;
+ }
+
+ if (sprite->data[2] > sprite->data[7])
+ {
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ sprite->data[0]++;
+ if (sprite->data[3] <= sprite->data[0])
+ {
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ return;
+ }
+ else
+ {
+ sprite->data[2] = 0;
+ }
+ }
+ else
+ {
+ sub_8184290(sprite);
+ }
+
+ sprite->data[2]++;
+}
+
+static void sub_8184468(struct Sprite *sprite)
+{
+ if (sprite->data[2] > sprite->data[7])
+ {
+ sprite->pos2.y = 0;
+ HandleSetAffineData(sprite, 256, 256, 0);
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ u8 posY_unsigned;
+ s8 posY_signed;
+ s32 posY;
+ s16 index = (u16)(sprite->data[2] % sprite->data[6] * 256) / sprite->data[6] % 256;
+ if (sprite->data[2] % 2 == 0)
+ {
+ sprite->data[4] = Sin(index, 32) + 256;
+ sprite->data[5] = Sin(index, 32) + 256;
+ posY_unsigned = Sin(index, 32);
+ posY_signed = posY_unsigned;
+ }
+ else
+ {
+ sprite->data[4] = Sin(index, 8) + 256;
+ sprite->data[5] = Sin(index, 8) + 256;
+ posY_unsigned = Sin(index, 8);
+ posY_signed = posY_unsigned;
+ }
+
+ posY = posY_signed;
+ if (posY < 0)
+ posY += 7;
+ sprite->pos2.y = (u32)(posY) >> 3;
+ HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0);
+ }
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_85(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->pos2.y += 2;
+ sprite->data[6] = 40;
+ sprite->data[7] = 80;
+ }
+
+ sub_8184468(sprite);
+}
+
+static void pokemonanimfunc_86(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->pos2.y += 2;
+ sprite->data[6] = 40;
+ sprite->data[7] = 40;
+ }
+
+ sub_8184468(sprite);
+}
+
+static void pokemonanimfunc_87(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ HandleStartAffineAnim(sprite);
+ sprite->pos2.y += 2;
+ sprite->data[6] = 80;
+ sprite->data[7] = 80;
+ }
+
+ sub_8184468(sprite);
+}
+
+static void sub_8184610(struct Sprite *sprite);
+static void sub_8184640(struct Sprite *sprite);
+static void sub_8184678(struct Sprite *sprite);
+static void sub_81846B8(struct Sprite *sprite);
+
+static void sub_81845D4(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x -= sprite->data[2];
+ if (sprite->pos2.x <= -sprite->data[6])
+ {
+ sprite->pos2.x = -sprite->data[6];
+ sprite->data[7] = 2;
+ sprite->callback = sub_8184610;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8184610(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x += sprite->data[7];
+ sprite->data[7]++;
+ if (sprite->pos2.x >= 0)
+ sprite->callback = sub_8184640;
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8184640(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x += sprite->data[7];
+ sprite->data[7]++;
+ if (sprite->pos2.x > sprite->data[6])
+ {
+ sprite->pos2.x = sprite->data[6];
+ sprite->callback = sub_8184678;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_8184678(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ if (sprite->data[3] >= sprite->data[5])
+ {
+ sprite->callback = sub_81846B8;
+ }
+ else
+ {
+ sprite->pos2.x += sprite->data[4];
+ sprite->data[4] *= -1;
+ sprite->data[3]++;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void sub_81846B8(struct Sprite *sprite)
+{
+ sub_817F70C(sprite);
+ sprite->pos2.x -= 2;
+ if (sprite->pos2.x <= 0)
+ {
+ sprite->pos2.x = 0;
+ sub_817F77C(sprite);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+
+ sub_817F70C(sprite);
+}
+
+static void pokemonanimfunc_88(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 4;
+ sprite->data[6] = 12;
+ sprite->data[5] = 16;
+ sprite->data[4] = 4;
+ sprite->data[3] = 0;
+ sprite->data[2] = 2;
+ sprite->callback = sub_81845D4;
+}
+
+static void pokemonanimfunc_89(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 2;
+ sprite->data[6] = 8;
+ sprite->data[5] = 12;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[2] = 1;
+ sprite->callback = sub_81845D4;
+}
+
+static void pokemonanimfunc_8A(struct Sprite *sprite)
+{
+ HandleStartAffineAnim(sprite);
+ sprite->data[7] = 0;
+ sprite->data[6] = 6;
+ sprite->data[5] = 6;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[2] = 1;
+ sprite->callback = sub_81845D4;
+}
+
+static void sub_8184770(struct Sprite *sprite)
+{
+ sprite->pos2.x = sprite->data[1];
+ if (sprite->data[0] > 1)
+ {
+ sprite->data[1] *= -1;
+ sprite->data[0] = 0;
+ }
+ else
+ {
+ sprite->data[0]++;
+ }
+}
+
+struct YellowBlendStruct
+{
+ u8 field_0;
+ u8 field_1;
+};
+
+static const struct YellowBlendStruct sUnknown_0860ADCC[] =
+{
+ {0, 1},
+ {1, 2},
+ {0, 15},
+ {1, 1},
+ {0, 15},
+ {1, 1},
+ {0, 15},
+ {1, 1},
+ {0, 1},
+ {1, 1},
+ {0, 1},
+ {1, 1},
+ {0, 1},
+ {1, 1},
+ {0, 1},
+ {1, 1},
+ {0, 1},
+ {1, 1},
+ {0, 1},
+ {0, 0xFF}
+};
+
+static const struct YellowBlendStruct sUnknown_0860AE1C[] =
+{
+ {0, 5},
+ {1, 1},
+ {0, 15},
+ {1, 4},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {1, 2},
+ {0, 2},
+ {0, 0xFF}
+};
+
+static const struct YellowBlendStruct sUnknown_0860AE54[] =
+{
+ {0, 1},
+ {1, 1},
+ {0, 20},
+ {1, 1},
+ {0, 20},
+ {1, 1},
+ {0, 20},
+ {1, 1},
+ {0, 1},
+ {0, 0xFF}
+};
+
+static const struct YellowBlendStruct *const sUnknown_0860AE7C[] =
+{
+ sUnknown_0860ADCC,
+ sUnknown_0860AE1C,
+ sUnknown_0860AE54
+};
+
+static void BackAnimBlendYellow(struct Sprite *sprite)
+{
+ const struct YellowBlendStruct *array = sUnknown_0860AE7C[sprite->data[3]];
+ sub_8184770(sprite);
+ if (array[sprite->data[6]].field_1 == 0xFF)
+ {
+ sprite->pos2.x = 0;
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ if (sprite->data[4] == 1)
+ {
+ if (array[sprite->data[6]].field_0 != 0)
+ BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW);
+ else
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
+
+ sprite->data[4] = 0;
+ }
+
+ if (array[sprite->data[6]].field_1 == sprite->data[5])
+ {
+ sprite->data[4] = 1;
+ sprite->data[5] = 0;
+ sprite->data[6]++;
+ }
+ else
+ {
+ sprite->data[5]++;
+ }
+ }
+}
+
+static void pokemonanimfunc_8B(struct Sprite *sprite)
+{
+ if (++sprite->data[2] == 1)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[6] = 0;
+ sprite->data[5] = 0;
+ sprite->data[4] = 0;
+ sprite->data[3] = 0;
+ }
+
+ BackAnimBlendYellow(sprite);
+}
+
+static void pokemonanimfunc_8C(struct Sprite *sprite)
+{
+ if (++sprite->data[2] == 1)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[6] = 0;
+ sprite->data[5] = 0;
+ sprite->data[4] = 0;
+ sprite->data[3] = 1;
+ }
+
+ BackAnimBlendYellow(sprite);
+}
+
+static void pokemonanimfunc_8D(struct Sprite *sprite)
+{
+ if (++sprite->data[2] == 1)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[6] = 0;
+ sprite->data[5] = 0;
+ sprite->data[4] = 0;
+ sprite->data[3] = 2;
+ }
+
+ BackAnimBlendYellow(sprite);
+}
+
+static void BackAnimBlend(struct Sprite *sprite)
+{
+ static const u16 sColors[] =
+ {
+ RGB_RED, RGB_GREEN, RGB_BLUE, RGB_BLACK
+ };
+
+ if (sprite->data[2] > 127)
+ {
+ BlendPalette(sprite->data[7], 0x10, 0, RGB_RED);
+ sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ }
+ else
+ {
+ sprite->data[6] = Sin(sprite->data[2], 12);
+ BlendPalette(sprite->data[7], 0x10, sprite->data[6], sColors[sprite->data[1]]);
+ }
+}
+
+static void sub_8184934(struct Sprite *sprite)
+{
+ if (sprite->data[3] < sprite->data[4])
+ {
+ sub_817F70C(sprite);
+ if (sprite->data[5] > sprite->data[0])
+ {
+ if (++sprite->data[3] < sprite->data[4])
+ sprite->data[5] = 0;
+
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ s8 sign = 1 - (sprite->data[3] % 2 * 2);
+ sprite->pos2.x = sign * Sin((sprite->data[5] * 384 / sprite->data[0]) % 256, 6);
+ sprite->data[5]++;
+ }
+
+ sub_817F70C(sprite);
+ }
+}
+
+static void pokemonanimfunc_8E(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 10;
+ sprite->data[5] = 0;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_8F(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 20;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_90(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 80;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 0;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_91(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 10;
+ sprite->data[5] = 0;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[1] = 1;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_92(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 20;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 1;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_93(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 80;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 1;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_94(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 10;
+ sprite->data[5] = 0;
+ sprite->data[4] = 2;
+ sprite->data[3] = 0;
+ sprite->data[1] = 2;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_95(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 20;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 2;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void pokemonanimfunc_96(struct Sprite *sprite)
+{
+ if (sprite->data[2] == 0)
+ {
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
+ sprite->data[0] = 80;
+ sprite->data[5] = 0;
+ sprite->data[4] = 1;
+ sprite->data[3] = 0;
+ sprite->data[1] = 2;
+ }
+
+ if (sprite->data[2] % 2 == 0)
+ BackAnimBlend(sprite);
+
+ if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
+ sub_8184934(sprite);
+
+ sprite->data[2]++;
+}
+
+static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite)
+{
+ if (sprite->animEnded)
+ sprite->callback = SpriteCallbackDummy;
+}
diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c
index ce8747395..25b9ccd53 100644
--- a/src/rayquaza_scene.c
+++ b/src/rayquaza_scene.c
@@ -1,37 +1,101 @@
#include "global.h"
+#include "rayquaza_scene.h"
#include "sprite.h"
#include "task.h"
#include "graphics.h"
#include "bg.h"
-
-struct UnkRayquazaStruct
-{
- u32 field_0;
- u32 field_4;
- u32 field_8;
-};
+#include "main.h"
+#include "malloc.h"
+#include "palette.h"
+#include "scanline_effect.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "gpu_regs.h"
+#include "decompress.h"
+#include "sound.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/rgb.h"
+#include "random.h"
+
+struct RaySceneStruct
+{
+ MainCallback callback;
+ u8 tilemapBuffers[4][0x800];
+ u16 field_2004; // set but unused
+ u8 animId;
+ bool8 onlyOneAnim;
+ s16 field_2008;
+ s16 field_200A;
+ u8 unusedFields[12]; // completely unused
+};
+
+// EWRAM vars
+static EWRAM_DATA struct RaySceneStruct *sRayScene = NULL;
// this file's functions
-void sub_81D7134(u8 taskId);
-void sub_81D7F4C(u8 taskId);
-void sub_81D84EC(u8 taskId);
-void sub_81D8980(u8 taskId);
-void sub_81D8DB4(u8 taskId);
-void sub_81D6800(u8 taskId);
-
-void sub_81D8260(struct Sprite *sprite);
-void sub_81D961C(struct Sprite *sprite);
+static void Task_DuoFightAnim(u8 taskId);
+static void Task_RayTakesFlightAnim(u8 taskId);
+static void Task_RayDescendsAnim(u8 taskId);
+static void Task_RayChargesAnim(u8 taskId);
+static void Task_RayChasesAwayAnim(u8 taskId);
+static void Task_HandleRayDescends(u8 taskId);
+static void Task_RayDescendsEnd(u8 taskId);
+static void Task_HandleRayCharges(u8 taskId);
+static void sub_81D8AD8(u8 taskId);
+static void sub_81D8B2C(u8 taskId);
+static void Task_RayChargesEnd(u8 taskId);
+static void Task_HandleRayChasesAway(u8 taskId);
+static void sub_81D8FB0(u8 taskId);
+static void sub_81D7228(u8 taskId);
+static void Task_HandleDuoFight(u8 taskId);
+static void sub_81D752C(u8 taskId);
+static void Task_DuoFightEnd(u8 taskId);
+static void Task_HandleRayTakesFlight(u8 taskId);
+static void sub_81D81A4(u8 taskId);
+static void Task_RayTakesFlightEnd(u8 taskId);
+static void sub_81D94D4(u8 taskId);
+static void sub_81D93D8(u8 taskId);
+static void Task_RayChasesAwayEnd(u8 taskId);
+static void sub_81D90A8(u8 taskId);
+static void sub_81D98B4(u8 taskId);
+static void Task_EndAfterFadeScreen(u8 taskId);
+static void CB2_InitRayquazaScene(void);
+static void CB2_RayquazaScene(void);
+static void sub_81D750C(void);
+static void sub_81D7438(void);
+static void sub_81D7480(void);
+static void sub_81D74C8(void);
+static void sub_81D8BB4(void);
+static void sub_81D6A20(struct Sprite *sprite);
+static void sub_81D6D20(struct Sprite *sprite);
+static void sub_81D7860(struct Sprite *sprite);
+static void sub_81D7D14(struct Sprite *sprite);
+static void sub_81D7700(struct Sprite *sprite);
+static void sub_81D7A60(struct Sprite *sprite);
+static void sub_81D874C(struct Sprite *sprite);
+static void sub_81D9338(struct Sprite *sprite);
+static void sub_81D9420(struct Sprite *sprite);
+static void sub_81D8260(struct Sprite *sprite);
+static void sub_81D961C(struct Sprite *sprite);
+static void sub_81D97E0(struct Sprite *sprite);
+static void sub_81D9528(struct Sprite *sprite);
+static u8 sub_81D7664(void);
+static u8 sub_81D78BC(void);
+static u8 sub_81D86CC(void);
+static void DuoFightEnd(u8 taskId, s8 palDelay);
+static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y);
// const rom data
-const TaskFunc gUnknown_0862A6A0[] =
+static const TaskFunc sTasksForAnimations[] =
{
- sub_81D7134,
- sub_81D7134,
- sub_81D7F4C,
- sub_81D84EC,
- sub_81D8980,
- sub_81D8DB4,
- sub_81D6800
+ Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT_PRE
+ Task_DuoFightAnim, // RAY_ANIM_DUO_FIGHT
+ Task_RayTakesFlightAnim, // RAY_ANIM_TAKES_FLIGHT
+ Task_RayDescendsAnim, // RAY_ANIM_DESCENDS
+ Task_RayChargesAnim, // RAY_ANIM_CHARGES
+ Task_RayChasesAwayAnim, // RAY_ANIM_CHACES_AWAY
+ Task_EndAfterFadeScreen // RAY_ANIM_END
};
static const struct OamData sOamData_862A6BC =
@@ -194,7 +258,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A724[] =
sSpriteAnim_862A710
};
-const struct SpriteTemplate gUnknown_0862A72C =
+static const struct SpriteTemplate sUnknown_0862A72C =
{
.tileTag = 30505,
.paletteTag = 30505,
@@ -216,7 +280,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A74C[] =
sSpriteAnim_862A744
};
-const struct SpriteTemplate gUnknown_0862A750 =
+static const struct SpriteTemplate sUnknown_0862A750 =
{
.tileTag = 30506,
.paletteTag = 30505,
@@ -238,7 +302,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A770[] =
sSpriteAnim_862A768
};
-const struct SpriteTemplate gUnknown_0862A774 =
+static const struct SpriteTemplate sUnknown_0862A774 =
{
.tileTag = 30507,
.paletteTag = 30505,
@@ -325,7 +389,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A7F8[] =
sSpriteAnim_862A7E4
};
-const struct SpriteTemplate gUnknown_0862A81C =
+static const struct SpriteTemplate sUnknown_0862A81C =
{
.tileTag = 30508,
.paletteTag = 30508,
@@ -350,7 +414,7 @@ static const union AnimCmd *const sSpriteAnimTable_862A848[] =
sSpriteAnim_862A834
};
-const struct SpriteTemplate gUnknown_0862A84C =
+static const struct SpriteTemplate sUnknown_0862A84C =
{
.tileTag = 30509,
.paletteTag = 30508,
@@ -361,7 +425,7 @@ const struct SpriteTemplate gUnknown_0862A84C =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862A864 =
+static const struct SpriteTemplate sUnknown_0862A864 =
{
.tileTag = 30510,
.paletteTag = 30508,
@@ -372,9 +436,14 @@ const struct SpriteTemplate gUnknown_0862A864 =
.callback = SpriteCallbackDummy,
};
-const struct UnkRayquazaStruct gUnknown_0862A87C = {0x4000014, 0xA2600001, 1};
+static const struct ScanlineEffectParams sUnknown_0862A87C =
+{
+ .dmaDest = (vu16 *)REG_ADDR_BG1HOFS,
+ .dmaControl = 0xA2600001,
+ .initState = 1
+};
-const struct BgTemplate gUnknown_0862A888[] =
+static const struct BgTemplate sUnknown_0862A888[] =
{
{
.bg = 0,
@@ -429,17 +498,17 @@ static const union AnimCmd *const sSpriteAnimTable_862A8BC[] =
sSpriteAnim_862A8A8
};
-const struct CompressedSpriteSheet gUnknown_0862A8C4 =
+static const struct CompressedSpriteSheet sUnknown_0862A8C4 =
{
gRaySceneGroudon_Gfx, 0x3000, 30505
};
-const struct CompressedSpritePalette gUnknown_0862A8CC =
+static const struct CompressedSpritePalette sUnknown_0862A8CC =
{
gRaySceneGroudon_Pal, 30505
};
-const struct SpriteTemplate gUnknown_0862A8D4 =
+static const struct SpriteTemplate sUnknown_0862A8D4 =
{
.tileTag = 30505,
.paletteTag = 30505,
@@ -461,12 +530,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A8F4[] =
sSpriteAnim_862A8EC
};
-const struct CompressedSpriteSheet gUnknown_0862A8F8 =
+static const struct CompressedSpriteSheet sUnknown_0862A8F8 =
{
gRaySceneGroudon2_Gfx, 0x200, 30506
};
-const struct SpriteTemplate gUnknown_0862A900 =
+static const struct SpriteTemplate sUnknown_0862A900 =
{
.tileTag = 30506,
.paletteTag = 30505,
@@ -488,12 +557,12 @@ static const union AnimCmd *const sSpriteAnimTable_862A920[] =
sSpriteAnim_862A918
};
-const struct CompressedSpriteSheet gUnknown_0862A924 =
+static const struct CompressedSpriteSheet sUnknown_0862A924 =
{
gRaySceneGroudon3_Gfx, 0x400, 30507
};
-const struct SpriteTemplate gUnknown_0862A92C =
+static const struct SpriteTemplate sUnknown_0862A92C =
{
.tileTag = 30507,
.paletteTag = 30505,
@@ -580,17 +649,17 @@ static const union AnimCmd *const sSpriteAnimTable_862A9B0[] =
sSpriteAnim_862A99C
};
-const struct CompressedSpriteSheet gUnknown_0862A9D4 =
+static const struct CompressedSpriteSheet sUnknown_0862A9D4 =
{
gRaySceneKyogre_Gfx, 0xF00, 30508
};
-const struct CompressedSpritePalette gUnknown_0862A9DC =
+static const struct CompressedSpritePalette sUnknown_0862A9DC =
{
gRaySceneKyogre_Pal, 30508
};
-const struct SpriteTemplate gUnknown_0862A9E4 =
+static const struct SpriteTemplate sUnknown_0862A9E4 =
{
.tileTag = 30508,
.paletteTag = 30508,
@@ -615,12 +684,12 @@ static const union AnimCmd *const sSpriteAnimTable_862AA10[] =
sSpriteAnim_862A9FC
};
-const struct CompressedSpriteSheet gUnknown_0862AA14 =
+static const struct CompressedSpriteSheet sUnknown_0862AA14 =
{
gRaySceneKyogre2_Gfx, 0xC0, 30509
};
-const struct SpriteTemplate gUnknown_0862AA1C =
+static const struct SpriteTemplate sUnknown_0862AA1C =
{
.tileTag = 30509,
.paletteTag = 30508,
@@ -631,12 +700,12 @@ const struct SpriteTemplate gUnknown_0862AA1C =
.callback = SpriteCallbackDummy,
};
-const struct CompressedSpriteSheet gUnknown_0862AA34 =
+static const struct CompressedSpriteSheet sUnknown_0862AA34 =
{
gRaySceneKyogre3_Gfx, 0x200, 30510
};
-const struct SpriteTemplate gUnknown_0862AA3C =
+static const struct SpriteTemplate sUnknown_0862AA3C =
{
.tileTag = 30510,
.paletteTag = 30508,
@@ -647,7 +716,7 @@ const struct SpriteTemplate gUnknown_0862AA3C =
.callback = SpriteCallbackDummy,
};
-const struct BgTemplate gUnknown_0862AA54[] =
+static const struct BgTemplate sUnknown_0862AA54[] =
{
{
.bg = 0,
@@ -702,17 +771,17 @@ static const union AffineAnimCmd *const sSpriteAffineAnimTable_862AA8C[] =
sSpriteAffineAnim_862AA6C
};
-const struct CompressedSpriteSheet gUnknown_0862AA90 =
+static const struct CompressedSpriteSheet sUnknown_0862AA90 =
{
gRaySceneSmoke_Gfx, 0x100, 30555
};
-const struct CompressedSpritePalette gUnknown_0862AA98 =
+static const struct CompressedSpritePalette sUnknown_0862AA98 =
{
gRaySceneSmoke_Pal, 30555
};
-const struct SpriteTemplate gUnknown_0862AAA0 =
+static const struct SpriteTemplate sUnknown_0862AAA0 =
{
.tileTag = 30555,
.paletteTag = 30555,
@@ -723,7 +792,7 @@ const struct SpriteTemplate gUnknown_0862AAA0 =
.callback = sub_81D8260,
};
-const s8 gUnknown_0862AAB8[][2] =
+static const s8 sUnknown_0862AAB8[][2] =
{
{-1, 5},
{-3, -4},
@@ -737,7 +806,7 @@ const s8 gUnknown_0862AAB8[][2] =
{9, 1}
};
-const struct BgTemplate gUnknown_0862AACC[] =
+static const struct BgTemplate sUnknown_0862AACC[] =
{
{
.bg = 0,
@@ -801,22 +870,22 @@ static const union AnimCmd *const sSpriteAnimTable_862AAF8[] =
sSpriteAnim_862AAEC
};
-const struct CompressedSpriteSheet gUnknown_0862AAFC =
+static const struct CompressedSpriteSheet sUnknown_0862AAFC =
{
gRaySceneRayquazaFly1_Gfx, 0x1000, 30556
};
-const struct CompressedSpriteSheet gUnknown_0862AB04 =
+static const struct CompressedSpriteSheet sUnknown_0862AB04 =
{
gRaySceneRayquazaTail_Gfx, 0x200, 30557
};
-const struct CompressedSpritePalette gUnknown_0862AB0C =
+static const struct CompressedSpritePalette sUnknown_0862AB0C =
{
gRaySceneRayquaza_Pal, 30556
};
-const struct SpriteTemplate gUnknown_0862AB14 =
+static const struct SpriteTemplate sUnknown_0862AB14 =
{
.tileTag = 30556,
.paletteTag = 30556,
@@ -827,7 +896,7 @@ const struct SpriteTemplate gUnknown_0862AB14 =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862AB2C =
+static const struct SpriteTemplate sUnknown_0862AB2C =
{
.tileTag = 30557,
.paletteTag = 30556,
@@ -838,7 +907,7 @@ const struct SpriteTemplate gUnknown_0862AB2C =
.callback = SpriteCallbackDummy,
};
-const struct BgTemplate gUnknown_0862AB44[] =
+static const struct BgTemplate sUnknown_0862AB44[] =
{
{
.bg = 0,
@@ -1015,57 +1084,57 @@ static const union AnimCmd *const sSpriteAnimTable_862AC24[] =
sSpriteAnim_862AC08
};
-const struct CompressedSpriteSheet gUnknown_0862AC28 =
+static const struct CompressedSpriteSheet sUnknown_0862AC28 =
{
gRaySceneGroudonLeft_Gfx, 0x1800, 30565
};
-const struct CompressedSpriteSheet gUnknown_0862AC30 =
+static const struct CompressedSpriteSheet sUnknown_0862AC30 =
{
gRaySceneGroudonTail_Gfx, 0x80, 30566
};
-const struct CompressedSpriteSheet gUnknown_0862AC38 =
+static const struct CompressedSpriteSheet sUnknown_0862AC38 =
{
gRaySceneKyogreRight_Gfx, 0x600, 30568
};
-const struct CompressedSpriteSheet gUnknown_0862AC40 =
+static const struct CompressedSpriteSheet sUnknown_0862AC40 =
{
gRaySceneRayquazaHover_Gfx, 0x2000, 30569
};
-const struct CompressedSpriteSheet gUnknown_0862AC48 =
+static const struct CompressedSpriteSheet sUnknown_0862AC48 =
{
gRaySceneRayquazaFlyIn_Gfx, 0x800, 30570
};
-const struct CompressedSpriteSheet gUnknown_0862AC50 =
+static const struct CompressedSpriteSheet sUnknown_0862AC50 =
{
gRaySceneSplash_Gfx, 0x300, 30571
};
-const struct CompressedSpritePalette gUnknown_0862AC58 =
+static const struct CompressedSpritePalette sUnknown_0862AC58 =
{
gRaySceneGroudonLeft_Pal, 30565
};
-const struct CompressedSpritePalette gUnknown_0862AC60 =
+static const struct CompressedSpritePalette sUnknown_0862AC60 =
{
gRaySceneKyogreRight_Pal, 30568
};
-const struct CompressedSpritePalette gUnknown_0862AC68 =
+static const struct CompressedSpritePalette sUnknown_0862AC68 =
{
gRaySceneRayquazaHover_Pal, 30569
};
-const struct CompressedSpritePalette gUnknown_0862AC70 =
+static const struct CompressedSpritePalette sUnknown_0862AC70 =
{
gRaySceneSplash_Pal, 30571
};
-const struct SpriteTemplate gUnknown_0862AC78 =
+static const struct SpriteTemplate sUnknown_0862AC78 =
{
.tileTag = 30565,
.paletteTag = 30565,
@@ -1076,7 +1145,7 @@ const struct SpriteTemplate gUnknown_0862AC78 =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862AC90 =
+static const struct SpriteTemplate sUnknown_0862AC90 =
{
.tileTag = 30566,
.paletteTag = 30565,
@@ -1087,7 +1156,7 @@ const struct SpriteTemplate gUnknown_0862AC90 =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862ACA8 =
+static const struct SpriteTemplate sUnknown_0862ACA8 =
{
.tileTag = 30568,
.paletteTag = 30568,
@@ -1098,7 +1167,7 @@ const struct SpriteTemplate gUnknown_0862ACA8 =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862ACC0 =
+static const struct SpriteTemplate sUnknown_0862ACC0 =
{
.tileTag = 30569,
.paletteTag = 30569,
@@ -1109,7 +1178,7 @@ const struct SpriteTemplate gUnknown_0862ACC0 =
.callback = sub_81D961C,
};
-const struct SpriteTemplate gUnknown_0862ACD8 =
+static const struct SpriteTemplate sUnknown_0862ACD8 =
{
.tileTag = 30570,
.paletteTag = 30569,
@@ -1120,7 +1189,7 @@ const struct SpriteTemplate gUnknown_0862ACD8 =
.callback = SpriteCallbackDummy,
};
-const struct SpriteTemplate gUnknown_0862ACF0 =
+static const struct SpriteTemplate sUnknown_0862ACF0 =
{
.tileTag = 30571,
.paletteTag = 30571,
@@ -1131,7 +1200,7 @@ const struct SpriteTemplate gUnknown_0862ACF0 =
.callback = SpriteCallbackDummy,
};
-const struct BgTemplate gUnknown_0862AD08[] =
+static const struct BgTemplate sUnknown_0862AD08[] =
{
{
.bg = 0,
@@ -1162,3 +1231,1702 @@ const struct BgTemplate gUnknown_0862AD08[] =
}
};
+// code
+void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void))
+{
+ sRayScene = AllocZeroed(sizeof(*sRayScene));
+ sRayScene->animId = animId;
+ sRayScene->callback = callback;
+ sRayScene->onlyOneAnim = onlyOneAnim;
+ SetMainCallback2(CB2_InitRayquazaScene);
+}
+
+static void CB2_InitRayquazaScene(void)
+{
+ SetVBlankHBlankCallbacksToNull();
+ clear_scheduled_bg_copies_to_vram();
+ ScanlineEffect_Stop();
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ FillPalette(0, 0xF0, 0x20);
+ CreateTask(sTasksForAnimations[sRayScene->animId], 0);
+ SetMainCallback2(CB2_RayquazaScene);
+}
+
+static void CB2_RayquazaScene(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB_RayquazaScene(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+static void Task_EndAfterFadeScreen(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ SetMainCallback2(sRayScene->callback);
+ Free(sRayScene);
+ DestroyTask(taskId);
+ }
+}
+
+static void Task_SetNextAnim(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ if (sRayScene->onlyOneAnim == TRUE)
+ {
+ gTasks[taskId].func = Task_EndAfterFadeScreen;
+ }
+ else
+ {
+ sRayScene->animId++;
+ sRayScene->field_2004 = 0;
+ gTasks[taskId].func = sTasksForAnimations[sRayScene->animId];
+ }
+ }
+}
+
+static void sub_81D68C8(void)
+{
+ SetGpuReg(REG_OFFSET_WININ, 0x3F);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0x1888);
+ gPlttBufferUnfaded[0] = 0;
+ gPlttBufferFaded[0] = 0;
+}
+
+static void sub_81D6904(void)
+{
+ SetGpuReg(REG_OFFSET_WININ, 0x3F);
+ SetGpuReg(REG_OFFSET_WINOUT, 0x3F);
+}
+
+static void Task_HandleDuoFightPre(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D750C();
+ if (!gPaletteFade.active)
+ {
+ s16 counter = data[0];
+ if (counter == 64)
+ {
+ sub_81D7438();
+ }
+ else if (counter == 144)
+ {
+ sub_81D7480();
+ }
+ else
+ {
+ switch (counter)
+ {
+ case 328:
+ DuoFightEnd(taskId, 0);
+ return;
+ case 148:
+ sub_81D74C8();
+ break;
+ }
+ }
+
+ data[0]++;
+ }
+}
+
+static u8 sub_81D6984(void)
+{
+ u8 spriteId;
+ s16 *data;
+
+ spriteId = CreateSprite(&sUnknown_0862A72C, 88, 72, 3);
+ gSprites[spriteId].callback = sub_81D6A20;
+ data = gSprites[spriteId].data;
+ data[0] = CreateSprite(&sUnknown_0862A72C, 56, 104, 3);
+ data[1] = CreateSprite(&sUnknown_0862A750, 75, 101, 0);
+ data[2] = CreateSprite(&sUnknown_0862A774, 109, 114, 1);
+ StartSpriteAnim(&gSprites[data[0]], 1);
+ return spriteId;
+}
+
+static void sub_81D6A20(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ data[5]++;
+ data[5] &= 0x1F;
+ if (data[5] == 0 && sprite->pos1.x != 72)
+ {
+ sprite->pos1.x--;
+ gSprites[sprite->data[0]].pos1.x--;
+ gSprites[data[1]].pos1.x--;
+ gSprites[data[2]].pos1.x--;
+ }
+
+ switch (sprite->animCmdIndex)
+ {
+ case 0:
+ gSprites[data[1]].pos2.x = 0;
+ gSprites[data[1]].pos2.y = 0;
+ gSprites[data[2]].pos2.x = 0;
+ gSprites[data[2]].pos2.y = 0;
+ break;
+ case 1:
+ case 3:
+ gSprites[data[1]].pos2.x = -1;
+ gSprites[data[1]].pos2.y = 0;
+ gSprites[data[2]].pos2.x = -1;
+ gSprites[data[2]].pos2.y = 0;
+ break;
+ case 2:
+ gSprites[data[1]].pos2.x = -1;
+ gSprites[data[1]].pos2.y = 1;
+ gSprites[data[2]].pos2.x = -2;
+ gSprites[data[2]].pos2.y = 1;
+ break;
+ }
+}
+
+static u8 sub_81D6B7C(void)
+{
+ u8 spriteId;
+ s16 *data;
+
+ spriteId = CreateSprite(&sUnknown_0862A81C, 136, 96, 1);
+ gSprites[spriteId].callback = sub_81D6D20;
+ data = gSprites[spriteId].data;
+
+ data[0] = CreateSprite(&sUnknown_0862A81C, 168, 96, 1) << 8;
+ data[0] |= CreateSprite(&sUnknown_0862A81C, 136, 112, 1);
+ data[1] = CreateSprite(&sUnknown_0862A81C, 168, 112, 1) << 8;
+ data[1] |= CreateSprite(&sUnknown_0862A81C, 136, 128, 1);
+ data[2] = CreateSprite(&sUnknown_0862A81C, 168, 128, 1) << 8;
+ data[2] |= CreateSprite(&sUnknown_0862A81C, 104, 128, 2);
+ data[3] = CreateSprite(&sUnknown_0862A81C, 136, 128, 2) << 8;
+ data[3] |= CreateSprite(&sUnknown_0862A81C, 184, 128, 0);
+ data[4] = CreateSprite(&sUnknown_0862A84C, 208, 132, 0) << 8;
+ data[4] |= CreateSprite(&sUnknown_0862A864, 200, 120, 1);
+
+ StartSpriteAnim(&gSprites[data[0] >> 8], 1);
+ StartSpriteAnim(&gSprites[data[0] & 0xFF], 2);
+ StartSpriteAnim(&gSprites[data[1] >> 8], 3);
+ StartSpriteAnim(&gSprites[data[1] & 0xFF], 4);
+ StartSpriteAnim(&gSprites[data[2] >> 8], 5);
+ StartSpriteAnim(&gSprites[data[2] & 0xFF], 6);
+ StartSpriteAnim(&gSprites[data[3] >> 8], 7);
+ StartSpriteAnim(&gSprites[data[3] & 0xFF], 8);
+
+ return spriteId;
+}
+
+static void sub_81D6D20(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ data[5]++;
+ data[5] &= 0x1F;
+ if (data[5] == 0 && sprite->pos1.x != 152)
+ {
+ sprite->pos1.x++;
+ gSprites[sprite->data[0] >> 8].pos1.x++;
+ gSprites[sprite->data[0] & 0xFF].pos1.x++;
+ gSprites[data[1] >> 8].pos1.x++;
+ gSprites[data[1] & 0xFF].pos1.x++;
+ gSprites[data[2] >> 8].pos1.x++;
+ gSprites[data[2] & 0xFF].pos1.x++;
+ gSprites[data[3] >> 8].pos1.x++;
+ gSprites[data[3] & 0xFF].pos1.x++;
+ gSprites[data[4] >> 8].pos1.x++;
+ gSprites[data[4] & 0xFF].pos1.x++;
+ }
+
+ switch (gSprites[data[2] & 0xFF].animCmdIndex)
+ {
+ case 0:
+ sprite->pos2.y = 0;
+ gSprites[data[0] >> 8].pos2.y = 0;
+ gSprites[data[0] & 0xFF].pos2.y = 0;
+ gSprites[data[1] >> 8].pos2.y = 0;
+ gSprites[data[1] & 0xFF].pos2.y = 0;
+ gSprites[data[2] >> 8].pos2.y = 0;
+ gSprites[data[2] & 0xFF].pos2.y = 0;
+ gSprites[data[3] >> 8].pos2.y = 0;
+ gSprites[data[3] & 0xFF].pos2.y = 0;
+ gSprites[data[4] >> 8].pos2.y = 0;
+ gSprites[data[4] & 0xFF].pos2.y = 0;
+ break;
+ case 1:
+ case 3:
+ sprite->pos2.y = 1;
+ gSprites[data[0] >> 8].pos2.y = 1;
+ gSprites[data[0] & 0xFF].pos2.y = 1;
+ gSprites[data[1] >> 8].pos2.y = 1;
+ gSprites[data[1] & 0xFF].pos2.y = 1;
+ gSprites[data[2] >> 8].pos2.y = 1;
+ gSprites[data[2] & 0xFF].pos2.y = 1;
+ gSprites[data[3] >> 8].pos2.y = 1;
+ gSprites[data[3] & 0xFF].pos2.y = 1;
+ gSprites[data[4] >> 8].pos2.y = 1;
+ gSprites[data[4] & 0xFF].pos2.y = 1;
+ break;
+ case 2:
+ sprite->pos2.y = 2;
+ gSprites[data[0] >> 8].pos2.y = 2;
+ gSprites[data[0] & 0xFF].pos2.y = 2;
+ gSprites[data[1] >> 8].pos2.y = 2;
+ gSprites[data[1] & 0xFF].pos2.y = 2;
+ gSprites[data[2] >> 8].pos2.y = 2;
+ gSprites[data[4] & 0xFF].pos2.y = 2;
+ break;
+ }
+}
+
+static void VBlankCB_DuoFight(void)
+{
+ VBlankCB_RayquazaScene();
+ ScanlineEffect_InitHBlankDmaTransfer();
+}
+
+static void sub_81D6FE0(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sUnknown_0862A888, ARRAY_COUNT(sUnknown_0862A888));
+ SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static void sub_81D706C(void)
+{
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0);
+ while (free_temp_tile_data_buffers_if_possible());
+
+ LZDecompressWram(gRaySceneClouds2_Tilemap, sRayScene->tilemapBuffers[0]);
+ LZDecompressWram(gRaySceneClouds1_Tilemap, sRayScene->tilemapBuffers[1]);
+ LZDecompressWram(gRaySceneClouds3_Tilemap, sRayScene->tilemapBuffers[2]);
+ LoadCompressedPalette(gRaySceneClouds_Pal, 0, 0x40);
+ LoadCompressedObjectPic(&sUnknown_0862A8C4);
+ LoadCompressedObjectPic(&sUnknown_0862A8F8);
+ LoadCompressedObjectPic(&sUnknown_0862A924);
+ LoadCompressedObjectPic(&sUnknown_0862A9D4);
+ LoadCompressedObjectPic(&sUnknown_0862AA14);
+ LoadCompressedObjectPic(&sUnknown_0862AA34);
+ LoadCompressedObjectPalette(&sUnknown_0862A8CC);
+ LoadCompressedObjectPalette(&sUnknown_0862A9DC);
+}
+
+static void Task_DuoFightAnim(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ ScanlineEffect_Clear();
+ sub_81D6FE0();
+ sub_81D706C();
+ CpuFastFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ ScanlineEffect_SetParams(sUnknown_0862A87C);
+ data[0] = 0;
+ data[1] = CreateTask(sub_81D7228, 0);
+ if (sRayScene->animId == RAY_ANIM_DUO_FIGHT_PRE)
+ {
+ data[2] = sub_81D6984();
+ data[3] = sub_81D6B7C();
+ gTasks[taskId].func = Task_HandleDuoFightPre;
+ }
+ else
+ {
+ data[2] = sub_81D7664();
+ data[3] = sub_81D78BC();
+ gTasks[taskId].func = Task_HandleDuoFight;
+ StopMapMusic();
+ }
+
+ BlendPalettes(-1, 0x10, 0);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ SetVBlankCallback(VBlankCB_DuoFight);
+ PlaySE(SE_T_OOAME);
+}
+
+static void sub_81D7228(u8 taskId)
+{
+ s16 i;
+ u16 *data = gTasks[taskId].data;
+
+ for (i = 24; i < 92; i++)
+ {
+ if (i <= 47)
+ {
+ gScanlineEffectRegBuffers[0][i] = data[0] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[0] >> 8;
+ }
+ else if (i <= 63)
+ {
+ gScanlineEffectRegBuffers[0][i] = data[1] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[1] >> 8;
+ }
+ else if (i <= 75)
+ {
+ gScanlineEffectRegBuffers[0][i] = data[2] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[2] >> 8;
+ }
+ else if (i <= 83)
+ {
+ gScanlineEffectRegBuffers[0][i] = data[3] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[3] >> 8;
+ }
+ else if (i <= 87)
+ {
+ gScanlineEffectRegBuffers[0][i] = data[4] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[4] >> 8;
+ }
+ else
+ {
+ gScanlineEffectRegBuffers[0][i] = data[5] >> 8;
+ gScanlineEffectRegBuffers[1][i] = data[5] >> 8;
+ }
+ }
+
+ if (sRayScene->animId == RAY_ANIM_DUO_FIGHT_PRE)
+ {
+ data[0] += 448;
+ data[1] += 384;
+ data[2] += 320;
+ data[3] += 256;
+ data[4] += 192;
+ data[5] += 128;
+ }
+ else
+ {
+ data[0] += 768;
+ data[1] += 640;
+ data[2] += 512;
+ data[3] += 384;
+ data[4] += 256;
+ data[5] += 128;
+ }
+}
+
+static void Task_HandleDuoFight(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D750C();
+ if (!gPaletteFade.active)
+ {
+ s16 counter = data[0];
+ if (counter == 32 || counter == 112)
+ {
+ sub_81D7438();
+ }
+ else if (counter == 216)
+ {
+ sub_81D7480();
+ }
+ else if (counter == 220)
+ {
+ sub_81D74C8();
+ }
+ else
+ {
+ switch (counter)
+ {
+ case 412:
+ DuoFightEnd(taskId, 2);
+ return;
+ case 380:
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND);
+ gTasks[data[1]].func = sub_81D752C;
+ gTasks[data[1]].data[0] = 0;
+ gTasks[data[1]].data[2] = data[2];
+ gTasks[data[1]].data[3] = data[3];
+ ScanlineEffect_Stop();
+ break;
+ }
+ }
+
+ data[0]++;
+ }
+}
+
+static void sub_81D7438(void)
+{
+ PlaySE(SE_T_KAMI);
+ sub_80A2C44(0x7FFF, 0, 0x10, 0, -1, 0, 0);
+ sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1);
+}
+
+static void sub_81D7480(void)
+{
+ PlaySE(SE_T_KAMI);
+ sub_80A2C44(0x7FFF, 0, 0x10, 0x10, -1, 0, 0);
+ sub_80A2C44(0xFFFF0000, 0, 0x10, 0x10, 0, 0, 1);
+}
+
+static void sub_81D74C8(void)
+{
+ sub_80A2C44(0x7FFF, 4, 0x10, 0, -1, 0, 0);
+ sub_80A2C44(0xFFFF0000, 4, 0x10, 0, 0, 0, 1);
+}
+
+static void sub_81D750C(void)
+{
+ ChangeBgX(2, 0x400, 1);
+ ChangeBgY(2, 0x800, 2);
+}
+
+static void sub_81D752C(u8 taskId)
+{
+ u16 bgY;
+ s16 *data = gTasks[taskId].data;
+ sub_81D7860(&gSprites[data[2]]);
+ sub_81D7D14(&gSprites[data[3]]);
+
+ bgY = GetBgY(1);
+ if (GetBgY(1) == 0 || bgY > 0x8000)
+ ChangeBgY(1, 0x400, 2);
+
+ if (data[0] != 16)
+ {
+ data[0]++;
+ SetGpuReg(REG_OFFSET_BLDALPHA, (data[0] << 8) | (16 - data[0]));
+ }
+}
+
+static void DuoFightEnd(u8 taskId, s8 palDelay)
+{
+ PlaySE(SE_T_OOAME_E);
+ BeginNormalPaletteFade(-1, palDelay, 0, 0x10, 0);
+ gTasks[taskId].func = Task_DuoFightEnd;
+}
+
+static void Task_DuoFightEnd(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D750C();
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(data[1]);
+ ChangeBgY(1, 0, 0);
+ SetVBlankCallback(NULL);
+ ScanlineEffect_Stop();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ data[0] = 0;
+ gTasks[taskId].func = Task_SetNextAnim;
+ }
+}
+
+static u8 sub_81D7664(void)
+{
+ u8 spriteId;
+ s16 *data;
+
+ spriteId = CreateSprite(&sUnknown_0862A8D4, 98, 72, 3);
+ gSprites[spriteId].callback = sub_81D7700;
+ data = gSprites[spriteId].data;
+ data[0] = CreateSprite(&sUnknown_0862A8D4, 66, 104, 3);
+ data[1] = CreateSprite(&sUnknown_0862A900, 85, 101, 0);
+ data[2] = CreateSprite(&sUnknown_0862A92C, 119, 114, 1);
+ StartSpriteAnim(&gSprites[data[0]], 1);
+ return spriteId;
+}
+
+static void sub_81D7700(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ data[5]++;
+ data[5] &= 0xF;
+ if (!(data[5] & 7) && sprite->pos1.x != 72)
+ {
+ sprite->pos1.x--;
+ gSprites[sprite->data[0]].pos1.x--;
+ gSprites[data[1]].pos1.x--;
+ gSprites[data[2]].pos1.x--;
+ }
+
+ switch (sprite->animCmdIndex)
+ {
+ case 0:
+ gSprites[data[1]].pos2.x = 0;
+ gSprites[data[1]].pos2.y = 0;
+ gSprites[data[2]].pos2.x = 0;
+ gSprites[data[2]].pos2.y = 0;
+ break;
+ case 1:
+ case 3:
+ gSprites[data[1]].pos2.x = -1;
+ gSprites[data[1]].pos2.y = 0;
+ gSprites[data[2]].pos2.x = -1;
+ gSprites[data[2]].pos2.y = 0;
+ break;
+ case 2:
+ gSprites[data[1]].pos2.x = -1;
+ gSprites[data[1]].pos2.y = 1;
+ gSprites[data[2]].pos2.x = -2;
+ gSprites[data[2]].pos2.y = 1;
+ break;
+ }
+}
+
+static void sub_81D7860(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ if (sprite->pos1.y <= 160)
+ {
+ sprite->pos1.y += 8;
+ gSprites[sprite->data[0]].pos1.y += 8;
+ gSprites[data[1]].pos1.y += 8;
+ gSprites[data[2]].pos1.y += 8;
+ }
+}
+
+static u8 sub_81D78BC(void)
+{
+ u8 spriteId;
+ s16 *data;
+
+ spriteId = CreateSprite(&sUnknown_0862A9E4, 126, 96, 1);
+ gSprites[spriteId].callback = sub_81D7A60;
+ data = gSprites[spriteId].data;
+
+ data[0] = CreateSprite(&sUnknown_0862A9E4, 158, 96, 1) << 8;
+ data[0] |= CreateSprite(&sUnknown_0862A9E4, 126, 112, 1);
+ data[1] = CreateSprite(&sUnknown_0862A9E4, 158, 112, 1) << 8;
+ data[1] |= CreateSprite(&sUnknown_0862A9E4, 126, 128, 1);
+ data[2] = CreateSprite(&sUnknown_0862A9E4, 158, 128, 1) << 8;
+ data[2] |= CreateSprite(&sUnknown_0862A9E4, 94, 128, 2);
+ data[3] = CreateSprite(&sUnknown_0862A9E4, 126, 128, 2) << 8;
+ data[3] |= CreateSprite(&sUnknown_0862A9E4, 174, 128, 0);
+ data[4] = CreateSprite(&sUnknown_0862AA1C, 198, 132, 0) << 8;
+ data[4] |= CreateSprite(&sUnknown_0862AA3C, 190, 120, 1);
+
+ StartSpriteAnim(&gSprites[data[0] >> 8], 1);
+ StartSpriteAnim(&gSprites[data[0] & 0xFF], 2);
+ StartSpriteAnim(&gSprites[data[1] >> 8], 3);
+ StartSpriteAnim(&gSprites[data[1] & 0xFF], 4);
+ StartSpriteAnim(&gSprites[data[2] >> 8], 5);
+ StartSpriteAnim(&gSprites[data[2] & 0xFF], 6);
+ StartSpriteAnim(&gSprites[data[3] >> 8], 7);
+ StartSpriteAnim(&gSprites[data[3] & 0xFF], 8);
+
+ return spriteId;
+}
+
+static void sub_81D7A60(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ data[5]++;
+ data[5] &= 0xF;
+ if (!(data[5] & 7) && sprite->pos1.x != 152)
+ {
+ sprite->pos1.x++;
+ gSprites[sprite->data[0] >> 8].pos1.x++;
+ gSprites[sprite->data[0] & 0xFF].pos1.x++;
+ gSprites[data[1] >> 8].pos1.x++;
+ gSprites[data[1] & 0xFF].pos1.x++;
+ gSprites[data[2] >> 8].pos1.x++;
+ gSprites[data[2] & 0xFF].pos1.x++;
+ gSprites[data[3] >> 8].pos1.x++;
+ gSprites[data[3] & 0xFF].pos1.x++;
+ gSprites[data[4] >> 8].pos1.x++;
+ gSprites[data[4] & 0xFF].pos1.x++;
+ }
+
+ switch (gSprites[data[2] & 0xFF].animCmdIndex)
+ {
+ case 0:
+ sprite->pos2.y = 0;
+ gSprites[data[0] >> 8].pos2.y = 0;
+ gSprites[data[0] & 0xFF].pos2.y = 0;
+ gSprites[data[1] >> 8].pos2.y = 0;
+ gSprites[data[1] & 0xFF].pos2.y = 0;
+ gSprites[data[2] >> 8].pos2.y = 0;
+ gSprites[data[2] & 0xFF].pos2.y = 0;
+ gSprites[data[3] >> 8].pos2.y = 0;
+ gSprites[data[3] & 0xFF].pos2.y = 0;
+ gSprites[data[4] >> 8].pos2.y = 0;
+ gSprites[data[4] & 0xFF].pos2.y = 0;
+ break;
+ case 1:
+ case 3:
+ sprite->pos2.y = 1;
+ gSprites[data[0] >> 8].pos2.y = 1;
+ gSprites[data[0] & 0xFF].pos2.y = 1;
+ gSprites[data[1] >> 8].pos2.y = 1;
+ gSprites[data[1] & 0xFF].pos2.y = 1;
+ gSprites[data[2] >> 8].pos2.y = 1;
+ gSprites[data[2] & 0xFF].pos2.y = 1;
+ gSprites[data[3] >> 8].pos2.y = 1;
+ gSprites[data[3] & 0xFF].pos2.y = 1;
+ gSprites[data[4] >> 8].pos2.y = 1;
+ gSprites[data[4] & 0xFF].pos2.y = 1;
+ break;
+ case 2:
+ sprite->pos2.y = 2;
+ gSprites[data[0] >> 8].pos2.y = 2;
+ gSprites[data[0] & 0xFF].pos2.y = 2;
+ gSprites[data[1] >> 8].pos2.y = 2;
+ gSprites[data[1] & 0xFF].pos2.y = 2;
+ gSprites[data[2] >> 8].pos2.y = 2;
+ gSprites[data[4] & 0xFF].pos2.y = 2;
+ break;
+ }
+}
+
+static void sub_81D7D14(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ if (sprite->pos1.y <= 160)
+ {
+ sprite->pos1.y += 8;
+ gSprites[sprite->data[0] >> 8].pos1.y += 8;
+ gSprites[sprite->data[0] & 0xFF].pos1.y += 8;
+ gSprites[data[1] >> 8].pos1.y += 8;
+ gSprites[data[1] & 0xFF].pos1.y += 8;
+ gSprites[data[2] >> 8].pos1.y += 8;
+ gSprites[data[2] & 0xFF].pos1.y += 8;
+ gSprites[data[3] >> 8].pos1.y += 8;
+ gSprites[data[3] & 0xFF].pos1.y += 8;
+ gSprites[data[4] >> 8].pos1.y += 8;
+ gSprites[data[4] & 0xFF].pos1.y += 8;
+ }
+}
+
+static void sub_81D7E10(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(1, sUnknown_0862AA54, ARRAY_COUNT(sUnknown_0862AA54));
+ SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static void sub_81D7E9C(void)
+{
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(0, gRaySceneClouds_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(1, gRaySceneOvercast_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(2, gRaySceneRayquaza_Gfx, 0, 0, 0);
+ while (free_temp_tile_data_buffers_if_possible());
+
+ LZDecompressWram(gRaySceneClouds2_Tilemap, sRayScene->tilemapBuffers[0]);
+ LZDecompressWram(gRaySceneOvercast_Tilemap, sRayScene->tilemapBuffers[1]);
+ LZDecompressWram(gRaySceneRayquaza_Tilemap, sRayScene->tilemapBuffers[2]);
+ LoadCompressedPalette(gRaySceneRayquaza_Pal, 0, 0x40);
+ LoadCompressedObjectPic(&sUnknown_0862AA90);
+ LoadCompressedObjectPalette(&sUnknown_0862AA98);
+}
+
+static void Task_RayTakesFlightAnim(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ PlayNewMapMusic(MUS_REKKUU_KOURIN);
+ sub_81D7E10();
+ sub_81D7E9C();
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x808);
+ BlendPalettes(-1, 0x10, 0);
+ SetVBlankCallback(VBlankCB_RayquazaScene);
+ CreateTask(sub_81D81A4, 0);
+ data[0] = 0;
+ data[1] = 0;
+ gTasks[taskId].func = Task_HandleRayTakesFlight;
+}
+
+static void Task_HandleRayTakesFlight(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ switch (data[0])
+ {
+ case 0:
+ if (data[1] == 8)
+ {
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ data[2] = 0;
+ data[3] = 30;
+ data[4] = 0;
+ data[5] = 7;
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 1:
+ data[2] += data[3];
+ data[4] += data[5];
+ if (data[3] > 3)
+ data[3] -= 3;
+ if (data[5] != 0)
+ data[5]--;
+ if (data[2] > 255)
+ {
+ data[2] = 256;
+ data[3] = 0;
+ data[6] = 12;
+ data[7] = -1;
+ data[1] = 0;
+ data[0]++;
+ }
+ SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32, data[2], data[2], 0);
+ break;
+ case 2:
+ data[1]++;
+ SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32 + (data[6] >> 2), data[2], data[2], 0);
+ data[6] += data[7];
+ if (data[6] == 12 || data[6] == -12)
+ {
+ data[7] *= -1;
+ if (data[1] > 295)
+ {
+ data[0]++;
+ BeginNormalPaletteFade(-1, 6, 0, 0x10, 0);
+ }
+ }
+ break;
+ case 3:
+ data[2] += 16;
+ SetBgAffine(2, 0x7800, 0x1800, 0x78, data[4] + 32, data[2], data[2], 0);
+ Task_RayTakesFlightEnd(taskId);
+ break;
+ }
+}
+
+static void Task_RayTakesFlightEnd(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gTasks[taskId].func = Task_SetNextAnim;
+ }
+}
+
+static void sub_81D81A4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if ((data[1] & 3) == 0)
+ {
+ u8 spriteId = CreateSprite(&sUnknown_0862AAA0,
+ (sUnknown_0862AAB8[data[0]][0] * 4) + 120,
+ (sUnknown_0862AAB8[data[0]][1] * 4) + 80,
+ 0);
+ gSprites[spriteId].data[0] = (s8)(data[0]);
+ gSprites[spriteId].oam.objMode = 1;
+ gSprites[spriteId].oam.affineMode = 3;
+ gSprites[spriteId].oam.priority = 2;
+ InitSpriteAffineAnim(&gSprites[spriteId]);
+ if (data[0] == 9)
+ {
+ DestroyTask(taskId);
+ return;
+ }
+ else
+ {
+ data[0]++;
+ }
+ }
+
+ data[1]++;
+}
+
+static void sub_81D8260(struct Sprite *sprite)
+{
+ if (sprite->data[1] == 0)
+ {
+ sprite->pos2.x = 0;
+ sprite->pos2.y = 0;
+ }
+ else
+ {
+ sprite->pos2.x += sUnknown_0862AAB8[sprite->data[0]][0];
+ sprite->pos2.y += sUnknown_0862AAB8[sprite->data[0]][1];
+ }
+
+ sprite->data[1]++;
+ sprite->data[1] &= 0xF;
+}
+
+static void sub_81D82B0(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sUnknown_0862AACC, ARRAY_COUNT(sUnknown_0862AACC));
+ SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]);
+ SetBgTilemapBuffer(3, sRayScene->tilemapBuffers[3]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ schedule_bg_copy_tilemap_to_vram(3);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static void sub_81D8358(void)
+{
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(0, gRaySceneRayquazaLight_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(1, gRaySceneOvercast2_Gfx, 0, 0, 0);
+ while (free_temp_tile_data_buffers_if_possible());
+
+ LZDecompressWram(gRaySceneRayquazaLight_Tilemap, sRayScene->tilemapBuffers[0]);
+ LZDecompressWram(gRaySceneOvercast2_Tilemap, sRayScene->tilemapBuffers[3]);
+ CpuFastFill16(0, sRayScene->tilemapBuffers[2], 0x800);
+ CpuFastCopy(sRayScene->tilemapBuffers[3], sRayScene->tilemapBuffers[1], 0x800);
+ CpuFastFill16(0, &sRayScene->tilemapBuffers[1][0x100], 0x340);
+
+ LoadCompressedPalette(gRaySceneOvercast2_Pal, 0, 0x40);
+ gPlttBufferUnfaded[0] = RGB_WHITE;
+ gPlttBufferFaded[0] = RGB_WHITE;
+ LoadCompressedObjectPic(&sUnknown_0862AAFC);
+ LoadCompressedObjectPic(&sUnknown_0862AB04);
+ LoadCompressedObjectPalette(&sUnknown_0862AB0C);
+}
+
+static void sub_81D844C(void)
+{
+ u16 VCOUNT = GetGpuReg(REG_OFFSET_VCOUNT);
+ if (VCOUNT >= 24 && VCOUNT <= 135 && VCOUNT - 24 <= sRayScene->field_2008)
+ REG_BLDALPHA = 0xD08;
+ else
+ REG_BLDALPHA = 0x1000;
+
+ if (VCOUNT == 0)
+ {
+ if (sRayScene->field_2008 <= 0x1FFF)
+ {
+ if (sRayScene->field_2008 <= 39)
+ sRayScene->field_2008 += 4;
+ else if (sRayScene->field_2008 <= 79)
+ sRayScene->field_2008 += 2;
+ else
+ sRayScene->field_2008 += 1;
+ }
+
+ sRayScene->field_200A++;
+ }
+}
+
+static void Task_RayDescendsAnim(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D82B0();
+ sub_81D8358();
+ SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000);
+ BlendPalettes(-1, 0x10, 0);
+ SetVBlankCallback(VBlankCB_RayquazaScene);
+ sRayScene->field_2008 = 0;
+ sRayScene->field_200A = 0;
+ data[0] = 0;
+ data[1] = 0;
+ data[2] = 0;
+ data[3] = 0;
+ data[4] = 0x1000;
+ gTasks[taskId].func = Task_HandleRayDescends;
+}
+
+static void Task_HandleRayDescends(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ switch (data[0])
+ {
+ case 0:
+ if (data[1] == 8)
+ {
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ if (data[1] == 10)
+ {
+ data[1] = 0;
+ data[0]++;
+ SetHBlankCallback(sub_81D844C);
+ EnableInterrupts(INTR_FLAG_HBLANK | INTR_FLAG_VBLANK);
+ }
+ else
+ {
+ data[1]++;
+ }
+ }
+ break;
+ case 2:
+ if (data[1] == 80)
+ {
+ data[1] = 0;
+ data[0]++;
+ sub_81D86CC();
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 3:
+ if (++data[1] == 368)
+ {
+ data[1] = 0;
+ data[0]++;
+ }
+ break;
+ case 4:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_RayDescendsEnd;
+ break;
+ }
+}
+
+static void Task_RayDescendsEnd(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ SetHBlankCallback(NULL);
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gTasks[taskId].func = Task_SetNextAnim;
+ }
+}
+
+static u8 sub_81D86CC(void)
+{
+ u8 spriteId = CreateSprite(&sUnknown_0862AB14, 160, 0, 0);
+ s16 *data = gSprites[spriteId].data;
+ data[0] = CreateSprite(&sUnknown_0862AB2C, 184, -48, 0);
+ gSprites[spriteId].callback = sub_81D874C;
+ gSprites[spriteId].oam.priority = 3;
+ gSprites[data[0]].oam.priority = 3;
+ return spriteId;
+}
+
+static void sub_81D874C(struct Sprite *sprite)
+{
+ s16 *data = sprite->data;
+ s16 counter = data[2];
+ if (counter == 0)
+ {
+ data[3] = 12;
+ data[4] = 8;
+ }
+ else if (counter == 256)
+ {
+ data[3] = 9;
+ data[4] = 7;
+ }
+ else if (counter == 268)
+ {
+ data[3] = 8;
+ data[4] = 6;
+ }
+ else if (counter == 280)
+ {
+ data[3] = 7;
+ data[4] = 5;
+ }
+ else if (counter == 292)
+ {
+ data[3] = 6;
+ data[4] = 4;
+ }
+ else if (counter == 304)
+ {
+ data[3] = 5;
+ data[4] = 3;
+ }
+ else if (counter == 320)
+ {
+ data[3] = 4;
+ data[4] = 2;
+ }
+
+ if (data[2] % data[3] == 0)
+ {
+ sprite->pos2.x--;
+ gSprites[data[0]].pos2.x--;
+ }
+ if (data[2] % data[4] == 0)
+ {
+ sprite->pos2.y++;
+ gSprites[data[0]].pos2.y++;
+ }
+
+ data[2]++;
+}
+
+static void sub_81D8828(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sUnknown_0862AB44, ARRAY_COUNT(sUnknown_0862AB44));
+ SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]);
+ SetBgTilemapBuffer(3, sRayScene->tilemapBuffers[3]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ schedule_bg_copy_tilemap_to_vram(3);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_WIN0_ON);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static void sub_81D88D0(void)
+{
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(1, gRaySceneRayquazaChase_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(2, gRaySceneChaseStreaks_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(3, gRaySceneChaseBg_Gfx, 0, 0, 0);
+ while (free_temp_tile_data_buffers_if_possible());
+
+ LZDecompressWram(gRayChaseRayquazaChase2_Tilemap, sRayScene->tilemapBuffers[0]);
+ LZDecompressWram(gRayChaseRayquazaChase_Tilemap, sRayScene->tilemapBuffers[1]);
+ LZDecompressWram(gRaySceneChaseStreaks_Tilemap, sRayScene->tilemapBuffers[2]);
+ LZDecompressWram(gRaySceneChaseBg_Tilemap, sRayScene->tilemapBuffers[3]);
+ LoadCompressedPalette(gRaySceneChase_Pal, 0, 0x80);
+}
+
+static void Task_RayChargesAnim(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D8828();
+ sub_81D88D0();
+ sub_81D68C8();
+ BlendPalettes(-1, 0x10, 0);
+ SetVBlankCallback(VBlankCB_RayquazaScene);
+ data[0] = 0;
+ data[1] = 0;
+ data[2] = CreateTask(sub_81D8AD8, 0);
+ gTasks[taskId].func = Task_HandleRayCharges;
+}
+
+static void Task_HandleRayCharges(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D8BB4();
+ if ((data[3] & 7) == 0 && data[0] <= 1 && data[1] <= 89)
+ PlaySE(SE_OP_BASYU);
+
+ data[3]++;
+ switch (data[0])
+ {
+ case 0:
+ if (data[1] == 8)
+ {
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 1:
+ if (data[1] == 127)
+ {
+ data[1] = 0;
+ data[0]++;
+ gTasks[data[2]].func = sub_81D8B2C;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 2:
+ if (data[1] == 12)
+ {
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 3:
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_RayChargesEnd;
+ break;
+ }
+}
+
+static void sub_81D8AD8(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if ((data[15] & 3) == 0)
+ {
+ ChangeBgX(1, (Random() % 8 - 4) << 8, 0);
+ ChangeBgY(1, (Random() % 8 - 4) << 8, 0);
+ }
+
+ data[15]++;
+}
+
+static void sub_81D8B2C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (data[0] == 0)
+ {
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ data[0]++;
+ data[1] = 10;
+ data[2] = -1;
+ }
+ else if (data[0] == 1)
+ {
+ ChangeBgX(1, data[1] << 8, 2);
+ ChangeBgY(1, data[1] << 8, 1);
+ data[1] += data[2];
+ if (data[1] == -10)
+ data[2] *= -1;
+ }
+}
+
+static void sub_81D8BB4(void)
+{
+ ChangeBgX(2, 0x400, 2);
+ ChangeBgY(2, 0x400, 1);
+ ChangeBgX(0, 0x800, 2);
+ ChangeBgY(0, 0x800, 1);
+}
+
+static void Task_RayChargesEnd(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D8BB4();
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ sub_81D6904();
+ DestroyTask(data[2]);
+ gTasks[taskId].func = Task_SetNextAnim;
+ }
+}
+
+static void sub_81D8C38(void)
+{
+ ResetVramOamAndBgCntRegs();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(1, sUnknown_0862AD08, ARRAY_COUNT(sUnknown_0862AD08));
+ SetBgTilemapBuffer(0, sRayScene->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, sRayScene->tilemapBuffers[1]);
+ SetBgTilemapBuffer(2, sRayScene->tilemapBuffers[2]);
+ ResetAllBgsCoordinates();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP | DISPCNT_WIN0_ON);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+}
+
+static void sub_81D8CC4(void)
+{
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(2, gRaySceneHushRing_Gfx, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(0, gRaySceneHushBg_Gfx, 0, 0, 0);
+ while (free_temp_tile_data_buffers_if_possible());
+
+ LZDecompressWram(gRaySceneHushRing_Tilemap, sRayScene->tilemapBuffers[1]);
+ LZDecompressWram(gRaySceneHushBg_Tilemap, sRayScene->tilemapBuffers[0]);
+ LZDecompressWram(gRaySceneHushRing_Map, sRayScene->tilemapBuffers[2]);
+ LoadCompressedPalette(gRaySceneHushBg_Pal, 0, 0x60);
+ LoadCompressedObjectPic(&sUnknown_0862AC28);
+ LoadCompressedObjectPic(&sUnknown_0862AC30);
+ LoadCompressedObjectPic(&sUnknown_0862AC38);
+ LoadCompressedObjectPic(&sUnknown_0862AC40);
+ LoadCompressedObjectPic(&sUnknown_0862AC48);
+ LoadCompressedObjectPic(&sUnknown_0862AC50);
+ LoadCompressedObjectPalette(&sUnknown_0862AC58);
+ LoadCompressedObjectPalette(&sUnknown_0862AC60);
+ LoadCompressedObjectPalette(&sUnknown_0862AC68);
+ LoadCompressedObjectPalette(&sUnknown_0862AC70);
+}
+
+static void Task_RayChasesAwayAnim(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ sub_81D8C38();
+ sub_81D8CC4();
+ sub_81D68C8();
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_EFFECT_BLEND);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0xE09);
+ BlendPalettes(-1, 0x10, 0);
+ SetVBlankCallback(VBlankCB_RayquazaScene);
+ data[0] = 0;
+ data[1] = 0;
+ gTasks[taskId].func = Task_HandleRayChasesAway;
+ data[2] = CreateTask(sub_81D8FB0, 0);
+ gTasks[data[2]].data[0] = 0;
+ gTasks[data[2]].data[1] = 0;
+ gTasks[data[2]].data[2] = 0;
+ gTasks[data[2]].data[3] = 1;
+ gTasks[data[2]].data[4] = 1;
+}
+
+static void Task_HandleRayChasesAway(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ switch (data[0])
+ {
+ case 0:
+ if (data[1] == 8)
+ {
+ sub_81D90A8(taskId);
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ break;
+ case 1:
+ if (gSprites[data[5]].callback == sub_81D97E0)
+ {
+ if (data[1] == 64)
+ {
+ sub_81D94D4(taskId);
+ sub_81D93D8(taskId);
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ }
+ }
+ break;
+ case 2:
+ if (data[1] == 448)
+ {
+ data[1] = 0;
+ data[0]++;
+ }
+ else
+ {
+ data[1]++;
+ if (data[1] % 144 == 0)
+ {
+ sub_80A2C44(0xFFFE, 0, 0x10, 0, -1, 0, 0);
+ sub_80A2C44(0xFFFF0000, 0, 0x10, 0, 0, 0, 1);
+ }
+ }
+ break;
+ case 3:
+ BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
+ gTasks[taskId].func = Task_RayChasesAwayEnd;
+ break;
+ }
+}
+
+static void sub_81D8FB0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if ((data[0] & 0xF) == 0)
+ {
+ SetGpuReg(REG_OFFSET_BLDALPHA, ((data[1] + 14) << 8 & 0x1F00) | ((data[2] + 9) & 0xF));
+ data[1] -= data[3];
+ data[2] += data[4];
+ if (data[1] == -3 || data[1] == 0)
+ data[3] *= -1;
+ if (data[2] == 3 || data[2] == 0)
+ data[4] *= -1;
+ }
+
+ data[0]++;
+}
+
+static void Task_RayChasesAwayEnd(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ StopMapMusic();
+ if (data[1] == 0)
+ {
+ SetVBlankCallback(NULL);
+ sub_81D6904();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ DestroyTask(data[2]);
+ }
+
+ if (data[1] == 32)
+ {
+ data[1] = 0;
+ gTasks[taskId].func = Task_SetNextAnim;
+ }
+ else
+ {
+ data[1]++;
+ }
+ }
+}
+
+static void sub_81D90A8(u8 taskId)
+{
+ s16 *taskData, *spriteData;
+
+ taskData = gTasks[taskId].data;
+
+ taskData[3] = CreateSprite(&sUnknown_0862AC78, 64, 120, 0);
+ spriteData = gSprites[taskData[3]].data;
+ spriteData[0] = CreateSprite(&sUnknown_0862AC90, 16, 130, 0);
+ gSprites[taskData[3]].oam.priority = 1;
+ gSprites[spriteData[0]].oam.priority = 1;
+
+ taskData[4] = CreateSprite(&sUnknown_0862ACA8, 160, 128, 1);
+ spriteData = gSprites[taskData[4]].data;
+ spriteData[0] = CreateSprite(&sUnknown_0862ACA8, 192, 128, 1);
+ spriteData[1] = CreateSprite(&sUnknown_0862ACA8, 224, 128, 1);
+ gSprites[taskData[4]].oam.priority = 1;
+ gSprites[spriteData[0]].oam.priority = 1;
+ gSprites[spriteData[1]].oam.priority = 1;
+ StartSpriteAnim(&gSprites[spriteData[0]], 1);
+ StartSpriteAnim(&gSprites[spriteData[1]], 2);
+
+ taskData[5] = CreateSprite(&sUnknown_0862ACC0, 120, -65, 0);
+ spriteData = gSprites[taskData[5]].data;
+ spriteData[0] = CreateSprite(&sUnknown_0862ACD8, 120, -113, 0);
+ gSprites[taskData[5]].oam.priority = 1;
+ gSprites[spriteData[0]].oam.priority = 1;
+}
+
+static void sub_81D9274(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ gSprites[taskData[3]].callback = sub_81D9338;
+ gSprites[taskData[3]].data[4] = 0;
+ gSprites[taskData[3]].data[5] = 0;
+ gSprites[taskData[3]].data[6] = 4;
+ gSprites[taskData[3]].data[7] = 0;
+
+ gSprites[taskData[4]].callback = sub_81D9338;
+ gSprites[taskData[4]].data[4] = 0;
+ gSprites[taskData[4]].data[5] = 0;
+ gSprites[taskData[4]].data[6] = 4;
+ gSprites[taskData[4]].data[7] = 1;
+}
+
+static void sub_81D9338(struct Sprite *sprite)
+{
+ if ((sprite->data[4] & 7) == 0)
+ {
+ if (sprite->data[7] == 0)
+ {
+ sprite->pos1.x -= sprite->data[6];
+ gSprites[sprite->data[0]].pos1.x -= sprite->data[6];
+ }
+ else
+ {
+ sprite->pos1.x += sprite->data[6];
+ gSprites[sprite->data[0]].pos1.x += sprite->data[6];
+ gSprites[sprite->data[1]].pos1.x += sprite->data[6];
+ }
+
+ sprite->data[5]++;
+ sprite->data[6] -= sprite->data[5];
+ if (sprite->data[5] == 3)
+ {
+ sprite->data[4] = 0;
+ sprite->data[5] = 0;
+ sprite->data[6] = 0;
+ sprite->callback = SpriteCallbackDummy;
+ return;
+ }
+ }
+
+ sprite->data[4]++;
+}
+
+static void sub_81D93D8(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+ gSprites[taskData[3]].callback = sub_81D9420;
+ StartSpriteAnim(&gSprites[taskData[3]], 1);
+}
+
+static void sub_81D9420(struct Sprite *sprite)
+{
+ switch (sprite->animCmdIndex)
+ {
+ case 0:
+ case 2:
+ if (sprite->animDelayCounter % 12 == 0)
+ {
+ sprite->pos1.x -= 2;
+ gSprites[sprite->data[0]].pos1.x -=2;
+ }
+ gSprites[sprite->data[0]].pos2.y = 0;
+ break;
+ case 1:
+ case 3:
+ gSprites[sprite->data[0]].pos2.y = -2;
+ if ((sprite->animDelayCounter & 15) == 0)
+ {
+ sprite->pos1.y++;
+ gSprites[sprite->data[0]].pos1.y++;
+ }
+ break;
+ }
+}
+
+static void sub_81D94D4(u8 taskId)
+{
+ s16 *taskData, *spriteData;
+
+ taskData = gTasks[taskId].data;
+ spriteData = gSprites[taskData[4]].data;
+
+ gSprites[taskData[4]].callback = sub_81D9528;
+ gSprites[spriteData[0]].callback = sub_81D9528;
+ gSprites[spriteData[1]].callback = sub_81D9528;
+}
+
+static void sub_81D9528(struct Sprite *sprite)
+{
+ if ((sprite->data[4] & 3) == 0)
+ {
+ if (sprite->pos2.x == 1)
+ sprite->pos2.x = -1;
+ else
+ sprite->pos2.x = 1;
+ }
+ if (sprite->data[5] == 128)
+ {
+ sprite->data[7] = CreateSprite(&sUnknown_0862ACF0, 152, 132, 0);
+ gSprites[sprite->data[7]].oam.priority = 1;
+ sprite->data[7] = CreateSprite(&sUnknown_0862ACF0, 224, 132, 0);
+ gSprites[sprite->data[7]].oam.priority = 1;
+ gSprites[sprite->data[7]].hFlip = 1;
+ sprite->data[5]++;
+ }
+ if (sprite->data[5] > 127)
+ {
+ if (sprite->pos2.y != 32)
+ {
+ sprite->data[6]++;
+ sprite->pos2.y = sprite->data[6] >> 4;
+ }
+ }
+ else
+ {
+ sprite->data[5]++;
+ }
+
+ if (sprite->data[4] % 64 == 0)
+ PlaySE(SE_W250);
+
+ sprite->data[4]++;
+}
+
+static void sub_81D961C(struct Sprite *sprite)
+{
+ s16 counter = sprite->data[7];
+ if (counter <= 64)
+ {
+ sprite->pos2.y += 2;
+ gSprites[sprite->data[0]].pos2.y += 2;
+ if (sprite->data[7] == 64)
+ {
+ sub_81D9868(sprite, 1, 0, -48);
+ sprite->data[4] = 5;
+ sprite->data[5] = -1;
+ gSprites[sprite->data[0]].data[4] = 3;
+ gSprites[sprite->data[0]].data[5] = 5;
+ }
+ }
+ else if (counter <= 111)
+ {
+ sub_81D97E0(sprite);
+ if (sprite->data[4] == 0)
+ PlaySE(SE_BT_START);
+ if (sprite->data[4] == -3)
+ sub_81D9868(sprite, 2, 48, 16);
+ }
+ else if (counter == 112)
+ {
+ gSprites[sprite->data[0]].data[4] = 7;
+ gSprites[sprite->data[0]].data[5] = 3;
+ sub_81D97E0(sprite);
+ }
+ else if (counter <= 327)
+ {
+ sub_81D97E0(sprite);
+ }
+ else if (counter == 328)
+ {
+ sub_81D97E0(sprite);
+ sub_81D9868(sprite, 3, 48, 16);
+ sprite->pos2.x = 1;
+ gSprites[sprite->data[0]].pos2.x = 1;
+ PlayCry1(SPECIES_RAYQUAZA, 0);
+ CreateTask(sub_81D98B4, 0);
+ }
+ else
+ {
+ switch (counter)
+ {
+ case 376:
+ sprite->pos2.x = 0;
+ gSprites[sprite->data[0]].pos2.x = 0;
+ sub_81D97E0(sprite);
+ sub_81D9868(sprite, 2, 48, 16);
+ sprite->callback = sub_81D97E0;
+ return;
+ case 352:
+ sub_81D9274(FindTaskIdByFunc(Task_HandleRayChasesAway));
+ break;
+ }
+ }
+
+ if (sprite->data[7] > 328 && (sprite->data[7] & 1) == 0)
+ {
+ sprite->pos2.x *= -1;
+ gSprites[sprite->data[0]].pos2.x = sprite->pos2.x;
+ }
+
+ sprite->data[7]++;
+}
+
+static void sub_81D97E0(struct Sprite *sprite)
+{
+ struct Sprite *sprite2 = &gSprites[sprite->data[0]];
+ if (!(sprite->data[6] & sprite2->data[4]))
+ {
+ sprite->pos2.y += sprite->data[4];
+ gSprites[sprite->data[0]].pos2.y += sprite->data[4];
+ sprite->data[4] += sprite->data[5];
+ if (sprite->data[4] >= sprite2->data[5] || sprite->data[4] <= -sprite2->data[5])
+ {
+ if (sprite->data[4] > sprite2->data[5])
+ sprite->data[4] = sprite2->data[5];
+ else if (sprite->data[4] < -sprite2->data[5])
+ sprite->data[4] = -sprite2->data[5];
+
+ sprite->data[5] *= -1;
+ }
+ }
+
+ sprite->data[6]++;
+}
+
+static void sub_81D9868(struct Sprite *sprite, u8 animNum, s16 x, s16 y)
+{
+ struct Sprite *sprite2 = &gSprites[sprite->data[0]];
+
+ sprite2->pos1.x = sprite->pos1.x + x;
+ sprite2->pos1.y = sprite->pos1.y + y;
+
+ sprite2->pos2.x = sprite->pos2.x;
+ sprite2->pos2.y = sprite->pos2.y;
+
+ StartSpriteAnim(sprite, animNum);
+ StartSpriteAnim(sprite2, animNum);
+}
+
+static void sub_81D98B4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ switch (data[0])
+ {
+ case 0:
+ SetBgAffine(2, 0x4000, 0x4000, 0x78, 0x40, 0x100, 0x100, 0);
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
+ data[4] = 16;
+ data[0]++;
+ break;
+ case 1:
+ if (data[5] == 8)
+ PlaySE(SE_JIDO_DOA);
+ if (data[2] == 2)
+ {
+ data[0]++;
+ }
+ else
+ {
+ data[1] += data[4];
+ data[5]++;
+ if (data[3] % 3 == 0 && data[4] != 4)
+ data[4] -= 2;
+
+ data[3]++;
+ SetBgAffine(2, 0x4000, 0x4000, 0x78, 0x40, 0x100 - data[1], 0x100 - data[1], 0);
+ if (data[1] > 255)
+ {
+ data[1] = 0;
+ data[3] = 0;
+ data[5] = 0;
+ data[4] = 16;
+ data[2]++;
+ }
+ }
+ break;
+ case 2:
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON);
+ DestroyTask(taskId);
+ break;
+ }
+}
diff --git a/src/recorded_battle.c b/src/recorded_battle.c
index c88229c61..fc576462b 100644
--- a/src/recorded_battle.c
+++ b/src/recorded_battle.c
@@ -25,11 +25,11 @@ extern u32 gBattleTypeFlags;
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
extern u16 gPartnerTrainerId;
-extern u8 gActiveBank;
-extern u8 gNoOfAllBanks;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
-extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gActiveBattler;
+extern u8 gBattlersCount;
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
+extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
extern u8 gUnknown_03001278;
extern u8 gUnknown_03001279;
@@ -52,13 +52,13 @@ struct RecordedBattleSave
{
struct Pokemon playerParty[PARTY_SIZE];
struct Pokemon opponentParty[PARTY_SIZE];
- u8 playersName[BATTLE_BANKS_COUNT][PLAYER_NAME_LENGTH];
- u8 playersGender[BATTLE_BANKS_COUNT];
- u32 playersTrainerId[BATTLE_BANKS_COUNT];
- u8 playersLanguage[BATTLE_BANKS_COUNT];
+ u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH];
+ u8 playersGender[MAX_BATTLERS_COUNT];
+ u32 playersTrainerId[MAX_BATTLERS_COUNT];
+ u8 playersLanguage[MAX_BATTLERS_COUNT];
u32 rngSeed;
u32 battleFlags;
- u8 playersBank[BATTLE_BANKS_COUNT];
+ u8 playersBank[MAX_BATTLERS_COUNT];
u16 opponentA;
u16 opponentB;
u16 partnerId;
@@ -75,14 +75,14 @@ struct RecordedBattleSave
u16 field_50E[6];
u8 field_51A;
u8 field_51B;
- u8 battleRecord[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE];
+ u8 battleRecord[MAX_BATTLERS_COUNT][BANK_RECORD_SIZE];
u32 checksum;
};
EWRAM_DATA u32 gRecordedBattleRngSeed = 0;
EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0;
-EWRAM_DATA static u8 sBattleRecords[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE] = {0};
-EWRAM_DATA static u16 sRecordedBytesNo[BATTLE_BANKS_COUNT] = {0};
+EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BANK_RECORD_SIZE] = {0};
+EWRAM_DATA static u16 sRecordedBytesNo[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0};
EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0};
EWRAM_DATA static u8 sUnknown_0203C7AC = 0;
@@ -99,7 +99,7 @@ EWRAM_DATA static u32 sRecordedBattle_AI_Scripts = 0;
EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0};
EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0};
EWRAM_DATA static u16 sRecordedBattle_PlayerMonMoves[2][4] = {0};
-EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[BATTLE_BANKS_COUNT] = {0};
+EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA static u8 sUnknown_0203CCD0 = 0;
EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0};
EWRAM_DATA static u8 sUnknown_0203CCD9 = 0;
@@ -123,7 +123,7 @@ void sub_8184DA4(u8 arg0)
sUnknown_0203C7AC = arg0;
sUnknown_0203CCD0 = 0;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
sRecordedBytesNo[i] = 0;
sUnknown_0203C79C[i] = 0;
@@ -164,7 +164,7 @@ void sub_8184E58(void)
gUnknown_0203C7B4 = GetMultiplayerId();
linkPlayersCount = GetLinkPlayerCount();
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
sRecordedBattle_Players[i].trainerId = gLinkPlayers[i].trainerId;
sRecordedBattle_Players[i].gender = gLinkPlayers[i].gender;
@@ -200,7 +200,7 @@ void sub_8184E58(void)
}
}
-void RecordedBattle_SetBankAction(u8 bank, u8 action)
+void RecordedBattle_SetBattlerAction(u8 bank, u8 action)
{
if (sRecordedBytesNo[bank] < BANK_RECORD_SIZE && sUnknown_0203C7AC != 2)
{
@@ -208,7 +208,7 @@ void RecordedBattle_SetBankAction(u8 bank, u8 action)
}
}
-void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear)
+void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear)
{
s32 i;
@@ -221,12 +221,12 @@ void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear)
}
}
-u8 RecordedBattle_ReadBankAction(u8 bank)
+u8 RecordedBattle_GetBattlerAction(u8 bank)
{
// trying to read past array or invalid action byte, battle is over
if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF)
{
- gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; // hah
+ gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah
ResetPaletteFadeControl();
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
SetMainCallback2(CB2_QuitRecordedBattle);
@@ -248,7 +248,7 @@ u8 sub_81850DC(u8 *arg0)
u8 i, j;
u8 ret = 0;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
if (sRecordedBytesNo[i] != sUnknown_0203C79C[i])
{
@@ -350,7 +350,7 @@ u32 MoveRecordedBattleToSaveData(void)
battleSave->opponentParty[i] = sSavedOpponentParty[i];
}
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
for (j = 0; j < PLAYER_NAME_LENGTH; j++)
{
@@ -1339,7 +1339,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gEnemyParty[i] = src->opponentParty[i];
}
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH; j++)
{
@@ -1386,7 +1386,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
gSaveBlock2Ptr->frontierChosenLvl = src->field_4FC;
- for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
for (j = 0; j < BANK_RECORD_SIZE; j++)
{
@@ -1462,7 +1462,7 @@ u8 GetActiveBankLinkPlayerGender(void)
for (i = 0; i < MAX_LINK_PLAYERS; i++)
{
- if (gLinkPlayers[i].lp_field_18 == gActiveBank)
+ if (gLinkPlayers[i].lp_field_18 == gActiveBattler)
break;
}
@@ -1501,7 +1501,7 @@ void RecordedBattle_CopyBankMoves(void)
{
s32 i;
- if (GetBankSide(gActiveBank) == SIDE_OPPONENT)
+ if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
return;
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
return;
@@ -1510,7 +1510,7 @@ void RecordedBattle_CopyBankMoves(void)
for (i = 0; i < 4; i++)
{
- sRecordedBattle_PlayerMonMoves[gActiveBank / 2][i] = gBattleMons[gActiveBank].moves[i];
+ sRecordedBattle_PlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i];
}
}
@@ -1523,9 +1523,9 @@ void sub_818603C(u8 arg0)
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
return;
- for (bank = 0; bank < gNoOfAllBanks; bank++)
+ for (bank = 0; bank < gBattlersCount; bank++)
{
- if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only
+ if (GetBattlerSide(bank) != B_SIDE_OPPONENT) // player's side only
{
if (arg0 == 1)
{
@@ -1536,14 +1536,14 @@ void sub_818603C(u8 arg0)
}
if (j != 4) // player's mon's move has been changed
{
- RecordedBattle_SetBankAction(bank, ACTION_MOVE_CHANGE);
+ RecordedBattle_SetBattlerAction(bank, ACTION_MOVE_CHANGE);
for (j = 0; j < 4; j++)
{
for (k = 0; k < 4; k++)
{
if (gBattleMons[bank].moves[j] == sRecordedBattle_PlayerMonMoves[bank / 2][k])
{
- RecordedBattle_SetBankAction(bank, k);
+ RecordedBattle_SetBattlerAction(bank, k);
break;
}
}
@@ -1561,14 +1561,14 @@ void sub_818603C(u8 arg0)
u8 array3[8];
u8 var;
- RecordedBattle_ReadBankAction(bank);
+ RecordedBattle_GetBattlerAction(bank);
for (j = 0; j < 4; j++)
{
ppBonuses[j] = ((gBattleMons[bank].ppBonuses & ((3 << (j << 1)))) >> (j << 1));
}
for (j = 0; j < 4; j++)
{
- array1[j] = RecordedBattle_ReadBankAction(bank);
+ array1[j] = RecordedBattle_GetBattlerAction(bank);
movePp.moves[j] = gBattleMons[bank].moves[array1[j]];
movePp.pp[j] = gBattleMons[bank].pp[array1[j]];
array3[j] = ppBonuses[array1[j]];
@@ -1591,28 +1591,28 @@ void sub_818603C(u8 arg0)
{
for (j = 0; j < 4; j++)
{
- ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1));
+ ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1));
}
for (j = 0; j < 4; j++)
{
- movePp.moves[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + array1[j], NULL);
- movePp.pp[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + array1[j], NULL);
+ movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_MOVE1 + array1[j], NULL);
+ movePp.pp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP1 + array1[j], NULL);
array3[j] = ppBonuses[array1[j]];
}
for (j = 0; j < 4; j++)
{
- SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + j, &movePp.moves[j]);
- SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + j, &movePp.pp[j]);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_MOVE1 + j, &movePp.moves[j]);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP1 + j, &movePp.pp[j]);
}
var = 0;
for (j = 0; j < 4; j++)
{
var |= (array3[j]) << (j << 1);
}
- SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, &var);
+ SetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_PP_BONUSES, &var);
}
- gChosenMovesByBanks[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)];
+ gChosenMoveByBattler[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)];
}
}
}
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
new file mode 100644
index 000000000..9bd462b60
--- /dev/null
+++ b/src/reset_rtc_screen.c
@@ -0,0 +1,639 @@
+#include "global.h"
+#include "reset_rtc_screen.h"
+#include "event_data.h"
+#include "main.h"
+#include "menu.h"
+#include "palette.h"
+#include "rtc.h"
+#include "save.h"
+#include "sprite.h"
+#include "constants/songs.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "scanline_effect.h"
+#include "bg.h"
+#include "window.h"
+#include "gpu_regs.h"
+
+struct ResetRtcStruct
+{
+ /*0x0*/ u8 dataIndex;
+ /*0x2*/ u16 minVal;
+ /*0x4*/ u16 maxVal;
+ /*0x6*/ u8 left;
+ /*0x7*/ u8 right;
+ /*0x8*/ u8 unk8;
+};
+
+// this file's functions
+static void CB2_ResetRtcScreen(void);
+static void VBlankCB(void);
+static void Task_ResetRtcScreen(u8 taskId);
+static void sub_809F048(void);
+
+// const rom data
+static const struct BgTemplate sBackgroundTemplates[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ }
+};
+
+static const struct WindowTemplate sUnknown_08510408[] =
+{
+ {0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155},
+ {0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9},
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sUnknown_08510420 = {0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf};
+
+static const struct ResetRtcStruct sUnknown_08510428[5] =
+{
+ {
+ .dataIndex = 3,
+ .minVal = 1,
+ .maxVal = 9999,
+ .left = 0,
+ .right = 2,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 4,
+ .minVal = 0,
+ .maxVal = 23,
+ .left = 1,
+ .right = 3,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 5,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 2,
+ .right = 4,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 6,
+ .minVal = 0,
+ .maxVal = 59,
+ .left = 3,
+ .right = 5,
+ .unk8 = 0,
+ },
+ {
+ .dataIndex = 7,
+ .minVal = 0,
+ .maxVal = 0,
+ .left = 4,
+ .right = 0,
+ .unk8 = 6,
+ },
+};
+
+static const struct OamData sOamData_08510464 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const u8 sResetRtcScreen_DownArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_downarrow.4bpp");
+static const u8 sResetRtcScreen_RightArrowGfx[] = INCBIN_U8("graphics/misc/reset_rtc_screen_rightarrow.4bpp");
+static const u16 sResetRtcScreen_ArrowPal[] = INCBIN_U16("graphics/misc/reset_rtc_screen_arrow.gbapal");
+
+static const struct SpriteFrameImage sSpriteImageTable_85104B4[] =
+{
+ obj_frame_tiles(sResetRtcScreen_DownArrowGfx),
+ obj_frame_tiles(sResetRtcScreen_RightArrowGfx)
+};
+
+static const struct SpritePalette sSpritePalette_Arrow =
+{
+ sResetRtcScreen_ArrowPal, 0x1000
+};
+
+static const union AnimCmd sSpriteAnim_85104CC[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sSpriteAnim_85104D4[] =
+{
+ ANIMCMD_FRAME(0, 158, .vFlip = TRUE),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd sSpriteAnim_85104DC[] =
+{
+ ANIMCMD_FRAME(1, 30),
+ ANIMCMD_JUMP(0),
+};
+
+static const union AnimCmd *const sSpriteAnimTable_85104E4[] =
+{
+ sSpriteAnim_85104CC,
+ sSpriteAnim_85104D4,
+ sSpriteAnim_85104DC,
+};
+
+static const struct SpriteTemplate sSpriteTemplate_85104F0 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 0x1000,
+ .oam = &sOamData_08510464,
+ .anims = sSpriteAnimTable_85104E4,
+ .images = sSpriteImageTable_85104B4,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// code
+static void SpriteCB_ResetRtcCursor0(struct Sprite *sprite)
+{
+ int state = gTasks[sprite->data[0]].data[2];
+ if (state != sprite->data[1])
+ {
+ sprite->data[1] = state;
+ switch (state)
+ {
+ case 1:
+ sprite->invisible = FALSE;
+ sprite->animNum = 1;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 53;
+ sprite->pos1.y = 68;
+ break;
+ case 2:
+ sprite->invisible = FALSE;
+ sprite->animNum = 1;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 86;
+ sprite->pos1.y = 68;
+ break;
+ case 3:
+ sprite->invisible = FALSE;
+ sprite->animNum = 1;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 101;
+ sprite->pos1.y = 68;
+ break;
+ case 4:
+ sprite->invisible = FALSE;
+ sprite->animNum = 1;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 116;
+ sprite->pos1.y = 68;
+ break;
+ case 5:
+ sprite->invisible = FALSE;
+ sprite->animNum = 2;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 153;
+ sprite->pos1.y = 80;
+ break;
+ case 6:
+ DestroySprite(sprite);
+ break;
+ }
+ }
+}
+
+static void SpriteCB_ResetRtcCursor1(struct Sprite *sprite)
+{
+ int state = gTasks[sprite->data[0]].data[2];
+ if (state != sprite->data[1])
+ {
+ sprite->data[1] = state;
+ switch (state)
+ {
+ case 1:
+ sprite->invisible = FALSE;
+ sprite->animNum = 0;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 53;
+ sprite->pos1.y = 92;
+ break;
+ case 2:
+ sprite->invisible = FALSE;
+ sprite->animNum = 0;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 86;
+ sprite->pos1.y = 92;
+ break;
+ case 3:
+ sprite->invisible = FALSE;
+ sprite->animNum = 0;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 101;
+ sprite->pos1.y = 92;
+ break;
+ case 4:
+ sprite->invisible = FALSE;
+ sprite->animNum = 0;
+ sprite->animDelayCounter = 0;
+ sprite->pos1.x = 116;
+ sprite->pos1.y = 92;
+ break;
+ case 5:
+ sprite->invisible = TRUE;
+ break;
+ case 6:
+ DestroySprite(sprite);
+ break;
+ }
+ }
+}
+
+static void CreateCursor(u8 taskId)
+{
+ u32 spriteId;
+
+ LoadSpritePalette(&sSpritePalette_Arrow);
+
+ spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_ResetRtcCursor0;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = -1;
+
+ spriteId = CreateSpriteAtEnd(&sSpriteTemplate_85104F0, 53, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_ResetRtcCursor1;
+ gSprites[spriteId].data[0] = taskId;
+ gSprites[spriteId].data[1] = -1;
+}
+
+static void FreeCursorPalette(void)
+{
+ FreeSpritePaletteByTag(sSpritePalette_Arrow.tag);
+}
+
+static void HideChooseTimeWindow(u8 windowId)
+{
+ sub_8198070(windowId, FALSE);
+ RemoveWindow(windowId);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u8 seconds)
+{
+ u8 *dest = gStringVar4;
+
+ ConvertIntToDecimalStringN(gStringVar1, days, 1, 4);
+ dest = StringCopy(dest, gStringVar1);
+ dest = StringCopy(dest, gText_Day);
+
+ ConvertIntToDecimalStringN(gStringVar1, hours, 1, 3);
+ dest = StringCopy(dest, gStringVar1);
+ dest = StringCopy(dest, gText_Colon3);
+
+ ConvertIntToDecimalStringN(gStringVar1, minutes, 2, 2);
+ dest = StringCopy(dest, gStringVar1);
+ dest = StringCopy(dest, gText_Colon3);
+
+ ConvertIntToDecimalStringN(gStringVar1, seconds, 2, 2);
+ dest = StringCopy(dest, gStringVar1);
+
+ PrintTextOnWindow(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL);
+}
+
+static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds)
+{
+ SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE);
+ PrintTime(windowId, 0, 1, days, hours, minutes, seconds);
+ PrintTextOnWindow(windowId, 1, gText_Confirm2, 126, 1, 0, NULL);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static bool32 MoveTimeUpDown(s16 *val, int minVal, int maxVal, u16 keys)
+{
+ if (keys & DPAD_DOWN)
+ {
+ *val -= 1;
+ if (*val < minVal)
+ *val = maxVal;
+ }
+ else if (keys & DPAD_UP)
+ {
+ *val += 1;
+ if (*val > maxVal)
+ *val = minVal;
+ }
+ else if (keys & DPAD_LEFT)
+ {
+ *val -= 10;
+ if (*val < minVal)
+ *val = maxVal;
+ }
+ else if (keys & DPAD_RIGHT)
+ {
+ *val += 10;
+ if (*val > maxVal)
+ *val = minVal;
+ }
+ else
+ {
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void Task_ResetRtc_3(u8 taskId)
+{
+ gTasks[taskId].data[0] = 1;
+}
+
+static void Task_ResetRtc_2(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ HideChooseTimeWindow(data[8]);
+ FreeCursorPalette();
+ gTasks[taskId].func = Task_ResetRtc_3;
+}
+
+static void Task_ResetRtc_1(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 selection = data[2];
+ const struct ResetRtcStruct *selectionInfo = &sUnknown_08510428[selection - 1];
+
+ if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].func = Task_ResetRtc_2;
+ data[1] = 0;
+ data[2] = 6;
+ PlaySE(SE_SELECT);
+ return;
+ }
+
+ if (gMain.newKeys & DPAD_RIGHT)
+ {
+ if (selectionInfo->right)
+ {
+ data[2] = selectionInfo->right;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+
+ if (gMain.newKeys & DPAD_LEFT)
+ {
+ if (selectionInfo->left)
+ {
+ data[2] = selectionInfo->left;
+ PlaySE(SE_SELECT);
+ return;
+ }
+ }
+
+ if (selection == 5)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ gLocalTime.days = data[3];
+ gLocalTime.hours = data[4];
+ gLocalTime.minutes = data[5];
+ gLocalTime.seconds = data[6];
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = Task_ResetRtc_2;
+ data[1] = 1;
+ data[2] = 6;
+ }
+ }
+ else if (MoveTimeUpDown(&data[selectionInfo->dataIndex], selectionInfo->minVal, selectionInfo->maxVal, gMain.newAndRepeatedKeys & (DPAD_UP | DPAD_DOWN)))
+ {
+ PlaySE(SE_SELECT);
+ PrintTime(data[8], 0, 1, data[3], data[4], data[5], data[6]);
+ CopyWindowToVram(data[8], 2);
+ }
+}
+
+static void Task_ResetRtc_0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[0] = 0;
+ data[3] = gLocalTime.days;
+ data[4] = gLocalTime.hours;
+ data[5] = gLocalTime.minutes;
+ data[6] = gLocalTime.seconds;
+ data[8] = AddWindow(&sUnknown_08510420);
+ ShowChooseTimeWindow(data[8], data[3], data[4], data[5], data[6]);
+ CreateCursor(taskId);
+ data[2] = 2;
+ gTasks[taskId].func = Task_ResetRtc_1;
+}
+
+void CB2_InitResetRtcScreen(void)
+{
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ SetVBlankCallback(NULL);
+ DmaClear16(3, PLTT, PLTT_SIZE);
+ DmaFillLarge16(3, 0, (u8 *)VRAM, 0x18000, 0x1000);
+ ResetOamRange(0, 128);
+ LoadOam();
+ ScanlineEffect_Stop();
+ ScanlineEffect_Clear();
+ ResetSpriteData();
+ ResetTasks();
+ ResetPaletteFade();
+ sub_809F048();
+ SetVBlankCallback(VBlankCB);
+ SetMainCallback2(CB2_ResetRtcScreen);
+ CreateTask(Task_ResetRtcScreen, 80);
+}
+
+static void sub_809F048(void)
+{
+ clear_scheduled_bg_copies_to_vram();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates));
+ schedule_bg_copy_tilemap_to_vram(0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ InitWindows(sUnknown_08510408);
+ DeactivateAllTextPrinters();
+ sub_81973A4();
+}
+
+static void CB2_ResetRtcScreen(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB(void)
+{
+ ProcessSpriteCopyRequests();
+ LoadOam();
+ TransferPlttBuffer();
+}
+
+static void ShowMessage(const u8 *str)
+{
+ sub_8197B1C(1, FALSE, 0x200, 0xF);
+ PrintTextOnWindow(1, 1, str, 0, 1, 0, NULL);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+static void Task_ShowResetRtcPrompt(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ SetWindowBorderStyle(0, FALSE, 0x214, 0xE);
+ PrintTextOnWindow(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0);
+ PrintTime(
+ 0,
+ 0,
+ 17,
+ gLocalTime.days,
+ gLocalTime.hours,
+ gLocalTime.minutes,
+ gLocalTime.seconds);
+ PrintTextOnWindow(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0);
+ PrintTime(
+ 0,
+ 0,
+ 49,
+ gSaveBlock2Ptr->lastBerryTreeUpdate.days,
+ gSaveBlock2Ptr->lastBerryTreeUpdate.hours,
+ gSaveBlock2Ptr->lastBerryTreeUpdate.minutes,
+ gSaveBlock2Ptr->lastBerryTreeUpdate.seconds);
+ ShowMessage(gText_ResetRTCConfirmCancel);
+ CopyWindowToVram(0, 2);
+ schedule_bg_copy_tilemap_to_vram(0);
+ data[0]++;
+ case 1:
+ if (gMain.newKeys & B_BUTTON)
+ {
+ DestroyTask(taskId);
+ DoSoftReset();
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+static void Task_ResetRtcScreen(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF);
+ data[0] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ if (gSaveFileStatus == 0 || gSaveFileStatus == 2)
+ {
+ ShowMessage(gText_NoSaveFileCantSetTime);
+ data[0] = 5;
+ }
+ else
+ {
+ RtcCalcLocalTime();
+ data[1] = CreateTask(Task_ShowResetRtcPrompt, 80);
+ data[0] = 2;
+ }
+ }
+ break;
+ case 2:
+ if (gTasks[data[1]].isActive != TRUE)
+ {
+ sub_8198070(0, FALSE);
+ ShowMessage(gText_PleaseResetTime);
+ gLocalTime = gSaveBlock2Ptr->lastBerryTreeUpdate;
+ data[1] = CreateTask(Task_ResetRtc_0, 80);
+ data[0] = 3;
+ }
+ break;
+ case 3:
+ if (gTasks[data[1]].data[0])
+ {
+ if (!gTasks[data[1]].data[1])
+ {
+ DestroyTask(data[1]);
+ data[0] = 2;
+ }
+ else
+ {
+ DestroyTask(data[1]);
+ RtcReset();
+ RtcCalcLocalTimeOffset(
+ gLocalTime.days,
+ gLocalTime.hours,
+ gLocalTime.minutes,
+ gLocalTime.seconds);
+ gSaveBlock2Ptr->lastBerryTreeUpdate = gLocalTime;
+ VarSet(VAR_DAYS, gLocalTime.days);
+ DisableResetRTC();
+ ShowMessage(gText_ClockHasBeenReset);
+ data[0] = 4;
+ }
+ }
+ break;
+ case 4:
+ if (TrySavingData(0) == 1)
+ {
+ ShowMessage(gText_SaveCompleted);
+ PlaySE(SE_PINPON);
+ }
+ else
+ {
+ ShowMessage(gText_SaveFailed);
+ PlaySE(SE_BOO);
+ }
+ data[0] = 5;
+ case 5:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ BeginNormalPaletteFade(-1, 1, 0, 0x10, 0xFFFF);
+ data[0] = 6;
+ }
+ else
+ {
+ break;
+ }
+ case 6:
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(taskId);
+ FreeAllWindowBuffers();
+ DoSoftReset();
+ }
+ }
+}
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 3df2ff151..925b65de5 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -3,7 +3,7 @@
#include "battle.h"
#include "palette.h"
#include "main.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "text.h"
#include "gpu_regs.h"
#include "bg.h"
@@ -22,32 +22,32 @@ extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG3_X;
extern u16 gBattle_BG3_Y;
extern u8 gReservedSpritePaletteCount;
-extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
+extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
extern u8 gBankInMenu;
-extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
-extern u8 gNoOfAllBanks;
+extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
+extern u8 gBattlersCount;
extern u32 gBattleTypeFlags;
-extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
-extern u8 gBattleMonForms[BATTLE_BANKS_COUNT];
-extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
+extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
+extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern struct SpriteTemplate gUnknown_0202499C;
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
-extern void dp12_8087EA4(void);
+extern void ScanlineEffect_Clear(void);
extern void sub_8035658(void);
extern bool8 IsDoubleBattle(void);
extern u8 GetSubstituteSpriteDefault_Y(u8 bank);
-extern u8 GetBankSpriteDefault_Y(u8 bank);
+extern u8 GetBattlerSpriteDefault_Y(u8 bank);
extern u8 sub_80A82E4(u8 bank);
extern void sub_806A068(u16 species, u8 bankIdentity);
extern void sub_806A12C(u16 backPicId, u8 bankIdentity);
-extern u8 GetBankPosition(u8 bank, u8 caseId);
+extern u8 GetBattlerSpriteCoord(u8 bank, u8 caseId);
// this file's functions
static void CB2_ReshowBattleScreenAfterMenu(void);
-static bool8 LoadBankSpriteGfx(u8 bank);
-static void CreateBankSprite(u8 bank);
+static bool8 LoadBattlerSpriteGfx(u8 bank);
+static void CreateBattlerSprite(u8 bank);
static void CreateHealthboxSprite(u8 bank);
static void sub_80A95F4(void);
@@ -72,7 +72,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
switch (gBattleScripting.reshowMainState)
{
case 0:
- dp12_8087EA4();
+ ScanlineEffect_Clear();
sub_8035658();
SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0);
SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0);
@@ -118,32 +118,32 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
}
break;
case 7:
- if (!LoadBankSpriteGfx(0))
+ if (!LoadBattlerSpriteGfx(0))
gBattleScripting.reshowMainState--;
break;
case 8:
- if (!LoadBankSpriteGfx(1))
+ if (!LoadBattlerSpriteGfx(1))
gBattleScripting.reshowMainState--;
break;
case 9:
- if (!LoadBankSpriteGfx(2))
+ if (!LoadBattlerSpriteGfx(2))
gBattleScripting.reshowMainState--;
break;
case 10:
- if (!LoadBankSpriteGfx(3))
+ if (!LoadBattlerSpriteGfx(3))
gBattleScripting.reshowMainState--;
break;
case 11:
- CreateBankSprite(0);
+ CreateBattlerSprite(0);
break;
case 12:
- CreateBankSprite(1);
+ CreateBattlerSprite(1);
break;
case 13:
- CreateBankSprite(2);
+ CreateBattlerSprite(2);
break;
case 14:
- CreateBankSprite(3);
+ CreateBattlerSprite(3);
break;
case 15:
CreateHealthboxSprite(0);
@@ -164,15 +164,15 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
LoadAndCreateEnemyShadowSprites();
- opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1);
- species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
- SetBankEnemyShadowSpriteCallback(opponentBank, species);
+ opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT);
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES);
+ SetBattlerShadowSpriteCallback(opponentBank, species);
if (IsDoubleBattle())
{
- opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2);
- species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES);
- SetBankEnemyShadowSpriteCallback(opponentBank, species);
+ opponentBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT);
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBank]], MON_DATA_SPECIES);
+ SetBattlerShadowSpriteCallback(opponentBank, species);
}
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0);
@@ -208,25 +208,25 @@ static void sub_80A95F4(void)
regBgcnt2->charBaseBlock = 0;
}
-static bool8 LoadBankSpriteGfx(u8 bank)
+static bool8 LoadBattlerSpriteGfx(u8 battler)
{
- if (bank < gNoOfAllBanks)
+ if (battler < gBattlersCount)
{
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
- if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank);
+ if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battler]], battler);
else
- BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE);
+ BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
}
- else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
- DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, bank);
- else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
- DecompressTrainerBackPic(BACK_PIC_WALLY, bank);
- else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank);
+ else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0)
+ DecompressTrainerBackPic(gSaveBlock2Ptr->playerGender, battler);
+ else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0)
+ DecompressTrainerBackPic(BACK_PIC_WALLY, battler);
+ else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler);
else
- BattleLoadSubstituteOrMonSpriteGfx(bank, FALSE);
+ BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE);
gBattleScripting.reshowHelperState = 0;
}
@@ -243,111 +243,111 @@ struct MonCoords
};
extern const struct MonCoords gTrainerBackPicCoords[];
-static void CreateBankSprite(u8 bank)
+static void CreateBattlerSprite(u8 battler)
{
- if (bank < gNoOfAllBanks)
+ if (battler < gBattlersCount)
{
u8 posY;
- if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute)
- posY = GetSubstituteSpriteDefault_Y(bank);
+ if (gBattleSpritesDataPtr->battlerData[battler].behindSubstitute)
+ posY = GetSubstituteSpriteDefault_Y(battler);
else
- posY = GetBankSpriteDefault_Y(bank);
+ posY = GetBattlerSpriteDefault_Y(battler);
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
- if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
+ if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
return;
- sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank));
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ sub_806A068(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
+ gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
+ gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
+ gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
+ gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
- gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]);
+ if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM)
+ gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
- else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
+ else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0)
{
- sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
+ sub_806A12C(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
+ gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
sub_80A82E4(0));
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
+ gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
}
- else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
+ else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0)
{
- sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50,
+ sub_806A12C(BACK_PIC_WALLY, GetBattlerPosition(0));
+ gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, 0x50,
(8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80,
sub_80A82E4(0));
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
+ gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
+ gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
}
else
{
- if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
+ if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
return;
- sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank));
- gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank));
- gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank;
- gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy;
- gSprites[gBankSpriteIds[bank]].data[0] = bank;
- gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES);
+ sub_806A068(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
+ gBattlerSpriteIds[battler] = CreateSprite(&gUnknown_0202499C, GetBattlerSpriteCoord(battler, 2), posY, sub_80A82E4(battler));
+ gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
+ gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
+ gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
+ gSprites[gBattlerSpriteIds[battler]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
- StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]);
- if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM)
- gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
+ StartSpriteAnim(&gSprites[gBattlerSpriteIds[battler]], gBattleMonForms[battler]);
+ if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies == SPECIES_CASTFORM)
+ gSprites[gBattlerSpriteIds[battler]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM];
}
- gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible;
+ gSprites[gBattlerSpriteIds[battler]].invisible = gBattleSpritesDataPtr->battlerData[battler].invisible;
}
}
-static void CreateHealthboxSprite(u8 bank)
+static void CreateHealthboxSprite(u8 battler)
{
- if (bank < gNoOfAllBanks)
+ if (battler < gBattlersCount)
{
u8 healthboxSpriteId;
- if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0)
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == 0)
healthboxSpriteId = CreateSafariPlayerHealthboxSprites();
- else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
+ else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && battler == 0)
return;
else
- healthboxSpriteId = CreateBankHealthboxSprites(bank);
+ healthboxSpriteId = CreateBattlerHealthboxSprites(battler);
- gHealthBoxesIds[bank] = healthboxSpriteId;
- SetBankHealthboxSpritePos(bank);
+ gHealthboxSpriteIds[battler] = healthboxSpriteId;
+ InitBattlerHealthboxCoords(battler);
SetHealthboxSpriteVisible(healthboxSpriteId);
- if (GetBankSide(bank) != SIDE_PLAYER)
- UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gEnemyParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
- UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_SAFARI_ALL_TEXT);
else
- UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
+ UpdateHealthboxAttribute(gHealthboxSpriteIds[battler], &gPlayerParty[gBattlerPartyIndexes[battler]], HEALTHBOX_ALL);
- if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
- DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE);
+ if (GetBattlerPosition(battler) == B_POSITION_OPPONENT_RIGHT || GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT)
+ DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], TRUE);
else
- DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE);
+ DummyBattleInterfaceFunc(gHealthboxSpriteIds[battler], FALSE);
- if (GetBankSide(bank) != SIDE_PLAYER)
+ if (GetBattlerSide(battler) != B_SIDE_PLAYER)
{
- if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
+ if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI))
{
- if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0)
+ if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0)
SetHealthboxSpriteInvisible(healthboxSpriteId);
}
}
diff --git a/src/safari_zone.c b/src/safari_zone.c
index ce1eb65bc..12da73090 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -108,20 +108,20 @@ void SafariZoneRetirePrompt(void)
void CB2_EndSafariBattle(void)
{
sSafariZoneFleedMons += gBattleResults.field_1F;
- if (gBattleOutcome == BATTLE_CAUGHT)
+ if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
sSafariZoneCaughtMons++;
if (gNumSafariBalls != 0)
{
SetMainCallback2(c2_exit_to_overworld_2_switch);
}
- else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS)
+ else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS)
{
ScriptContext2_RunNewScript(EventScript_2A4B4C);
warp_in();
gFieldCallback = sub_80AF6F0;
SetMainCallback2(c2_load_new_map);
}
- else if (gBattleOutcome == BATTLE_CAUGHT)
+ else if (gBattleOutcome == B_OUTCOME_CAUGHT_POKE)
{
ScriptContext1_SetupScript(EventScript_2A4B9B);
ScriptContext1_Stop();
diff --git a/src/save.c b/src/save.c
index 023ca6870..8d77e801a 100644
--- a/src/save.c
+++ b/src/save.c
@@ -4,13 +4,68 @@
#include "constants/game_stat.h"
#include "task.h"
+// for the chunk declarations
+extern struct SaveBlock2 gSaveblock2;
+extern struct SaveBlock1 gSaveblock1;
+extern struct PokemonStorage gPokemonStorage;
+
extern struct SaveSectionLocation gRamSaveSectionLocations[0xE];
extern u8 gDecompressionBuffer[];
extern u32 gFlashMemoryPresent;
extern u16 gUnknown_03006294;
extern bool8 gSoftResetDisabled;
-extern const struct SaveSectionOffsets gSaveSectionOffsets[0xE];
+// Divide save blocks into individual chunks to be written to flash sectors
+
+// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer
+#define SECTOR_DATA_SIZE 3968
+#define SECTOR_FOOTER_SIZE 128
+
+/*
+ * Sector Layout:
+ *
+ * Sectors 0 - 13: Save Slot 1
+ * Sectors 14 - 27: Save Slot 2
+ * Sectors 28 - 29: Hall of Fame
+ * Sector 30: e-Reader/Mystery Gift Stuff (note: e-Reader is deprecated in Emerald US)
+ * Sector 31: Recorded Battle
+ *
+ * There are two save slots for saving the player's game data. We alternate between
+ * them each time the game is saved, so that if the current save slot is corrupt,
+ * we can load the previous one. We also rotate the sectors in each save slot
+ * so that the same data is not always being written to the same sector. This
+ * might be done to reduce wear on the flash memory, but I'm not sure, since all
+ * 14 sectors get written anyway.
+ */
+
+// (u8 *)structure was removed from the first statement of the macro in Emerald.
+// This is because malloc is used to allocate addresses so storing the raw
+// addresses should not be done in the offsets information.
+#define SAVEBLOCK_CHUNK(structure, chunkNum) \
+{ \
+ chunkNum * SECTOR_DATA_SIZE, \
+ min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
+} \
+
+const struct SaveSectionOffsets gSaveSectionOffsets[] =
+{
+ SAVEBLOCK_CHUNK(gSaveblock2, 0),
+
+ SAVEBLOCK_CHUNK(gSaveblock1, 0),
+ SAVEBLOCK_CHUNK(gSaveblock1, 1),
+ SAVEBLOCK_CHUNK(gSaveblock1, 2),
+ SAVEBLOCK_CHUNK(gSaveblock1, 3),
+
+ SAVEBLOCK_CHUNK(gPokemonStorage, 0),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 1),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 2),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 3),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 4),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 5),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 6),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 7),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 8),
+};
extern void DoSaveFailedScreen(u8); // save_failed_screen
extern void LoadSerializedGame(void); // load_save
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
new file mode 100644
index 000000000..148e053fc
--- /dev/null
+++ b/src/scanline_effect.c
@@ -0,0 +1,262 @@
+#include "global.h"
+#include "data2.h"
+#include "task.h"
+#include "trig.h"
+#include "scanline_effect.h"
+
+static void CopyValue16Bit(void);
+static void CopyValue32Bit(void);
+
+extern u16 gBattle_BG0_Y;
+extern u16 gBattle_BG0_X;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
+
+// EWRAM vars
+
+// Per-scanline register values.
+// This is double buffered so that it can be safely written to at any time
+// without overwriting the buffer that the DMA is currently reading
+EWRAM_DATA u16 gScanlineEffectRegBuffers[2][0x3C0] = {0};
+
+EWRAM_DATA struct ScanlineEffect gScanlineEffect = {0};
+EWRAM_DATA static bool8 sShouldStopWaveTask = FALSE;
+
+void ScanlineEffect_Stop(void)
+{
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ if (gScanlineEffect.waveTaskId != 0xFF)
+ {
+ DestroyTask(gScanlineEffect.waveTaskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+}
+
+void ScanlineEffect_Clear(void)
+{
+ CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ gScanlineEffect.dmaSrcBuffers[0] = NULL;
+ gScanlineEffect.dmaSrcBuffers[1] = NULL;
+ gScanlineEffect.dmaDest = NULL;
+ gScanlineEffect.dmaControl = 0;
+ gScanlineEffect.srcBuffer = 0;
+ gScanlineEffect.state = 0;
+ gScanlineEffect.unused16 = 0;
+ gScanlineEffect.unused17 = 0;
+ gScanlineEffect.waveTaskId = 0xFF;
+}
+
+void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
+{
+ if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue16Bit;
+ }
+ else // assume 32-bit
+ {
+ // Set the DMA src to the value for the second scanline because the
+ // first DMA transfer occurs in HBlank *after* the first scanline is drawn
+ gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.setFirstScanlineReg = CopyValue32Bit;
+ }
+
+ gScanlineEffect.dmaControl = params.dmaControl;
+ gScanlineEffect.dmaDest = params.dmaDest;
+ gScanlineEffect.state = params.initState;
+ gScanlineEffect.unused16 = params.unused9;
+ gScanlineEffect.unused17 = params.unused9;
+}
+
+void ScanlineEffect_InitHBlankDmaTransfer(void)
+{
+ if (gScanlineEffect.state == 0)
+ {
+ return;
+ }
+ else if (gScanlineEffect.state == 3)
+ {
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ sShouldStopWaveTask = TRUE;
+ }
+ else
+ {
+ DmaStop(0);
+ // Set DMA to copy to dest register on each HBlank for the next frame.
+ // The HBlank DMA transfers do not occurr during VBlank, so the transfer
+ // will begin on the HBlank after the first scanline
+ DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl);
+ // Manually set the reg for the first scanline
+ gScanlineEffect.setFirstScanlineReg();
+ // Swap current buffer
+ gScanlineEffect.srcBuffer ^= 1;
+ }
+}
+
+// These two functions are used to copy the register for the first scanline,
+// depending whether it is a 16-bit register or a 32-bit register.
+
+static void CopyValue16Bit(void)
+{
+ u16 *dest = (u16 *)gScanlineEffect.dmaDest;
+ u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+static void CopyValue32Bit(void)
+{
+ u32 *dest = (u32 *)gScanlineEffect.dmaDest;
+ u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+
+ *dest = *src;
+}
+
+#define tStartLine data[0]
+#define tEndLine data[1]
+#define tWaveLength data[2]
+#define tSrcBufferOffset data[3]
+#define tFramesUntilMove data[4]
+#define tDelayInterval data[5]
+#define tRegOffset data[6]
+#define tApplyBattleBgOffsets data[7]
+
+static void TaskFunc_UpdateWavePerFrame(u8 taskId)
+{
+ int value = 0;
+ int i;
+ int offset;
+
+ if (sShouldStopWaveTask)
+ {
+ DestroyTask(taskId);
+ gScanlineEffect.waveTaskId = 0xFF;
+ }
+ else
+ {
+ if (gTasks[taskId].tApplyBattleBgOffsets)
+ {
+ switch (gTasks[taskId].tRegOffset)
+ {
+ case SCANLINE_EFFECT_REG_BG0HOFS:
+ value = gBattle_BG0_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG0VOFS:
+ value = gBattle_BG0_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG1HOFS:
+ value = gBattle_BG1_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG1VOFS:
+ value = gBattle_BG1_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG2HOFS:
+ value = gBattle_BG2_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG2VOFS:
+ value = gBattle_BG2_Y;
+ break;
+ case SCANLINE_EFFECT_REG_BG3HOFS:
+ value = gBattle_BG3_X;
+ break;
+ case SCANLINE_EFFECT_REG_BG3VOFS:
+ value = gBattle_BG3_Y;
+ break;
+ }
+ }
+ if (gTasks[taskId].tFramesUntilMove != 0)
+ {
+ gTasks[taskId].tFramesUntilMove--;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+ }
+ else
+ {
+ gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
+ {
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ offset++;
+ }
+
+ // increment src buffer offset
+ gTasks[taskId].tSrcBufferOffset++;
+ if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength)
+ gTasks[taskId].tSrcBufferOffset = 0;
+ }
+ }
+}
+
+static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused)
+{
+ u16 i = 0;
+ u8 theta = 0;
+
+ while (i < 256)
+ {
+ buffer[i] = (gSineTable[theta] * amplitude) / 256;
+ theta += frequency;
+ i++;
+ }
+}
+
+// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive).
+// 'frequency' and 'amplitude' control the frequency and amplitude of the wave.
+// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames.
+// 'regOffset' is the offset of the video register to modify.
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets)
+{
+ int i;
+ int offset;
+ struct ScanlineEffectParams params;
+ u8 taskId;
+
+ ScanlineEffect_Clear();
+
+ params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.initState = 1;
+ params.unused9 = 0;
+ ScanlineEffect_SetParams(params);
+
+ taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0);
+
+ gTasks[taskId].tStartLine = startLine;
+ gTasks[taskId].tEndLine = endLine;
+ gTasks[taskId].tWaveLength = 256 / frequency;
+ gTasks[taskId].tSrcBufferOffset = 0;
+ gTasks[taskId].tFramesUntilMove = delayInterval;
+ gTasks[taskId].tDelayInterval = delayInterval;
+ gTasks[taskId].tRegOffset = regOffset;
+ gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets;
+
+ gScanlineEffect.waveTaskId = taskId;
+ sShouldStopWaveTask = FALSE;
+
+ GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine);
+
+ offset = 320;
+ for (i = startLine; i < endLine; i++)
+ {
+ gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset];
+ gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset];
+ offset++;
+ }
+
+ return taskId;
+}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index ffdccdbe1..467b8f320 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -637,7 +637,7 @@ static bool8 IsPaletteNotActive(void)
bool8 ScrCmd_fadescreen(struct ScriptContext *ctx)
{
- fade_screen(ScriptReadByte(ctx), 0);
+ FadeScreen(ScriptReadByte(ctx), 0);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -647,7 +647,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx)
u8 mode = ScriptReadByte(ctx);
u8 speed = ScriptReadByte(ctx);
- fade_screen(mode, speed);
+ FadeScreen(mode, speed);
SetupNativeScript(ctx, IsPaletteNotActive);
return TRUE;
}
@@ -661,12 +661,12 @@ bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx)
case 1:
default:
CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE);
- fade_screen(mode, 0);
+ FadeScreen(mode, 0);
break;
case 0:
case 2:
CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE);
- fade_screen(mode, 0);
+ FadeScreen(mode, 0);
break;
}
@@ -725,7 +725,7 @@ bool8 ScrCmd_setweather(struct ScriptContext *ctx)
bool8 ScrCmd_resetweather(struct ScriptContext *ctx)
{
- sub_80AEDBC();
+ SetSav1WeatherFromCurrMapHeader();
return FALSE;
}
diff --git a/src/secret_base.c b/src/secret_base.c
index 359cc7aca..96fe6edd2 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -12,6 +12,7 @@
#include "menu_indicators.h"
#include "constants/maps.h"
#include "constants/songs.h"
+#include "constants/species.h"
#include "sound.h"
#include "overworld.h"
#include "fieldmap.h"
@@ -393,7 +394,7 @@ void sub_80E8FD0(u8 taskId)
void sub_80E9068(void)
{
CreateTask(sub_80E8FD0, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
saved_warp2_set(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
}
@@ -450,7 +451,7 @@ void sub_80E916C(u8 taskId)
void sub_80E91F8(void)
{
CreateTask(sub_80E916C, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
bool8 CurrentMapIsSecretBase(void)
@@ -650,7 +651,7 @@ void sub_80E96A4(u8 taskId)
void sub_80E9728(void)
{
CreateTask(sub_80E96A4, 0);
- fade_screen(1, 0);
+ FadeScreen(1, 0);
}
void sub_80E9744(void)
@@ -710,237 +711,45 @@ u8 sub_80E98AC(struct Pokemon *pokemon)
return evTotal / 6;
}
-#ifdef NONMATCHING
-// This function is a meme
void sub_80E9914(void)
{
- u32 zero;
- u32 *personality;
u16 partyIdx;
u16 moveIdx;
u16 sbPartyIdx;
- u16 *species;
- u16 *items;
- u16 *moves;
- u8 *levels;
- u8 *evs;
+ struct SecretBaseParty *party;
sbPartyIdx = 0;
- personality = gSaveBlock1Ptr->secretBases[0].partyPersonality;
+ party = &gSaveBlock1Ptr->secretBases[0].party;
if (gSaveBlock1Ptr->secretBases[0].secretBaseId != 0)
{
- partyIdx = 0;
- moves = gSaveBlock1Ptr->secretBases[0].partyMoves;
- species = gSaveBlock1Ptr->secretBases[0].partySpecies;
- items = gSaveBlock1Ptr->secretBases[0].partyHeldItems;
- levels = gSaveBlock1Ptr->secretBases[0].partyLevels;
- evs = gSaveBlock1Ptr->secretBases[0].partyEVs;
- zero = 0;
- for (partyIdx = 0; partyIdx < PARTY_SIZE; partyIdx ++)
+ for (partyIdx = 0; partyIdx < PARTY_SIZE; partyIdx++)
{
- for (moveIdx = 0; moveIdx < 4; moveIdx ++)
+ for (moveIdx = 0; moveIdx < 4; moveIdx++)
{
- moves[partyIdx * 4 + moveIdx] = zero;
+ party->moves[partyIdx * 4 + moveIdx] = 0;
}
- species[partyIdx] = zero;
- items[partyIdx] = zero;
- levels[partyIdx] = zero;
- personality[partyIdx] = zero;
- evs[partyIdx] = zero;
- if (GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[partyIdx], MON_DATA_IS_EGG))
+ party->species[partyIdx] = 0;
+ party->heldItems[partyIdx] = 0;
+ party->levels[partyIdx] = 0;
+ party->personality[partyIdx] = 0;
+ party->EVs[partyIdx] = 0;
+ if (GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES) != SPECIES_NONE
+ && !GetMonData(&gPlayerParty[partyIdx], MON_DATA_IS_EGG))
{
- for (moveIdx = 0; moveIdx < 4; moveIdx ++)
+ for (moveIdx = 0; moveIdx < 4; moveIdx++)
{
- moves[sbPartyIdx * 4 + moveIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_MOVE1 + moveIdx);
+ party->moves[sbPartyIdx * 4 + moveIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_MOVE1 + moveIdx);
}
- species[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES);
- items[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_HELD_ITEM);
- levels[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_LEVEL);
- personality[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_PERSONALITY);
- evs[sbPartyIdx] = sub_80E98AC(&gPlayerParty[partyIdx]);
- sbPartyIdx ++;
+ party->species[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_SPECIES);
+ party->heldItems[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_HELD_ITEM);
+ party->levels[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_LEVEL);
+ party->personality[sbPartyIdx] = GetMonData(&gPlayerParty[partyIdx], MON_DATA_PERSONALITY);
+ party->EVs[sbPartyIdx] = sub_80E98AC(&gPlayerParty[partyIdx]);
+ sbPartyIdx++;
}
}
}
}
-#else
-__attribute__((naked)) void sub_80E9914(void)
-{
- 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, 0x24\n"
- "\tmovs r0, 0\n"
- "\tmov r10, r0\n"
- "\tldr r0, =gSaveBlock1Ptr\n"
- "\tldr r1, [r0]\n"
- "\tldr r2, =0x00001ad0\n"
- "\tadds r2, r1, r2\n"
- "\tstr r2, [sp]\n"
- "\tldr r3, =0x00001a9c\n"
- "\tadds r0, r1, r3\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbne _080E993A\n"
- "\tb _080E9A60\n"
- "_080E993A:\n"
- "\tmovs r6, 0\n"
- "\tldr r7, =0x00001ae8\n"
- "\tadds r7, r1, r7\n"
- "\tstr r7, [sp, 0x14]\n"
- "\tldr r0, =0x00001b18\n"
- "\tadds r0, r1, r0\n"
- "\tstr r0, [sp, 0xC]\n"
- "\tldr r2, =0x00001b24\n"
- "\tadds r2, r1, r2\n"
- "\tstr r2, [sp, 0x10]\n"
- "\tadds r3, 0x94\n"
- "\tadds r3, r1, r3\n"
- "\tstr r3, [sp, 0x18]\n"
- "\tldr r7, =0x00001b36\n"
- "\tadds r7, r1, r7\n"
- "\tstr r7, [sp, 0x1C]\n"
- "\tmov r9, r6\n"
- "_080E995C:\n"
- "\tmovs r4, 0\n"
- "\tlsls r5, r6, 2\n"
- "\tlsls r3, r6, 1\n"
- "\tldr r0, =gPlayerParty\n"
- "\tmov r8, r0\n"
- "\tadds r1, r6, 0x1\n"
- "\tstr r1, [sp, 0x4]\n"
- "\tadds r2, r5, 0\n"
- "\tldr r1, [sp, 0x14]\n"
- "_080E996E:\n"
- "\tadds r0, r2, r4\n"
- "\tlsls r0, 1\n"
- "\tadds r0, r1, r0\n"
- "\tmov r7, r9\n"
- "\tstrh r7, [r0]\n"
- "\tadds r0, r4, 0x1\n"
- "\tlsls r0, 16\n"
- "\tlsrs r4, r0, 16\n"
- "\tcmp r4, 0x3\n"
- "\tbls _080E996E\n"
- "\tldr r1, [sp, 0xC]\n"
- "\tadds r0, r1, r3\n"
- "\tmov r2, r9\n"
- "\tstrh r2, [r0]\n"
- "\tldr r7, [sp, 0x10]\n"
- "\tadds r0, r7, r3\n"
- "\tstrh r2, [r0]\n"
- "\tldr r1, [sp, 0x18]\n"
- "\tadds r0, r1, r6\n"
- "\tmov r2, r9\n"
- "\tstrb r2, [r0]\n"
- "\tldr r3, [sp]\n"
- "\tadds r0, r3, r5\n"
- "\tmov r7, r9\n"
- "\tstr r7, [r0]\n"
- "\tldr r1, [sp, 0x1C]\n"
- "\tadds r0, r1, r6\n"
- "\tstrb r7, [r0]\n"
- "\tmovs r2, 0x64\n"
- "\tadds r5, r6, 0\n"
- "\tmuls r5, r2\n"
- "\tmov r3, r8\n"
- "\tadds r4, r5, r3\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0xB\n"
- "\tbl GetMonData\n"
- "\tcmp r0, 0\n"
- "\tbeq _080E9A54\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0x2D\n"
- "\tbl GetMonData\n"
- "\tcmp r0, 0\n"
- "\tbne _080E9A54\n"
- "\tmovs r4, 0\n"
- "\tmov r7, r10\n"
- "\tlsls r7, 2\n"
- "\tmov r8, r7\n"
- "\tmov r0, r10\n"
- "\tlsls r7, r0, 1\n"
- "\tadds r0, 0x1\n"
- "\tstr r0, [sp, 0x8]\n"
- "\tldr r2, =gPlayerParty\n"
- "_080E99DA:\n"
- "\tadds r1, r4, 0\n"
- "\tadds r1, 0xD\n"
- "\tadds r0, r5, r2\n"
- "\tstr r2, [sp, 0x20]\n"
- "\tbl GetMonData\n"
- "\tmov r3, r8\n"
- "\tadds r1, r3, r4\n"
- "\tlsls r1, 1\n"
- "\tldr r3, [sp, 0x14]\n"
- "\tadds r1, r3, r1\n"
- "\tstrh r0, [r1]\n"
- "\tadds r0, r4, 0x1\n"
- "\tlsls r0, 16\n"
- "\tlsrs r4, r0, 16\n"
- "\tldr r2, [sp, 0x20]\n"
- "\tcmp r4, 0x3\n"
- "\tbls _080E99DA\n"
- "\tmovs r0, 0x64\n"
- "\tadds r4, r6, 0\n"
- "\tmuls r4, r0\n"
- "\tldr r0, =gPlayerParty\n"
- "\tadds r4, r0\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0xB\n"
- "\tbl GetMonData\n"
- "\tldr r2, [sp, 0xC]\n"
- "\tadds r1, r2, r7\n"
- "\tstrh r0, [r1]\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0xC\n"
- "\tbl GetMonData\n"
- "\tldr r3, [sp, 0x10]\n"
- "\tadds r1, r3, r7\n"
- "\tstrh r0, [r1]\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0x38\n"
- "\tbl GetMonData\n"
- "\tldr r1, [sp, 0x18]\n"
- "\tadd r1, r10\n"
- "\tstrb r0, [r1]\n"
- "\tadds r0, r4, 0\n"
- "\tmovs r1, 0\n"
- "\tbl GetMonData\n"
- "\tldr r1, [sp]\n"
- "\tadd r1, r8\n"
- "\tstr r0, [r1]\n"
- "\tadds r0, r4, 0\n"
- "\tbl sub_80E98AC\n"
- "\tldr r1, [sp, 0x1C]\n"
- "\tadd r1, r10\n"
- "\tstrb r0, [r1]\n"
- "\tldr r7, [sp, 0x8]\n"
- "\tlsls r0, r7, 16\n"
- "\tlsrs r0, 16\n"
- "\tmov r10, r0\n"
- "_080E9A54:\n"
- "\tldr r1, [sp, 0x4]\n"
- "\tlsls r0, r1, 16\n"
- "\tlsrs r6, r0, 16\n"
- "\tcmp r6, 0x5\n"
- "\tbhi _080E9A60\n"
- "\tb _080E995C\n"
- "_080E9A60:\n"
- "\tadd sp, 0x24\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.pool");
-}
-#endif
void sub_80E9A90(void)
{
@@ -1356,7 +1165,6 @@ void sub_80EA354(void)
gSpecialVar_Result = gSaveBlock1Ptr->secretBases[secretBaseRecordId].sbr_field_1_5;
}
-
void sub_80EA3E4(u8 taskId)
{
s16 x;
diff --git a/src/sprite.c b/src/sprite.c
index 6d76b9854..8a4729b27 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -240,12 +240,26 @@ static const AffineAnimCmdFunc sAffineAnimCmdFuncs[] =
AffineAnimCmd_frame,
};
-static const s32 sUnknown_082EC6F4[24] =
+static const s32 sUnknown_082EC6F4[3][4][2] =
{
- 8, 8, 0x10, 0x10, 0x20, 0x20,
- 0x40, 0x40, 0x10, 8, 0x20, 8,
- 0x20, 0x10, 0x40, 0x20, 8, 0x10,
- 8, 0x20, 0x10, 0x20, 0x20, 0x40,
+ {
+ {8, 8},
+ {0x10, 0x10},
+ {0x20, 0x20},
+ {0x40, 0x40},
+ },
+ {
+ {0x10, 8},
+ {0x20, 8},
+ {0x20, 0x10},
+ {0x40, 0x20},
+ },
+ {
+ {8, 0x10},
+ {8, 0x20},
+ {0x10, 0x20},
+ {0x20, 0x40},
+ },
};
static const struct OamDimensions sOamDimensions[3][4] =
@@ -1207,106 +1221,26 @@ s32 sub_8007E28(s32 a0, s32 a1, s32 a2)
return a2 - ((u32)(a2 * a1) / (u32)(a0) + var1);
}
-#ifdef NONMATCHING
-void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
+void obj_update_pos2(struct Sprite *sprite, s32 a1, s32 a2)
{
s32 var0, var1, var2;
- u8 matrixNum = sprite->oam.matrixNum;
+
+ u32 matrixNum = sprite->oam.matrixNum;
if (a1 != 0x800)
{
- var0 = sUnknown_082EC6F4[sprite->oam.size * 8 + sprite->oam.shape * 32];
+ var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][0];
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].a;
sprite->pos2.x = sub_8007E28(var1, var2, a1);
}
if (a2 != 0x800)
{
- var0 = sUnknown_082EC6F4[4 + (sprite->oam.size * 8 + sprite->oam.shape * 32)];
+ var0 = sUnknown_082EC6F4[sprite->oam.shape][sprite->oam.size][1];
var1 = var0 << 8;
var2 = (var0 << 16) / gOamMatrices[matrixNum].d;
sprite->pos2.y = sub_8007E28(var1, var2, a2);
}
}
-#else
-__attribute__((naked))
-void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r9\n\
- mov r6, r8\n\
- push {r6,r7}\n\
- adds r5, r0, 0\n\
- adds r6, r1, 0\n\
- mov r8, r2\n\
- ldrb r1, [r5, 0x3]\n\
- lsls r0, r1, 26\n\
- lsrs r7, r0, 27\n\
- movs r0, 0x80\n\
- lsls r0, 4\n\
- mov r9, r0\n\
- cmp r6, r9\n\
- beq _08007EA2\n\
- ldr r2, =sUnknown_082EC6F4\n\
- lsrs r1, 6\n\
- lsls r1, 3\n\
- ldrb r0, [r5, 0x1]\n\
- lsrs r0, 6\n\
- lsls r0, 5\n\
- adds r1, r0\n\
- adds r1, r2\n\
- ldr r0, [r1]\n\
- lsls r4, r0, 8\n\
- lsls r0, 16\n\
- ldr r2, =gOamMatrices\n\
- lsls r1, r7, 3\n\
- adds r1, r2\n\
- movs r2, 0\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0\n\
- adds r0, r4, 0\n\
- adds r2, r6, 0\n\
- bl sub_8007E28\n\
- strh r0, [r5, 0x24]\n\
-_08007EA2:\n\
- cmp r8, r9\n\
- beq _08007EDA\n\
- ldr r2, =sUnknown_082EC6F4\n\
- ldrb r1, [r5, 0x3]\n\
- lsrs r1, 6\n\
- lsls r1, 3\n\
- ldrb r0, [r5, 0x1]\n\
- lsrs r0, 6\n\
- lsls r0, 5\n\
- adds r1, r0\n\
- adds r2, 0x4\n\
- adds r1, r2\n\
- ldr r0, [r1]\n\
- lsls r4, r0, 8\n\
- lsls r0, 16\n\
- ldr r2, =gOamMatrices\n\
- lsls r1, r7, 3\n\
- adds r1, r2\n\
- movs r2, 0x6\n\
- ldrsh r1, [r1, r2]\n\
- bl __divsi3\n\
- adds r1, r0, 0\n\
- adds r0, r4, 0\n\
- mov r2, r8\n\
- bl sub_8007E28\n\
- strh r0, [r5, 0x26]\n\
-_08007EDA:\n\
- pop {r3,r4}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided");
-}
-#endif // NONMATCHING
void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip)
{
diff --git a/src/start_menu.c b/src/start_menu.c
index 36d249078..d076d307d 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -62,6 +62,11 @@ EWRAM_DATA u8 sBattlePyramidFloorWindowId = 0;
EWRAM_DATA u8 sStartMenuCursorPos = 0;
EWRAM_DATA u8 sNumStartMenuActions = 0;
EWRAM_DATA u8 sCurrentStartMenuActions[9] = {0};
+EWRAM_DATA u8 gUnknown_02037619[2] = {0};
+EWRAM_DATA bool8 (*gUnknown_0203761C)(void) = NULL;
+EWRAM_DATA u8 gUnknown_02037620 = 0;
+EWRAM_DATA u8 gUnknown_02037621 = 0;
+EWRAM_DATA u8 gUnknown_02037622 = 0;
// const rom data
static const struct WindowTemplate gSafariBallsWindowTemplate = {0, 1, 1, 9, 4, 0xF, 8};
@@ -120,6 +125,13 @@ const struct WindowTemplate gUnknown_085105AC[] =
const struct WindowTemplate gUnknown_085105BC = {0, 1, 1, 0xE, 0xA, 0xF, 8};
// code
+void SetDexPokemonPokenavFlags(void) // unused
+{
+ FlagSet(FLAG_SYS_POKEDEX_GET);
+ FlagSet(FLAG_SYS_POKEMON_GET);
+ FlagSet(FLAG_SYS_POKENAV_GET);
+}
+
void BuildStartMenuActions(void)
{
sNumStartMenuActions = 0;
diff --git a/src/text.c b/src/text.c
index 50e39ab0c..6a83d5d15 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1,6 +1,9 @@
#include "global.h"
+#include "battle.h"
#include "main.h"
+#include "m4a.h"
#include "palette.h"
+#include "sound.h"
#include "string_util.h"
#include "window.h"
#include "text.h"
@@ -14,6 +17,7 @@ extern u16 Font6Func(struct TextPrinter *textPrinter);
extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
extern void PlaySE(u16 songNum);
extern u8* UnkTextUtil_GetPtrI(u8 a1);
+extern int sub_8197964();
EWRAM_DATA struct TextPrinter gTempTextPrinter = {0};
EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0};
@@ -24,6 +28,7 @@ static u16 gLastTextFgColor;
static u16 gLastTextShadowColor;
extern struct Main gMain;
+extern struct MusicPlayerInfo gMPlayInfo_BGM;
const struct FontInfo *gFonts;
u8 gUnknown_03002F84;
@@ -35,22 +40,22 @@ u8 gGlyphDimensions[0x2];
TextFlags gTextFlags;
const u8 gFontHalfRowOffsets[] = {
- 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
+ 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x0D, 0x0E, 0x0C, 0x0F, 0x10, 0x11, 0x0F, 0x09, 0x0A, 0x0B, 0x09,
0x12, 0x13, 0x14, 0x12, 0x15, 0x16, 0x17, 0x15, 0x18, 0x19, 0x1A, 0x18, 0x12, 0x13, 0x14, 0x12,
- 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
+ 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
0x1B, 0x1C, 0x1D, 0x1B, 0x1E, 0x1F, 0x20, 0x1E, 0x21, 0x22, 0x23, 0x21, 0x1B, 0x1C, 0x1D, 0x1B,
0x24, 0x25, 0x26, 0x24, 0x27, 0x28, 0x29, 0x27, 0x2A, 0x2B, 0x2C, 0x2A, 0x24, 0x25, 0x26, 0x24,
- 0x2D, 0x2E, 0x2F, 0x2D, 0x30, 0x31, 0x32, 0x30, 0x33, 0x34, 0x35, 0x33, 0x2D, 0x2E, 0x2F, 0x2D,
+ 0x2D, 0x2E, 0x2F, 0x2D, 0x30, 0x31, 0x32, 0x30, 0x33, 0x34, 0x35, 0x33, 0x2D, 0x2E, 0x2F, 0x2D,
0x1B, 0x1C, 0x1D, 0x1B, 0x1E, 0x1F, 0x20, 0x1E, 0x21, 0x22, 0x23, 0x21, 0x1B, 0x1C, 0x1D, 0x1B,
0x36, 0x37, 0x38, 0x36, 0x39, 0x3A, 0x3B, 0x39, 0x3C, 0x3D, 0x3E, 0x3C, 0x36, 0x37, 0x38, 0x36,
- 0x3F, 0x40, 0x41, 0x3F, 0x42, 0x43, 0x44, 0x42, 0x45, 0x46, 0x47, 0x45, 0x3F, 0x40, 0x41, 0x3F,
+ 0x3F, 0x40, 0x41, 0x3F, 0x42, 0x43, 0x44, 0x42, 0x45, 0x46, 0x47, 0x45, 0x3F, 0x40, 0x41, 0x3F,
0x48, 0x49, 0x4A, 0x48, 0x4B, 0x4C, 0x4D, 0x4B, 0x4E, 0x4F, 0x50, 0x4E, 0x48, 0x49, 0x4A, 0x48,
0x36, 0x37, 0x38, 0x36, 0x39, 0x3A, 0x3B, 0x39, 0x3C, 0x3D, 0x3E, 0x3C, 0x36, 0x37, 0x38, 0x36,
- 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
+ 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x0D, 0x0E, 0x0C, 0x0F, 0x10, 0x11, 0x0F, 0x09, 0x0A, 0x0B, 0x09,
0x12, 0x13, 0x14, 0x12, 0x15, 0x16, 0x17, 0x15, 0x18, 0x19, 0x1A, 0x18, 0x12, 0x13, 0x14, 0x12,
- 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00
+ 0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00
};
const u8 gDownArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow.4bpp");
@@ -378,460 +383,460 @@ __attribute__((naked))
void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor)
{
asm("push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, #0x24\n\
- lsl r0, #24\n\
- lsr r0, #24\n\
- lsl r1, #24\n\
- lsr r1, #24\n\
- lsl r2, #24\n\
- lsr r2, #24\n\
- ldr r3, =gFontHalfRowLookupTable\n\
- ldr r4, =gLastTextBgColor\n\
- strh r1, [r4]\n\
- ldr r4, =gLastTextFgColor\n\
- strh r0, [r4]\n\
- ldr r4, =gLastTextShadowColor\n\
- strh r2, [r4]\n\
- lsl r5, r1, #12\n\
- lsl r6, r0, #12\n\
- lsl r4, r2, #12\n\
- mov r8, r4\n\
- lsl r7, r1, #8\n\
- str r7, [sp]\n\
- lsl r4, r1, #4\n\
- mov r9, r4\n\
- orr r7, r4\n\
- str r7, [sp, #0x4]\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- lsl r7, r0, #8\n\
- mov r10, r7\n\
- mov r4, r10\n\
- mov r7, r9\n\
- orr r4, r7\n\
- str r4, [sp, #0x8]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- lsl r7, r2, #8\n\
- mov r12, r7\n\
- mov r4, r12\n\
- mov r7, r9\n\
- orr r4, r7\n\
- str r4, [sp, #0xC]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- lsl r7, r0, #4\n\
- mov r9, r7\n\
- ldr r4, [sp]\n\
- orr r4, r7\n\
- str r4, [sp, #0x10]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- mov r7, r10\n\
- add r4, r7, #0\n\
- mov r7, r9\n\
- orr r4, r7\n\
- str r4, [sp, #0x14]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- mov r7, r12\n\
- add r4, r7, #0\n\
- mov r7, r9\n\
- orr r4, r7\n\
- str r4, [sp, #0x18]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- lsl r7, r2, #4\n\
- mov r9, r7\n\
- mov r4, r9\n\
- ldr r7, [sp]\n\
- orr r7, r4\n\
- str r7, [sp, #0x1C]\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- mov r7, r9\n\
- mov r4, r10\n\
- orr r4, r7\n\
- str r4, [sp, #0x20]\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r4, r5, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- add r4, r6, #0\n\
- orr r4, r7\n\
- strh r4, [r3]\n\
- add r3, #0x2\n\
- mov r4, r8\n\
- orr r7, r4\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- mov r4, r12\n\
- mov r7, r9\n\
- orr r4, r7\n\
- add r7, r4, #0\n\
- orr r7, r1\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x4]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x8]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0xC]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x10]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x14]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x18]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x1C]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- ldr r7, [sp, #0x20]\n\
- orr r7, r0\n\
- add r1, r5, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- add r1, r6, #0\n\
- orr r1, r7\n\
- strh r1, [r3]\n\
- add r3, #0x2\n\
- mov r1, r8\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r4, #0\n\
- orr r7, r0\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r0, [sp, #0x4]\n\
- orr r7, r0\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- orr r7, r1\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x8]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0xC]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x10]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x14]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x18]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x1C]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- ldr r1, [sp, #0x20]\n\
- orr r7, r1\n\
- add r0, r5, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- add r0, r6, #0\n\
- orr r0, r7\n\
- strh r0, [r3]\n\
- add r3, #0x2\n\
- mov r0, r8\n\
- orr r7, r0\n\
- strh r7, [r3]\n\
- add r3, #0x2\n\
- add r7, r2, #0\n\
- orr r7, r4\n\
- orr r5, r7\n\
- strh r5, [r3]\n\
- add r3, #0x2\n\
- orr r6, r7\n\
- strh r6, [r3]\n\
- orr r0, r7\n\
- strh r0, [r3, #0x2]\n\
- add sp, #0x24\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, #0x24\n\
+ lsl r0, #24\n\
+ lsr r0, #24\n\
+ lsl r1, #24\n\
+ lsr r1, #24\n\
+ lsl r2, #24\n\
+ lsr r2, #24\n\
+ ldr r3, =gFontHalfRowLookupTable\n\
+ ldr r4, =gLastTextBgColor\n\
+ strh r1, [r4]\n\
+ ldr r4, =gLastTextFgColor\n\
+ strh r0, [r4]\n\
+ ldr r4, =gLastTextShadowColor\n\
+ strh r2, [r4]\n\
+ lsl r5, r1, #12\n\
+ lsl r6, r0, #12\n\
+ lsl r4, r2, #12\n\
+ mov r8, r4\n\
+ lsl r7, r1, #8\n\
+ str r7, [sp]\n\
+ lsl r4, r1, #4\n\
+ mov r9, r4\n\
+ orr r7, r4\n\
+ str r7, [sp, #0x4]\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ lsl r7, r0, #8\n\
+ mov r10, r7\n\
+ mov r4, r10\n\
+ mov r7, r9\n\
+ orr r4, r7\n\
+ str r4, [sp, #0x8]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ lsl r7, r2, #8\n\
+ mov r12, r7\n\
+ mov r4, r12\n\
+ mov r7, r9\n\
+ orr r4, r7\n\
+ str r4, [sp, #0xC]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ lsl r7, r0, #4\n\
+ mov r9, r7\n\
+ ldr r4, [sp]\n\
+ orr r4, r7\n\
+ str r4, [sp, #0x10]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ mov r7, r10\n\
+ add r4, r7, #0\n\
+ mov r7, r9\n\
+ orr r4, r7\n\
+ str r4, [sp, #0x14]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ mov r7, r12\n\
+ add r4, r7, #0\n\
+ mov r7, r9\n\
+ orr r4, r7\n\
+ str r4, [sp, #0x18]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ lsl r7, r2, #4\n\
+ mov r9, r7\n\
+ mov r4, r9\n\
+ ldr r7, [sp]\n\
+ orr r7, r4\n\
+ str r7, [sp, #0x1C]\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ mov r7, r9\n\
+ mov r4, r10\n\
+ orr r4, r7\n\
+ str r4, [sp, #0x20]\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r4, r5, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ add r4, r6, #0\n\
+ orr r4, r7\n\
+ strh r4, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r8\n\
+ orr r7, r4\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ mov r4, r12\n\
+ mov r7, r9\n\
+ orr r4, r7\n\
+ add r7, r4, #0\n\
+ orr r7, r1\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x4]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x8]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0xC]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x10]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x14]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x18]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x1C]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ ldr r7, [sp, #0x20]\n\
+ orr r7, r0\n\
+ add r1, r5, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ add r1, r6, #0\n\
+ orr r1, r7\n\
+ strh r1, [r3]\n\
+ add r3, #0x2\n\
+ mov r1, r8\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r4, #0\n\
+ orr r7, r0\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r0, [sp, #0x4]\n\
+ orr r7, r0\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ orr r7, r1\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x8]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0xC]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x10]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x14]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x18]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x1C]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ ldr r1, [sp, #0x20]\n\
+ orr r7, r1\n\
+ add r0, r5, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ add r0, r6, #0\n\
+ orr r0, r7\n\
+ strh r0, [r3]\n\
+ add r3, #0x2\n\
+ mov r0, r8\n\
+ orr r7, r0\n\
+ strh r7, [r3]\n\
+ add r3, #0x2\n\
+ add r7, r2, #0\n\
+ orr r7, r4\n\
+ orr r5, r7\n\
+ strh r5, [r3]\n\
+ add r3, #0x2\n\
+ orr r6, r7\n\
+ strh r6, [r3]\n\
+ orr r0, r7\n\
+ strh r0, [r3, #0x2]\n\
+ add sp, #0x24\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
}
#endif
@@ -874,165 +879,165 @@ __attribute__((naked))
void DecompressGlyphTile(const u16 *src, u16 *dest)
{
asm("push {r4-r7,lr}\n\
- mov r7, r8\n\
- push {r7}\n\
- ldrh r7, [r0]\n\
- ldr r5, =gFontHalfRowLookupTable\n\
- ldr r4, =gFontHalfRowOffsets\n\
- mov r2, #0xFF\n\
- mov r8, r2\n\
- add r2, r7, #0\n\
- mov r3, r8\n\
- and r2, r3\n\
- add r2, r4\n\
- ldrb r2, [r2]\n\
- lsl r2, #1\n\
- add r2, r5\n\
- ldrh r3, [r2]\n\
- lsl r3, #16\n\
- lsr r2, r7, #8\n\
- add r2, r4\n\
- ldrb r2, [r2]\n\
- lsl r2, #1\n\
- add r2, r5\n\
- ldrh r2, [r2]\n\
- orr r3, r2\n\
- add r6, r1, #0\n\
- stmia r6!, {r3}\n\
- ldrh r7, [r0, #0x2]\n\
- add r0, #0x4\n\
- add r2, r7, #0\n\
- mov r3, r8\n\
- and r2, r3\n\
- add r2, r4\n\
- ldrb r2, [r2]\n\
- lsl r2, #1\n\
- add r2, r5\n\
- ldrh r3, [r2]\n\
- lsl r3, #16\n\
- lsr r2, r7, #8\n\
- add r2, r4\n\
- ldrb r2, [r2]\n\
- lsl r2, #1\n\
- add r2, r5\n\
- ldrh r2, [r2]\n\
- orr r3, r2\n\
- str r3, [r1, #0x4]\n\
- add r6, #0x4\n\
- ldrh r7, [r0]\n\
- add r0, #0x2\n\
- add r1, r7, #0\n\
- mov r2, r8\n\
- and r1, r2\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r2, [r1]\n\
- lsl r2, #16\n\
- lsr r1, r7, #8\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r1, [r1]\n\
- orr r2, r1\n\
- stmia r6!, {r2}\n\
- ldrh r7, [r0]\n\
- add r0, #0x2\n\
- add r1, r7, #0\n\
- mov r3, r8\n\
- and r1, r3\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r2, [r1]\n\
- lsl r2, #16\n\
- lsr r1, r7, #8\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r1, [r1]\n\
- orr r2, r1\n\
- stmia r6!, {r2}\n\
- ldrh r7, [r0]\n\
- add r0, #0x2\n\
- add r1, r7, #0\n\
- and r1, r3\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r2, [r1]\n\
- lsl r2, #16\n\
- lsr r1, r7, #8\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r1, [r1]\n\
- orr r2, r1\n\
- stmia r6!, {r2}\n\
- ldrh r7, [r0]\n\
- add r0, #0x2\n\
- add r1, r7, #0\n\
- and r1, r3\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r2, [r1]\n\
- lsl r2, #16\n\
- lsr r1, r7, #8\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r1, [r1]\n\
- orr r2, r1\n\
- stmia r6!, {r2}\n\
- ldrh r7, [r0]\n\
- add r1, r7, #0\n\
- and r1, r3\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r2, [r1]\n\
- lsl r2, #16\n\
- lsr r1, r7, #8\n\
- add r1, r4\n\
- ldrb r1, [r1]\n\
- lsl r1, #1\n\
- add r1, r5\n\
- ldrh r1, [r1]\n\
- orr r2, r1\n\
- stmia r6!, {r2}\n\
- ldrh r7, [r0, #0x2]\n\
- add r0, r7, #0\n\
- and r0, r3\n\
- add r0, r4\n\
- ldrb r0, [r0]\n\
- lsl r0, #1\n\
- add r0, r5\n\
- ldrh r1, [r0]\n\
- lsl r1, #16\n\
- lsr r0, r7, #8\n\
- add r0, r4\n\
- ldrb r0, [r0]\n\
- lsl r0, #1\n\
- add r0, r5\n\
- ldrh r0, [r0]\n\
- orr r1, r0\n\
- str r1, [r6]\n\
- pop {r3}\n\
- mov r8, r3\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
+ mov r7, r8\n\
+ push {r7}\n\
+ ldrh r7, [r0]\n\
+ ldr r5, =gFontHalfRowLookupTable\n\
+ ldr r4, =gFontHalfRowOffsets\n\
+ mov r2, #0xFF\n\
+ mov r8, r2\n\
+ add r2, r7, #0\n\
+ mov r3, r8\n\
+ and r2, r3\n\
+ add r2, r4\n\
+ ldrb r2, [r2]\n\
+ lsl r2, #1\n\
+ add r2, r5\n\
+ ldrh r3, [r2]\n\
+ lsl r3, #16\n\
+ lsr r2, r7, #8\n\
+ add r2, r4\n\
+ ldrb r2, [r2]\n\
+ lsl r2, #1\n\
+ add r2, r5\n\
+ ldrh r2, [r2]\n\
+ orr r3, r2\n\
+ add r6, r1, #0\n\
+ stmia r6!, {r3}\n\
+ ldrh r7, [r0, #0x2]\n\
+ add r0, #0x4\n\
+ add r2, r7, #0\n\
+ mov r3, r8\n\
+ and r2, r3\n\
+ add r2, r4\n\
+ ldrb r2, [r2]\n\
+ lsl r2, #1\n\
+ add r2, r5\n\
+ ldrh r3, [r2]\n\
+ lsl r3, #16\n\
+ lsr r2, r7, #8\n\
+ add r2, r4\n\
+ ldrb r2, [r2]\n\
+ lsl r2, #1\n\
+ add r2, r5\n\
+ ldrh r2, [r2]\n\
+ orr r3, r2\n\
+ str r3, [r1, #0x4]\n\
+ add r6, #0x4\n\
+ ldrh r7, [r0]\n\
+ add r0, #0x2\n\
+ add r1, r7, #0\n\
+ mov r2, r8\n\
+ and r1, r2\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r2, [r1]\n\
+ lsl r2, #16\n\
+ lsr r1, r7, #8\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r1, [r1]\n\
+ orr r2, r1\n\
+ stmia r6!, {r2}\n\
+ ldrh r7, [r0]\n\
+ add r0, #0x2\n\
+ add r1, r7, #0\n\
+ mov r3, r8\n\
+ and r1, r3\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r2, [r1]\n\
+ lsl r2, #16\n\
+ lsr r1, r7, #8\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r1, [r1]\n\
+ orr r2, r1\n\
+ stmia r6!, {r2}\n\
+ ldrh r7, [r0]\n\
+ add r0, #0x2\n\
+ add r1, r7, #0\n\
+ and r1, r3\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r2, [r1]\n\
+ lsl r2, #16\n\
+ lsr r1, r7, #8\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r1, [r1]\n\
+ orr r2, r1\n\
+ stmia r6!, {r2}\n\
+ ldrh r7, [r0]\n\
+ add r0, #0x2\n\
+ add r1, r7, #0\n\
+ and r1, r3\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r2, [r1]\n\
+ lsl r2, #16\n\
+ lsr r1, r7, #8\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r1, [r1]\n\
+ orr r2, r1\n\
+ stmia r6!, {r2}\n\
+ ldrh r7, [r0]\n\
+ add r1, r7, #0\n\
+ and r1, r3\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r2, [r1]\n\
+ lsl r2, #16\n\
+ lsr r1, r7, #8\n\
+ add r1, r4\n\
+ ldrb r1, [r1]\n\
+ lsl r1, #1\n\
+ add r1, r5\n\
+ ldrh r1, [r1]\n\
+ orr r2, r1\n\
+ stmia r6!, {r2}\n\
+ ldrh r7, [r0, #0x2]\n\
+ add r0, r7, #0\n\
+ and r0, r3\n\
+ add r0, r4\n\
+ ldrb r0, [r0]\n\
+ lsl r0, #1\n\
+ add r0, r5\n\
+ ldrh r1, [r0]\n\
+ lsl r1, #16\n\
+ lsr r0, r7, #8\n\
+ add r0, r4\n\
+ ldrb r0, [r0]\n\
+ lsl r0, #1\n\
+ add r0, r5\n\
+ ldrh r0, [r0]\n\
+ orr r1, r0\n\
+ str r1, [r6]\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
}
#endif
@@ -1055,703 +1060,703 @@ __attribute__((naked))
void CopyGlyphToWindow(struct TextPrinter *x)
{
asm("push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, #0x8C\n\
- add r3, r0, #0\n\
- ldrb r1, [r3, #0x4]\n\
- lsl r0, r1, #1\n\
- add r0, r1\n\
- lsl r0, #2\n\
- ldr r1, =gWindows\n\
- add r1, r0, r1\n\
- add r2, r1, #0\n\
- ldrb r7, [r1, #0x3]\n\
- lsl r0, r7, #3\n\
- ldrb r6, [r3, #0x8]\n\
- sub r4, r0, r6\n\
- ldr r5, =gUnknown_03002F90\n\
- add r0, r5, #0\n\
- add r0, #0x80\n\
- ldrb r0, [r0]\n\
- cmp r4, r0\n\
- ble _08004DD2\n\
- add r4, r0, #0\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, #0x8C\n\
+ add r3, r0, #0\n\
+ ldrb r1, [r3, #0x4]\n\
+ lsl r0, r1, #1\n\
+ add r0, r1\n\
+ lsl r0, #2\n\
+ ldr r1, =gWindows\n\
+ add r1, r0, r1\n\
+ add r2, r1, #0\n\
+ ldrb r7, [r1, #0x3]\n\
+ lsl r0, r7, #3\n\
+ ldrb r6, [r3, #0x8]\n\
+ sub r4, r0, r6\n\
+ ldr r5, =gUnknown_03002F90\n\
+ add r0, r5, #0\n\
+ add r0, #0x80\n\
+ ldrb r0, [r0]\n\
+ cmp r4, r0\n\
+ ble _08004DD2\n\
+ add r4, r0, #0\n\
_08004DD2:\n\
- ldrb r0, [r1, #0x4]\n\
- lsl r0, #3\n\
- ldrb r3, [r3, #0x9]\n\
- sub r0, r3\n\
- add r1, r5, #0\n\
- add r1, #0x81\n\
- ldrb r1, [r1]\n\
- cmp r0, r1\n\
- ble _08004DE6\n\
- add r0, r1, #0\n\
+ ldrb r0, [r1, #0x4]\n\
+ lsl r0, #3\n\
+ ldrb r3, [r3, #0x9]\n\
+ sub r0, r3\n\
+ add r1, r5, #0\n\
+ add r1, #0x81\n\
+ ldrb r1, [r1]\n\
+ cmp r0, r1\n\
+ ble _08004DE6\n\
+ add r0, r1, #0\n\
_08004DE6:\n\
- str r6, [sp]\n\
- mov r8, r3\n\
- add r3, r5, #0\n\
- ldr r2, [r2, #0x8]\n\
- mov r9, r2\n\
- lsl r1, r7, #5\n\
- str r1, [sp, #0x4]\n\
- cmp r4, #0x8\n\
- ble _08004DFA\n\
- b _08004F94\n\
+ str r6, [sp]\n\
+ mov r8, r3\n\
+ add r3, r5, #0\n\
+ ldr r2, [r2, #0x8]\n\
+ mov r9, r2\n\
+ lsl r1, r7, #5\n\
+ str r1, [sp, #0x4]\n\
+ cmp r4, #0x8\n\
+ ble _08004DFA\n\
+ b _08004F94\n\
_08004DFA:\n\
- cmp r0, #0x8\n\
- bgt _08004E84\n\
- mov r1, r8\n\
- str r3, [sp, #0x8]\n\
- add r2, r6, #0\n\
- add r2, r4\n\
- mov r8, r2\n\
- add r0, r1, r0\n\
- str r0, [sp, #0xC]\n\
- str r6, [sp, #0x10]\n\
- cmp r1, r0\n\
- bcc _08004E14\n\
- b _080052AA\n\
+ cmp r0, #0x8\n\
+ bgt _08004E84\n\
+ mov r1, r8\n\
+ str r3, [sp, #0x8]\n\
+ add r2, r6, #0\n\
+ add r2, r4\n\
+ mov r8, r2\n\
+ add r0, r1, r0\n\
+ str r0, [sp, #0xC]\n\
+ str r6, [sp, #0x10]\n\
+ cmp r1, r0\n\
+ bcc _08004E14\n\
+ b _080052AA\n\
_08004E14:\n\
- ldr r3, [sp, #0x8]\n\
- ldm r3!, {r5}\n\
- str r3, [sp, #0x8]\n\
- ldr r4, [sp, #0x10]\n\
- add r0, r1, #0x1\n\
- mov r10, r0\n\
- cmp r4, r8\n\
- bcs _08004E72\n\
- mov r2, #0x7\n\
- mov r12, r2\n\
- lsr r0, r1, #3\n\
- ldr r2, [sp, #0x4]\n\
- add r3, r0, #0\n\
- mul r3, r2\n\
- add r7, r3, #0\n\
- mov r3, r12\n\
- and r1, r3\n\
- lsl r6, r1, #2\n\
+ ldr r3, [sp, #0x8]\n\
+ ldm r3!, {r5}\n\
+ str r3, [sp, #0x8]\n\
+ ldr r4, [sp, #0x10]\n\
+ add r0, r1, #0x1\n\
+ mov r10, r0\n\
+ cmp r4, r8\n\
+ bcs _08004E72\n\
+ mov r2, #0x7\n\
+ mov r12, r2\n\
+ lsr r0, r1, #3\n\
+ ldr r2, [sp, #0x4]\n\
+ add r3, r0, #0\n\
+ mul r3, r2\n\
+ add r7, r3, #0\n\
+ mov r3, r12\n\
+ and r1, r3\n\
+ lsl r6, r1, #2\n\
_08004E38:\n\
- add r3, r5, #0\n\
- mov r0, #0xF\n\
- and r3, r0\n\
- cmp r3, #0\n\
- beq _08004E6A\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r0, #0xF\n\
+ and r3, r0\n\
+ cmp r3, #0\n\
+ beq _08004E6A\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_08004E6A:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _08004E38\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _08004E38\n\
_08004E72:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0xC]\n\
- cmp r1, r2\n\
- bcc _08004E14\n\
- b _080052AA\n\
- .pool\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0xC]\n\
+ cmp r1, r2\n\
+ bcc _08004E14\n\
+ b _080052AA\n\
+ .pool\n\
_08004E84:\n\
- mov r1, r8\n\
- str r3, [sp, #0x14]\n\
- ldr r3, [sp]\n\
- add r3, r4\n\
- mov r12, r3\n\
- add r2, r1, #0\n\
- add r2, #0x8\n\
- str r2, [sp, #0x18]\n\
- ldr r3, [sp]\n\
- str r3, [sp, #0x1C]\n\
- mov r2, r12\n\
- str r2, [sp, #0x74]\n\
- ldr r3, [sp, #0x18]\n\
- str r3, [sp, #0x88]\n\
- sub r0, #0x8\n\
- str r0, [sp, #0x80]\n\
- cmp r1, r3\n\
- bcs _08004F0E\n\
+ mov r1, r8\n\
+ str r3, [sp, #0x14]\n\
+ ldr r3, [sp]\n\
+ add r3, r4\n\
+ mov r12, r3\n\
+ add r2, r1, #0\n\
+ add r2, #0x8\n\
+ str r2, [sp, #0x18]\n\
+ ldr r3, [sp]\n\
+ str r3, [sp, #0x1C]\n\
+ mov r2, r12\n\
+ str r2, [sp, #0x74]\n\
+ ldr r3, [sp, #0x18]\n\
+ str r3, [sp, #0x88]\n\
+ sub r0, #0x8\n\
+ str r0, [sp, #0x80]\n\
+ cmp r1, r3\n\
+ bcs _08004F0E\n\
_08004EA8:\n\
- ldr r0, [sp, #0x14]\n\
- ldm r0!, {r5}\n\
- str r0, [sp, #0x14]\n\
- ldr r4, [sp, #0x1C]\n\
- add r2, r1, #0x1\n\
- mov r8, r2\n\
- cmp r4, r12\n\
- bcs _08004F06\n\
- mov r3, #0x7\n\
- mov r10, r3\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, r10\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r0, [sp, #0x14]\n\
+ ldm r0!, {r5}\n\
+ str r0, [sp, #0x14]\n\
+ ldr r4, [sp, #0x1C]\n\
+ add r2, r1, #0x1\n\
+ mov r8, r2\n\
+ cmp r4, r12\n\
+ bcs _08004F06\n\
+ mov r3, #0x7\n\
+ mov r10, r3\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, r10\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_08004ECC:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _08004EFE\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r10\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _08004EFE\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r10\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_08004EFE:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r12\n\
- bcc _08004ECC\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r12\n\
+ bcc _08004ECC\n\
_08004F06:\n\
- mov r1, r8\n\
- ldr r2, [sp, #0x18]\n\
- cmp r1, r2\n\
- bcc _08004EA8\n\
+ mov r1, r8\n\
+ ldr r2, [sp, #0x18]\n\
+ cmp r1, r2\n\
+ bcc _08004EA8\n\
_08004F0E:\n\
- ldr r1, [sp, #0x88]\n\
- ldr r3, =gUnknown_03002FD0\n\
- str r3, [sp, #0x20]\n\
- ldr r0, [sp, #0x74]\n\
- mov r8, r0\n\
- ldr r2, [sp, #0x80]\n\
- add r2, r1, r2\n\
- str r2, [sp, #0x24]\n\
- ldr r3, [sp]\n\
- str r3, [sp, #0x28]\n\
- cmp r1, r2\n\
- bcc _08004F28\n\
- b _080052AA\n\
+ ldr r1, [sp, #0x88]\n\
+ ldr r3, =gUnknown_03002FD0\n\
+ str r3, [sp, #0x20]\n\
+ ldr r0, [sp, #0x74]\n\
+ mov r8, r0\n\
+ ldr r2, [sp, #0x80]\n\
+ add r2, r1, r2\n\
+ str r2, [sp, #0x24]\n\
+ ldr r3, [sp]\n\
+ str r3, [sp, #0x28]\n\
+ cmp r1, r2\n\
+ bcc _08004F28\n\
+ b _080052AA\n\
_08004F28:\n\
- ldr r0, [sp, #0x20]\n\
- ldm r0!, {r5}\n\
- str r0, [sp, #0x20]\n\
- ldr r4, [sp, #0x28]\n\
- add r2, r1, #0x1\n\
- mov r10, r2\n\
- cmp r4, r8\n\
- bcs _08004F86\n\
- mov r3, #0x7\n\
- mov r12, r3\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, r12\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r0, [sp, #0x20]\n\
+ ldm r0!, {r5}\n\
+ str r0, [sp, #0x20]\n\
+ ldr r4, [sp, #0x28]\n\
+ add r2, r1, #0x1\n\
+ mov r10, r2\n\
+ cmp r4, r8\n\
+ bcs _08004F86\n\
+ mov r3, #0x7\n\
+ mov r12, r3\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, r12\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_08004F4C:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _08004F7E\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _08004F7E\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_08004F7E:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _08004F4C\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _08004F4C\n\
_08004F86:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x24]\n\
- cmp r1, r2\n\
- bcc _08004F28\n\
- b _080052AA\n\
- .pool\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x24]\n\
+ cmp r1, r2\n\
+ bcc _08004F28\n\
+ b _080052AA\n\
+ .pool\n\
_08004F94:\n\
- cmp r0, #0x8\n\
- ble _08004F9A\n\
- b _080050A4\n\
+ cmp r0, #0x8\n\
+ ble _08004F9A\n\
+ b _080050A4\n\
_08004F9A:\n\
- mov r1, r8\n\
- str r3, [sp, #0x2C]\n\
- ldr r3, [sp]\n\
- add r3, #0x8\n\
- mov r12, r3\n\
- add r0, r8\n\
- str r0, [sp, #0x30]\n\
- ldr r0, [sp]\n\
- str r0, [sp, #0x34]\n\
- ldr r2, [sp, #0x30]\n\
- str r2, [sp, #0x78]\n\
- str r3, [sp, #0x84]\n\
- sub r4, #0x8\n\
- str r4, [sp, #0x7C]\n\
- cmp r8, r2\n\
- bcs _0800501C\n\
+ mov r1, r8\n\
+ str r3, [sp, #0x2C]\n\
+ ldr r3, [sp]\n\
+ add r3, #0x8\n\
+ mov r12, r3\n\
+ add r0, r8\n\
+ str r0, [sp, #0x30]\n\
+ ldr r0, [sp]\n\
+ str r0, [sp, #0x34]\n\
+ ldr r2, [sp, #0x30]\n\
+ str r2, [sp, #0x78]\n\
+ str r3, [sp, #0x84]\n\
+ sub r4, #0x8\n\
+ str r4, [sp, #0x7C]\n\
+ cmp r8, r2\n\
+ bcs _0800501C\n\
_08004FBA:\n\
- ldr r0, [sp, #0x2C]\n\
- ldm r0!, {r5}\n\
- str r0, [sp, #0x2C]\n\
- ldr r4, [sp, #0x34]\n\
- add r2, r1, #0x1\n\
- mov r10, r2\n\
- cmp r4, r12\n\
- bcs _08005014\n\
- lsr r0, r1, #3\n\
- ldr r2, [sp, #0x4]\n\
- add r3, r0, #0\n\
- mul r3, r2\n\
- add r7, r3, #0\n\
- mov r3, #0x7\n\
- and r1, r3\n\
- lsl r6, r1, #2\n\
+ ldr r0, [sp, #0x2C]\n\
+ ldm r0!, {r5}\n\
+ str r0, [sp, #0x2C]\n\
+ ldr r4, [sp, #0x34]\n\
+ add r2, r1, #0x1\n\
+ mov r10, r2\n\
+ cmp r4, r12\n\
+ bcs _08005014\n\
+ lsr r0, r1, #3\n\
+ ldr r2, [sp, #0x4]\n\
+ add r3, r0, #0\n\
+ mul r3, r2\n\
+ add r7, r3, #0\n\
+ mov r3, #0x7\n\
+ and r1, r3\n\
+ lsl r6, r1, #2\n\
_08004FDA:\n\
- add r3, r5, #0\n\
- mov r0, #0xF\n\
- and r3, r0\n\
- cmp r3, #0\n\
- beq _0800500C\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, #0x7\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r0, #0xF\n\
+ and r3, r0\n\
+ cmp r3, #0\n\
+ beq _0800500C\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, #0x7\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800500C:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r12\n\
- bcc _08004FDA\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r12\n\
+ bcc _08004FDA\n\
_08005014:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x30]\n\
- cmp r1, r2\n\
- bcc _08004FBA\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x30]\n\
+ cmp r1, r2\n\
+ bcc _08004FBA\n\
_0800501C:\n\
- mov r1, r8\n\
- ldr r3, =gUnknown_03002FB0\n\
- str r3, [sp, #0x38]\n\
- ldr r0, [sp, #0x84]\n\
- ldr r2, [sp, #0x7C]\n\
- add r0, r2\n\
- mov r8, r0\n\
- ldr r3, [sp, #0x78]\n\
- str r3, [sp, #0x3C]\n\
- ldr r0, [sp, #0x84]\n\
- str r0, [sp, #0x40]\n\
- cmp r1, r3\n\
- bcc _08005038\n\
- b _080052AA\n\
+ mov r1, r8\n\
+ ldr r3, =gUnknown_03002FB0\n\
+ str r3, [sp, #0x38]\n\
+ ldr r0, [sp, #0x84]\n\
+ ldr r2, [sp, #0x7C]\n\
+ add r0, r2\n\
+ mov r8, r0\n\
+ ldr r3, [sp, #0x78]\n\
+ str r3, [sp, #0x3C]\n\
+ ldr r0, [sp, #0x84]\n\
+ str r0, [sp, #0x40]\n\
+ cmp r1, r3\n\
+ bcc _08005038\n\
+ b _080052AA\n\
_08005038:\n\
- ldr r2, [sp, #0x38]\n\
- ldm r2!, {r5}\n\
- str r2, [sp, #0x38]\n\
- ldr r4, [sp, #0x40]\n\
- add r3, r1, #0x1\n\
- mov r10, r3\n\
- cmp r4, r8\n\
- bcs _08005096\n\
- mov r0, #0x7\n\
- mov r12, r0\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, r12\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r2, [sp, #0x38]\n\
+ ldm r2!, {r5}\n\
+ str r2, [sp, #0x38]\n\
+ ldr r4, [sp, #0x40]\n\
+ add r3, r1, #0x1\n\
+ mov r10, r3\n\
+ cmp r4, r8\n\
+ bcs _08005096\n\
+ mov r0, #0x7\n\
+ mov r12, r0\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, r12\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_0800505C:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _0800508E\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _0800508E\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800508E:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _0800505C\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _0800505C\n\
_08005096:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x3C]\n\
- cmp r1, r2\n\
- bcc _08005038\n\
- b _080052AA\n\
- .pool\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x3C]\n\
+ cmp r1, r2\n\
+ bcc _08005038\n\
+ b _080052AA\n\
+ .pool\n\
_080050A4:\n\
- mov r1, r8\n\
- str r5, [sp, #0x44]\n\
- ldr r3, [sp]\n\
- add r3, #0x8\n\
- mov r12, r3\n\
- mov r2, r8\n\
- add r2, #0x8\n\
- str r2, [sp, #0x48]\n\
- ldr r3, [sp]\n\
- str r3, [sp, #0x4C]\n\
- str r2, [sp, #0x88]\n\
- sub r0, #0x8\n\
- str r0, [sp, #0x80]\n\
- mov r0, r12\n\
- str r0, [sp, #0x84]\n\
- sub r4, #0x8\n\
- str r4, [sp, #0x7C]\n\
- cmp r8, r2\n\
- bcs _0800512C\n\
+ mov r1, r8\n\
+ str r5, [sp, #0x44]\n\
+ ldr r3, [sp]\n\
+ add r3, #0x8\n\
+ mov r12, r3\n\
+ mov r2, r8\n\
+ add r2, #0x8\n\
+ str r2, [sp, #0x48]\n\
+ ldr r3, [sp]\n\
+ str r3, [sp, #0x4C]\n\
+ str r2, [sp, #0x88]\n\
+ sub r0, #0x8\n\
+ str r0, [sp, #0x80]\n\
+ mov r0, r12\n\
+ str r0, [sp, #0x84]\n\
+ sub r4, #0x8\n\
+ str r4, [sp, #0x7C]\n\
+ cmp r8, r2\n\
+ bcs _0800512C\n\
_080050CA:\n\
- ldr r2, [sp, #0x44]\n\
- ldm r2!, {r5}\n\
- str r2, [sp, #0x44]\n\
- ldr r4, [sp, #0x4C]\n\
- add r3, r1, #0x1\n\
- mov r10, r3\n\
- cmp r4, r12\n\
- bcs _08005124\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, #0x7\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r2, [sp, #0x44]\n\
+ ldm r2!, {r5}\n\
+ str r2, [sp, #0x44]\n\
+ ldr r4, [sp, #0x4C]\n\
+ add r3, r1, #0x1\n\
+ mov r10, r3\n\
+ cmp r4, r12\n\
+ bcs _08005124\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, #0x7\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_080050EA:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _0800511C\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, #0x7\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _0800511C\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, #0x7\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800511C:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r12\n\
- bcc _080050EA\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r12\n\
+ bcc _080050EA\n\
_08005124:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x48]\n\
- cmp r1, r2\n\
- bcc _080050CA\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x48]\n\
+ cmp r1, r2\n\
+ bcc _080050CA\n\
_0800512C:\n\
- mov r1, r8\n\
- ldr r3, =gUnknown_03002FB0\n\
- str r3, [sp, #0x50]\n\
- ldr r0, [sp, #0x84]\n\
- ldr r2, [sp, #0x7C]\n\
- add r0, r2\n\
- mov r8, r0\n\
- ldr r3, [sp, #0x88]\n\
- str r3, [sp, #0x54]\n\
- ldr r0, [sp, #0x84]\n\
- str r0, [sp, #0x58]\n\
- cmp r1, r3\n\
- bcs _080051AC\n\
+ mov r1, r8\n\
+ ldr r3, =gUnknown_03002FB0\n\
+ str r3, [sp, #0x50]\n\
+ ldr r0, [sp, #0x84]\n\
+ ldr r2, [sp, #0x7C]\n\
+ add r0, r2\n\
+ mov r8, r0\n\
+ ldr r3, [sp, #0x88]\n\
+ str r3, [sp, #0x54]\n\
+ ldr r0, [sp, #0x84]\n\
+ str r0, [sp, #0x58]\n\
+ cmp r1, r3\n\
+ bcs _080051AC\n\
_08005146:\n\
- ldr r2, [sp, #0x50]\n\
- ldm r2!, {r5}\n\
- str r2, [sp, #0x50]\n\
- ldr r4, [sp, #0x58]\n\
- add r3, r1, #0x1\n\
- mov r10, r3\n\
- cmp r4, r8\n\
- bcs _080051A4\n\
- mov r0, #0x7\n\
- mov r12, r0\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, r12\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r2, [sp, #0x50]\n\
+ ldm r2!, {r5}\n\
+ str r2, [sp, #0x50]\n\
+ ldr r4, [sp, #0x58]\n\
+ add r3, r1, #0x1\n\
+ mov r10, r3\n\
+ cmp r4, r8\n\
+ bcs _080051A4\n\
+ mov r0, #0x7\n\
+ mov r12, r0\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, r12\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_0800516A:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _0800519C\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _0800519C\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800519C:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _0800516A\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _0800516A\n\
_080051A4:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x54]\n\
- cmp r1, r2\n\
- bcc _08005146\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x54]\n\
+ cmp r1, r2\n\
+ bcc _08005146\n\
_080051AC:\n\
- ldr r1, [sp, #0x88]\n\
- ldr r3, =gUnknown_03002FD0\n\
- str r3, [sp, #0x5C]\n\
- ldr r0, [sp, #0x84]\n\
- mov r8, r0\n\
- ldr r2, [sp, #0x80]\n\
- add r2, r1, r2\n\
- str r2, [sp, #0x60]\n\
- ldr r3, [sp]\n\
- str r3, [sp, #0x64]\n\
- cmp r1, r2\n\
- bcs _0800522A\n\
+ ldr r1, [sp, #0x88]\n\
+ ldr r3, =gUnknown_03002FD0\n\
+ str r3, [sp, #0x5C]\n\
+ ldr r0, [sp, #0x84]\n\
+ mov r8, r0\n\
+ ldr r2, [sp, #0x80]\n\
+ add r2, r1, r2\n\
+ str r2, [sp, #0x60]\n\
+ ldr r3, [sp]\n\
+ str r3, [sp, #0x64]\n\
+ cmp r1, r2\n\
+ bcs _0800522A\n\
_080051C4:\n\
- ldr r0, [sp, #0x5C]\n\
- ldm r0!, {r5}\n\
- str r0, [sp, #0x5C]\n\
- ldr r4, [sp, #0x64]\n\
- add r2, r1, #0x1\n\
- mov r10, r2\n\
- cmp r4, r8\n\
- bcs _08005222\n\
- mov r3, #0x7\n\
- mov r12, r3\n\
- lsr r0, r1, #3\n\
- ldr r3, [sp, #0x4]\n\
- add r2, r0, #0\n\
- mul r2, r3\n\
- add r7, r2, #0\n\
- mov r0, r12\n\
- and r1, r0\n\
- lsl r6, r1, #2\n\
+ ldr r0, [sp, #0x5C]\n\
+ ldm r0!, {r5}\n\
+ str r0, [sp, #0x5C]\n\
+ ldr r4, [sp, #0x64]\n\
+ add r2, r1, #0x1\n\
+ mov r10, r2\n\
+ cmp r4, r8\n\
+ bcs _08005222\n\
+ mov r3, #0x7\n\
+ mov r12, r3\n\
+ lsr r0, r1, #3\n\
+ ldr r3, [sp, #0x4]\n\
+ add r2, r0, #0\n\
+ mul r2, r3\n\
+ add r7, r2, #0\n\
+ mov r0, r12\n\
+ and r1, r0\n\
+ lsl r6, r1, #2\n\
_080051E8:\n\
- add r3, r5, #0\n\
- mov r1, #0xF\n\
- and r3, r1\n\
- cmp r3, #0\n\
- beq _0800521A\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r1, #0xF\n\
+ and r3, r1\n\
+ cmp r3, #0\n\
+ beq _0800521A\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800521A:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _080051E8\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _080051E8\n\
_08005222:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x60]\n\
- cmp r1, r2\n\
- bcc _080051C4\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x60]\n\
+ cmp r1, r2\n\
+ bcc _080051C4\n\
_0800522A:\n\
- ldr r4, [sp, #0x84]\n\
- ldr r1, [sp, #0x88]\n\
- ldr r3, =gUnknown_03002FF0\n\
- str r3, [sp, #0x68]\n\
- ldr r0, [sp, #0x7C]\n\
- add r0, r4\n\
- mov r8, r0\n\
- ldr r2, [sp, #0x80]\n\
- add r2, r1, r2\n\
- str r2, [sp, #0x6C]\n\
- str r4, [sp, #0x70]\n\
- cmp r1, r2\n\
- bcs _080052AA\n\
+ ldr r4, [sp, #0x84]\n\
+ ldr r1, [sp, #0x88]\n\
+ ldr r3, =gUnknown_03002FF0\n\
+ str r3, [sp, #0x68]\n\
+ ldr r0, [sp, #0x7C]\n\
+ add r0, r4\n\
+ mov r8, r0\n\
+ ldr r2, [sp, #0x80]\n\
+ add r2, r1, r2\n\
+ str r2, [sp, #0x6C]\n\
+ str r4, [sp, #0x70]\n\
+ cmp r1, r2\n\
+ bcs _080052AA\n\
_08005244:\n\
- ldr r3, [sp, #0x68]\n\
- ldm r3!, {r5}\n\
- str r3, [sp, #0x68]\n\
- ldr r4, [sp, #0x70]\n\
- add r0, r1, #0x1\n\
- mov r10, r0\n\
- cmp r4, r8\n\
- bcs _080052A2\n\
- mov r2, #0x7\n\
- mov r12, r2\n\
- lsr r0, r1, #3\n\
- ldr r2, [sp, #0x4]\n\
- add r3, r0, #0\n\
- mul r3, r2\n\
- add r7, r3, #0\n\
- mov r3, r12\n\
- and r1, r3\n\
- lsl r6, r1, #2\n\
+ ldr r3, [sp, #0x68]\n\
+ ldm r3!, {r5}\n\
+ str r3, [sp, #0x68]\n\
+ ldr r4, [sp, #0x70]\n\
+ add r0, r1, #0x1\n\
+ mov r10, r0\n\
+ cmp r4, r8\n\
+ bcs _080052A2\n\
+ mov r2, #0x7\n\
+ mov r12, r2\n\
+ lsr r0, r1, #3\n\
+ ldr r2, [sp, #0x4]\n\
+ add r3, r0, #0\n\
+ mul r3, r2\n\
+ add r7, r3, #0\n\
+ mov r3, r12\n\
+ and r1, r3\n\
+ lsl r6, r1, #2\n\
_08005268:\n\
- add r3, r5, #0\n\
- mov r0, #0xF\n\
- and r3, r0\n\
- cmp r3, #0\n\
- beq _0800529A\n\
- lsr r2, r4, #3\n\
- lsl r2, #5\n\
- add r2, r9\n\
- add r0, r4, #0\n\
- mov r1, r12\n\
- and r0, r1\n\
- lsr r0, #1\n\
- add r2, r0\n\
- add r2, r7\n\
- add r2, r6\n\
- mov r1, #0x1\n\
- and r1, r4\n\
- lsl r1, #2\n\
- lsl r3, r1\n\
- mov r0, #0xF0\n\
- asr r0, r1\n\
- ldrb r1, [r2]\n\
- and r0, r1\n\
- orr r3, r0\n\
- strb r3, [r2]\n\
+ add r3, r5, #0\n\
+ mov r0, #0xF\n\
+ and r3, r0\n\
+ cmp r3, #0\n\
+ beq _0800529A\n\
+ lsr r2, r4, #3\n\
+ lsl r2, #5\n\
+ add r2, r9\n\
+ add r0, r4, #0\n\
+ mov r1, r12\n\
+ and r0, r1\n\
+ lsr r0, #1\n\
+ add r2, r0\n\
+ add r2, r7\n\
+ add r2, r6\n\
+ mov r1, #0x1\n\
+ and r1, r4\n\
+ lsl r1, #2\n\
+ lsl r3, r1\n\
+ mov r0, #0xF0\n\
+ asr r0, r1\n\
+ ldrb r1, [r2]\n\
+ and r0, r1\n\
+ orr r3, r0\n\
+ strb r3, [r2]\n\
_0800529A:\n\
- lsr r5, #4\n\
- add r4, #0x1\n\
- cmp r4, r8\n\
- bcc _08005268\n\
+ lsr r5, #4\n\
+ add r4, #0x1\n\
+ cmp r4, r8\n\
+ bcc _08005268\n\
_080052A2:\n\
- mov r1, r10\n\
- ldr r2, [sp, #0x6C]\n\
- cmp r1, r2\n\
- bcc _08005244\n\
+ mov r1, r10\n\
+ ldr r2, [sp, #0x6C]\n\
+ cmp r1, r2\n\
+ bcc _08005244\n\
_080052AA:\n\
- add sp, #0x8C\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .pool");
+ add sp, #0x8C\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
}
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
@@ -2046,733 +2051,1028 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c
}
}
}
+#ifdef NONMATCHING
+u16 RenderText(struct TextPrinter *textPrinter)
+{
+ struct TextPrinterSubStruct *r4 = &textPrinter->sub_union.sub;
+ u16 currChar;
+ s32 width;
+
+ switch (textPrinter->state) // _080057C4
+ {
+ case 0: // _080057F0
+ if ((gMain.heldKeys & (A_BUTTON | B_BUTTON)) && r4->font_type_upper)
+ textPrinter->delayCounter = 0;
+
+ if (textPrinter->delayCounter && textPrinter->text_speed) //_0800580A
+ {
+ textPrinter->delayCounter--;
+ if (gTextFlags.flag_0 && (gMain.newKeys & (A_BUTTON | B_BUTTON)))
+ {
+ r4->font_type_upper = 1;
+ textPrinter->delayCounter = 0;
+ }
+ return 3;
+ }
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED) && gTextFlags.flag_2)
+ textPrinter->delayCounter = 3;
+ else
+ textPrinter->delayCounter = textPrinter->text_speed;
+
+ currChar = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+
+ switch (currChar) //_0800588A
+ {
+ case 0xF8+6: //_080058B8
+ textPrinter->subPrinter.currentX = textPrinter->subPrinter.x;
+ textPrinter->subPrinter.currentY += (gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing);
+ return 2;
+ case 0xF8+5: //_080058DC
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 0xF8+4: //_080058E0
+ currChar = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ switch (currChar) // _080058F0
+ {
+ case 1: // _08005960
+ textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor);
+ return 2;
+ case 2: // _08005982
+ textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor);
+ return 2;
+ case 3: // _080059A6
+ textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor);
+ return 2;
+ case 4: // _080059C0
+ textPrinter->subPrinter.fontColor_h = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ textPrinter->subPrinter.bgColor = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ textPrinter->subPrinter.shadowColor = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ GenerateFontHalfRowLookupTable(textPrinter->subPrinter.fontColor_h, textPrinter->subPrinter.bgColor, textPrinter->subPrinter.shadowColor);
+ return 2;
+ case 5: // _08005A0E
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 6: //_08005A12
+ r4->font_type = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 7: // _08005A0A
+ return 2;
+ case 8: // _08005A2A
+ textPrinter->delayCounter = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ textPrinter->state = 6;
+ return 2;
+ case 9: // _08005A3A
+ textPrinter->state = 1;
+ if (gTextFlags.flag_2)
+ r4->frames_visible_counter = 0;
+ return 3;
+ case 10: // _08005A58
+ textPrinter->state = 5;
+ return 3;
+ case 11: // _08005A5C
+ currChar = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ currChar |= *textPrinter->subPrinter.current_text_offset << 8;
+ textPrinter->subPrinter.current_text_offset++;
+ PlayBGM(currChar);
+ return 2;
+ case 16: // _08005A76
+ currChar = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ currChar |= (*textPrinter->subPrinter.current_text_offset << 8);
+ textPrinter->subPrinter.current_text_offset++;
+ PlaySE(currChar);
+ return 2;
+ case 13: // _08005A90
+ textPrinter->subPrinter.currentX = textPrinter->subPrinter.x + *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 14: // _08005A98
+ textPrinter->subPrinter.currentY = textPrinter->subPrinter.y + *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 15: // _08005AA4
+ FillWindowPixelBuffer(textPrinter->subPrinter.windowId, textPrinter->subPrinter.bgColor | textPrinter->subPrinter.bgColor << 4);
+ textPrinter->subPrinter.currentX = textPrinter->subPrinter.x;
+ textPrinter->subPrinter.currentY = textPrinter->subPrinter.y;
+ return 2;
+ case 23: // _08005ABE
+ m4aMPlayStop(&gMPlayInfo_BGM);
+ return 2;
+ case 24: // _08005ACC
+ m4aMPlayContinue(&gMPlayInfo_BGM);
+ return 2;
+ case 17: // _08005AD8
+ width = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ if (width > 0)
+ {
+ ClearTextSpan(textPrinter, width);
+ textPrinter->subPrinter.currentX += width;
+ return 0;
+ }
+ return 2;
+ case 18: // _08005AF2
+ textPrinter->subPrinter.currentX = *textPrinter->subPrinter.current_text_offset + textPrinter->subPrinter.x;
+ textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 19: // _08005B02
+ {
+ s32 widthHelper = *textPrinter->subPrinter.current_text_offset;
+ widthHelper += textPrinter->subPrinter.x;
+ textPrinter->subPrinter.current_text_offset++;
+ width = widthHelper - textPrinter->subPrinter.currentX;
+ if (width > 0)
+ {
+ ClearTextSpan(textPrinter, width);
+ textPrinter->subPrinter.currentX += width;
+ return 0;
+ }
+ }
+ return 2;
+ case 20: // _08005B26
+ textPrinter->minLetterSpacing = *textPrinter->subPrinter.current_text_offset++;
+ return 2;
+ case 21: // _08005B36
+ textPrinter->japanese = 1;
+ return 2;
+ case 22: // _08005B3E
+ textPrinter->japanese = 0;
+ return 2;
+ case 12: // _08005B5A
+ currChar = *textPrinter->subPrinter.current_text_offset | 0x100;
+ textPrinter->subPrinter.current_text_offset++;
+ break;
+ }
+ break;
+
+ case 0xF8+3: // _08005B48
+ textPrinter->state = 2;
+ TextPrinterInitDownArrowCounters(textPrinter);
+ return 3;
+ case 0xF8+2: // _08005B4C
+ textPrinter->state = 3;
+ TextPrinterInitDownArrowCounters(textPrinter);
+ return 3;
+ case 0xF8+1: // _08005B5A
+ currChar = *textPrinter->subPrinter.current_text_offset | 0x100;
+ textPrinter->subPrinter.current_text_offset++;
+ break;
+ case 0xF8+0: // _08005B6C
+ currChar = *textPrinter->subPrinter.current_text_offset;
+ textPrinter->subPrinter.current_text_offset++;
+ gUnknown_03002F90[0x80] = DrawKeypadIcon(textPrinter->subPrinter.windowId, currChar, textPrinter->subPrinter.currentX, textPrinter->subPrinter.currentY);
+ textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing;
+ return 0;
+ case 0xF8+7: // _08005D6C
+ return 1;
+ }
+
+ switch (r4->font_type) // _08005B90
+ {
+ case 0: // _08005BCC
+ DecompressGlyphFont0(currChar, textPrinter->japanese);
+ break;
+ case 1: // _08005BDA
+ DecompressGlyphFont1(currChar, textPrinter->japanese);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5: // _08005BE8
+ DecompressGlyphFont2(currChar, textPrinter->japanese);
+ break;
+ case 7: // _08005BF6
+ DecompressGlyphFont7(currChar, textPrinter->japanese);
+ break;
+ case 8: // _08005C04
+ DecompressGlyphFont8(currChar, textPrinter->japanese);
+ break;
+ case 6: // _08005C10
+ break;
+ }
+
+ CopyGlyphToWindow(textPrinter); // _08005C10
+
+ if (textPrinter->minLetterSpacing)
+ {
+ textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80];
+ width = textPrinter->minLetterSpacing - gUnknown_03002F90[0x80];
+ if (width > 0)
+ {
+ ClearTextSpan(textPrinter, width);
+ textPrinter->subPrinter.currentX += width;
+ }
+ }
+ else // _08005C48
+ {
+ if (textPrinter->japanese)
+ textPrinter->subPrinter.currentX += (gUnknown_03002F90[0x80] + textPrinter->subPrinter.letterSpacing);
+ else
+ textPrinter->subPrinter.currentX += gUnknown_03002F90[0x80];
+ }
+ return 0;
+ case 1: // _08005C78
+ if (TextPrinterWait(textPrinter))
+ textPrinter->state = 0;
+ return 3;
+ case 2: // _08005C8C
+ if (TextPrinterWaitWithDownArrow(textPrinter))
+ {
+ FillWindowPixelBuffer(textPrinter->subPrinter.windowId, (textPrinter->subPrinter.bgColor << 4) | textPrinter->subPrinter.bgColor);
+ textPrinter->subPrinter.currentX = textPrinter->subPrinter.x;
+ textPrinter->subPrinter.currentY = textPrinter->subPrinter.y;
+ textPrinter->state = 0;
+ }
+ return 3;
+ case 3: // _08005CB8
+ if (TextPrinterWaitWithDownArrow(textPrinter))
+ {
+ TextPrinterClearDownArrow(textPrinter);
+ textPrinter->scrollDistance = gFonts[textPrinter->subPrinter.fontId].maxLetterHeight + textPrinter->subPrinter.lineSpacing;
+ textPrinter->subPrinter.currentX = textPrinter->subPrinter.x;
+ textPrinter->state = 4;
+ }
+ return 3;
+ case 4: // _08005CF0
+ if (textPrinter->scrollDistance)
+ {
+ int scrollSpeed = sub_8197964();
+ int speed = gWindowVerticalScrollSpeeds[scrollSpeed];
+ if (textPrinter->scrollDistance < speed)
+ {
+ ScrollWindow(textPrinter->subPrinter.windowId, 0, textPrinter->scrollDistance, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor);
+ textPrinter->scrollDistance = 0;
+ }
+ else
+ {
+ ScrollWindow(textPrinter->subPrinter.windowId, 0, speed, textPrinter->subPrinter.bgColor << 4 | textPrinter->subPrinter.bgColor);
+ textPrinter->scrollDistance -= speed;
+ }
+ CopyWindowToVram(textPrinter->subPrinter.windowId, 2);
+ }
+ else
+ {
+ textPrinter->state = 0;
+ }
+ return 3;
+ case 5: // _08005D48
+ if (!IsSEPlaying())
+ textPrinter->state = 0;
+ return 3;
+ case 6: // _08005D5A
+ if (textPrinter->delayCounter != 0)
+ textPrinter->delayCounter--;
+ else
+ textPrinter->state = 0;
+ return 3;
+ }
+
+ return 1;
+}
+#else
__attribute__((naked))
-u16 RenderText(struct TextPrinter *textPrinter) // 80057B4
+u16 RenderText(struct TextPrinter *textPrinter)
{
asm("push {r4-r6,lr}\n\
- add r6, r0, #0\n\
- add r4, r6, #0\n\
- add r4, #0x14\n\
- ldrb r0, [r6, #0x1C]\n\
- cmp r0, #0x6\n\
- bls _080057C4\n\
- b _08005D6C\n\
+ add r6, r0, #0\n\
+ add r4, r6, #0\n\
+ add r4, #0x14\n\
+ ldrb r0, [r6, #0x1C]\n\
+ cmp r0, #0x6\n\
+ bls _080057C4\n\
+ b _08005D6C\n\
_080057C4:\n\
- lsl r0, #2\n\
- ldr r1, =_080057D4\n\
- add r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
+ lsl r0, #2\n\
+ ldr r1, =_080057D4\n\
+ add r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .pool\n\
+ .align 2, 0\n\
_080057D4:\n\
- .4byte _080057F0\n\
- .4byte _08005C78\n\
- .4byte _08005C8C\n\
- .4byte _08005CB8\n\
- .4byte _08005CF0\n\
- .4byte _08005D48\n\
- .4byte _08005D5A\n\
+ .4byte _080057F0\n\
+ .4byte _08005C78\n\
+ .4byte _08005C8C\n\
+ .4byte _08005CB8\n\
+ .4byte _08005CF0\n\
+ .4byte _08005D48\n\
+ .4byte _08005D5A\n\
_080057F0:\n\
- ldr r2, =gMain\n\
- ldrh r1, [r2, #0x2C]\n\
- mov r0, #0x3\n\
- and r0, r1\n\
- cmp r0, #0\n\
- beq _0800580A\n\
- ldrb r1, [r4]\n\
- mov r0, #0x10\n\
- and r0, r1\n\
- cmp r0, #0\n\
- beq _0800580A\n\
- mov r0, #0\n\
- strb r0, [r6, #0x1E]\n\
+ ldr r2, =gMain\n\
+ ldrh r1, [r2, #0x2C]\n\
+ mov r0, #0x3\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ beq _0800580A\n\
+ ldrb r1, [r4]\n\
+ mov r0, #0x10\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ beq _0800580A\n\
+ mov r0, #0\n\
+ strb r0, [r6, #0x1E]\n\
_0800580A:\n\
- ldrb r1, [r6, #0x1E]\n\
- cmp r1, #0\n\
- beq _0800584C\n\
- ldrb r0, [r6, #0x1D]\n\
- cmp r0, #0\n\
- beq _0800584C\n\
- sub r0, r1, #0x1\n\
- strb r0, [r6, #0x1E]\n\
- ldr r0, =gTextFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x1\n\
- and r0, r1\n\
- cmp r0, #0\n\
- bne _08005828\n\
- b _08005B56\n\
+ ldrb r1, [r6, #0x1E]\n\
+ cmp r1, #0\n\
+ beq _0800584C\n\
+ ldrb r0, [r6, #0x1D]\n\
+ cmp r0, #0\n\
+ beq _0800584C\n\
+ sub r0, r1, #0x1\n\
+ strb r0, [r6, #0x1E]\n\
+ ldr r0, =gTextFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x1\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ bne _08005828\n\
+ b _08005B56\n\
_08005828:\n\
- ldrh r1, [r2, #0x2E]\n\
- mov r0, #0x3\n\
- and r0, r1\n\
- cmp r0, #0\n\
- bne _08005834\n\
- b _08005B56\n\
+ ldrh r1, [r2, #0x2E]\n\
+ mov r0, #0x3\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ bne _08005834\n\
+ b _08005B56\n\
_08005834:\n\
- ldrb r0, [r4]\n\
- mov r1, #0x10\n\
- orr r0, r1\n\
- strb r0, [r4]\n\
- mov r0, #0\n\
- strb r0, [r6, #0x1E]\n\
- b _08005B56\n\
- .pool\n\
+ ldrb r0, [r4]\n\
+ mov r1, #0x10\n\
+ orr r0, r1\n\
+ strb r0, [r4]\n\
+ mov r0, #0\n\
+ strb r0, [r6, #0x1E]\n\
+ b _08005B56\n\
+ .pool\n\
_0800584C:\n\
- ldr r0, =gBattleTypeFlags\n\
- ldr r0, [r0]\n\
- mov r1, #0x80\n\
- lsl r1, #17\n\
- and r0, r1\n\
- cmp r0, #0\n\
- bne _08005874\n\
- ldr r0, =gTextFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x4\n\
- and r0, r1\n\
- cmp r0, #0\n\
- beq _08005874\n\
- mov r0, #0x3\n\
- b _08005876\n\
- .pool\n\
+ ldr r0, =gBattleTypeFlags\n\
+ ldr r0, [r0]\n\
+ mov r1, #0x80\n\
+ lsl r1, #17\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ bne _08005874\n\
+ ldr r0, =gTextFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x4\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ beq _08005874\n\
+ mov r0, #0x3\n\
+ b _08005876\n\
+ .pool\n\
_08005874:\n\
- ldrb r0, [r6, #0x1D]\n\
+ ldrb r0, [r6, #0x1D]\n\
_08005876:\n\
- strb r0, [r6, #0x1E]\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- add r0, r3, #0\n\
- sub r0, #0xF8\n\
- cmp r0, #0x7\n\
- bls _0800588A\n\
- b _08005B90\n\
+ strb r0, [r6, #0x1E]\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ add r0, r3, #0\n\
+ sub r0, #0xF8\n\
+ cmp r0, #0x7\n\
+ bls _0800588A\n\
+ b _08005B90\n\
_0800588A:\n\
- lsl r0, #2\n\
- ldr r1, =_08005898\n\
- add r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
+ lsl r0, #2\n\
+ ldr r1, =_08005898\n\
+ add r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .pool\n\
+ .align 2, 0\n\
_08005898:\n\
- .4byte _08005B6C\n\
- .4byte _08005B5A\n\
- .4byte _08005B4C\n\
- .4byte _08005B48\n\
- .4byte _080058E0\n\
- .4byte _080058DC\n\
- .4byte _080058B8\n\
- .4byte _08005D6C\n\
+ .4byte _08005B6C\n\
+ .4byte _08005B5A\n\
+ .4byte _08005B4C\n\
+ .4byte _08005B48\n\
+ .4byte _080058E0\n\
+ .4byte _080058DC\n\
+ .4byte _080058B8\n\
+ .4byte _08005D6C\n\
_080058B8:\n\
- ldrb r0, [r6, #0x6]\n\
- strb r0, [r6, #0x8]\n\
- ldrb r1, [r6, #0x5]\n\
- ldr r0, =gFonts\n\
- ldr r2, [r0]\n\
- lsl r0, r1, #1\n\
- add r0, r1\n\
- lsl r0, #2\n\
- add r0, r2\n\
- ldrb r1, [r6, #0xB]\n\
- ldrb r0, [r0, #0x5]\n\
- add r1, r0\n\
- ldrb r0, [r6, #0x9]\n\
- add r0, r1\n\
- b _08005ABA\n\
- .pool\n\
+ ldrb r0, [r6, #0x6]\n\
+ strb r0, [r6, #0x8]\n\
+ ldrb r1, [r6, #0x5]\n\
+ ldr r0, =gFonts\n\
+ ldr r2, [r0]\n\
+ lsl r0, r1, #1\n\
+ add r0, r1\n\
+ lsl r0, #2\n\
+ add r0, r2\n\
+ ldrb r1, [r6, #0xB]\n\
+ ldrb r0, [r0, #0x5]\n\
+ add r1, r0\n\
+ ldrb r0, [r6, #0x9]\n\
+ add r0, r1\n\
+ b _08005ABA\n\
+ .pool\n\
_080058DC:\n\
- ldr r0, [r6]\n\
- b _08005B30\n\
+ ldr r0, [r6]\n\
+ b _08005B30\n\
_080058E0:\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- sub r0, r3, #0x1\n\
- cmp r0, #0x17\n\
- bls _080058F0\n\
- b _08005B90\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ sub r0, r3, #0x1\n\
+ cmp r0, #0x17\n\
+ bls _080058F0\n\
+ b _08005B90\n\
_080058F0:\n\
- lsl r0, #2\n\
- ldr r1, =_08005900\n\
- add r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
+ lsl r0, #2\n\
+ ldr r1, =_08005900\n\
+ add r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .pool\n\
+ .align 2, 0\n\
_08005900:\n\
- .4byte _08005960\n\
- .4byte _08005982\n\
- .4byte _080059A6\n\
- .4byte _080059C0\n\
- .4byte _08005A0E\n\
- .4byte _08005A12\n\
- .4byte _08005A0A\n\
- .4byte _08005A2A\n\
- .4byte _08005A3A\n\
- .4byte _08005A58\n\
- .4byte _08005A5C\n\
- .4byte _08005B5A\n\
- .4byte _08005A90\n\
- .4byte _08005A98\n\
- .4byte _08005AA4\n\
- .4byte _08005A76\n\
- .4byte _08005AD8\n\
- .4byte _08005AF2\n\
- .4byte _08005B02\n\
- .4byte _08005B26\n\
- .4byte _08005B36\n\
- .4byte _08005B3E\n\
- .4byte _08005ABE\n\
- .4byte _08005ACC\n\
+ .4byte _08005960 @0\n\
+ .4byte _08005982 @1\n\
+ .4byte _080059A6 @2\n\
+ .4byte _080059C0 @3\n\
+ .4byte _08005A0E @4\n\
+ .4byte _08005A12 @5\n\
+ .4byte _08005A0A @6\n\
+ .4byte _08005A2A @7\n\
+ .4byte _08005A3A @8\n\
+ .4byte _08005A58 @9\n\
+ .4byte _08005A5C @10\n\
+ .4byte _08005B5A @11\n\
+ .4byte _08005A90 @12\n\
+ .4byte _08005A98 @13\n\
+ .4byte _08005AA4 @14\n\
+ .4byte _08005A76 @15\n\
+ .4byte _08005AD8 @16\n\
+ .4byte _08005AF2 @17\n\
+ .4byte _08005B02 @18\n\
+ .4byte _08005B26 @19\n\
+ .4byte _08005B36 @20\n\
+ .4byte _08005B3E @21\n\
+ .4byte _08005ABE @22\n\
+ .4byte _08005ACC @23\n\
_08005960:\n\
- ldr r2, [r6]\n\
- ldrb r1, [r2]\n\
- lsl r1, #4\n\
- ldrb r3, [r6, #0xC]\n\
- mov r0, #0xF\n\
- and r0, r3\n\
- orr r0, r1\n\
- strb r0, [r6, #0xC]\n\
- add r2, #0x1\n\
- str r2, [r6]\n\
- lsl r0, #24\n\
- lsr r0, #28\n\
- ldrb r2, [r6, #0xD]\n\
- lsl r1, r2, #28\n\
- lsr r1, #28\n\
- lsr r2, #4\n\
- b _08005A06\n\
+ ldr r2, [r6]\n\
+ ldrb r1, [r2]\n\
+ lsl r1, #4\n\
+ ldrb r3, [r6, #0xC]\n\
+ mov r0, #0xF\n\
+ and r0, r3\n\
+ orr r0, r1\n\
+ strb r0, [r6, #0xC]\n\
+ add r2, #0x1\n\
+ str r2, [r6]\n\
+ lsl r0, #24\n\
+ lsr r0, #28\n\
+ ldrb r2, [r6, #0xD]\n\
+ lsl r1, r2, #28\n\
+ lsr r1, #28\n\
+ lsr r2, #4\n\
+ b _08005A06\n\
_08005982:\n\
- ldr r1, [r6]\n\
- ldrb r2, [r1]\n\
- mov r0, #0xF\n\
- and r0, r2\n\
- ldrb r3, [r6, #0xD]\n\
- mov r2, #0x10\n\
- neg r2, r2\n\
- and r2, r3\n\
- orr r2, r0\n\
- strb r2, [r6, #0xD]\n\
- add r1, #0x1\n\
- str r1, [r6]\n\
- ldrb r0, [r6, #0xC]\n\
- lsr r0, #4\n\
- lsl r1, r2, #28\n\
- lsr r1, #28\n\
- lsr r2, #4\n\
- b _08005A06\n\
+ ldr r1, [r6]\n\
+ ldrb r2, [r1]\n\
+ mov r0, #0xF\n\
+ and r0, r2\n\
+ ldrb r3, [r6, #0xD]\n\
+ mov r2, #0x10\n\
+ neg r2, r2\n\
+ and r2, r3\n\
+ orr r2, r0\n\
+ strb r2, [r6, #0xD]\n\
+ add r1, #0x1\n\
+ str r1, [r6]\n\
+ ldrb r0, [r6, #0xC]\n\
+ lsr r0, #4\n\
+ lsl r1, r2, #28\n\
+ lsr r1, #28\n\
+ lsr r2, #4\n\
+ b _08005A06\n\
_080059A6:\n\
- ldr r1, [r6]\n\
- ldrb r0, [r1]\n\
- lsl r0, #4\n\
- ldrb r3, [r6, #0xD]\n\
- mov r2, #0xF\n\
- and r2, r3\n\
- orr r2, r0\n\
- strb r2, [r6, #0xD]\n\
- add r1, #0x1\n\
- str r1, [r6]\n\
- ldrb r0, [r6, #0xC]\n\
- lsr r0, #4\n\
- b _080059FE\n\
+ ldr r1, [r6]\n\
+ ldrb r0, [r1]\n\
+ lsl r0, #4\n\
+ ldrb r3, [r6, #0xD]\n\
+ mov r2, #0xF\n\
+ and r2, r3\n\
+ orr r2, r0\n\
+ strb r2, [r6, #0xD]\n\
+ add r1, #0x1\n\
+ str r1, [r6]\n\
+ ldrb r0, [r6, #0xC]\n\
+ lsr r0, #4\n\
+ b _080059FE\n\
_080059C0:\n\
- ldr r3, [r6]\n\
- ldrb r1, [r3]\n\
- lsl r1, #4\n\
- ldrb r4, [r6, #0xC]\n\
- mov r2, #0xF\n\
- add r0, r2, #0\n\
- and r0, r4\n\
- orr r0, r1\n\
- strb r0, [r6, #0xC]\n\
- add r5, r3, #0x1\n\
- str r5, [r6]\n\
- ldrb r3, [r3, #0x1]\n\
- add r1, r2, #0\n\
- and r1, r3\n\
- ldrb r4, [r6, #0xD]\n\
- mov r3, #0x10\n\
- neg r3, r3\n\
- and r3, r4\n\
- orr r3, r1\n\
- strb r3, [r6, #0xD]\n\
- add r4, r5, #0x1\n\
- str r4, [r6]\n\
- ldrb r1, [r5, #0x1]\n\
- lsl r1, #4\n\
- and r2, r3\n\
- orr r2, r1\n\
- strb r2, [r6, #0xD]\n\
- add r4, #0x1\n\
- str r4, [r6]\n\
- lsl r0, #24\n\
- lsr r0, #28\n\
+ ldr r3, [r6]\n\
+ ldrb r1, [r3]\n\
+ lsl r1, #4\n\
+ ldrb r4, [r6, #0xC]\n\
+ mov r2, #0xF\n\
+ add r0, r2, #0\n\
+ and r0, r4\n\
+ orr r0, r1\n\
+ strb r0, [r6, #0xC]\n\
+ add r5, r3, #0x1\n\
+ str r5, [r6]\n\
+ ldrb r3, [r3, #0x1]\n\
+ add r1, r2, #0\n\
+ and r1, r3\n\
+ ldrb r4, [r6, #0xD]\n\
+ mov r3, #0x10\n\
+ neg r3, r3\n\
+ and r3, r4\n\
+ orr r3, r1\n\
+ strb r3, [r6, #0xD]\n\
+ add r4, r5, #0x1\n\
+ str r4, [r6]\n\
+ ldrb r1, [r5, #0x1]\n\
+ lsl r1, #4\n\
+ and r2, r3\n\
+ orr r2, r1\n\
+ strb r2, [r6, #0xD]\n\
+ add r4, #0x1\n\
+ str r4, [r6]\n\
+ lsl r0, #24\n\
+ lsr r0, #28\n\
_080059FE:\n\
- lsl r1, r2, #28\n\
- lsr r1, #28\n\
- lsl r2, #24\n\
- lsr r2, #28\n\
+ lsl r1, r2, #28\n\
+ lsr r1, #28\n\
+ lsl r2, #24\n\
+ lsr r2, #28\n\
_08005A06:\n\
- bl GenerateFontHalfRowLookupTable\n\
+ bl GenerateFontHalfRowLookupTable\n\
_08005A0A:\n\
- mov r0, #0x2\n\
- b _08005D6E\n\
+ mov r0, #0x2\n\
+ b _08005D6E\n\
_08005A0E:\n\
- ldr r0, [r6]\n\
- b _08005B30\n\
+ ldr r0, [r6]\n\
+ b _08005B30\n\
_08005A12:\n\
- ldr r0, [r6]\n\
- ldrb r0, [r0]\n\
- mov r1, #0xF\n\
- and r1, r0\n\
- ldrb r2, [r4]\n\
- mov r0, #0x10\n\
- neg r0, r0\n\
- and r0, r2\n\
- orr r0, r1\n\
- strb r0, [r4]\n\
- ldr r0, [r6]\n\
- b _08005B30\n\
+ ldr r0, [r6]\n\
+ ldrb r0, [r0]\n\
+ mov r1, #0xF\n\
+ and r1, r0\n\
+ ldrb r2, [r4]\n\
+ mov r0, #0x10\n\
+ neg r0, r0\n\
+ and r0, r2\n\
+ orr r0, r1\n\
+ strb r0, [r4]\n\
+ ldr r0, [r6]\n\
+ b _08005B30\n\
_08005A2A:\n\
- ldr r0, [r6]\n\
- ldrb r1, [r0]\n\
- strb r1, [r6, #0x1E]\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- mov r0, #0x6\n\
- strb r0, [r6, #0x1C]\n\
- b _08005A0A\n\
+ ldr r0, [r6]\n\
+ ldrb r1, [r0]\n\
+ strb r1, [r6, #0x1E]\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ mov r0, #0x6\n\
+ strb r0, [r6, #0x1C]\n\
+ b _08005A0A\n\
_08005A3A:\n\
- mov r0, #0x1\n\
- strb r0, [r6, #0x1C]\n\
- ldr r0, =gTextFlags\n\
- ldrb r1, [r0]\n\
- mov r0, #0x4\n\
- and r0, r1\n\
- cmp r0, #0\n\
- bne _08005A4C\n\
- b _08005B56\n\
+ mov r0, #0x1\n\
+ strb r0, [r6, #0x1C]\n\
+ ldr r0, =gTextFlags\n\
+ ldrb r1, [r0]\n\
+ mov r0, #0x4\n\
+ and r0, r1\n\
+ cmp r0, #0\n\
+ bne _08005A4C\n\
+ b _08005B56\n\
_08005A4C:\n\
- mov r0, #0\n\
- strb r0, [r4, #0x2]\n\
- b _08005B56\n\
- .pool\n\
+ mov r0, #0\n\
+ strb r0, [r4, #0x2]\n\
+ b _08005B56\n\
+ .pool\n\
_08005A58:\n\
- mov r0, #0x5\n\
- b _08005D56\n\
+ mov r0, #0x5\n\
+ b _08005D56\n\
_08005A5C:\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- add r1, r0, #0x1\n\
- str r1, [r6]\n\
- ldrb r0, [r0, #0x1]\n\
- lsl r0, #8\n\
- orr r3, r0\n\
- add r1, #0x1\n\
- str r1, [r6]\n\
- add r0, r3, #0\n\
- bl PlayBGM\n\
- b _08005A0A\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ add r1, r0, #0x1\n\
+ str r1, [r6]\n\
+ ldrb r0, [r0, #0x1]\n\
+ lsl r0, #8\n\
+ orr r3, r0\n\
+ add r1, #0x1\n\
+ str r1, [r6]\n\
+ add r0, r3, #0\n\
+ bl PlayBGM\n\
+ b _08005A0A\n\
_08005A76:\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- add r1, r0, #0x1\n\
- str r1, [r6]\n\
- ldrb r0, [r0, #0x1]\n\
- lsl r0, #8\n\
- orr r3, r0\n\
- add r1, #0x1\n\
- str r1, [r6]\n\
- add r0, r3, #0\n\
- bl PlaySE\n\
- b _08005A0A\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ add r1, r0, #0x1\n\
+ str r1, [r6]\n\
+ ldrb r0, [r0, #0x1]\n\
+ lsl r0, #8\n\
+ orr r3, r0\n\
+ add r1, #0x1\n\
+ str r1, [r6]\n\
+ add r0, r3, #0\n\
+ bl PlaySE\n\
+ b _08005A0A\n\
_08005A90:\n\
- ldr r1, [r6]\n\
- ldrb r0, [r1]\n\
- ldrb r3, [r6, #0x6]\n\
- b _08005AF8\n\
+ ldr r1, [r6]\n\
+ ldrb r0, [r1]\n\
+ ldrb r3, [r6, #0x6]\n\
+ b _08005AF8\n\
_08005A98:\n\
- ldr r1, [r6]\n\
- ldrb r0, [r1]\n\
- ldrb r2, [r6, #0x7]\n\
- add r0, r2\n\
- strb r0, [r6, #0x9]\n\
- b _08005AFC\n\
+ ldr r1, [r6]\n\
+ ldrb r0, [r1]\n\
+ ldrb r2, [r6, #0x7]\n\
+ add r0, r2\n\
+ strb r0, [r6, #0x9]\n\
+ b _08005AFC\n\
_08005AA4:\n\
- ldrb r0, [r6, #0x4]\n\
- ldrb r2, [r6, #0xD]\n\
- lsl r2, #28\n\
- lsr r1, r2, #4\n\
- orr r1, r2\n\
- lsr r1, #24\n\
- bl FillWindowPixelBuffer\n\
- ldrb r0, [r6, #0x6]\n\
- strb r0, [r6, #0x8]\n\
- ldrb r0, [r6, #0x7]\n\
+ ldrb r0, [r6, #0x4]\n\
+ ldrb r2, [r6, #0xD]\n\
+ lsl r2, #28\n\
+ lsr r1, r2, #4\n\
+ orr r1, r2\n\
+ lsr r1, #24\n\
+ bl FillWindowPixelBuffer\n\
+ ldrb r0, [r6, #0x6]\n\
+ strb r0, [r6, #0x8]\n\
+ ldrb r0, [r6, #0x7]\n\
_08005ABA:\n\
- strb r0, [r6, #0x9]\n\
- b _08005A0A\n\
+ strb r0, [r6, #0x9]\n\
+ b _08005A0A\n\
_08005ABE:\n\
- ldr r0, =gMPlayInfo_BGM\n\
- bl m4aMPlayStop\n\
- b _08005A0A\n\
- .pool\n\
+ ldr r0, =gMPlayInfo_BGM\n\
+ bl m4aMPlayStop\n\
+ b _08005A0A\n\
+ .pool\n\
_08005ACC:\n\
- ldr r0, =gMPlayInfo_BGM\n\
- bl m4aMPlayContinue\n\
- b _08005A0A\n\
- .pool\n\
+ ldr r0, =gMPlayInfo_BGM\n\
+ bl m4aMPlayContinue\n\
+ b _08005A0A\n\
+ .pool\n\
_08005AD8:\n\
- ldr r0, [r6]\n\
- ldrb r4, [r0]\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- cmp r4, #0\n\
- ble _08005A0A\n\
- add r0, r6, #0\n\
- add r1, r4, #0\n\
- bl ClearTextSpan\n\
- ldrb r0, [r6, #0x8]\n\
- add r0, r4\n\
- b _08005C6E\n\
+ ldr r0, [r6]\n\
+ ldrb r4, [r0]\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ cmp r4, #0\n\
+ ble _08005A0A\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ bl ClearTextSpan\n\
+ ldrb r0, [r6, #0x8]\n\
+ add r0, r4\n\
+ b _08005C6E\n\
_08005AF2:\n\
- ldr r1, [r6]\n\
- ldrb r0, [r6, #0x6]\n\
- ldrb r3, [r1]\n\
+ ldr r1, [r6]\n\
+ ldrb r0, [r6, #0x6]\n\
+ ldrb r3, [r1]\n\
_08005AF8:\n\
- add r0, r3\n\
- strb r0, [r6, #0x8]\n\
+ add r0, r3\n\
+ strb r0, [r6, #0x8]\n\
_08005AFC:\n\
- add r1, #0x1\n\
- str r1, [r6]\n\
- b _08005A0A\n\
+ add r1, #0x1\n\
+ str r1, [r6]\n\
+ b _08005A0A\n\
_08005B02:\n\
- ldr r0, [r6]\n\
- ldrb r2, [r0]\n\
- ldrb r1, [r6, #0x6]\n\
- add r2, r1\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- ldrb r0, [r6, #0x8]\n\
- sub r4, r2, r0\n\
- cmp r4, #0\n\
- bgt _08005B18\n\
- b _08005A0A\n\
+ ldr r0, [r6]\n\
+ ldrb r2, [r0]\n\
+ ldrb r1, [r6, #0x6]\n\
+ add r2, r1\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ ldrb r0, [r6, #0x8]\n\
+ sub r4, r2, r0\n\
+ cmp r4, #0\n\
+ bgt _08005B18\n\
+ b _08005A0A\n\
_08005B18:\n\
- add r0, r6, #0\n\
- add r1, r4, #0\n\
- bl ClearTextSpan\n\
- ldrb r0, [r6, #0x8]\n\
- add r0, r4\n\
- b _08005C6E\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ bl ClearTextSpan\n\
+ ldrb r0, [r6, #0x8]\n\
+ add r0, r4\n\
+ b _08005C6E\n\
_08005B26:\n\
- ldr r0, [r6]\n\
- ldrb r2, [r0]\n\
- add r1, r6, #0\n\
- add r1, #0x20\n\
- strb r2, [r1]\n\
+ ldr r0, [r6]\n\
+ ldrb r2, [r0]\n\
+ add r1, r6, #0\n\
+ add r1, #0x20\n\
+ strb r2, [r1]\n\
_08005B30:\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- b _08005A0A\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ b _08005A0A\n\
_08005B36:\n\
- add r1, r6, #0\n\
- add r1, #0x21\n\
- mov r0, #0x1\n\
- b _08005B44\n\
+ add r1, r6, #0\n\
+ add r1, #0x21\n\
+ mov r0, #0x1\n\
+ b _08005B44\n\
_08005B3E:\n\
- add r1, r6, #0\n\
- add r1, #0x21\n\
- mov r0, #0\n\
+ add r1, r6, #0\n\
+ add r1, #0x21\n\
+ mov r0, #0\n\
_08005B44:\n\
- strb r0, [r1]\n\
- b _08005A0A\n\
+ strb r0, [r1]\n\
+ b _08005A0A\n\
_08005B48:\n\
- mov r0, #0x2\n\
- b _08005B4E\n\
+ mov r0, #0x2\n\
+ b _08005B4E\n\
_08005B4C:\n\
- mov r0, #0x3\n\
+ mov r0, #0x3\n\
_08005B4E:\n\
- strb r0, [r6, #0x1C]\n\
- add r0, r6, #0\n\
- bl TextPrinterInitDownArrowCounters\n\
+ strb r0, [r6, #0x1C]\n\
+ add r0, r6, #0\n\
+ bl TextPrinterInitDownArrowCounters\n\
_08005B56:\n\
- mov r0, #0x3\n\
- b _08005D6E\n\
+ mov r0, #0x3\n\
+ b _08005D6E\n\
_08005B5A:\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- mov r2, #0x80\n\
- lsl r2, #1\n\
- add r1, r2, #0\n\
- orr r3, r1\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- b _08005B90\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ mov r2, #0x80\n\
+ lsl r2, #1\n\
+ add r1, r2, #0\n\
+ orr r3, r1\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ b _08005B90\n\
_08005B6C:\n\
- ldr r0, [r6]\n\
- ldrb r3, [r0]\n\
- add r0, #0x1\n\
- str r0, [r6]\n\
- ldrb r0, [r6, #0x4]\n\
- add r1, r3, #0\n\
- ldrb r2, [r6, #0x8]\n\
- ldrb r3, [r6, #0x9]\n\
- bl DrawKeypadIcon\n\
- ldr r1, =gUnknown_03002F90\n\
- add r1, #0x80\n\
- strb r0, [r1]\n\
- ldrb r3, [r6, #0xA]\n\
- add r0, r3\n\
- b _08005C6A\n\
- .pool\n\
+ ldr r0, [r6]\n\
+ ldrb r3, [r0]\n\
+ add r0, #0x1\n\
+ str r0, [r6]\n\
+ ldrb r0, [r6, #0x4]\n\
+ add r1, r3, #0\n\
+ ldrb r2, [r6, #0x8]\n\
+ ldrb r3, [r6, #0x9]\n\
+ bl DrawKeypadIcon\n\
+ ldr r1, =gUnknown_03002F90\n\
+ add r1, #0x80\n\
+ strb r0, [r1]\n\
+ ldrb r3, [r6, #0xA]\n\
+ add r0, r3\n\
+ b _08005C6A\n\
+ .pool\n\
_08005B90:\n\
- ldr r0, [r4]\n\
- lsl r0, #28\n\
- lsr r0, #28\n\
- cmp r0, #0x8\n\
- bhi _08005C10\n\
- lsl r0, #2\n\
- ldr r1, =_08005BA8\n\
- add r0, r1\n\
- ldr r0, [r0]\n\
- mov pc, r0\n\
- .pool\n\
- .align 2, 0\n\
+ ldr r0, [r4]\n\
+ lsl r0, #28\n\
+ lsr r0, #28\n\
+ cmp r0, #0x8\n\
+ bhi _08005C10\n\
+ lsl r0, #2\n\
+ ldr r1, =_08005BA8\n\
+ add r0, r1\n\
+ ldr r0, [r0]\n\
+ mov pc, r0\n\
+ .pool\n\
+ .align 2, 0\n\
_08005BA8:\n\
- .4byte _08005BCC\n\
- .4byte _08005BDA\n\
- .4byte _08005BE8\n\
- .4byte _08005BE8\n\
- .4byte _08005BE8\n\
- .4byte _08005BE8\n\
- .4byte _08005C10\n\
- .4byte _08005BF6\n\
- .4byte _08005C04\n\
+ .4byte _08005BCC\n\
+ .4byte _08005BDA\n\
+ .4byte _08005BE8\n\
+ .4byte _08005BE8\n\
+ .4byte _08005BE8\n\
+ .4byte _08005BE8\n\
+ .4byte _08005C10\n\
+ .4byte _08005BF6\n\
+ .4byte _08005C04\n\
_08005BCC:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r1, [r0]\n\
- add r0, r3, #0\n\
- bl DecompressGlyphFont0\n\
- b _08005C10\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r1, [r0]\n\
+ add r0, r3, #0\n\
+ bl DecompressGlyphFont0\n\
+ b _08005C10\n\
_08005BDA:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r1, [r0]\n\
- add r0, r3, #0\n\
- bl DecompressGlyphFont1\n\
- b _08005C10\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r1, [r0]\n\
+ add r0, r3, #0\n\
+ bl DecompressGlyphFont1\n\
+ b _08005C10\n\
_08005BE8:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r1, [r0]\n\
- add r0, r3, #0\n\
- bl DecompressGlyphFont2\n\
- b _08005C10\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r1, [r0]\n\
+ add r0, r3, #0\n\
+ bl DecompressGlyphFont2\n\
+ b _08005C10\n\
_08005BF6:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r1, [r0]\n\
- add r0, r3, #0\n\
- bl DecompressGlyphFont7\n\
- b _08005C10\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r1, [r0]\n\
+ add r0, r3, #0\n\
+ bl DecompressGlyphFont7\n\
+ b _08005C10\n\
_08005C04:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r1, [r0]\n\
- add r0, r3, #0\n\
- bl DecompressGlyphFont8\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r1, [r0]\n\
+ add r0, r3, #0\n\
+ bl DecompressGlyphFont8\n\
_08005C10:\n\
- add r0, r6, #0\n\
- bl CopyGlyphToWindow\n\
- add r2, r6, #0\n\
- add r2, #0x20\n\
- ldrb r0, [r2]\n\
- cmp r0, #0\n\
- beq _08005C48\n\
- ldr r1, =gUnknown_03002F90\n\
- add r1, #0x80\n\
- ldrb r0, [r1]\n\
- ldrb r3, [r6, #0x8]\n\
- add r0, r3\n\
- strb r0, [r6, #0x8]\n\
- ldrb r2, [r2]\n\
- ldrb r0, [r1]\n\
- sub r4, r2, r0\n\
- cmp r4, #0\n\
- ble _08005C70\n\
- add r0, r6, #0\n\
- add r1, r4, #0\n\
- bl ClearTextSpan\n\
- ldrb r0, [r6, #0x8]\n\
- add r0, r4\n\
- b _08005C6E\n\
- .pool\n\
+ add r0, r6, #0\n\
+ bl CopyGlyphToWindow\n\
+ add r2, r6, #0\n\
+ add r2, #0x20\n\
+ ldrb r0, [r2]\n\
+ cmp r0, #0\n\
+ beq _08005C48\n\
+ ldr r1, =gUnknown_03002F90\n\
+ add r1, #0x80\n\
+ ldrb r0, [r1]\n\
+ ldrb r3, [r6, #0x8]\n\
+ add r0, r3\n\
+ strb r0, [r6, #0x8]\n\
+ ldrb r2, [r2]\n\
+ ldrb r0, [r1]\n\
+ sub r4, r2, r0\n\
+ cmp r4, #0\n\
+ ble _08005C70\n\
+ add r0, r6, #0\n\
+ add r1, r4, #0\n\
+ bl ClearTextSpan\n\
+ ldrb r0, [r6, #0x8]\n\
+ add r0, r4\n\
+ b _08005C6E\n\
+ .pool\n\
_08005C48:\n\
- add r0, r6, #0\n\
- add r0, #0x21\n\
- ldrb r0, [r0]\n\
- cmp r0, #0\n\
- beq _08005C64\n\
- ldr r0, =gUnknown_03002F90\n\
- add r0, #0x80\n\
- ldrb r1, [r6, #0xA]\n\
- ldrb r0, [r0]\n\
- add r1, r0\n\
- ldrb r0, [r6, #0x8]\n\
- b _08005C6C\n\
- .pool\n\
+ add r0, r6, #0\n\
+ add r0, #0x21\n\
+ ldrb r0, [r0]\n\
+ cmp r0, #0\n\
+ beq _08005C64\n\
+ ldr r0, =gUnknown_03002F90\n\
+ add r0, #0x80\n\
+ ldrb r1, [r6, #0xA]\n\
+ ldrb r0, [r0]\n\
+ add r1, r0\n\
+ ldrb r0, [r6, #0x8]\n\
+ b _08005C6C\n\
+ .pool\n\
_08005C64:\n\
- ldr r0, =gUnknown_03002F90\n\
- add r0, #0x80\n\
- ldrb r0, [r0]\n\
+ ldr r0, =gUnknown_03002F90\n\
+ add r0, #0x80\n\
+ ldrb r0, [r0]\n\
_08005C6A:\n\
- ldrb r1, [r6, #0x8]\n\
+ ldrb r1, [r6, #0x8]\n\
_08005C6C:\n\
- add r0, r1\n\
+ add r0, r1\n\
_08005C6E:\n\
- strb r0, [r6, #0x8]\n\
+ strb r0, [r6, #0x8]\n\
_08005C70:\n\
- mov r0, #0\n\
- b _08005D6E\n\
- .pool\n\
+ mov r0, #0\n\
+ b _08005D6E\n\
+ .pool\n\
_08005C78:\n\
- add r0, r6, #0\n\
- bl TextPrinterWait\n\
- lsl r0, #16\n\
- cmp r0, #0\n\
- bne _08005C86\n\
- b _08005B56\n\
+ add r0, r6, #0\n\
+ bl TextPrinterWait\n\
+ lsl r0, #16\n\
+ cmp r0, #0\n\
+ bne _08005C86\n\
+ b _08005B56\n\
_08005C86:\n\
- mov r0, #0\n\
- strb r0, [r6, #0x1C]\n\
- b _08005B56\n\
+ mov r0, #0\n\
+ strb r0, [r6, #0x1C]\n\
+ b _08005B56\n\
_08005C8C:\n\
- add r0, r6, #0\n\
- bl TextPrinterWaitWithDownArrow\n\
- lsl r0, #16\n\
- cmp r0, #0\n\
- bne _08005C9A\n\
- b _08005B56\n\
+ add r0, r6, #0\n\
+ bl TextPrinterWaitWithDownArrow\n\
+ lsl r0, #16\n\
+ cmp r0, #0\n\
+ bne _08005C9A\n\
+ b _08005B56\n\
_08005C9A:\n\
- ldrb r0, [r6, #0x4]\n\
- ldrb r2, [r6, #0xD]\n\
- lsl r2, #28\n\
- lsr r1, r2, #4\n\
- orr r1, r2\n\
- lsr r1, #24\n\
- bl FillWindowPixelBuffer\n\
- ldrb r0, [r6, #0x6]\n\
- mov r1, #0\n\
- strb r0, [r6, #0x8]\n\
- ldrb r0, [r6, #0x7]\n\
- strb r0, [r6, #0x9]\n\
- strb r1, [r6, #0x1C]\n\
- b _08005B56\n\
+ ldrb r0, [r6, #0x4]\n\
+ ldrb r2, [r6, #0xD]\n\
+ lsl r2, #28\n\
+ lsr r1, r2, #4\n\
+ orr r1, r2\n\
+ lsr r1, #24\n\
+ bl FillWindowPixelBuffer\n\
+ ldrb r0, [r6, #0x6]\n\
+ mov r1, #0\n\
+ strb r0, [r6, #0x8]\n\
+ ldrb r0, [r6, #0x7]\n\
+ strb r0, [r6, #0x9]\n\
+ strb r1, [r6, #0x1C]\n\
+ b _08005B56\n\
_08005CB8:\n\
- add r0, r6, #0\n\
- bl TextPrinterWaitWithDownArrow\n\
- lsl r0, #16\n\
- cmp r0, #0\n\
- bne _08005CC6\n\
- b _08005B56\n\
+ add r0, r6, #0\n\
+ bl TextPrinterWaitWithDownArrow\n\
+ lsl r0, #16\n\
+ cmp r0, #0\n\
+ bne _08005CC6\n\
+ b _08005B56\n\
_08005CC6:\n\
- add r0, r6, #0\n\
- bl TextPrinterClearDownArrow\n\
- ldrb r1, [r6, #0x5]\n\
- ldr r0, =gFonts\n\
- ldr r2, [r0]\n\
- lsl r0, r1, #1\n\
- add r0, r1\n\
- lsl r0, #2\n\
- add r0, r2\n\
- ldrb r1, [r6, #0xB]\n\
- ldrb r0, [r0, #0x5]\n\
- add r1, r0\n\
- strb r1, [r6, #0x1F]\n\
- ldrb r0, [r6, #0x6]\n\
- strb r0, [r6, #0x8]\n\
- mov r0, #0x4\n\
- strb r0, [r6, #0x1C]\n\
- b _08005B56\n\
- .pool\n\
+ add r0, r6, #0\n\
+ bl TextPrinterClearDownArrow\n\
+ ldrb r1, [r6, #0x5]\n\
+ ldr r0, =gFonts\n\
+ ldr r2, [r0]\n\
+ lsl r0, r1, #1\n\
+ add r0, r1\n\
+ lsl r0, #2\n\
+ add r0, r2\n\
+ ldrb r1, [r6, #0xB]\n\
+ ldrb r0, [r0, #0x5]\n\
+ add r1, r0\n\
+ strb r1, [r6, #0x1F]\n\
+ ldrb r0, [r6, #0x6]\n\
+ strb r0, [r6, #0x8]\n\
+ mov r0, #0x4\n\
+ strb r0, [r6, #0x1C]\n\
+ b _08005B56\n\
+ .pool\n\
_08005CF0:\n\
- ldrb r0, [r6, #0x1F]\n\
- cmp r0, #0\n\
- beq _08005D44\n\
- bl sub_8197964\n\
- ldr r1, =gWindowVerticalScrollSpeeds\n\
- add r0, r1\n\
- ldrb r4, [r0]\n\
- ldrb r2, [r6, #0x1F]\n\
- cmp r2, r4\n\
- bge _08005D20\n\
- ldrb r0, [r6, #0x4]\n\
- ldrb r1, [r6, #0xD]\n\
- lsl r1, #28\n\
- lsr r3, r1, #4\n\
- orr r3, r1\n\
- lsr r3, #24\n\
- mov r1, #0\n\
- bl ScrollWindow\n\
- mov r0, #0\n\
- b _08005D38\n\
- .pool\n\
+ ldrb r0, [r6, #0x1F]\n\
+ cmp r0, #0\n\
+ beq _08005D44\n\
+ bl sub_8197964\n\
+ ldr r1, =gWindowVerticalScrollSpeeds\n\
+ add r0, r1\n\
+ ldrb r4, [r0]\n\
+ ldrb r2, [r6, #0x1F]\n\
+ cmp r2, r4\n\
+ bge _08005D20\n\
+ ldrb r0, [r6, #0x4]\n\
+ ldrb r1, [r6, #0xD]\n\
+ lsl r1, #28\n\
+ lsr r3, r1, #4\n\
+ orr r3, r1\n\
+ lsr r3, #24\n\
+ mov r1, #0\n\
+ bl ScrollWindow\n\
+ mov r0, #0\n\
+ b _08005D38\n\
+ .pool\n\
_08005D20:\n\
- ldrb r0, [r6, #0x4]\n\
- ldrb r1, [r6, #0xD]\n\
- lsl r1, #28\n\
- lsr r3, r1, #4\n\
- orr r3, r1\n\
- lsr r3, #24\n\
- mov r1, #0\n\
- add r2, r4, #0\n\
- bl ScrollWindow\n\
- ldrb r0, [r6, #0x1F]\n\
- sub r0, r4\n\
+ ldrb r0, [r6, #0x4]\n\
+ ldrb r1, [r6, #0xD]\n\
+ lsl r1, #28\n\
+ lsr r3, r1, #4\n\
+ orr r3, r1\n\
+ lsr r3, #24\n\
+ mov r1, #0\n\
+ add r2, r4, #0\n\
+ bl ScrollWindow\n\
+ ldrb r0, [r6, #0x1F]\n\
+ sub r0, r4\n\
_08005D38:\n\
- strb r0, [r6, #0x1F]\n\
- ldrb r0, [r6, #0x4]\n\
- mov r1, #0x2\n\
- bl CopyWindowToVram\n\
- b _08005B56\n\
+ strb r0, [r6, #0x1F]\n\
+ ldrb r0, [r6, #0x4]\n\
+ mov r1, #0x2\n\
+ bl CopyWindowToVram\n\
+ b _08005B56\n\
_08005D44:\n\
- strb r0, [r6, #0x1C]\n\
- b _08005B56\n\
+ strb r0, [r6, #0x1C]\n\
+ b _08005B56\n\
_08005D48:\n\
- bl IsSEPlaying\n\
- lsl r0, #24\n\
- lsr r0, #24\n\
- cmp r0, #0\n\
- beq _08005D56\n\
- b _08005B56\n\
+ bl IsSEPlaying\n\
+ lsl r0, #24\n\
+ lsr r0, #24\n\
+ cmp r0, #0\n\
+ beq _08005D56\n\
+ b _08005B56\n\
_08005D56:\n\
- strb r0, [r6, #0x1C]\n\
- b _08005B56\n\
+ strb r0, [r6, #0x1C]\n\
+ b _08005B56\n\
_08005D5A:\n\
- ldrb r0, [r6, #0x1E]\n\
- add r1, r0, #0\n\
- cmp r1, #0\n\
- beq _08005D68\n\
- sub r0, #0x1\n\
- strb r0, [r6, #0x1E]\n\
- b _08005B56\n\
+ ldrb r0, [r6, #0x1E]\n\
+ add r1, r0, #0\n\
+ cmp r1, #0\n\
+ beq _08005D68\n\
+ sub r0, #0x1\n\
+ strb r0, [r6, #0x1E]\n\
+ b _08005B56\n\
_08005D68:\n\
- strb r1, [r6, #0x1C]\n\
- b _08005B56\n\
+ strb r1, [r6, #0x1C]\n\
+ b _08005B56\n\
_08005D6C:\n\
- mov r0, #0x1\n\
+ mov r0, #0x1\n\
_08005D6E:\n\
- pop {r4-r6}\n\
- pop {r1}\n\
- bx r1");
+ pop {r4-r6}\n\
+ pop {r1}\n\
+ bx r1\n");
}
+#endif
u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing)
{
diff --git a/src/time_events.c b/src/time_events.c
new file mode 100644
index 000000000..1f169a5c6
--- /dev/null
+++ b/src/time_events.c
@@ -0,0 +1,118 @@
+#include "global.h"
+#include "time_events.h"
+#include "event_data.h"
+#include "field_weather.h"
+#include "pokemon.h"
+#include "random.h"
+#include "overworld.h"
+#include "rtc.h"
+#include "script.h"
+#include "task.h"
+
+static u32 GetMirageRnd(void)
+{
+ u32 hi = VarGet(VAR_MIRAGE_RND_H);
+ u32 lo = VarGet(VAR_MIRAGE_RND_L);
+ return (hi << 16) | lo;
+}
+
+static void SetMirageRnd(u32 rnd)
+{
+ VarSet(VAR_MIRAGE_RND_H, rnd >> 16);
+ VarSet(VAR_MIRAGE_RND_L, rnd);
+}
+
+// unused
+void InitMirageRnd(void)
+{
+ SetMirageRnd((Random() << 16) | Random());
+}
+
+void UpdateMirageRnd(u16 days)
+{
+ s32 rnd = GetMirageRnd();
+ while (days)
+ {
+ rnd = 1103515245 * rnd + 12345;
+ days--;
+ }
+ SetMirageRnd(rnd);
+}
+
+bool8 IsMirageIslandPresent(void)
+{
+ u16 rnd = GetMirageRnd() >> 16;
+ int i;
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && (GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY) & 0xFFFF) == rnd)
+ return TRUE;
+
+ return FALSE;
+}
+
+void UpdateShoalTideFlag(void)
+{
+ static const u8 tide[] =
+ {
+ 1, // 00
+ 1, // 01
+ 1, // 02
+ 0, // 03
+ 0, // 04
+ 0, // 05
+ 0, // 06
+ 0, // 07
+ 0, // 08
+ 1, // 09
+ 1, // 10
+ 1, // 11
+ 1, // 12
+ 1, // 13
+ 1, // 14
+ 0, // 15
+ 0, // 16
+ 0, // 17
+ 0, // 18
+ 0, // 19
+ 0, // 20
+ 1, // 21
+ 1, // 22
+ 1, // 23
+ };
+
+ if (is_light_level_1_2_3_5_or_6(get_map_light_from_warp0()))
+ {
+ RtcCalcLocalTime();
+ if (tide[gLocalTime.hours])
+ FlagSet(FLAG_SYS_SHOAL_TIDE);
+ else
+ FlagClear(FLAG_SYS_SHOAL_TIDE);
+ }
+}
+
+static void Task_WaitWeather(u8 taskId)
+{
+ if (IsWeatherChangeComplete())
+ {
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ }
+}
+
+void WaitWeather(void)
+{
+ CreateTask(Task_WaitWeather, 80);
+}
+
+void InitBirchState(void)
+{
+ *GetVarPointer(VAR_BIRCH_STATE) = 0;
+}
+
+void UpdateBirchState(u16 days)
+{
+ u16 *state = GetVarPointer(VAR_BIRCH_STATE);
+ *state += days;
+ *state %= 7;
+}
diff --git a/src/title_screen.c b/src/title_screen.c
new file mode 100644
index 000000000..4e25c8152
--- /dev/null
+++ b/src/title_screen.c
@@ -0,0 +1,783 @@
+#include "global.h"
+#include "title_screen.h"
+#include "sprite.h"
+#include "gba/m4a_internal.h"
+#include "clear_save_data_menu.h"
+#include "decompress.h"
+#include "event_data.h"
+#include "intro.h"
+#include "m4a.h"
+#include "main.h"
+#include "main_menu.h"
+#include "palette.h"
+#include "reset_rtc_screen.h"
+#include "berry_fix_program.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+#include "scanline_effect.h"
+#include "gpu_regs.h"
+#include "trig.h"
+#include "constants/rgb.h"
+
+#define VERSION_BANNER_SHAPE 1
+#define VERSION_BANNER_RIGHT_TILEOFFSET 64
+#define VERSION_BANNER_BYTES 0x1000
+#define VERSION_BANNER_LEFT_X 98
+#define VERSION_BANNER_RIGHT_X 162
+#define VERSION_BANNER_Y 2
+#define VERSION_BANNER_Y_GOAL 66
+#define START_BANNER_X 128
+
+#define CLEAR_SAVE_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_UP)
+#define RESET_RTC_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_LEFT)
+#define BERRY_UPDATE_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON)
+#define A_B_START_SELECT (A_BUTTON | B_BUTTON | START_BUTTON | SELECT_BUTTON)
+
+extern struct MusicPlayerInfo gMPlayInfo_BGM;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+
+extern const u8 gTitleScreenEmeraldVersionGfx[];
+extern const u8 gTitleScreenPressStartGfx[];
+extern const u8 gTitleScreenPokemonLogoGfx[];
+extern const u8 gUnknown_08DE0644[];
+extern const u8 gUnknown_08DDE458[];
+extern const u16 gTitleScreenBgPalettes[];
+extern const u16 gTitleScreenPressStartPal[];
+extern const u16 gTitleScreenEmeraldVersionPal[];
+
+// this file's functions
+static void MainCB2(void);
+static void Task_TitleScreenPhase1(u8);
+static void Task_TitleScreenPhase2(u8);
+static void Task_TitleScreenPhase3(u8);
+static void CB2_GoToMainMenu(void);
+static void CB2_GoToClearSaveDataScreen(void);
+static void CB2_GoToResetRtcScreen(void);
+static void CB2_GoToBerryFixScreen(void);
+static void CB2_GoToCopyrightScreen(void);
+static void UpdateLegendaryMarkingColor(u8);
+
+static void SpriteCB_VersionBannerLeft(struct Sprite *sprite);
+static void SpriteCB_VersionBannerRight(struct Sprite *sprite);
+static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite);
+static void SpriteCB_PokemonLogoShine(struct Sprite *sprite);
+
+// const rom data
+static const u16 sUnusedUnknownPal[] = INCBIN_U16("graphics/title_screen/unk_853EF78.gbapal");
+
+static const u8 sTitleScreenRayquazaGfx[] = INCBIN_U8("graphics/title_screen/rayquaza.4bpp.lz");
+static const u8 sTitleScreenRayquazaTilemap[] = INCBIN_U8("graphics/title_screen/rayquaza.bin.lz");
+static const u8 sTitleScreenLogoShineGfx[] = INCBIN_U8("graphics/title_screen/logo_shine.4bpp.lz");
+static const u8 sTitleScreenCloudsGfx[] = INCBIN_U8("graphics/title_screen/clouds.4bpp.lz");
+
+const u16 gUnknown_0853FF70[] =
+{
+ 0x0010, 0x0110, 0x0210, 0x0310, 0x0410, 0x0510, 0x0610, 0x0710,
+ 0x0810, 0x0910, 0x0a10, 0x0b10, 0x0c10, 0x0d10, 0x0e10, 0x0f10,
+ 0x100f, 0x100e, 0x100d, 0x100c, 0x100b, 0x100a, 0x1009, 0x1008,
+ 0x1007, 0x1006, 0x1005, 0x1004, 0x1003, 0x1002, 0x1001, 0x1000,
+ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
+ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
+ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
+ 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000,
+};
+
+static const struct OamData sVersionBannerLeftOamData =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 1,
+ .shape = VERSION_BANNER_SHAPE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct OamData sVersionBannerRightOamData =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 1,
+ .shape = VERSION_BANNER_SHAPE,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sVersionBannerLeftAnimSequence[] =
+{
+ ANIMCMD_FRAME(0, 30),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sVersionBannerRightAnimSequence[] =
+{
+ ANIMCMD_FRAME(VERSION_BANNER_RIGHT_TILEOFFSET, 30),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sVersionBannerLeftAnimTable[] =
+{
+ sVersionBannerLeftAnimSequence,
+};
+
+static const union AnimCmd *const sVersionBannerRightAnimTable[] =
+{
+ sVersionBannerRightAnimSequence,
+};
+
+static const struct SpriteTemplate sVersionBannerLeftSpriteTemplate =
+{
+ .tileTag = 1000,
+ .paletteTag = 1000,
+ .oam = &sVersionBannerLeftOamData,
+ .anims = sVersionBannerLeftAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_VersionBannerLeft,
+};
+
+static const struct SpriteTemplate sVersionBannerRightSpriteTemplate =
+{
+ .tileTag = 1000,
+ .paletteTag = 1000,
+ .oam = &sVersionBannerRightOamData,
+ .anims = sVersionBannerRightAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_VersionBannerRight,
+};
+
+static const struct CompressedSpriteSheet sSpriteSheet_EmeraldVersion[] =
+{
+ {gTitleScreenEmeraldVersionGfx, VERSION_BANNER_BYTES, 1000},
+ {NULL},
+};
+
+static const struct OamData sOamData_CopyrightBanner =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sCopyrightBannerAnim0[] =
+{
+ ANIMCMD_FRAME(1, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim1[] =
+{
+ ANIMCMD_FRAME(5, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim2[] =
+{
+ ANIMCMD_FRAME(9, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim3[] =
+{
+ ANIMCMD_FRAME(13, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim4[] =
+{
+ ANIMCMD_FRAME(17, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim5[] =
+{
+ ANIMCMD_FRAME(21, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim6[] =
+{
+ ANIMCMD_FRAME(25, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim7[] =
+{
+ ANIMCMD_FRAME(29, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim8[] =
+{
+ ANIMCMD_FRAME(33, 4),
+ ANIMCMD_END,
+};
+static const union AnimCmd sCopyrightBannerAnim9[] =
+{
+ ANIMCMD_FRAME(37, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sStartCopyrightBannerAnimTable[] =
+{
+ sCopyrightBannerAnim0,
+ sCopyrightBannerAnim1,
+ sCopyrightBannerAnim2,
+ sCopyrightBannerAnim3,
+ sCopyrightBannerAnim4,
+ sCopyrightBannerAnim5,
+ sCopyrightBannerAnim6,
+ sCopyrightBannerAnim7,
+ sCopyrightBannerAnim8,
+ sCopyrightBannerAnim9,
+};
+
+static const struct SpriteTemplate sStartCopyrightBannerSpriteTemplate =
+{
+ .tileTag = 1001,
+ .paletteTag = 1001,
+ .oam = &sOamData_CopyrightBanner,
+ .anims = sStartCopyrightBannerAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_PressStartCopyrightBanner,
+};
+
+static const struct CompressedSpriteSheet sSpriteSheet_PressStart[] =
+{
+ {gTitleScreenPressStartGfx, 0x520, 1001},
+ {NULL},
+};
+
+static const struct SpritePalette sSpritePalette_PressStart[] =
+{
+ {gTitleScreenPressStartPal, 1001},
+ {NULL},
+};
+
+static const struct OamData sPokemonLogoShineOamData =
+{
+ .y = 160,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sPokemonLogoShineAnimSequence[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sPokemonLogoShineAnimTable[] =
+{
+ sPokemonLogoShineAnimSequence,
+};
+
+static const struct SpriteTemplate sPokemonLogoShineSpriteTemplate =
+{
+ .tileTag = 1002,
+ .paletteTag = 1001,
+ .oam = &sPokemonLogoShineOamData,
+ .anims = sPokemonLogoShineAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_PokemonLogoShine,
+};
+
+static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] =
+{
+ {sTitleScreenLogoShineGfx, 0x800, 1002},
+ {NULL},
+};
+
+// code
+static void SpriteCB_VersionBannerLeft(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data[1]].data[1] != 0)
+ {
+ sprite->oam.objMode = 0;
+ sprite->pos1.y = VERSION_BANNER_Y_GOAL;
+ }
+ else
+ {
+ if (sprite->pos1.y != VERSION_BANNER_Y_GOAL)
+ sprite->pos1.y++;
+ if (sprite->data[0] != 0)
+ sprite->data[0]--;
+ SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0853FF70[sprite->data[0]]);
+ }
+}
+
+static void SpriteCB_VersionBannerRight(struct Sprite *sprite)
+{
+ if (gTasks[sprite->data[1]].data[1] != 0)
+ {
+ sprite->oam.objMode = 0;
+ sprite->pos1.y = VERSION_BANNER_Y_GOAL;
+ }
+ else
+ {
+ if (sprite->pos1.y != VERSION_BANNER_Y_GOAL)
+ sprite->pos1.y++;
+ }
+}
+
+static void SpriteCB_PressStartCopyrightBanner(struct Sprite *sprite)
+{
+ if (sprite->data[0] == 1)
+ {
+ sprite->data[1]++;
+ // Alternate between hidden and shown every 16th frame
+ if (sprite->data[1] & 0x10)
+ sprite->invisible = FALSE;
+ else
+ sprite->invisible = TRUE;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ }
+}
+
+static void CreatePressStartBanner(s16 x, s16 y)
+{
+ u8 i;
+ u8 spriteId;
+
+ x -= 64;
+ for (i = 0; i < 5; i++, x += 32)
+ {
+ spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0);
+ StartSpriteAnim(&gSprites[spriteId], i);
+ gSprites[spriteId].data[0] = 1;
+ }
+}
+
+static void CreateCopyrightBanner(s16 x, s16 y)
+{
+ u8 i;
+ u8 spriteId;
+
+ x -= 64;
+ for (i = 0; i < 5; i++, x += 32)
+ {
+ spriteId = CreateSprite(&sStartCopyrightBannerSpriteTemplate, x, y, 0);
+ StartSpriteAnim(&gSprites[spriteId], i + 5);
+ }
+}
+
+static void SpriteCB_PokemonLogoShine(struct Sprite *sprite)
+{
+ if (sprite->pos1.x < 272)
+ {
+ if (sprite->data[0]) // Flash background
+ {
+ u16 backgroundColor;
+
+ if (sprite->pos1.x < DISPLAY_WIDTH / 2)
+ {
+ // Brighten background color
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
+ if (sprite->data[1] < 31)
+ sprite->data[1]++;
+ }
+ else
+ {
+ // Darken background color
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
+ if (sprite->data[1] != 0)
+ sprite->data[1]--;
+ }
+
+ backgroundColor = _RGB(sprite->data[1], sprite->data[1], sprite->data[1]);
+ if (sprite->pos1.x == DISPLAY_WIDTH / 2 + 12
+ || sprite->pos1.x == DISPLAY_WIDTH / 2 + 16
+ || sprite->pos1.x == DISPLAY_WIDTH / 2 + 20
+ || sprite->pos1.x == DISPLAY_WIDTH / 2 + 24)
+ gPlttBufferFaded[0] = RGB(24, 31, 12);
+ else
+ gPlttBufferFaded[0] = backgroundColor;
+ }
+ sprite->pos1.x += 4;
+ }
+ else
+ {
+ gPlttBufferFaded[0] = RGB_BLACK;
+ DestroySprite(sprite);
+ }
+}
+
+static void SpriteCB_PokemonLogoShine2(struct Sprite *sprite)
+{
+ if (sprite->pos1.x < 272)
+ sprite->pos1.x += 8;
+ else
+ DestroySprite(sprite);
+}
+
+static void StartPokemonLogoShine(u8 flashBg)
+{
+ u8 spriteId;
+
+ switch (flashBg)
+ {
+ case 0:
+ case 2:
+ spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0);
+ gSprites[spriteId].oam.objMode = 2;
+ gSprites[spriteId].data[0] = flashBg;
+ break;
+ case 1:
+ spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0);
+ gSprites[spriteId].oam.objMode = 2;
+ gSprites[spriteId].data[0] = flashBg;
+ gSprites[spriteId].invisible = TRUE;
+
+ spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, 0, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2;
+ gSprites[spriteId].oam.objMode = 2;
+
+ spriteId = CreateSprite(&sPokemonLogoShineSpriteTemplate, -80, 68, 0);
+ gSprites[spriteId].callback = SpriteCB_PokemonLogoShine2;
+ gSprites[spriteId].oam.objMode = 2;
+ break;
+ }
+}
+
+static void VBlankCB(void)
+{
+ ScanlineEffect_InitHBlankDmaTransfer();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+}
+
+#define tCounter data[0]
+#define tSkipToNext data[1]
+
+void CB2_InitTitleScreen(void)
+{
+ switch (gMain.state)
+ {
+ default:
+ case 0:
+ SetVBlankCallback(NULL);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ *((u16 *)PLTT) = RGB_WHITE;
+ SetGpuReg(REG_OFFSET_DISPCNT, 0);
+ SetGpuReg(REG_OFFSET_BG2CNT, 0);
+ SetGpuReg(REG_OFFSET_BG1CNT, 0);
+ SetGpuReg(REG_OFFSET_BG0CNT, 0);
+ SetGpuReg(REG_OFFSET_BG2HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG2VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG1VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG0HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0);
+ DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
+ DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
+ ResetPaletteFade();
+ gMain.state = 1;
+ break;
+ case 1:
+ LZ77UnCompVram(gTitleScreenPokemonLogoGfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_08DE0644, (void *)(VRAM + 0x4800));
+ LoadPalette(gTitleScreenBgPalettes, 0, 0x1E0);
+ LZ77UnCompVram(sTitleScreenRayquazaGfx, (void *)(VRAM + 0x8000));
+ LZ77UnCompVram(sTitleScreenRayquazaTilemap, (void *)(VRAM + 0xD000));
+ LZ77UnCompVram(sTitleScreenCloudsGfx, (void *)(VRAM + 0xC000));
+ LZ77UnCompVram(gUnknown_08DDE458, (void *)(VRAM + 0xD800));
+ ScanlineEffect_Stop();
+ ResetTasks();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 9;
+ LoadCompressedObjectPic(&sSpriteSheet_EmeraldVersion[0]);
+ LoadCompressedObjectPic(&sSpriteSheet_PressStart[0]);
+ LoadCompressedObjectPic(&sPokemonLogoShineSpriteSheet[0]);
+ LoadPalette(gTitleScreenEmeraldVersionPal, 0x100, 0x20);
+ LoadSpritePalette(&sSpritePalette_PressStart[0]);
+ gMain.state = 2;
+ break;
+ case 2:
+ {
+ u8 taskId = CreateTask(Task_TitleScreenPhase1, 0);
+
+ gTasks[taskId].tCounter = 256;
+ gTasks[taskId].tSkipToNext = FALSE;
+ gTasks[taskId].data[2] = -16;
+ gTasks[taskId].data[3] = -32;
+ gMain.state = 3;
+ break;
+ }
+ case 3:
+ BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF);
+ SetVBlankCallback(VBlankCB);
+ gMain.state = 4;
+ break;
+ case 4:
+ sub_816F2A8(0x78, 0x50, 0x100, 0);
+ SetGpuReg(REG_OFFSET_BG2X_L, -29 * 256);
+ SetGpuReg(REG_OFFSET_BG2X_H, -1);
+ SetGpuReg(REG_OFFSET_BG2Y_L, -32 * 256);
+ SetGpuReg(REG_OFFSET_BG2Y_H, -1);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WIN1H, 0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0x1F1F);
+ SetGpuReg(REG_OFFSET_WINOUT, 0x3F1F);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x84);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0xC);
+ SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(26) | BGCNT_16COLOR | BGCNT_TXT256x256);
+ SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(27) | BGCNT_16COLOR | BGCNT_TXT256x256);
+ SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(9) | BGCNT_256COLOR | BGCNT_AFF256x256);
+ EnableInterrupts(INTR_FLAG_VBLANK);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1
+ | DISPCNT_OBJ_1D_MAP
+ | DISPCNT_BG2_ON
+ | DISPCNT_OBJ_ON
+ | DISPCNT_WIN0_ON
+ | DISPCNT_OBJWIN_ON);
+ m4aSongNumStart(0x19D);
+ gMain.state = 5;
+ break;
+ case 5:
+ if (!UpdatePaletteFade())
+ {
+ StartPokemonLogoShine(0);
+ ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE);
+ SetMainCallback2(MainCB2);
+ }
+ break;
+ }
+}
+
+static void MainCB2(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+// Shine the Pokemon logo two more times, and fade in the version banner
+static void Task_TitleScreenPhase1(u8 taskId)
+{
+ // Skip to next phase when A, B, Start, or Select is pressed
+ if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[1] != 0)
+ {
+ gTasks[taskId].tSkipToNext = TRUE;
+ gTasks[taskId].tCounter = 0;
+ }
+
+ if (gTasks[taskId].tCounter != 0)
+ {
+ u16 frameNum = gTasks[taskId].tCounter;
+ if (frameNum == 176)
+ StartPokemonLogoShine(1);
+ else if (frameNum == 64)
+ StartPokemonLogoShine(2);
+
+ gTasks[taskId].tCounter--;
+ }
+ else
+ {
+ u8 spriteId;
+
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x3F50);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+
+ // Create left side of version banner
+ spriteId = CreateSprite(&sVersionBannerLeftSpriteTemplate, VERSION_BANNER_LEFT_X, VERSION_BANNER_Y, 0);
+ gSprites[spriteId].data[0] = 64;
+ gSprites[spriteId].data[1] = taskId;
+
+ // Create right side of version banner
+ spriteId = CreateSprite(&sVersionBannerRightSpriteTemplate, VERSION_BANNER_RIGHT_X, VERSION_BANNER_Y, 0);
+ gSprites[spriteId].data[1] = taskId;
+
+ gTasks[taskId].tCounter = 144;
+ gTasks[taskId].func = Task_TitleScreenPhase2;
+ }
+}
+
+// Create "Press Start" and copyright banners, and slide Pokemon logo up
+static void Task_TitleScreenPhase2(u8 taskId)
+{
+ u32 yPos;
+
+ // Skip to next phase when A, B, Start, or Select is pressed
+ if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].tSkipToNext)
+ {
+ gTasks[taskId].tSkipToNext = TRUE;
+ gTasks[taskId].tCounter = 0;
+ }
+
+ if (gTasks[taskId].tCounter != 0)
+ {
+ gTasks[taskId].tCounter--;
+ }
+ else
+ {
+ gTasks[taskId].tSkipToNext = TRUE;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x2142);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0xF06);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_1
+ | DISPCNT_OBJ_1D_MAP
+ | DISPCNT_BG0_ON
+ | DISPCNT_BG1_ON
+ | DISPCNT_BG2_ON
+ | DISPCNT_OBJ_ON);
+ CreatePressStartBanner(START_BANNER_X, 108);
+ CreateCopyrightBanner(START_BANNER_X, 148);
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].func = Task_TitleScreenPhase3;
+ }
+
+ if (!(gTasks[taskId].tCounter & 3) && gTasks[taskId].data[2] != 0)
+ gTasks[taskId].data[2]++;
+ if (!(gTasks[taskId].tCounter & 1) && gTasks[taskId].data[3] != 0)
+ gTasks[taskId].data[3]++;
+
+ // Slide Pokemon logo up
+ yPos = gTasks[taskId].data[3] * 256;
+ SetGpuReg(REG_OFFSET_BG2Y_L, yPos);
+ SetGpuReg(REG_OFFSET_BG2Y_H, yPos / 0x10000);
+
+ gTasks[taskId].data[5] = 15;
+ gTasks[taskId].data[6] = 6;
+}
+
+// Show Rayquaza silhouette and process main title screen input
+static void Task_TitleScreenPhase3(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & START_BUTTON))
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF);
+ SetMainCallback2(CB2_GoToMainMenu);
+ }
+ else if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO)
+ {
+ SetMainCallback2(CB2_GoToClearSaveDataScreen);
+ }
+ else if ((gMain.heldKeys & RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO
+ && CanResetRTC() == TRUE)
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ SetMainCallback2(CB2_GoToResetRtcScreen);
+ }
+ else if ((gMain.heldKeys & BERRY_UPDATE_BUTTON_COMBO) == BERRY_UPDATE_BUTTON_COMBO)
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ SetMainCallback2(CB2_GoToBerryFixScreen);
+ }
+ else
+ {
+ SetGpuReg(REG_OFFSET_BG2Y_L, 0);
+ SetGpuReg(REG_OFFSET_BG2Y_H, 0);
+ gTasks[taskId].tCounter++;
+ if (gTasks[taskId].tCounter & 1)
+ {
+ gTasks[taskId].data[4]++;
+ gBattle_BG1_Y = gTasks[taskId].data[4] / 2;
+ gBattle_BG1_X = 0;
+ }
+ UpdateLegendaryMarkingColor(gTasks[taskId].tCounter);
+ if ((gMPlayInfo_BGM.status & 0xFFFF) == 0)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF);
+ SetMainCallback2(CB2_GoToCopyrightScreen);
+ }
+ }
+}
+
+static void CB2_GoToMainMenu(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitMainMenu);
+}
+
+static void CB2_GoToCopyrightScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitCopyrightScreenAfterTitleScreen);
+}
+
+static void CB2_GoToClearSaveDataScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitClearSaveDataScreen);
+}
+
+static void CB2_GoToResetRtcScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitResetRtcScreen);
+}
+
+static void CB2_GoToBerryFixScreen(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ m4aMPlayAllStop();
+ SetMainCallback2(CB2_InitBerryFixProgram);
+ }
+}
+
+static void UpdateLegendaryMarkingColor(u8 frameNum)
+{
+ if ((frameNum % 4) == 0) // Change color every 4th frame
+ {
+ s32 intensity = Cos(frameNum, 128) + 128;
+ s32 r = 31 - ((intensity * 32 - intensity) / 256);
+ s32 g = 31 - (intensity * 22 / 256);
+ s32 b = 12;
+
+ u16 color = RGB(r, g, b);
+ LoadPalette(&color, 0xEF, sizeof(color));
+ }
+}
diff --git a/src/trainer_see.c b/src/trainer_see.c
index 53bc5cbbb..7706da703 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -6,7 +6,7 @@
#include "field_effect.h"
#include "field_map_obj.h"
#include "field_player_avatar.h"
-#include "map_obj_8097404.h"
+#include "field_map_obj_helpers.h"
#include "pokenav.h"
#include "task.h"
#include "util.h"
@@ -639,7 +639,7 @@ void sub_80B45D0(void)
gApproachingTrainerId++;
gSpecialVar_Result = 1;
UnfreezeMapObjects();
- sub_80974D0(gApproachingTrainers[1].mapObjectId);
+ FreezeMapObjectsExceptOne(gApproachingTrainers[1].mapObjectId);
}
else
{
diff --git a/src/tv.c b/src/tv.c
index af0c7069c..0fb2997ad 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1208,7 +1208,7 @@ void PutPokemonTodayFailedOnTheAir(void)
{
ct = 0xFF;
}
- if (ct > 2 && (gBattleOutcome == BATTLE_POKE_FLED || gBattleOutcome == BATTLE_WON))
+ if (ct > 2 && (gBattleOutcome == B_OUTCOME_POKE_FLED || gBattleOutcome == B_OUTCOME_WON))
{
sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE)
@@ -2402,23 +2402,23 @@ void sub_80EE184(void)
show->breakingNews.poke1Species = gBattleResults.playerMon1Species;
switch (gBattleOutcome)
{
- case BATTLE_LOST:
- case BATTLE_DREW:
+ case B_OUTCOME_LOST:
+ case B_OUTCOME_DREW:
show->breakingNews.kind = TVSHOW_OFF_AIR;
return;
- case BATTLE_CAUGHT:
+ case B_OUTCOME_CAUGHT_POKE:
show->breakingNews.outcome = 0;
break;
- case BATTLE_WON:
+ case B_OUTCOME_WON:
show->breakingNews.outcome = 1;
break;
- case BATTLE_RAN:
- case BATTLE_PLAYER_TELEPORTED:
- case BATTLE_SAFARI_OUT_OF_BALLS:
+ case B_OUTCOME_RAN:
+ case B_OUTCOME_PLAYER_TELEPORTED:
+ case B_OUTCOME_NO_SAFARI_BALLS:
show->breakingNews.outcome = 2;
break;
- case BATTLE_POKE_FLED:
- case BATTLE_OPPONENT_TELEPORTED:
+ case B_OUTCOME_POKE_FLED:
+ case B_OUTCOME_POKE_TELEPORTED:
show->breakingNews.outcome = 3;
break;
}
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
index 12f475c93..c8898d08f 100644
--- a/src/use_pokeblock.c
+++ b/src/use_pokeblock.c
@@ -4,7 +4,7 @@
#include "malloc.h"
#include "palette.h"
#include "pokenav.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "text.h"
#include "bg.h"
#include "window.h"
@@ -131,7 +131,7 @@ void sub_8166340(void)
ProcessSpriteCopyRequests();
TransferPlttBuffer();
sub_81D2108(gUnknown_0203BCAC->field_7C58);
- sub_80BA0A8();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void sub_816636C(void (*func)(void))
diff --git a/src/wallclock.c b/src/wallclock.c
index dbea24b4c..f15bbbc27 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -12,7 +12,7 @@
#include "window.h"
#include "text_window.h"
#include "menu.h"
-#include "unknown_task.h"
+#include "scanline_effect.h"
#include "task.h"
#include "strings.h"
#include "sound.h"
diff --git a/sym_bss.txt b/sym_bss.txt
index 409690e38..f930a5b98 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -74,16 +74,8 @@ gUnknown_03001204: @ 3001204
.space 0x4
.include "src/battle_transition.o"
-
-gUnknown_03001240: @ 3001240
- .space 0x30
-
-gUnknown_03001270: @ 3001270
- .space 0x4
-
-gUnknown_03001274: @ 3001274
- .space 0x4
-
+ .include "src/pokemon_animation.o"
+
gUnknown_03001278: @ 3001278
.space 0x1
diff --git a/sym_common.txt b/sym_common.txt
index 590597459..ec6c95b20 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -84,7 +84,7 @@ gUnknown_03003092: @ 3003092
gUnknown_03003094: @ 3003094
.space 0x4C
-gUnknown_030030E0: @ 30030E0
+gLinkStatus: @ 30030E0
.space 0x4
gUnknown_030030E4: @ 30030E4
@@ -215,10 +215,10 @@ gBattleResults: @ 3005D10
gLeveledUpInBattle: @ 3005D54
.space 0xC
-gBattleBankFunc: @ 3005D60
+gBattlerControllerFuncs: @ 3005D60
.space 0x10
-gHealthBoxesIds: @ 3005D70
+gHealthboxSpriteIds: @ 3005D70
.space 0x4
gMultiUsePlayerCursor: @ 3005D74
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 83b6d8886..3f89b7adf 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -270,25 +270,25 @@ gBattleBufferA: @ 2023064
gBattleBufferB: @ 2023864
.space 0x800
-gActiveBank: @ 2024064
+gActiveBattler: @ 2024064
.space 0x4
-gBattleExecBuffer: @ 2024068
+gBattleControllerExecFlags: @ 2024068
.space 0x4
-gNoOfAllBanks: @ 202406C
+gBattlersCount: @ 202406C
.space 0x2
-gBattlePartyID: @ 202406E
+gBattlerPartyIndexes: @ 202406E
.space 0x8
-gBanksByIdentity: @ 2024076
+gBattlerPositions: @ 2024076
.space 0x4
gActionsByTurnOrder: @ 202407A
.space 0x4
-gBanksByTurnOrder: @ 202407E
+gBattleTurnOrder: @ 202407E
.space 0x4
gCurrentTurnActionNumber: @ 2024082
@@ -300,7 +300,7 @@ gCurrentActionFuncId: @ 2024083
gBattleMons: @ 2024084
.space 0x160
-gBankSpriteIds: @ 20241E4
+gBattlerSpriteIds: @ 20241E4
.space 0x4
gCurrMovePos: @ 20241E8
@@ -333,10 +333,10 @@ gLastUsedItem: @ 2024208
gLastUsedAbility: @ 202420A
.space 0x1
-gBankAttacker: @ 202420B
+gBattlerAttacker: @ 202420B
.space 0x1
-gBankTarget: @ 202420C
+gBattlerTarget: @ 202420C
.space 0x1
gBank1: @ 202420D
@@ -345,10 +345,10 @@ gBank1: @ 202420D
gEffectBank: @ 202420E
.space 0x1
-gStringBank: @ 202420F
+gStringBattler: @ 202420F
.space 0x1
-gAbsentBankFlags: @ 2024210
+gAbsentBattlerFlags: @ 2024210
.space 0x1
gCritMultiplier: @ 2024211
@@ -360,7 +360,7 @@ gMultiHitCounter: @ 2024212
gBattlescriptCurrInstr: @ 2024214
.space 0x8
-gActionForBanks: @ 202421C
+gChosenActionByBattler: @ 202421C
.space 0x4
gSelectionBattleScripts: @ 2024220
@@ -390,10 +390,10 @@ gLockedMoves: @ 2024268
gLastHitBy: @ 2024270
.space 0x4
-gChosenMovesByBanks: @ 2024274
+gChosenMoveByBattler: @ 2024274
.space 0x8
-gBattleMoveFlags: @ 202427C
+gMoveResultFlags: @ 202427C
.space 0x4
gHitMarker: @ 2024280
@@ -408,7 +408,7 @@ gTakenDmgBanks: @ 2024288
gUnknown_0202428C: @ 202428C
.space 0x2
-gSideAffecting: @ 202428E
+gSideStatuses: @ 202428E
.space 0x6
gSideTimers: @ 2024294
@@ -642,9 +642,9 @@ gUnknown_020375B6: @ 20375B6
gUnknown_020375B8: @ 20375B8
.space 0x4
-gUnknown_020375BC: @ 20375BC
- .space 0x4
+ .include "src/field_message_box.o"
+ .align 2
gUnknown_020375C0: @ 20375C0
.space 0x4
@@ -659,25 +659,6 @@ gUnknown_020375D6: @ 20375D6
.include "src/event_data.o"
.include "src/start_menu.o"
-
-gUnknown_02037619: @ 2037619
- .space 0x1
-
-gUnknown_0203761A: @ 203761A
- .space 0x2
-
-gUnknown_0203761C: @ 203761C
- .space 0x4
-
-gUnknown_02037620: @ 2037620
- .space 0x1
-
-gUnknown_02037621: @ 2037621
- .space 0x1
-
-gUnknown_02037622: @ 2037622
- .space 0x2
-
.include "src/tileset_anims.o"
.include "src/palette.o"
.include "src/sound.o"
@@ -713,36 +694,7 @@ gUnknown_02038BC6: @ 2038BC6
gFieldEffectArguments: @ 2038C08
.space 0x20
-gUnknown_02038C28: @ 2038C28
- .space 0x2
-
-gUnknown_02038C2A: @ 2038C2A
- .space 0x2
-
-gUnknown_02038C2C: @ 2038C2C
- .space 0x13C
-
-gUnknown_02038D68: @ 2038D68
- .space 0x140
-
-gUnknown_02038EA8: @ 2038EA8
- .space 0x280
-
-gUnknown_02039128: @ 2039128
- .space 0x280
-
-gUnknown_020393A8: @ 20393A8
- .space 0x140
-
-gUnknown_020394E8: @ 20394E8
- .space 0x640
-
-gUnknown_02039B28: @ 2039B28
- .space 0x1C
-
-gUnknown_02039B44: @ 2039B44
- .space 0x4
-
+ .include "src/scanline_effect.o"
.include "src/option_menu.o"
.align 2
@@ -1194,7 +1146,7 @@ gUnknown_0203AB98: @ 203AB98
.include "src/coins.o"
.include "src/battle_transition.o"
-gAbilitiesPerBank: @ 203ABA4
+gBattlerAbilities: @ 203ABA4
.space 0x4
gStringInfo: @ 203ABA8
@@ -1295,13 +1247,8 @@ gUnknown_0203BCE8: @ 203BCE8
.include "src/lottery_corner.o"
.include "src/diploma.o"
-
-gUnknown_0203BCF4: @ 203BCF4
- .space 0x4
-
-gUnknown_0203BCF8: @ 203BCF8
- .space 0x4
-
+ .include "src/berry_tag_screen.o"
+ .include "src/mystery_event_menu.o"
.include "src/save_failed_screen.o"
gBraillePuzzleCallbackFlag: @ 203BD14
@@ -1413,12 +1360,7 @@ gUnknown_0203CE8C: @ 203CE8C
.space 0x10
.include "src/unk_text_util.o"
-
-gUnknown_0203CEBC: @ 203CEBC
- .space 0x4
-
-gUnknown_0203CEC0: @ 203CEC0
- .space 0x4
+ .include "src/item_icon.o"
gUnknown_0203CEC4: @ 203CEC4
.space 0x4
@@ -1531,4 +1473,4 @@ gUnknown_0203CF58: @ 203CF58
gUnknown_0203CF5C: @ 203CF5C
.space 0x4
-gUnknown_0203CF60: @ 203CF60
+ .include "src/rayquaza_scene.o"