summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_4.s32351
-rw-r--r--asm/field_tasks.s1972
-rw-r--r--asm/item_menu.s9873
-rw-r--r--asm/pokeblock.s2675
-rw-r--r--asm/rotating_gate.s1085
-rw-r--r--asm/sound_check_menu.s2444
-rw-r--r--asm/use_pokeblock.s2113
-rw-r--r--data/data2.s1804
-rw-r--r--data/field_tasks.s66
-rw-r--r--data/graphics/berries/graphics_table.inc45
-rw-r--r--data/item_menu.s289
-rw-r--r--data/pokeblock.s125
-rw-r--r--data/rotating_gate.s311
-rw-r--r--data/sound_check_menu.s121
-rw-r--r--data/text/song_names.inc1105
-rw-r--r--data/use_pokeblock.s73
-rw-r--r--[-rwxr-xr-x]graphics-de/unused/old_charmap.pngbin1873 -> 1873 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/attract.pngbin2150 -> 2150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/sandstorm_brew.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/sandstorm_brew.pngbin997 -> 997 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face.pngbin428 -> 428 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_contest.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_opponent.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/scary_face_player.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/water.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/backgrounds/water.pngbin3793 -> 3793 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/cure_bubbles.pngbin336 -> 336 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/curse.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/curse.pngbin138 -> 138 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/metal_shine.pngbin183 -> 183 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/morning_sun.pngbin188 -> 188 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat.pngbin430 -> 430 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat_tilemap_1.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/stat_tilemap_2.bin0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/unknown_D2EDFC.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/masks/unknown_D2EDFC.pngbin175 -> 175 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_anims/sprites/substitute.pngbin446 -> 446 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/ball_display.pngbin191 -> 191 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/ball_display_unused_extra.pngbin158 -> 158 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/bar.pngbin174 -> 174 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/enemy_mon_shadow.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/expbar.pngbin166 -> 166 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar.pngbin217 -> 217 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/hpbar_anim.pngbin205 -> 205 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/misc.pngbin200 -> 200 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/misc_frameend.pngbin140 -> 140 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status2.pngbin198 -> 198 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status3.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status4.pngbin197 -> 197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_brn.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_frz.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_par.pngbin172 -> 172 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_psn.pngbin176 -> 176 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/status_slp.pngbin177 -> 177 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window.pngbin360 -> 360 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window2.pngbin318 -> 318 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window3.pngbin314 -> 314 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window4.pngbin306 -> 306 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_interface/window5.pngbin297 -> 297 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/building/palette2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/building/palette3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/cave/groudon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/battle_tower.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/map.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/palette7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/stadium/tiles.pngbin712 -> 712 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_terrain/water/kyogre.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs.pngbin533 -> 533 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/battle_transitions/vs_frame.pngbin317 -> 317 bytes
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/birch.pal0
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/birch.pngbin837 -> 837 bytes
-rw-r--r--[-rwxr-xr-x]graphics/birch_speech/shadow.pngbin372 -> 372 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/applause.pngbin287 -> 287 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/applause_meter.pngbin184 -> 184 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/audience.pngbin2086 -> 2086 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/faces.pngbin1028 -> 1028 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/heart.pngbin873 -> 873 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge.pngbin593 -> 593 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge_symbols.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/judge_symbols.pngbin401 -> 401 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc.pngbin1735 -> 1735 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2.pngbin2853 -> 2853 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_1.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_2.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/misc_2_tilemap_3.bin0
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn.pal0
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn.pngbin199 -> 199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn_numbers.pngbin200 -> 200 bytes
-rw-r--r--[-rwxr-xr-x]graphics/contest/nextturn_random.pngbin161 -> 161 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen.pngbin1634 -> 1634 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen_female.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/bag_screen_male.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/dive.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/dive.pngbin326 -> 326 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/great.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/great.pngbin257 -> 257 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/luxury.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/luxury.pngbin350 -> 350 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/master.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/master.pngbin260 -> 260 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/nest.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/nest.pngbin266 -> 266 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/net.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/net.pngbin246 -> 246 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/poke.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/poke.pngbin249 -> 249 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/premier.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/premier.pngbin289 -> 289 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/repeat.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/repeat.pngbin257 -> 257 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/safari.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/safari.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/timer.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/timer.pngbin296 -> 296 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/ultra.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball/ultra.pngbin248 -> 248 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/ball_open.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/blank.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/blank.pngbin88 -> 88 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry.pngbin1134 -> 1134 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/check_berry_circle.pngbin466 -> 466 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/hold_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/hold_icons.pngbin177 -> 177 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/hpbar_anim.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/mart_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/mart_frame.pngbin300 -> 300 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu.pngbin487 -> 487 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu_0.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/menu_1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/money.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/money.pngbin201 -> 201 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/numbers1.pngbin201 -> 201 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/numbers2.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_hpbar.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_misc.pngbin546 -> 546 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/party_menu_ordertext.pngbin758 -> 758 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_case_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_case_frame.pngbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_device.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/pokeblock_device.pngbin530 -> 530 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_icons.pngbin449 -> 449 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_screen.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/status_screen.pngbin2011 -> 2011 bytes
-rw-r--r--[-rwxr-xr-x]graphics/interface/summary_frames.pal0
-rw-r--r--[-rwxr-xr-x]graphics/interface/summary_frames.pngbin273 -> 273 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bg.pngbin912 -> 912 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal10.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal11.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal12.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal13.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal14.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal15.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal16.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_bgpal9.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_eon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_eon.pngbin258 -> 258 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_gamefreak.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_gamefreak.pngbin706 -> 706 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_leaves.pngbin5053 -> 5053 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro1_waterdrops.pngbin462 -> 462 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds.pngbin718 -> 718 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgclouds2.pngbin296 -> 296 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgnight.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgnight.pngbin536 -> 536 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtrees.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtrees.pngbin1023 -> 1023 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bgtreessmall.pngbin360 -> 360 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_bicycle.pngbin732 -> 732 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_brendan.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_brendan.pngbin1401 -> 1401 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_grass.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_grass.pngbin399 -> 399 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latias.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latias.pngbin680 -> 680 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latios.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_latios.pngbin796 -> 796 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_may.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro2_may.pngbin1617 -> 1617 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_attackgfx.pngbin363 -> 363 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_explosion.pngbin335 -> 335 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_misc1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_misc2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_pokeball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_pokeball.pngbin2197 -> 2197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/intro/intro3_star.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_bag.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_bag.pngbin1304 -> 1304 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_ballarrow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_ballarrow.pngbin635 -> 635 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_circle.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_circle.pngbin349 -> 349 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_grass.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/birch_grass.pngbin691 -> 691 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car.pngbin556 -> 556 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_bg.pngbin4982 -> 4982 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_cord.pngbin147 -> 147 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/cable_car_door.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_ampm.pngbin178 -> 178 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_hands.pngbin197 -> 197 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_small.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/clock_small.pngbin221 -> 221 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/confetti.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/confetti.pngbin355 -> 355 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/diploma.pngbin2064 -> 2064 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/diploma_national.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/egg_hatch.pngbin469 -> 469 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/egg_shard.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/evo_sparkle.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/evo_sparkle.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/interview_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/interview_frame.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_beauty.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_cool.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_cute.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_full.pngbin1048 -> 1048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_half.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_half.pngbin486 -> 486 bytes
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_smart.pal0
-rw-r--r--[-rwxr-xr-x]graphics/misc/ribbons_tough.pal0
-rw-r--r--[-rwxr-xr-x]graphics/naming_screen/menu.pngbin541 -> 541 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/area_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/area_glow.pngbin334 -> 334 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/arrows.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/arrows.pngbin303 -> 303 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/cry_meter.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/cry_meter.pngbin673 -> 673 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu.pngbin2798 -> 2798 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu2.pngbin963 -> 963 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/menu_search.pngbin1222 -> 1222 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokedex/noball.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/arrow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/arrow.pngbin188 -> 188 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_bg.pngbin322 -> 322 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/beach_frame.pngbin576 -> 576 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/box_bg4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_bg.pngbin192 -> 192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/cave_frame.pngbin623 -> 623 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_bg.pngbin175 -> 175 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/city_frame.pngbin442 -> 442 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_bg.pngbin236 -> 236 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/crag_frame.pngbin603 -> 603 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_bg.pngbin203 -> 203 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/desert_frame.pngbin541 -> 541 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_bg.pngbin171 -> 171 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/forest_frame.pngbin654 -> 654 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_bg.pngbin145 -> 145 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/machine_frame.pngbin616 -> 616 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_bg.pngbin131 -> 131 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/plain_frame.pngbin292 -> 292 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_bg.pngbin494 -> 494 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/pokecenter_frame.pngbin365 -> 365 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_bg.pngbin185 -> 185 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/polkadot_frame.pngbin421 -> 421 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_bg.pngbin164 -> 164 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/river_frame.pngbin573 -> 573 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_bg.pngbin189 -> 189 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/savanna_frame.pngbin455 -> 455 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_bg.pngbin262 -> 262 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/seafloor_frame.pngbin491 -> 491 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_bg.pngbin219 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/sky_frame.pngbin505 -> 505 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_bg.pngbin174 -> 174 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/snow_frame.pngbin550 -> 550 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano.binbin720 -> 720 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_bg.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_bg.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokemon_storage/volcano_frame.pngbin625 -> 625 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor_large.pngbin194 -> 194 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/cursor_small.pngbin168 -> 168 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/icon.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/icon.pngbin628 -> 628 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_frame.pngbin160 -> 160 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_misc.pngbin291 -> 291 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/map_squares.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/region_map.pal0
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/region_map.pngbin3959 -> 3959 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/trainereyes_misc.pngbin181 -> 181 bytes
-rw-r--r--[-rwxr-xr-x]graphics/pokenav/trainereyes_misc_pal.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/azurill.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/azurill.pngbin345 -> 345 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball.pngbin310 -> 310 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball_counter.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/ball_counter.pngbin246 -> 246 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/center.pngbin589 -> 589 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/cursor.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/cursor.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/makuhita.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/makuhita.pngbin386 -> 386 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/poke_icons.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/poke_icons.pngbin409 -> 409 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shadow.pngbin210 -> 210 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shroomish.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/shroomish.pngbin531 -> 531 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/skitty.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/skitty.pngbin394 -> 394 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/tailow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/tailow.pngbin297 -> 297 bytes
-rw-r--r--[-rwxr-xr-x]graphics/roulette/wynaut.pal0
-rw-r--r--[-rwxr-xr-x]graphics/roulette/wynaut.pngbin399 -> 399 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/0.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/1.pngbin137 -> 137 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/2.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/3.pngbin144 -> 144 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/4.pngbin150 -> 150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/5.pngbin153 -> 153 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/6.pngbin156 -> 156 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/7.pngbin147 -> 147 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/8.pngbin152 -> 152 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/numbers/9.pngbin155 -> 155 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_machine.pngbin954 -> 954 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_pikachu.pngbin2210 -> 2210 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/1.pngbin260 -> 260 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/2.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/3.pngbin275 -> 275 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/4.pngbin249 -> 249 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/5.pngbin291 -> 291 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/6.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/reel_symbols/7.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr0.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr2_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr3_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/slot_machine/spr6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon.pngbin1562 -> 1562 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon_dark.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/groudon_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre.pngbin1003 -> 1003 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre_dark.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/kyogre_glow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/logo_ruby.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/logo_sapphire.pal0
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/pokemon_ruby.pngbin4666 -> 4666 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/pokemon_sapphire.pngbin4558 -> 4558 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/rubyversion.pngbin1915 -> 1915 bytes
-rw-r--r--[-rwxr-xr-x]graphics/title_screen/sapphireversion.pngbin2199 -> 2199 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/cable_end.pngbin194 -> 194 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba.pngbin1039 -> 1039 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/gba_screen.pngbin170 -> 170 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/glow1.pngbin195 -> 195 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/glow2.pngbin190 -> 190 bytes
-rw-r--r--[-rwxr-xr-x]graphics/trade/misc.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/trade/shadow.pngbin231 -> 231 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/bug.pngbin205 -> 205 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_beauty.pngbin224 -> 224 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_cool.pngbin212 -> 212 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_cute.pngbin216 -> 216 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_smart.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/contest_tough.pngbin217 -> 217 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/dark.pngbin219 -> 219 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/dragon.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/electric.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/fight.pngbin227 -> 227 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/fire.pngbin216 -> 216 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/flying.pngbin230 -> 230 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ghost.pngbin232 -> 232 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/grass.pngbin229 -> 229 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ground.pngbin231 -> 231 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/ice.pngbin207 -> 207 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/move_types_3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/types/mystery.pngbin215 -> 215 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/normal.pngbin221 -> 221 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/poison.pngbin236 -> 236 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/psychic.pngbin234 -> 234 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/rock.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/steel.pngbin223 -> 223 bytes
-rw-r--r--[-rwxr-xr-x]graphics/types/water.pngbin218 -> 218 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/ball.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/ball.pngbin150 -> 150 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_3E3BE0.pngbin86 -> 86 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D04388.pngbin156 -> 156 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68.pngbin181 -> 181 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D07B68_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFAC.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFD0.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0CFF4.binbin36 -> 36 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0D070.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D0D2B4.binbin32 -> 32 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D12FEC.pngbin84 -> 84 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1300C.pngbin92 -> 92 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D15D64.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D17424.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D176CC.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D177D8.binbin8192 -> 8192 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D17C3C.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_D1C060.pngbin159 -> 159 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E6BC04.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70968.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70C38.bin0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E70F0C.bin0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E8096C.pngbin1034 -> 1034 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E953D0.binbin1152 -> 1152 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E966B8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E96738.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E96D2C.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E997E8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E99FB0.binbin1536 -> 1536 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9AB40.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9AB60.binbin640 -> 640 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9C6DC.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F7E4.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F988.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9F9E8.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FBA0.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FC64.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FEB4.binbin1280 -> 1280 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unknown/unknown_E9FF58.binbin1600 -> 1600 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/basic_frame.pngbin230 -> 230 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/battle_anim_023.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/blank_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/blue_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/color_frames.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/color_frames.pngbin282 -> 282 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/goosuto.pngbin290 -> 290 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/green_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch.pngbin328 -> 328 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch_2.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/line_sketch_2.pngbin154 -> 154 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/metronome_hand_small.pngbin202 -> 202 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/music_notes.pngbin310 -> 310 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/numbers.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/numbers.pngbin302 -> 302 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_1.pngbin524 -> 524 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_2.pngbin198 -> 198 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_3.pngbin226 -> 226 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_battle_interface_tilemap.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_beatup.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_beatup.pngbin220 -> 220 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_bulbasaur.pngbin490 -> 490 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_bulbasaur2.pngbin520 -> 520 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charizard.pngbin335 -> 335 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.binbin4096 -> 4096 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_charmap.pngbin1934 -> 1934 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2_1.pngbin1829 -> 1829 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_2_2.pngbin1274 -> 1274 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_classes.pngbin292 -> 292 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_floor.pngbin614 -> 614 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_frame_1.pngbin359 -> 359 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_frame_2.pngbin259 -> 259 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_meter.pngbin212 -> 212 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_numbers.pngbin324 -> 324 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_contest_symbols.pngbin237 -> 237 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal1.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal2.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal3.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal4.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal5.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal6.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/old_pal7.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/red_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/shadow.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/shadow.pngbin170 -> 170 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.binbin1024 -> 1024 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.pal0
-rw-r--r--[-rwxr-xr-x]graphics/unused/water_splash.pngbin1064 -> 1064 bytes
-rw-r--r--[-rwxr-xr-x]graphics/unused/yellow_frame.binbin2048 -> 2048 bytes
-rw-r--r--[-rwxr-xr-x]graphics/weather/fog1.binbin2048 -> 2048 bytes
-rwxr-xr-x[-rw-r--r--]include/battle.h2
-rw-r--r--include/battle_setup.h2
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/anim_func_ptrs.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/base_oam.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/berry_tree_graphics_tables.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/callback_subroutine_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/field_effect_object_template_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/field_effect_objects.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_anims.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_graphics_info.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_graphics_info_pointers.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_pic_tables.h0
-rw-r--r--[-rwxr-xr-x]include/data/field_map_obj/map_object_subsprites.h0
-rwxr-xr-x[-rw-r--r--]include/decoration.h0
-rw-r--r--[-rwxr-xr-x]include/field_effect_helpers.h0
-rw-r--r--[-rwxr-xr-x]include/field_map_obj.h0
-rw-r--r--include/global.h5
-rw-r--r--include/graphics.h112
-rw-r--r--include/item.h12
-rw-r--r--include/item_menu.h12
-rw-r--r--include/items.h3
-rw-r--r--include/link.h1
-rwxr-xr-x[-rw-r--r--]include/menu.h0
-rwxr-xr-x[-rw-r--r--]include/menu_helpers.h0
-rwxr-xr-x[-rw-r--r--]include/pokenav.h0
-rw-r--r--include/script.h14
-rw-r--r--include/script_menu.h2
-rw-r--r--include/songs.h10
-rw-r--r--include/sprite.h2
-rwxr-xr-x[-rw-r--r--]include/strings.h2
-rw-r--r--include/text.h3
-rw-r--r--[-rwxr-xr-x]ld_script.txt4
-rw-r--r--[-rwxr-xr-x]misc.mk0
-rw-r--r--src/battle_setup.c20
-rw-r--r--src/berry_tag_screen.c20
-rwxr-xr-x[-rw-r--r--]src/decoration.c0
-rw-r--r--src/field_control_avatar.c2
-rw-r--r--[-rwxr-xr-x]src/field_map_obj.c0
-rw-r--r--[-rwxr-xr-x]src/field_map_obj_helpers.c2
-rw-r--r--src/item.c165
-rw-r--r--src/item_menu.c4583
-rw-r--r--src/item_use.c6
-rw-r--r--src/new_game.c2
-rw-r--r--src/player_pc.c11
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/script.c10
-rw-r--r--src/script_menu.c2
-rw-r--r--src/strings.c4
-rw-r--r--src/tv.c18
-rw-r--r--sym_bss.txt10
-rw-r--r--sym_common.txt4
-rw-r--r--sym_ewram.txt54
-rw-r--r--tools/aif2pcm/Makefile2
-rw-r--r--tools/bin2c/Makefile2
-rw-r--r--tools/gbagfx/Makefile2
-rw-r--r--tools/gbagfx/main.c7
-rw-r--r--tools/mid2agb/Makefile2
-rw-r--r--tools/preproc/Makefile2
-rw-r--r--tools/ramscrgen/Makefile2
-rw-r--r--tools/rsfont/Makefile2
-rw-r--r--tools/scaninc/Makefile2
641 files changed, 4953 insertions, 56623 deletions
diff --git a/asm/battle_4.s b/asm/battle_4.s
deleted file mode 100644
index 6747abc6c..000000000
--- a/asm/battle_4.s
+++ /dev/null
@@ -1,32351 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801BC50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801BC6C @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801BC74
- ldr r1, _0801BC70 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- b _0801BFF4
- .align 2, 0
-_0801BC6C: .4byte gBattleOutcome
-_0801BC70: .4byte gFightStateTracker
-_0801BC74:
- ldr r2, _0801BCA4 @ =gBattleMons
- ldr r0, _0801BCA8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801BCB8
- ldr r2, _0801BCAC @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801BCB8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801BCB0 @ =gBattlescriptCurrInstr
- ldr r0, _0801BCB4 @ =BattleScript_EndTurn
- b _0801BFF2
- .align 2, 0
-_0801BCA4: .4byte gBattleMons
-_0801BCA8: .4byte gBankAttacker
-_0801BCAC: .4byte gHitMarker
-_0801BCB0: .4byte gBattlescriptCurrInstr
-_0801BCB4: .4byte BattleScript_EndTurn
-_0801BCB8:
- bl sub_8017718
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BCC6
- b _0801BFF4
-_0801BCC6:
- ldr r0, _0801BD34 @ =gBankTarget
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801BCDE
- b _0801BFF4
-_0801BCDE:
- ldr r4, _0801BD38 @ =gBattleMons
- ldr r0, _0801BD3C @ =gCurrMovePos
- ldrb r1, [r0]
- ldr r3, _0801BD40 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801BD44 @ =gHitMarker
- cmp r0, 0
- bne _0801BD5C
- ldr r0, _0801BD48 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801BD5C
- ldr r0, [r5]
- ldr r1, _0801BD4C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- ldr r1, _0801BD50 @ =gBattlescriptCurrInstr
- ldr r0, _0801BD54 @ =BattleScript_NoPPForMove
- str r0, [r1]
- ldr r2, _0801BD58 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801BFF4
- .align 2, 0
-_0801BD34: .4byte gBankTarget
-_0801BD38: .4byte gBattleMons
-_0801BD3C: .4byte gCurrMovePos
-_0801BD40: .4byte gBankAttacker
-_0801BD44: .4byte gHitMarker
-_0801BD48: .4byte gCurrentMove
-_0801BD4C: .4byte 0x00800200
-_0801BD50: .4byte gBattlescriptCurrInstr
-_0801BD54: .4byte BattleScript_NoPPForMove
-_0801BD58: .4byte gBattleMoveFlags
-_0801BD5C:
- ldr r0, [r5]
- ldr r1, _0801BDA0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801BDB4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BDB4
- bl sub_801B928
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BDB4
- cmp r2, 0x2
- bne _0801BDA4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801BFF4
- .align 2, 0
-_0801BDA0: .4byte 0xff7fffff
-_0801BDA4:
- ldr r0, _0801BDB0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801BFF4
- .align 2, 0
-_0801BDB0: .4byte gBattleMoveFlags
-_0801BDB4:
- ldr r2, _0801BE18 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801BE1C @ =gProtectStructs
- ldr r1, _0801BE20 @ =gBankTarget
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801BE3C
- ldr r2, _0801BE24 @ =gBattleMoves
- ldr r0, _0801BE28 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801BE3C
- ldr r0, _0801BE2C @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _0801BE30 @ =0x00000115
- adds r1, r3, 0
- bl sub_80151D4
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BE34 @ =gBattlescriptCurrInstr
- ldr r0, _0801BE38 @ =BattleScript_MagicCoatBounce
- b _0801BFF2
- .align 2, 0
-_0801BE18: .4byte gHitMarker
-_0801BE1C: .4byte gProtectStructs
-_0801BE20: .4byte gBankTarget
-_0801BE24: .4byte gBattleMoves
-_0801BE28: .4byte gCurrentMove
-_0801BE2C: .4byte gBankAttacker
-_0801BE30: .4byte 0x00000115
-_0801BE34: .4byte gBattlescriptCurrInstr
-_0801BE38: .4byte BattleScript_MagicCoatBounce
-_0801BE3C:
- movs r2, 0
- ldr r0, _0801BEB8 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801BE7E
- ldr r6, _0801BEBC @ =gProtectStructs
- ldr r1, _0801BEC0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801BEC4 @ =gTurnOrder
-_0801BE50:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801BE78
- ldr r0, _0801BEC8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801BE78
- b _0801BFA4
-_0801BE78:
- adds r2, 0x1
- cmp r2, r5
- blt _0801BE50
-_0801BE7E:
- ldr r0, _0801BECC @ =gSpecialStatuses
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801BEDC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801BED0 @ =gLastUsedAbility
- movs r0, 0x1F
- strb r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BED4 @ =gBattlescriptCurrInstr
- ldr r0, _0801BED8 @ =BattleScript_TookAttack
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- ldrb r1, [r4]
- bl RecordAbilityBattle
- b _0801BFF4
- .align 2, 0
-_0801BEB8: .4byte gNoOfAllBanks
-_0801BEBC: .4byte gProtectStructs
-_0801BEC0: .4byte gBattleMoves
-_0801BEC4: .4byte gTurnOrder
-_0801BEC8: .4byte gCurrentMove
-_0801BECC: .4byte gSpecialStatuses
-_0801BED0: .4byte gLastUsedAbility
-_0801BED4: .4byte gBattlescriptCurrInstr
-_0801BED8: .4byte BattleScript_TookAttack
-_0801BEDC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801BEEA
- b _0801BFEC
-_0801BEEA:
- ldr r1, _0801BF80 @ =gBattleMoves
- ldr r2, _0801BF84 @ =gCurrentMove
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801BFEC
- cmp r3, 0xAE
- bne _0801BF28
- ldr r2, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801BF28
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801BFEC
-_0801BF28:
- ldrh r0, [r4]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0801BF4E
- ldr r1, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801BFEC
-_0801BF4E:
- ldr r0, _0801BF8C @ =gBankAttacker
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r2, _0801BF90 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801BF94 @ =gMoveHitWith
- ldr r3, _0801BF98 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801BF9C @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801BFA0 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801BFEC
- .align 2, 0
-_0801BF80: .4byte gBattleMoves
-_0801BF84: .4byte gCurrentMove
-_0801BF88: .4byte gBattleMons
-_0801BF8C: .4byte gBankAttacker
-_0801BF90: .4byte gBattleMoveFlags
-_0801BF94: .4byte gMoveHitWith
-_0801BF98: .4byte gBankTarget
-_0801BF9C: .4byte gUnknown_02024C44
-_0801BFA0: .4byte gBattleCommunication
-_0801BFA4:
- ldr r0, _0801BFD4 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _0801BFD8 @ =0x00000121
- adds r1, r3, 0
- bl sub_80151D4
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _0801BFDC @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _0801BFE0 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BFE4 @ =gBattlescriptCurrInstr
- ldr r0, _0801BFE8 @ =BattleScript_SnatchedMove
- b _0801BFF2
- .align 2, 0
-_0801BFD4: .4byte gBankAttacker
-_0801BFD8: .4byte 0x00000121
-_0801BFDC: .4byte 0x02000000
-_0801BFE0: .4byte 0x00016003
-_0801BFE4: .4byte gBattlescriptCurrInstr
-_0801BFE8: .4byte BattleScript_SnatchedMove
-_0801BFEC:
- ldr r1, _0801C004 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0801BFF2:
- str r0, [r1]
-_0801BFF4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C004: .4byte gBattlescriptCurrInstr
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start mcmd_jump_if_move_not_executed
-mcmd_jump_if_move_not_executed: @ 801C008
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801C054 @ =gBattlescriptCurrInstr
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801C058 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801C068
- ldr r1, _0801C05C @ =gMoveHitWith
- ldr r3, _0801C060 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801C064 @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801C082
- .align 2, 0
-_0801C054: .4byte gBattlescriptCurrInstr
-_0801C058: .4byte gBattleMoveFlags
-_0801C05C: .4byte gMoveHitWith
-_0801C060: .4byte gBankTarget
-_0801C064: .4byte gUnknown_02024C44
-_0801C068:
- bl b_feature_update_destiny_bond
- ldr r0, _0801C090 @ =gBankTarget
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C086
-_0801C082:
- ldr r0, _0801C094 @ =gBattlescriptCurrInstr
- str r4, [r0]
-_0801C086:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C090: .4byte gBankTarget
-_0801C094: .4byte gBattlescriptCurrInstr
- thumb_func_end mcmd_jump_if_move_not_executed
-
- thumb_func_start atk40_jump_if_move_affected_by_protect
-atk40_jump_if_move_affected_by_protect: @ 801C098
- push {lr}
- ldr r1, _0801C0E0 @ =gProtectStructs
- ldr r0, _0801C0E4 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0E8 @ =gBattleMoves
- ldr r0, _0801C0EC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0F0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C0F4 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801C100
- .align 2, 0
-_0801C0E0: .4byte gProtectStructs
-_0801C0E4: .4byte gBankTarget
-_0801C0E8: .4byte gBattleMoves
-_0801C0EC: .4byte gCurrentMove
-_0801C0F0: .4byte gBattleMoveFlags
-_0801C0F4: .4byte gBattleCommunication
-_0801C0F8:
- ldr r1, _0801C104 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801C100:
- pop {r0}
- bx r0
- .align 2, 0
-_0801C104: .4byte gBattlescriptCurrInstr
- thumb_func_end atk40_jump_if_move_affected_by_protect
-
- thumb_func_start sub_801C108
-sub_801C108: @ 801C108
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801C15C @ =gProtectStructs
- ldr r0, _0801C160 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C164 @ =gBattleMoves
- ldr r0, _0801C168 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C16C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C170 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801C154:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C15C: .4byte gProtectStructs
-_0801C160: .4byte gBankTarget
-_0801C164: .4byte gBattleMoves
-_0801C168: .4byte gCurrentMove
-_0801C16C: .4byte gBattleMoveFlags
-_0801C170: .4byte gBattleCommunication
- thumb_func_end sub_801C108
-
- thumb_func_start sub_801C174
-sub_801C174: @ 801C174
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801C1D4 @ =gStatuses3
- ldr r3, _0801C1D8 @ =gBankTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801C1A6
- ldr r1, _0801C1DC @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C1E0 @ =gBankAttacker
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801C290
-_0801C1A6:
- ldr r0, _0801C1E4 @ =gHitMarker
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801C1EC
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801C1EC
-_0801C1C6:
- ldr r0, _0801C1E8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801C290
- .align 2, 0
-_0801C1D4: .4byte gStatuses3
-_0801C1D8: .4byte gBankTarget
-_0801C1DC: .4byte gDisableStructs
-_0801C1E0: .4byte gBankAttacker
-_0801C1E4: .4byte gHitMarker
-_0801C1E8: .4byte gBattleMoveFlags
-_0801C1EC:
- ldr r0, [r2]
- ldr r1, _0801C29C @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801C20E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C20E:
- ldr r0, [r2]
- ldr r1, _0801C2A0 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801C22E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C22E:
- ldr r0, [r2]
- ldr r1, _0801C2A4 @ =0xfffbffff
- ands r0, r1
- str r0, [r2]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801C27E
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C27E
- ldr r0, _0801C2A8 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801C27E
- ldr r0, _0801C2AC @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801C290
-_0801C27E:
- ldr r1, _0801C2AC @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801C290
- cmp r0, 0x4E
- bne _0801C2B0
-_0801C290:
- movs r0, 0x7
- adds r1, r5, 0
- bl mcmd_jump_if_move_not_executed
- movs r0, 0x1
- b _0801C2B2
- .align 2, 0
-_0801C29C: .4byte 0xfffeffff
-_0801C2A0: .4byte 0xfffdffff
-_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte gBattleWeather
-_0801C2AC: .4byte gBattleMoves
-_0801C2B0:
- movs r0, 0
-_0801C2B2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801C174
-
- thumb_func_start atk01_accuracycheck
-atk01_accuracycheck: @ 801C2BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801C314 @ =gBattlescriptCurrInstr
- ldr r5, [r0]
- ldrb r6, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- lsls r1, 8
- orrs r6, r1
- adds r1, r6, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r7, r0, 0
- cmp r1, 0x1
- bhi _0801C378
- ldr r2, _0801C318 @ =gStatuses3
- ldr r3, _0801C31C @ =gBankTarget
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801C32C
- ldr r0, _0801C320 @ =0x0000ffff
- cmp r6, r0
- bne _0801C32C
- ldr r1, _0801C324 @ =gDisableStructs
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C328 @ =gBankAttacker
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801C32C
- adds r0, r5, 0x7
- str r0, [r7]
- b _0801C632
- .align 2, 0
-_0801C314: .4byte gBattlescriptCurrInstr
-_0801C318: .4byte gStatuses3
-_0801C31C: .4byte gBankTarget
-_0801C320: .4byte 0x0000ffff
-_0801C324: .4byte gDisableStructs
-_0801C328: .4byte gBankAttacker
-_0801C32C:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801C358 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801C35C
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0801C632
- .align 2, 0
-_0801C358: .4byte 0x000400c0
-_0801C35C:
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C36A
- b _0801C632
-_0801C36A:
- ldr r1, _0801C374 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801C632
- .align 2, 0
-_0801C374: .4byte gBattlescriptCurrInstr
-_0801C378:
- cmp r6, 0
- bne _0801C380
- ldr r0, _0801C398 @ =gCurrentMove
- ldrh r6, [r0]
-_0801C380:
- ldr r0, _0801C39C @ =0x02000000
- ldr r1, _0801C3A0 @ =0x0001601c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801C3A4
- movs r2, 0x3F
- mov r10, r2
- mov r3, r10
- ands r3, r0
- mov r10, r3
- b _0801C3B2
- .align 2, 0
-_0801C398: .4byte gCurrentMove
-_0801C39C: .4byte 0x02000000
-_0801C3A0: .4byte 0x0001601c
-_0801C3A4:
- ldr r1, _0801C3F8 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801C3B2:
- adds r0, r6, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C3C0
- b _0801C632
-_0801C3C0:
- adds r0, r6, 0
- bl sub_801C174
- lsls r0, 24
- cmp r0, 0
- beq _0801C3CE
- b _0801C632
-_0801C3CE:
- ldr r3, _0801C3FC @ =gBattleMons
- ldr r0, _0801C400 @ =gBankTarget
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801C408
- ldr r0, _0801C404 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801C41E
- .align 2, 0
-_0801C3F8: .4byte gBattleMoves
-_0801C3FC: .4byte gBattleMons
-_0801C400: .4byte gBankTarget
-_0801C404: .4byte gBankAttacker
-_0801C408:
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801C41E:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801C426
- movs r5, 0
-_0801C426:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801C430
- movs r5, 0xC
-_0801C430:
- ldr r1, _0801C570 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r0, [r7, 0x3]
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801C482
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C482
- ldr r0, _0801C574 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801C482
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801C482
- movs r1, 0x32
- mov r8, r1
-_0801C482:
- ldr r1, _0801C578 @ =gAccuracyStageRatios
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801C4C0
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C4C0:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801C518
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801C518
- ldr r0, _0801C580 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801C518
- ldr r0, _0801C574 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801C518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C518:
- ldr r2, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801C544
- mov r2, r10
- cmp r2, 0x8
- bhi _0801C544
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C544:
- ldr r3, _0801C580 @ =gBankTarget
- mov r8, r3
- ldrb r2, [r3]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801C588
- ldr r1, _0801C584 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801C5A4
- .align 2, 0
-_0801C56C: .4byte gBankAttacker
-_0801C570: .4byte gBattleMoves
-_0801C574: .4byte gBattleWeather
-_0801C578: .4byte gAccuracyStageRatios
-_0801C57C: .4byte gBattleMons
-_0801C580: .4byte gBankTarget
-_0801C584: .4byte gEnigmaBerries
-_0801C588:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801C5A4:
- ldr r0, _0801C608 @ =gStringBank
- ldr r1, _0801C60C @ =gBankTarget
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801C5C0
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C5C0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801C62A
- ldr r2, _0801C610 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801C614 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801C620
- ldr r1, _0801C618 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801C602
- cmp r0, 0x20
- bne _0801C620
-_0801C602:
- ldr r1, _0801C61C @ =gBattleCommunication
- movs r0, 0x2
- b _0801C624
- .align 2, 0
-_0801C608: .4byte gStringBank
-_0801C60C: .4byte gBankTarget
-_0801C610: .4byte gBattleMoveFlags
-_0801C614: .4byte gBattleTypeFlags
-_0801C618: .4byte gBattleMoves
-_0801C61C: .4byte gBattleCommunication
-_0801C620:
- ldr r1, _0801C644 @ =gBattleCommunication
- movs r0, 0
-_0801C624:
- strb r0, [r1, 0x6]
- bl b_wonderguard_and_levitate
-_0801C62A:
- movs r0, 0x7
- adds r1, r6, 0
- bl mcmd_jump_if_move_not_executed
-_0801C632:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C644: .4byte gBattleCommunication
- thumb_func_end atk01_accuracycheck
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801C648
- push {r4,r5,lr}
- ldr r0, _0801C688 @ =gBattleExecBuffer
- ldr r5, [r0]
- cmp r5, 0
- bne _0801C680
- ldr r4, _0801C68C @ =gHitMarker
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801C674
- ldr r0, _0801C690 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x4
- bl PrepareStringBattle
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801C674:
- ldr r0, _0801C694 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801C698 @ =gBattleCommunication
- strb r5, [r0, 0x7]
-_0801C680:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C688: .4byte gBattleExecBuffer
-_0801C68C: .4byte gHitMarker
-_0801C690: .4byte gBankAttacker
-_0801C694: .4byte gBattlescriptCurrInstr
-_0801C698: .4byte gBattleCommunication
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801C69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801C6EC @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801C6B4
- b _0801C84E
-_0801C6B4:
- ldr r1, _0801C6F0 @ =gSpecialStatuses
- ldr r2, _0801C6F4 @ =gBankAttacker
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801C756
- ldr r2, _0801C6F8 @ =gBattleMoves
- ldr r0, _0801C6FC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801C706
- cmp r0, 0x20
- bgt _0801C700
- cmp r0, 0x8
- beq _0801C71C
- b _0801C736
- .align 2, 0
-_0801C6EC: .4byte gBattleExecBuffer
-_0801C6F0: .4byte gSpecialStatuses
-_0801C6F4: .4byte gBankAttacker
-_0801C6F8: .4byte gBattleMoves
-_0801C6FC: .4byte gCurrentMove
-_0801C700:
- cmp r0, 0x40
- beq _0801C71C
- b _0801C736
-_0801C706:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801C756
-_0801C71C:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801C756
-_0801C736:
- ldr r1, _0801C7B8 @ =gBankTarget
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801C756
- ldr r2, _0801C7BC @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801C756
- adds r6, 0x1
-_0801C756:
- ldr r0, _0801C7C0 @ =gHitMarker
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801C83C
- ldr r2, _0801C7BC @ =gBattleMons
- ldr r3, _0801C7C4 @ =gCurrMovePos
- ldr r1, _0801C7C8 @ =gBankAttacker
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801C83C
- ldr r0, _0801C7CC @ =gProtectStructs
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801C7D0
- subs r0, r6
- strb r0, [r2]
- b _0801C7D2
- .align 2, 0
-_0801C7B8: .4byte gBankTarget
-_0801C7BC: .4byte gBattleMons
-_0801C7C0: .4byte gHitMarker
-_0801C7C4: .4byte gCurrMovePos
-_0801C7C8: .4byte gBankAttacker
-_0801C7CC: .4byte gProtectStructs
-_0801C7D0:
- strb r4, [r2]
-_0801C7D2:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801C83C
- ldr r1, _0801C860 @ =gDisableStructs
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801C864 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801C83C
- ldr r0, _0801C868 @ =gActiveBank
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- mov r7, r9
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
-_0801C83C:
- ldr r2, _0801C86C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0801C870 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801C874 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801C84E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C860: .4byte gDisableStructs
-_0801C864: .4byte gBitTable
-_0801C868: .4byte gActiveBank
-_0801C86C: .4byte gHitMarker
-_0801C870: .4byte 0xfffff7ff
-_0801C874: .4byte gBattlescriptCurrInstr
- thumb_func_end atk03_ppreduce
-
- thumb_func_start atk04_critcalc
-atk04_critcalc: @ 801C878
- push {r4-r7,lr}
- ldr r1, _0801C89C @ =gBattleMons
- ldr r0, _0801C8A0 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801C8A8
- ldr r1, _0801C8A4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801C8B0
- .align 2, 0
-_0801C89C: .4byte gBattleMons
-_0801C8A0: .4byte gBankAttacker
-_0801C8A4: .4byte gEnigmaBerries
-_0801C8A8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801C8B0:
- ldr r1, _0801C93C @ =gStringBank
- ldr r3, _0801C940 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801C944 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801C948 @ =gBattleMoves
- ldr r0, _0801C94C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801C8F0
- adds r5, 0x1
-_0801C8F0:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801C8F8
- adds r0, 0x1
-_0801C8F8:
- cmp r1, 0xC8
- bne _0801C8FE
- adds r0, 0x1
-_0801C8FE:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801C906
- adds r2, 0x1
-_0801C906:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801C916
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801C916
- movs r1, 0x1
-_0801C916:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801C930
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801C930
- movs r3, 0x1
-_0801C930:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801C950
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801C952
- .align 2, 0
-_0801C93C: .4byte gStringBank
-_0801C940: .4byte gBankAttacker
-_0801C944: .4byte gBattleMons
-_0801C948: .4byte gBattleMoves
-_0801C94C: .4byte gCurrentMove
-_0801C950:
- adds r0, r2, r5
-_0801C952:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801C960
- movs r5, 0x4
-_0801C960:
- ldr r0, _0801C9BC @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801C9D0
- cmp r4, 0x4B
- beq _0801C9D0
- ldr r1, _0801C9C0 @ =gStatuses3
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- ldr r0, _0801C9C4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x84
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- bl Random
- ldr r2, _0801C9C8 @ =gCriticalHitChance
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801C9D0
- ldr r1, _0801C9CC @ =gCritMultiplier
- movs r0, 0x2
- b _0801C9D4
- .align 2, 0
-_0801C9BC: .4byte gBankTarget
-_0801C9C0: .4byte gStatuses3
-_0801C9C4: .4byte gBattleTypeFlags
-_0801C9C8: .4byte gCriticalHitChance
-_0801C9CC: .4byte gCritMultiplier
-_0801C9D0:
- ldr r1, _0801C9E4 @ =gCritMultiplier
- movs r0, 0x1
-_0801C9D4:
- strb r0, [r1]
- ldr r1, _0801C9E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C9E4: .4byte gCritMultiplier
-_0801C9E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk04_critcalc
-
- thumb_func_start atk05_damagecalc1
-atk05_damagecalc1: @ 801C9EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r4, _0801CABC @ =gSideAffecting
- ldr r6, _0801CAC0 @ =gBankTarget
- ldrb r0, [r6]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r0, _0801CAC4 @ =gBankAttacker
- mov r8, r0
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801CAC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r6]
- muls r1, r4
- adds r1, r2
- ldr r2, _0801CACC @ =gCurrentMove
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CAD0 @ =gDynamicBasePower
- ldrh r4, [r4]
- str r4, [sp]
- ldr r5, _0801CAD4 @ =0x02000000
- ldr r7, _0801CAD8 @ =0x0001601c
- adds r4, r5, r7
- ldrb r4, [r4]
- str r4, [sp, 0x4]
- mov r7, r8
- ldrb r4, [r7]
- str r4, [sp, 0x8]
- ldrb r4, [r6]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gBattleMoveDamage
- ldr r1, _0801CAE0 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CAE4 @ =0x0001601f
- adds r5, r0
- ldrb r0, [r5]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CAE8 @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CA82
- ldr r2, _0801CAEC @ =gBattleMoves
- mov r7, r9
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CA82
- lsls r0, r3, 1
- str r0, [r4]
-_0801CA82:
- ldr r1, _0801CAF0 @ =gProtectStructs
- ldr r0, _0801CAC4 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801CAA4
- ldr r4, _0801CADC @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CAA4:
- ldr r1, _0801CAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CABC: .4byte gSideAffecting
-_0801CAC0: .4byte gBankTarget
-_0801CAC4: .4byte gBankAttacker
-_0801CAC8: .4byte gBattleMons
-_0801CACC: .4byte gCurrentMove
-_0801CAD0: .4byte gDynamicBasePower
-_0801CAD4: .4byte 0x02000000
-_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gBattleMoveDamage
-_0801CAE0: .4byte gCritMultiplier
-_0801CAE4: .4byte 0x0001601f
-_0801CAE8: .4byte gStatuses3
-_0801CAEC: .4byte gBattleMoves
-_0801CAF0: .4byte gProtectStructs
-_0801CAF4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk05_damagecalc1
-
- thumb_func_start AI_CalcDmg
-AI_CalcDmg: @ 801CAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801CBBC @ =gSideAffecting
- adds r0, r5, 0
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801CBC0 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801CBC4 @ =gCurrentMove
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CBC8 @ =gDynamicBasePower
- mov r8, r4
- ldrh r4, [r4]
- str r4, [sp]
- ldr r6, _0801CBCC @ =0x02000000
- ldr r4, _0801CBD0 @ =0x0001601c
- ldrb r4, [r4, r6]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gBattleMoveDamage
- movs r1, 0
- mov r2, r8
- strh r1, [r2]
- ldr r1, _0801CBD8 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CBDC @ =0x0001601f
- adds r6, r0
- ldrb r0, [r6]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CBE0 @ =gStatuses3
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CB8E
- ldr r2, _0801CBE4 @ =gBattleMoves
- mov r6, r9
- ldrh r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CB8E
- lsls r0, r3, 1
- str r0, [r4]
-_0801CB8E:
- ldr r0, _0801CBE8 @ =gProtectStructs
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801CBAC
- ldr r4, _0801CBD4 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CBAC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBBC: .4byte gSideAffecting
-_0801CBC0: .4byte gBattleMons
-_0801CBC4: .4byte gCurrentMove
-_0801CBC8: .4byte gDynamicBasePower
-_0801CBCC: .4byte 0x02000000
-_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gBattleMoveDamage
-_0801CBD8: .4byte gCritMultiplier
-_0801CBDC: .4byte 0x0001601f
-_0801CBE0: .4byte gStatuses3
-_0801CBE4: .4byte gBattleMoves
-_0801CBE8: .4byte gProtectStructs
- thumb_func_end AI_CalcDmg
-
- thumb_func_start battle_attack_damage_modulate_by_effectivity
-battle_attack_damage_modulate_by_effectivity: @ 801CBEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gBattleMoveDamage
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801CC0C
- cmp r4, 0
- beq _0801CC0C
- movs r0, 0x1
- str r0, [r5]
-_0801CC0C:
- cmp r4, 0x5
- beq _0801CC3C
- cmp r4, 0x5
- bgt _0801CC20
- cmp r4, 0
- beq _0801CC26
- b _0801CCBE
- .align 2, 0
-_0801CC1C: .4byte gBattleMoveDamage
-_0801CC20:
- cmp r4, 0x14
- beq _0801CC7C
- b _0801CCBE
-_0801CC26:
- ldr r2, _0801CC38 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC38: .4byte gBattleMoveFlags
-_0801CC3C:
- ldr r2, _0801CC6C @ =gBattleMoves
- ldr r0, _0801CC70 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CC74 @ =gBattleMoveFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801CC78
- movs r0, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC6C: .4byte gBattleMoves
-_0801CC70: .4byte gCurrentMove
-_0801CC74: .4byte gBattleMoveFlags
-_0801CC78:
- movs r0, 0x4
- b _0801CCBA
-_0801CC7C:
- ldr r2, _0801CCAC @ =gBattleMoves
- ldr r0, _0801CCB0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CCB4 @ =gBattleMoveFlags
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801CCB8
- movs r0, 0xFB
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CCAC: .4byte gBattleMoves
-_0801CCB0: .4byte gCurrentMove
-_0801CCB4: .4byte gBattleMoveFlags
-_0801CCB8:
- movs r0, 0x2
-_0801CCBA:
- orrs r0, r1
-_0801CCBC:
- strb r0, [r2]
-_0801CCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end battle_attack_damage_modulate_by_effectivity
-
- thumb_func_start atk06_typecalc
-atk06_typecalc: @ 801CCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801CCF0 @ =gCurrentMove
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801CCD8
- b _0801CEF4
-_0801CCD8:
- ldr r0, _0801CCF4 @ =0x02000000
- ldr r2, _0801CCF8 @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CCFC
- movs r1, 0x3F
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
- b _0801CD0C
- .align 2, 0
-_0801CCF0: .4byte gCurrentMove
-_0801CCF4: .4byte 0x02000000
-_0801CCF8: .4byte 0x0001601c
-_0801CCFC:
- ldr r2, _0801CD94 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801CD0C:
- ldr r2, _0801CD98 @ =gBattleMons
- ldr r0, _0801CD9C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801CD2E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CD44
-_0801CD2E:
- ldr r4, _0801CDA0 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801CD44:
- ldr r2, _0801CDA4 @ =gBankTarget
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801CDBC
- mov r1, r8
- cmp r1, 0x4
- bne _0801CDBC
- ldr r3, _0801CDA8 @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _0801CDAC @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801CDB0 @ =gMoveHitWith
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CDB4 @ =gUnknown_02024C44
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801CDB8 @ =gBattleCommunication
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl RecordAbilityBattle
- b _0801CE58
- .align 2, 0
-_0801CD94: .4byte gBattleMoves
-_0801CD98: .4byte gBattleMons
-_0801CD9C: .4byte gBankAttacker
-_0801CDA0: .4byte gBattleMoveDamage
-_0801CDA4: .4byte gBankTarget
-_0801CDA8: .4byte gLastUsedAbility
-_0801CDAC: .4byte gBattleMoveFlags
-_0801CDB0: .4byte gMoveHitWith
-_0801CDB4: .4byte gUnknown_02024C44
-_0801CDB8: .4byte gBattleCommunication
-_0801CDBC:
- ldr r1, _0801CDC8 @ =gTypeEffectiveness
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801CE38
- .align 2, 0
-_0801CDC8: .4byte gTypeEffectiveness
-_0801CDCC:
- adds r3, 0x3
- b _0801CE34
-_0801CDD0:
- ldr r5, _0801CF08 @ =gTypeEffectiveness
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CE2C
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r7, _0801CF10 @ =gBankTarget
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801CE06
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801CE06:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801CE2C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801CE2C
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
-_0801CE2C:
- adds r3, 0x3
- ldr r5, _0801CF0C @ =gBattleMons
- ldr r4, _0801CF10 @ =gBankTarget
- ldr r2, _0801CF08 @ =gTypeEffectiveness
-_0801CE34:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801CE38:
- cmp r0, 0xFF
- beq _0801CE58
- cmp r0, 0xFE
- bne _0801CDD0
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801CDCC
-_0801CE58:
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r5, _0801CF10 @ =gBankTarget
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801CED6
- ldr r0, _0801CF14 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r7, _0801CF18 @ =gCurrentMove
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801CED6
- ldr r1, _0801CF1C @ =gBattleMoveFlags
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801CE94
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801CED6
-_0801CE94:
- ldr r2, _0801CF20 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CED6
- ldr r3, _0801CF24 @ =gLastUsedAbility
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r2, r8
- strb r0, [r2]
- ldr r1, _0801CF28 @ =gMoveHitWith
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CF2C @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801CF30 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl RecordAbilityBattle
-_0801CED6:
- ldr r0, _0801CF1C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801CEF4
- ldr r2, _0801CF34 @ =gProtectStructs
- ldr r0, _0801CF14 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801CEF4:
- ldr r1, _0801CF38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CF08: .4byte gTypeEffectiveness
-_0801CF0C: .4byte gBattleMons
-_0801CF10: .4byte gBankTarget
-_0801CF14: .4byte gBankAttacker
-_0801CF18: .4byte gCurrentMove
-_0801CF1C: .4byte gBattleMoveFlags
-_0801CF20: .4byte gBattleMoves
-_0801CF24: .4byte gLastUsedAbility
-_0801CF28: .4byte gMoveHitWith
-_0801CF2C: .4byte gUnknown_02024C44
-_0801CF30: .4byte gBattleCommunication
-_0801CF34: .4byte gProtectStructs
-_0801CF38: .4byte gBattlescriptCurrInstr
- thumb_func_end atk06_typecalc
-
- thumb_func_start b_wonderguard_and_levitate
-b_wonderguard_and_levitate: @ 801CF3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801CF80 @ =gCurrentMove
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801CF54
- b _0801D1A4
-_0801CF54:
- ldr r2, _0801CF84 @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801CF66
- b _0801D1A4
-_0801CF66:
- ldr r0, _0801CF88 @ =0x02000000
- ldr r2, _0801CF8C @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CF90
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801CF94
- .align 2, 0
-_0801CF80: .4byte gCurrentMove
-_0801CF84: .4byte gBattleMoves
-_0801CF88: .4byte 0x02000000
-_0801CF8C: .4byte 0x0001601c
-_0801CF90:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801CF94:
- ldr r2, _0801CFC8 @ =gBattleMons
- ldr r3, _0801CFCC @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801CFD8
- mov r0, r12
- cmp r0, 0x4
- bne _0801CFD8
- ldr r0, _0801CFD0 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _0801CFD4 @ =gBattleCommunication
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl RecordAbilityBattle
- b _0801D1A4
- .align 2, 0
-_0801CFC8: .4byte gBattleMons
-_0801CFCC: .4byte gBankTarget
-_0801CFD0: .4byte gLastUsedAbility
-_0801CFD4: .4byte gBattleCommunication
-_0801CFD8:
- ldr r1, _0801CFE4 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801D12A
- .align 2, 0
-_0801CFE4: .4byte gTypeEffectiveness
-_0801CFE8:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801CFF2
- b _0801D124
-_0801CFF2:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D032
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D032
- ldr r2, _0801D1B0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gProtectStructs
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D032:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D078
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D078
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D078
- ldr r2, _0801D1B0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gProtectStructs
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D078:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D09C
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D09C
- movs r0, 0x1
- orrs r6, r0
-_0801D09C:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D0CA
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D0CA
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D0CA
- movs r0, 0x1
- orrs r6, r0
-_0801D0CA:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D0F2
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D0F2
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D0F2:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D124
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D124
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D124
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D124:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801D12A:
- cmp r0, 0xFF
- beq _0801D14E
- cmp r0, 0xFE
- beq _0801D134
- b _0801CFE8
-_0801D134:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D124
-_0801D14E:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801D1A4
- ldr r0, _0801D1B8 @ =gBankAttacker
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801D1A4
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801D1A4
- ldr r2, _0801D1BC @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801D1A4
- ldr r0, _0801D1C0 @ =gLastUsedAbility
- strb r4, [r0]
- ldr r1, _0801D1C4 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl RecordAbilityBattle
-_0801D1A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D1B0: .4byte gBattleMoveFlags
-_0801D1B4: .4byte gProtectStructs
-_0801D1B8: .4byte gBankAttacker
-_0801D1BC: .4byte gBattleMoves
-_0801D1C0: .4byte gLastUsedAbility
-_0801D1C4: .4byte gBattleCommunication
- thumb_func_end b_wonderguard_and_levitate
-
- thumb_func_start b_attack_effectivity_adapt
-b_attack_effectivity_adapt: @ 801D1C8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gBattleMoveDamage
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801D1EE
- cmp r4, 0
- beq _0801D1EE
- movs r0, 0x1
- str r0, [r7]
-_0801D1EE:
- cmp r4, 0x5
- beq _0801D216
- cmp r4, 0x5
- bgt _0801D200
- cmp r4, 0
- beq _0801D206
- b _0801D27A
- .align 2, 0
-_0801D1FC: .4byte gBattleMoveDamage
-_0801D200:
- cmp r4, 0x14
- beq _0801D248
- b _0801D27A
-_0801D206:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801D278
-_0801D216:
- ldr r0, _0801D240 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801D244
- movs r0, 0xFD
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D240: .4byte gBattleMoves
-_0801D244:
- movs r0, 0x4
- b _0801D276
-_0801D248:
- ldr r0, _0801D270 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D274
- movs r0, 0xFB
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D270: .4byte gBattleMoves
-_0801D274:
- movs r0, 0x2
-_0801D276:
- orrs r0, r1
-_0801D278:
- strb r0, [r6]
-_0801D27A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_attack_effectivity_adapt
-
- thumb_func_start TypeCalc
-TypeCalc: @ 801D280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- mov r0, r10
- cmp r0, 0xA5
- bne _0801D2AE
- movs r0, 0
- b _0801D43A
-_0801D2AE:
- ldr r1, _0801D31C @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801D320 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- adds r3, r0, r1
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- str r2, [sp, 0xC]
- adds r5, r1, 0
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _0801D2E2
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801D2F4
-_0801D2E2:
- ldr r4, _0801D324 @ =gBattleMoveDamage
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801D2F4:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801D328
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801D328
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801D3DC
- .align 2, 0
-_0801D31C: .4byte gBattleMoves
-_0801D320: .4byte gBattleMons
-_0801D324: .4byte gBattleMoveDamage
-_0801D328:
- ldr r1, _0801D344 @ =gTypeEffectiveness
- adds r0, r7, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- b _0801D3CA
- .align 2, 0
-_0801D344: .4byte gTypeEffectiveness
-_0801D348:
- adds r7, 0x3
- b _0801D3B6
-_0801D34C:
- ldr r6, _0801D44C @ =gTypeEffectiveness
- adds r0, r7, r6
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801D3B0
- adds r1, r7, 0x1
- adds r1, r6
- ldr r3, _0801D450 @ =gBattleMons
- mov r8, r3
- movs r3, 0x58
- mov r0, r9
- muls r0, r3
- mov r2, r8
- adds r5, r0, r2
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D388
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- str r3, [sp, 0x10]
- bl b_attack_effectivity_adapt
- ldr r3, [sp, 0x10]
-_0801D388:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D3B0
- ldr r0, _0801D454 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r3
- add r0, r8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801D3B0
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D3B0:
- adds r7, 0x3
- ldr r5, _0801D450 @ =gBattleMons
- ldr r2, _0801D44C @ =gTypeEffectiveness
-_0801D3B6:
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
-_0801D3CA:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D348
-_0801D3DC:
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801D436
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D436
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801D436
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801D41E
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801D436
-_0801D41E:
- ldr r0, _0801D458 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D436
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801D436:
- mov r0, sp
- ldrb r0, [r0]
-_0801D43A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D44C: .4byte gTypeEffectiveness
-_0801D450: .4byte gBattleMons
-_0801D454: .4byte gBankTarget
-_0801D458: .4byte gBattleMoves
- thumb_func_end TypeCalc
-
- thumb_func_start ai_rate_move
-ai_rate_move: @ 801D45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801D498 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- str r1, [sp, 0x8]
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801D49C
- movs r0, 0
- b _0801D554
- .align 2, 0
-_0801D498: .4byte gBaseStats
-_0801D49C:
- ldr r2, _0801D4C0 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r9, r0
- str r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801D4C4
- cmp r0, 0x4
- bne _0801D4C4
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801D51E
- .align 2, 0
-_0801D4C0: .4byte gBattleMoves
-_0801D4C4:
- ldr r0, _0801D564 @ =gTypeEffectiveness
- mov r10, r0
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801D51E
- adds r4, r1, 0
-_0801D4D2:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801D510
- cmp r0, r9
- bne _0801D510
- ldrb r5, [r4, 0x1]
- ldr r1, [sp, 0x8]
- cmp r5, r1
- bne _0801D4EE
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D4EE:
- cmp r5, r8
- bne _0801D510
- ldr r0, _0801D568 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r3, _0801D56C @ =gBattleMons
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r8
- beq _0801D510
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D510:
- adds r4, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801D4D2
-_0801D51E:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801D550
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801D538
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801D550
-_0801D538:
- ldr r0, _0801D570 @ =gBattleMoves
- ldr r3, [sp, 0xC]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D550
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801D550:
- mov r0, sp
- ldrb r0, [r0]
-_0801D554:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D564: .4byte gTypeEffectiveness
-_0801D568: .4byte gBankTarget
-_0801D56C: .4byte gBattleMons
-_0801D570: .4byte gBattleMoves
- thumb_func_end ai_rate_move
-
- thumb_func_start unref_sub_801D574
-unref_sub_801D574: @ 801D574
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D5AC @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5A6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5A6
- movs r0, 0x1
- str r0, [r4]
-_0801D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D5AC: .4byte gBattleMoveDamage
- thumb_func_end unref_sub_801D574
-
- thumb_func_start atk07_dmg_adjustment
-atk07_dmg_adjustment: @ 801D5B0
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D608 @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5E2
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5E2
- movs r0, 0x1
- str r0, [r4]
-_0801D5E2:
- ldr r7, _0801D60C @ =gBattleMons
- ldr r6, _0801D610 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D618
- ldr r1, _0801D614 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D632
- .align 2, 0
-_0801D608: .4byte gBattleMoveDamage
-_0801D60C: .4byte gBattleMons
-_0801D610: .4byte gBankTarget
-_0801D614: .4byte gEnigmaBerries
-_0801D618:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D632:
- ldr r1, _0801D6F4 @ =gStringBank
- ldr r5, _0801D6F8 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D670
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D670
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _0801D6FC @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D670:
- ldr r2, _0801D700 @ =gBattleMons
- ldr r3, _0801D6F8 @ =gBankTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801D740
- ldr r2, _0801D704 @ =gBattleMoves
- ldr r0, _0801D708 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801D6C2
- ldr r0, _0801D70C @ =gProtectStructs
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801D6C2
- ldr r0, _0801D6FC @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
-_0801D6C2:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D740
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801D70C @ =gProtectStructs
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D718
- ldr r0, _0801D714 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D740
- .align 2, 0
-_0801D6F4: .4byte gStringBank
-_0801D6F8: .4byte gBankTarget
-_0801D6FC: .4byte gSpecialStatuses
-_0801D700: .4byte gBattleMons
-_0801D704: .4byte gBattleMoves
-_0801D708: .4byte gCurrentMove
-_0801D70C: .4byte gProtectStructs
-_0801D710: .4byte gBattleMoveDamage
-_0801D714: .4byte gBattleMoveFlags
-_0801D718:
- ldr r0, _0801D750 @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
- ldr r2, _0801D754 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D758 @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D740:
- ldr r1, _0801D75C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D750: .4byte gSpecialStatuses
-_0801D754: .4byte gBattleMoveFlags
-_0801D758: .4byte gLastUsedItem
-_0801D75C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk07_dmg_adjustment
-
- thumb_func_start atk08_dmg_adjustment2
-atk08_dmg_adjustment2: @ 801D760
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D7B8 @ =gBattleMoveDamage
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D792
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D792
- movs r0, 0x1
- str r0, [r4]
-_0801D792:
- ldr r7, _0801D7BC @ =gBattleMons
- ldr r6, _0801D7C0 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D7C8
- ldr r1, _0801D7C4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D7E2
- .align 2, 0
-_0801D7B8: .4byte gBattleMoveDamage
-_0801D7BC: .4byte gBattleMons
-_0801D7C0: .4byte gBankTarget
-_0801D7C4: .4byte gEnigmaBerries
-_0801D7C8:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D7E2:
- ldr r1, _0801D888 @ =gStringBank
- ldr r5, _0801D88C @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D820
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D820
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _0801D890 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D820:
- ldr r4, _0801D894 @ =gBattleMons
- ldr r6, _0801D88C @ =gBankTarget
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801D8CC
- ldr r5, _0801D898 @ =gProtectStructs
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801D85E
- ldr r0, _0801D890 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
-_0801D85E:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D8CC
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D8A4
- ldr r0, _0801D8A0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D8CC
- .align 2, 0
-_0801D888: .4byte gStringBank
-_0801D88C: .4byte gBankTarget
-_0801D890: .4byte gSpecialStatuses
-_0801D894: .4byte gBattleMons
-_0801D898: .4byte gProtectStructs
-_0801D89C: .4byte gBattleMoveDamage
-_0801D8A0: .4byte gBattleMoveFlags
-_0801D8A4:
- ldr r0, _0801D8DC @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
- ldr r2, _0801D8E0 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D8E4 @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D8CC:
- ldr r1, _0801D8E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D8DC: .4byte gSpecialStatuses
-_0801D8E0: .4byte gBattleMoveFlags
-_0801D8E4: .4byte gLastUsedItem
-_0801D8E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk08_dmg_adjustment2
-
- thumb_func_start atk09_attackanimation
-atk09_attackanimation: @ 801D8EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _0801D940 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D900
- b _0801DA4A
-_0801D900:
- ldr r0, _0801D944 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801D948 @ =gCurrentMove
- cmp r0, 0
- beq _0801D960
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801D960
- cmp r0, 0xA4
- beq _0801D960
- ldr r4, _0801D94C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801D950 @ =BattleScript_Pausex20
- str r0, [r4]
- ldr r1, _0801D954 @ =0x02000000
- ldr r0, _0801D958 @ =0x00016002
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r2, _0801D95C @ =0x000160a1
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801D940: .4byte gBattleExecBuffer
-_0801D944: .4byte gHitMarker
-_0801D948: .4byte gCurrentMove
-_0801D94C: .4byte gBattlescriptCurrInstr
-_0801D950: .4byte BattleScript_Pausex20
-_0801D954: .4byte 0x02000000
-_0801D958: .4byte 0x00016002
-_0801D95C: .4byte 0x000160a1
-_0801D960:
- ldr r2, _0801DA0C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801D992
-_0801D986:
- ldr r0, _0801DA10 @ =0x02000000
- ldr r1, _0801DA14 @ =0x000160a1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801DA00
-_0801D992:
- ldr r0, _0801DA18 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DA3C
- ldr r1, _0801DA1C @ =gActiveBank
- ldr r2, _0801DA20 @ =gBankAttacker
- mov r9, r2
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801DA10 @ =0x02000000
- ldr r0, _0801DA24 @ =0x00016002
- adds r0, r6
- mov r8, r0
- ldrb r2, [r0]
- ldr r0, _0801DA28 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gBattleMoveDamage
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801DA30 @ =gBattleMons
- mov r0, r9
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r9
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801DA34 @ =gDisableStructs
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl EmitMoveAnimation
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _0801DA14 @ =0x000160a1
- adds r6, r2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r9
- ldrb r0, [r1]
- bl MarkBufferBankForExecution
-_0801DA00:
- ldr r1, _0801DA38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801DA0C: .4byte gBattleMoves
-_0801DA10: .4byte 0x02000000
-_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gBattleMoveFlags
-_0801DA1C: .4byte gActiveBank
-_0801DA20: .4byte gBankAttacker
-_0801DA24: .4byte 0x00016002
-_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gBattleMoveDamage
-_0801DA30: .4byte gBattleMons
-_0801DA34: .4byte gDisableStructs
-_0801DA38: .4byte gBattlescriptCurrInstr
-_0801DA3C:
- ldr r4, _0801DA58 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801DA5C @ =BattleScript_Pausex20
- str r0, [r4]
-_0801DA4A:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA58: .4byte gBattlescriptCurrInstr
-_0801DA5C: .4byte BattleScript_Pausex20
- thumb_func_end atk09_attackanimation
-
- thumb_func_start atk0A_waitanimation
-atk0A_waitanimation: @ 801DA60
- push {lr}
- ldr r0, _0801DA78 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DA72
- ldr r1, _0801DA7C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DA72:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA78: .4byte gBattleExecBuffer
-_0801DA7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0A_waitanimation
-
- thumb_func_start atk0B_healthbarupdate
-atk0B_healthbarupdate: @ 801DA80
- push {r4,r5,lr}
- ldr r0, _0801DAE4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DB36
- ldr r0, _0801DAE8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DB2E
- ldr r0, _0801DAEC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801DAF0 @ =gActiveBank
- strb r0, [r2]
- ldr r1, _0801DAF4 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAF8 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAFC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801DB00
- movs r0, 0x80
- adds r1, r2, 0
- bl PrepareStringBattle
- b _0801DB2E
- .align 2, 0
-_0801DAE4: .4byte gBattleExecBuffer
-_0801DAE8: .4byte gBattleMoveFlags
-_0801DAEC: .4byte gBattlescriptCurrInstr
-_0801DAF0: .4byte gActiveBank
-_0801DAF4: .4byte gBattleMons
-_0801DAF8: .4byte gDisableStructs
-_0801DAFC: .4byte gHitMarker
-_0801DB00:
- ldr r5, _0801DB3C @ =gBattleMoveDamage
- ldrh r1, [r5]
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r4, _0801DB40 @ =gActiveBank
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801DB2E
- ldr r0, [r5]
- cmp r0, 0
- ble _0801DB2E
- ldr r0, _0801DB44 @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801DB2E:
- ldr r1, _0801DB48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DB36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB3C: .4byte gBattleMoveDamage
-_0801DB40: .4byte gActiveBank
-_0801DB44: .4byte gBattleResults
-_0801DB48: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0B_healthbarupdate
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801DB4C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801DB74 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801DB5A
- b _0801DF2E
-_0801DB5A:
- ldr r0, _0801DB78 @ =0x02000000
- ldr r1, _0801DB7C @ =0x0001601c
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0801DB80
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801DB80
- movs r6, 0x3F
- ands r6, r1
- b _0801DB90
- .align 2, 0
-_0801DB74: .4byte gBattleExecBuffer
-_0801DB78: .4byte 0x02000000
-_0801DB7C: .4byte 0x0001601c
-_0801DB80:
- ldr r2, _0801DC1C @ =gBattleMoves
- ldr r0, _0801DC20 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801DB90:
- ldr r0, _0801DC24 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB9E
- b _0801DF00
-_0801DB9E:
- ldr r0, _0801DC28 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _0801DC2C @ =gActiveBank
- strb r0, [r7]
- ldr r1, _0801DC30 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DCB4
- ldr r0, _0801DC34 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801DCB4
- ldr r0, _0801DC38 @ =gHitMarker
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801DCB4
- adds r5, r1, 0
- ldr r6, _0801DC3C @ =gBattleMoveDamage
- ldr r4, [r6]
- cmp r5, r4
- blt _0801DC48
- ldr r0, _0801DC40 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC02
- str r4, [r1]
-_0801DC02:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801DC44 @ =gHP_dealt
- ldr r0, [r6]
- str r0, [r1]
- b _0801DC78
- .align 2, 0
-_0801DC1C: .4byte gBattleMoves
-_0801DC20: .4byte gCurrentMove
-_0801DC24: .4byte gBattleMoveFlags
-_0801DC28: .4byte gBattlescriptCurrInstr
-_0801DC2C: .4byte gActiveBank
-_0801DC30: .4byte gBattleMons
-_0801DC34: .4byte gDisableStructs
-_0801DC38: .4byte gHitMarker
-_0801DC3C: .4byte gBattleMoveDamage
-_0801DC40: .4byte gSpecialStatuses
-_0801DC44: .4byte gHP_dealt
-_0801DC48:
- ldr r0, _0801DCA0 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC5C
- str r5, [r1]
-_0801DC5C:
- ldr r2, _0801DCA4 @ =gHP_dealt
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801DC78:
- ldr r0, _0801DCA8 @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801DC8C
- b _0801DF26
-_0801DC8C:
- ldr r4, _0801DCAC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801DCB0 @ =BattleScript_SubstituteFade
- str r0, [r4]
- b _0801DF2E
- .align 2, 0
-_0801DCA0: .4byte gSpecialStatuses
-_0801DCA4: .4byte gHP_dealt
-_0801DCA8: .4byte gActiveBank
-_0801DCAC: .4byte gBattlescriptCurrInstr
-_0801DCB0: .4byte BattleScript_SubstituteFade
-_0801DCB4:
- ldr r0, _0801DCF4 @ =gHitMarker
- ldr r2, [r0]
- ldr r1, _0801DCF8 @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801DCFC @ =gBattleMoveDamage
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801DD08
- ldr r4, _0801DD00 @ =gBattleMons
- ldr r2, _0801DD04 @ =gActiveBank
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801DCF0
- b _0801DEC6
-_0801DCF0:
- strh r3, [r1, 0x28]
- b _0801DEC6
- .align 2, 0
-_0801DCF4: .4byte gHitMarker
-_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gBattleMoveDamage
-_0801DD00: .4byte gBattleMons
-_0801DD04: .4byte gActiveBank
-_0801DD08:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801DD24
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801DD20 @ =gActiveBank
- b _0801DD6C
- .align 2, 0
-_0801DD20: .4byte gActiveBank
-_0801DD24:
- ldr r0, _0801DD4C @ =gTakenDmg
- ldr r2, _0801DD50 @ =gActiveBank
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801DD54 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801DD60
- ldr r1, _0801DD58 @ =gTakenDmgBanks
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD5C @ =gBankAttacker
- b _0801DD68
- .align 2, 0
-_0801DD4C: .4byte gTakenDmg
-_0801DD50: .4byte gActiveBank
-_0801DD54: .4byte gBattlescriptCurrInstr
-_0801DD58: .4byte gTakenDmgBanks
-_0801DD5C: .4byte gBankAttacker
-_0801DD60:
- ldr r1, _0801DD8C @ =gTakenDmgBanks
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD90 @ =gBankTarget
-_0801DD68:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801DD6C:
- ldr r4, _0801DD94 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801DD9C
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801DD98 @ =gHP_dealt
- str r1, [r0]
- adds r7, r0, 0
- b _0801DDAC
- .align 2, 0
-_0801DD8C: .4byte gTakenDmgBanks
-_0801DD90: .4byte gBankTarget
-_0801DD94: .4byte gBattleMons
-_0801DD98: .4byte gHP_dealt
-_0801DD9C:
- ldr r2, _0801DE20 @ =gHP_dealt
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801DDAC:
- ldr r2, _0801DE24 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801DDD4
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DDD4
- ldr r0, [r7]
- str r0, [r3]
-_0801DDD4:
- cmp r6, 0x8
- bhi _0801DE5C
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DE58
- ldr r0, _0801DE28 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801DE58
- ldr r3, _0801DE2C @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DE30 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DE38
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE34 @ =gBankAttacker
- b _0801DE40
- .align 2, 0
-_0801DE20: .4byte gHP_dealt
-_0801DE24: .4byte gSpecialStatuses
-_0801DE28: .4byte gCurrentMove
-_0801DE2C: .4byte gProtectStructs
-_0801DE30: .4byte gBattlescriptCurrInstr
-_0801DE34: .4byte gBankAttacker
-_0801DE38:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE54 @ =gBankTarget
-_0801DE40:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801DEC6
- .align 2, 0
-_0801DE54: .4byte gBankTarget
-_0801DE58:
- cmp r6, 0x8
- bls _0801DEC6
-_0801DE5C:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DEC6
- ldr r3, _0801DEA0 @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DEA4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DEAC
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEA8 @ =gBankAttacker
- b _0801DEB4
- .align 2, 0
-_0801DEA0: .4byte gProtectStructs
-_0801DEA4: .4byte gBattlescriptCurrInstr
-_0801DEA8: .4byte gBankAttacker
-_0801DEAC:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEF4 @ =gBankTarget
-_0801DEB4:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801DEC6:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801DEF8 @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801DEFC @ =gUnknown_02024AA8
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _0801DF26
- .align 2, 0
-_0801DEF4: .4byte gBankTarget
-_0801DEF8: .4byte 0xffefffff
-_0801DEFC: .4byte gUnknown_02024AA8
-_0801DF00:
- ldr r0, _0801DF38 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0801DF3C @ =gActiveBank
- strb r0, [r1]
- ldr r2, _0801DF40 @ =gSpecialStatuses
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DF26
- ldr r0, _0801DF44 @ =0x0000ffff
- str r0, [r1]
-_0801DF26:
- ldr r1, _0801DF38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DF2E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF38: .4byte gBattlescriptCurrInstr
-_0801DF3C: .4byte gActiveBank
-_0801DF40: .4byte gSpecialStatuses
-_0801DF44: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801DF48
- push {lr}
- ldr r0, _0801DF84 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DF7E
- ldr r0, _0801DF88 @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801DF76
- ldr r0, _0801DF8C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DF76
- ldr r0, _0801DF90 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0xD9
- bl PrepareStringBattle
- ldr r1, _0801DF94 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801DF76:
- ldr r1, _0801DF98 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DF7E:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF84: .4byte gBattleExecBuffer
-_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gBattleMoveFlags
-_0801DF90: .4byte gBankAttacker
-_0801DF94: .4byte gBattleCommunication
-_0801DF98: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_effectiveness_sound
-atk0E_effectiveness_sound: @ 801DF9C
- push {r4,lr}
- ldr r0, _0801DFD4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E05C
- ldr r4, _0801DFD8 @ =gActiveBank
- ldr r0, _0801DFDC @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801DFE0 @ =gBattleMoveFlags
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801E054
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801E00E
- cmp r0, 0x10
- bgt _0801DFEA
- cmp r0, 0x4
- beq _0801DFFE
- cmp r0, 0x4
- bgt _0801DFE4
- cmp r0, 0x2
- beq _0801DFF8
- b _0801E00E
- .align 2, 0
-_0801DFD4: .4byte gBattleExecBuffer
-_0801DFD8: .4byte gActiveBank
-_0801DFDC: .4byte gBankTarget
-_0801DFE0: .4byte gBattleMoveFlags
-_0801DFE4:
- cmp r0, 0x8
- beq _0801E054
- b _0801E00E
-_0801DFEA:
- cmp r0, 0x40
- beq _0801E00E
- cmp r0, 0x40
- bgt _0801E00E
- cmp r0, 0x20
- beq _0801E054
- b _0801E00E
-_0801DFF8:
- movs r0, 0
- movs r1, 0xE
- b _0801E002
-_0801DFFE:
- movs r0, 0
- movs r1, 0xC
-_0801E002:
- bl EmitEffectivenessSound
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0801E054
-_0801E00E:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E01E
- movs r0, 0
- movs r1, 0xE
- b _0801E02A
-_0801E01E:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E03C
- movs r0, 0
- movs r1, 0xC
-_0801E02A:
- bl EmitEffectivenessSound
- ldr r0, _0801E038 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- b _0801E054
- .align 2, 0
-_0801E038: .4byte gActiveBank
-_0801E03C:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801E054
- movs r0, 0
- movs r1, 0xD
- bl EmitEffectivenessSound
- ldr r0, _0801E064 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_0801E054:
- ldr r1, _0801E068 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E064: .4byte gActiveBank
-_0801E068: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0E_effectiveness_sound
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801E06C
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801E0A8 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E07A
- b _0801E20C
-_0801E07A:
- ldr r1, _0801E0AC @ =gBattleMoveFlags
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801E0B0 @ =gBattleCommunication
- cmp r0, 0
- beq _0801E0B8
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801E09A
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801E0B8
-_0801E09A:
- ldr r1, _0801E0B4 @ =gMissStrings
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801E1F6
- .align 2, 0
-_0801E0A8: .4byte gBattleExecBuffer
-_0801E0AC: .4byte gBattleMoveFlags
-_0801E0B0: .4byte gBattleCommunication
-_0801E0B4: .4byte gMissStrings
-_0801E0B8:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801E0FC
- cmp r0, 0x10
- bgt _0801E0DE
- cmp r0, 0x4
- beq _0801E0F8
- cmp r0, 0x4
- bgt _0801E0D8
- cmp r0, 0x2
- beq _0801E0F4
- b _0801E144
-_0801E0D8:
- cmp r0, 0x8
- beq _0801E150
- b _0801E144
-_0801E0DE:
- cmp r0, 0x40
- beq _0801E100
- cmp r0, 0x40
- bgt _0801E0EE
- cmp r0, 0x20
- bne _0801E0EC
- b _0801E1F0
-_0801E0EC:
- b _0801E144
-_0801E0EE:
- cmp r0, 0x80
- beq _0801E104
- b _0801E144
-_0801E0F4:
- movs r3, 0xDE
- b _0801E1FA
-_0801E0F8:
- movs r3, 0xDD
- b _0801E1FA
-_0801E0FC:
- movs r3, 0xDA
- b _0801E1FA
-_0801E100:
- movs r3, 0x99
- b _0801E1FA
-_0801E104:
- ldr r4, _0801E12C @ =gLastUsedItem
- ldr r2, _0801E130 @ =gBattleMons
- ldr r3, _0801E134 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E138 @ =gStringBank
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E13C @ =gBattlescriptCurrInstr
- ldr r0, _0801E140 @ =BattleScript_HangedOnMsg
- b _0801E20A
- .align 2, 0
-_0801E12C: .4byte gLastUsedItem
-_0801E130: .4byte gBattleMons
-_0801E134: .4byte gBankTarget
-_0801E138: .4byte gStringBank
-_0801E13C: .4byte gBattlescriptCurrInstr
-_0801E140: .4byte BattleScript_HangedOnMsg
-_0801E144:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801E154
-_0801E150:
- movs r3, 0x1B
- b _0801E1FA
-_0801E154:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801E17C
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E174 @ =gBattlescriptCurrInstr
- ldr r0, _0801E178 @ =BattleScript_OneHitKOMsg
- b _0801E20A
- .align 2, 0
-_0801E174: .4byte gBattlescriptCurrInstr
-_0801E178: .4byte BattleScript_OneHitKOMsg
-_0801E17C:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801E19C
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E194 @ =gBattlescriptCurrInstr
- ldr r0, _0801E198 @ =BattleScript_EnduredMsg
- b _0801E20A
- .align 2, 0
-_0801E194: .4byte gBattlescriptCurrInstr
-_0801E198: .4byte BattleScript_EnduredMsg
-_0801E19C:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801E1E4
- ldr r4, _0801E1CC @ =gLastUsedItem
- ldr r2, _0801E1D0 @ =gBattleMons
- ldr r3, _0801E1D4 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E1D8 @ =gStringBank
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E1DC @ =gBattlescriptCurrInstr
- ldr r0, _0801E1E0 @ =BattleScript_HangedOnMsg
- b _0801E20A
- .align 2, 0
-_0801E1CC: .4byte gLastUsedItem
-_0801E1D0: .4byte gBattleMons
-_0801E1D4: .4byte gBankTarget
-_0801E1D8: .4byte gStringBank
-_0801E1DC: .4byte gBattlescriptCurrInstr
-_0801E1E0: .4byte BattleScript_HangedOnMsg
-_0801E1E4:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801E1F4
-_0801E1F0:
- movs r3, 0xE5
- b _0801E1FA
-_0801E1F4:
- strb r0, [r7, 0x7]
-_0801E1F6:
- cmp r3, 0
- beq _0801E204
-_0801E1FA:
- adds r0, r3, 0
- ldr r1, _0801E214 @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
-_0801E204:
- ldr r1, _0801E218 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0801E20A:
- str r0, [r1]
-_0801E20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E214: .4byte gBankAttacker
-_0801E218: .4byte gBattlescriptCurrInstr
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801E21C
- push {r4,lr}
- ldr r0, _0801E24C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E246
- ldr r4, _0801E250 @ =gBattlescriptCurrInstr
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801E254 @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E258 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801E246:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E24C: .4byte gBattleExecBuffer
-_0801E250: .4byte gBattlescriptCurrInstr
-_0801E254: .4byte gBankAttacker
-_0801E258: .4byte gBattleCommunication
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printstring_playeronly
-atk11_printstring_playeronly: @ 801E25C
- push {r4,r5,lr}
- ldr r5, _0801E290 @ =gActiveBank
- ldr r0, _0801E294 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801E298 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitPrintStringPlayerOnly
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E29C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E290: .4byte gActiveBank
-_0801E294: .4byte gBankAttacker
-_0801E298: .4byte gBattlescriptCurrInstr
-_0801E29C: .4byte gBattleCommunication
- thumb_func_end atk11_printstring_playeronly
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801E2A0
- push {r4-r6,lr}
- ldr r0, _0801E2BC @ =gBattleExecBuffer
- ldr r4, [r0]
- cmp r4, 0
- bne _0801E2EE
- ldr r6, _0801E2C0 @ =gBattleCommunication
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801E2C8
- ldr r1, _0801E2C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801E2EE
- .align 2, 0
-_0801E2BC: .4byte gBattleExecBuffer
-_0801E2C0: .4byte gBattleCommunication
-_0801E2C4: .4byte gBattlescriptCurrInstr
-_0801E2C8:
- ldr r5, _0801E2F4 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801E2F8 @ =gPauseCounterBattle
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801E2EE
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801E2EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E2F4: .4byte gBattlescriptCurrInstr
-_0801E2F8: .4byte gPauseCounterBattle
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801E2FC
- push {r4,r5,lr}
- ldr r0, _0801E340 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E33A
- ldr r4, _0801E344 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r5, _0801E348 @ =gBattleCommunication
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801E34C @ =gBankAttacker
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801E33A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E340: .4byte gBattleExecBuffer
-_0801E344: .4byte gBattlescriptCurrInstr
-_0801E348: .4byte gBattleCommunication
-_0801E34C: .4byte gBankAttacker
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printfromtable_playeronly
-atk14_printfromtable_playeronly: @ 801E350
- push {r4-r6,lr}
- ldr r0, _0801E3A0 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E39A
- ldr r5, _0801E3A4 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801E3A8 @ =gBattleCommunication
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801E3AC @ =gActiveBank
- ldr r0, _0801E3B0 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl EmitPrintStringPlayerOnly
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3A0: .4byte gBattleExecBuffer
-_0801E3A4: .4byte gBattlescriptCurrInstr
-_0801E3A8: .4byte gBattleCommunication
-_0801E3AC: .4byte gActiveBank
-_0801E3B0: .4byte gBankAttacker
- thumb_func_end atk14_printfromtable_playeronly
-
- thumb_func_start sub_801E3B4
-sub_801E3B4: @ 801E3B4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801E3E4 @ =gNoOfAllBanks
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801E3DA
- ldr r4, _0801E3E8 @ =gTurnOrder
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801E3DA
-_0801E3CC:
- adds r1, 0x1
- cmp r1, r3
- bge _0801E3DA
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801E3CC
-_0801E3DA:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801E3E4: .4byte gNoOfAllBanks
-_0801E3E8: .4byte gTurnOrder
- thumb_func_end sub_801E3B4
-
- thumb_func_start sub_801E3EC
-sub_801E3EC: @ 801E3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r6, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801E430 @ =gBattleCommunication
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r7, r1, 0
- cmp r0, 0
- beq _0801E444
- ldr r2, _0801E434 @ =gEffectBank
- ldr r0, _0801E438 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r7, 0x3]
- movs r6, 0x40
- ldr r0, _0801E43C @ =0x02000000
- ldr r1, _0801E440 @ =gBankTarget
- b _0801E450
- .align 2, 0
-_0801E430: .4byte gBattleCommunication
-_0801E434: .4byte gEffectBank
-_0801E438: .4byte gBankAttacker
-_0801E43C: .4byte 0x02000000
-_0801E440: .4byte gBankTarget
-_0801E444:
- ldr r2, _0801E538 @ =gEffectBank
- ldr r0, _0801E53C @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _0801E540 @ =0x02000000
- ldr r1, _0801E544 @ =gBankAttacker
-_0801E450:
- ldrb r1, [r1]
- ldr r3, _0801E548 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- mov r8, r2
- ldr r2, _0801E54C @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0801E48A
- ldr r0, _0801E550 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E48A
- cmp r4, 0
- bne _0801E48A
- ldrb r0, [r7, 0x3]
- cmp r0, 0x9
- bhi _0801E48A
- bl _0801F5DC
-_0801E48A:
- mov r1, r8
- ldrb r0, [r1]
- bl GetBankIdentity
- ldr r2, _0801E554 @ =gSideAffecting
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801E4C4
- ldr r0, _0801E550 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E4C4
- cmp r4, 0
- bne _0801E4C4
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _0801E4C4
- bl _0801F5DC
-_0801E4C4:
- ldr r3, _0801E54C @ =gBattleMons
- ldr r2, _0801E538 @ =gEffectBank
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r8, r2
- mov r9, r3
- cmp r0, 0
- bne _0801E4EA
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _0801E4EA
- cmp r0, 0x1F
- beq _0801E4EA
- bl _0801F5DC
-_0801E4EA:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801E50C
- cmp r6, 0x40
- beq _0801E50C
- bl _0801F5DC
-_0801E50C:
- ldr r0, _0801E558 @ =gBattleCommunication
- ldrb r1, [r0, 0x3]
- adds r7, r0, 0
- cmp r1, 0x6
- bls _0801E518
- b _0801EB4A
-_0801E518:
- ldr r1, _0801E55C @ =gStatusFlagsForMoveEffects
- ldrb r0, [r7, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _0801E528
- b _0801E714
-_0801E528:
- cmp r0, 0x10
- bhi _0801E560
- cmp r0, 0x7
- beq _0801E57A
- cmp r0, 0x8
- bne _0801E536
- b _0801E630
-_0801E536:
- b _0801EA14
- .align 2, 0
-_0801E538: .4byte gEffectBank
-_0801E53C: .4byte gBankTarget
-_0801E540: .4byte 0x02000000
-_0801E544: .4byte gBankAttacker
-_0801E548: .4byte 0x00016003
-_0801E54C: .4byte gBattleMons
-_0801E550: .4byte gHitMarker
-_0801E554: .4byte gSideAffecting
-_0801E558: .4byte gBattleCommunication
-_0801E55C: .4byte gStatusFlagsForMoveEffects
-_0801E560:
- cmp r0, 0x40
- bne _0801E566
- b _0801E888
-_0801E566:
- cmp r0, 0x40
- bhi _0801E572
- cmp r0, 0x20
- bne _0801E570
- b _0801E7EA
-_0801E570:
- b _0801EA14
-_0801E572:
- cmp r0, 0x80
- bne _0801E578
- b _0801E8E4
-_0801E578:
- b _0801EA14
-_0801E57A:
- mov r3, r8
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _0801E5DC
- ldr r0, _0801E5D4 @ =gActiveBank
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0801E5D8 @ =gNoOfAllBanks
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _0801E5E8
- mov r4, r9
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801E5E8
- adds r1, r7, 0
- mov r6, r9
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_0801E5B4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _0801E5E8
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801E5B4
- b _0801E5E8
- .align 2, 0
-_0801E5D4: .4byte gActiveBank
-_0801E5D8: .4byte gNoOfAllBanks
-_0801E5DC:
- ldr r0, _0801E628 @ =gActiveBank
- ldr r2, _0801E62C @ =gNoOfAllBanks
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_0801E5E8:
- mov r0, r8
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E600
- b _0801EA14
-_0801E600:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _0801E60C
- b _0801EA14
-_0801E60C:
- mov r4, r9
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _0801E61A
- b _0801EA14
-_0801E61A:
- cmp r0, 0xF
- bne _0801E620
- b _0801EA14
-_0801E620:
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _0801EA04
- .align 2, 0
-_0801E628: .4byte gActiveBank
-_0801E62C: .4byte gNoOfAllBanks
-_0801E630:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E688
- cmp r4, 0x1
- beq _0801E64A
- cmp r5, 0x80
- bne _0801E688
-_0801E64A:
- ldr r0, _0801E678 @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x11
- bl RecordAbilityBattle
- ldr r4, _0801E67C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E680 @ =BattleScript_PSNPrevention
-_0801E664:
- str r0, [r4]
- ldr r2, _0801E684 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E676
- b _0801E928
-_0801E676:
- b _0801E94C
- .align 2, 0
-_0801E678: .4byte gLastUsedAbility
-_0801E67C: .4byte gBattlescriptCurrInstr
-_0801E680: .4byte BattleScript_PSNPrevention
-_0801E684: .4byte gHitMarker
-_0801E688:
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E6AC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E6AC
- cmp r1, 0x8
- beq _0801E6AC
- cmp r0, 0x8
- bne _0801E6C6
-_0801E6AC:
- ldr r0, _0801E710 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E6C6
- cmp r4, 0x1
- bne _0801E6C0
- b _0801E98C
-_0801E6C0:
- cmp r5, 0x80
- bne _0801E6C6
- b _0801E98C
-_0801E6C6:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r9
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0801E6DE
- b _0801EA14
-_0801E6DE:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0801E6E8
- b _0801EA14
-_0801E6E8:
- cmp r4, 0x8
- bne _0801E6EE
- b _0801EA14
-_0801E6EE:
- cmp r0, 0x8
- bne _0801E6F4
- b _0801EA14
-_0801E6F4:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E702
- b _0801EA14
-_0801E702:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0801E70E
- b _0801EA14
-_0801E70E:
- b _0801EA04
- .align 2, 0
-_0801E710: .4byte gHitMarker
-_0801E714:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _0801E758
- cmp r4, 0x1
- beq _0801E72E
- cmp r5, 0x80
- bne _0801E758
-_0801E72E:
- ldr r0, _0801E74C @ =gLastUsedAbility
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x29
- bl RecordAbilityBattle
- ldr r4, _0801E750 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E754 @ =BattleScript_BRNPrevention
- b _0801E664
- .align 2, 0
-_0801E74C: .4byte gLastUsedAbility
-_0801E750: .4byte gBattlescriptCurrInstr
-_0801E754: .4byte BattleScript_BRNPrevention
-_0801E758:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _0801E778
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7A8
-_0801E778:
- ldr r0, _0801E79C @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E7A8
- cmp r4, 0x1
- beq _0801E78E
- cmp r5, 0x80
- bne _0801E7A8
-_0801E78E:
- ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention
- b _0801E998
- .align 2, 0
-_0801E79C: .4byte gHitMarker
-_0801E7A0: .4byte gBattlescriptCurrInstr
-_0801E7A4: .4byte BattleScript_BRNPrevention
-_0801E7A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r9
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7C2
- b _0801EA14
-_0801E7C2:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7CE
- b _0801EA14
-_0801E7CE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0801E7DA
- b _0801EA14
-_0801E7DA:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E7E8
- b _0801EA14
-_0801E7E8:
- b _0801EA04
-_0801E7EA:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801E826
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0801E826
- ldr r0, _0801E87C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E826
- movs r1, 0
- str r1, [sp, 0x4]
-_0801E826:
- ldr r4, _0801E880 @ =gBattleMons
- ldr r0, _0801E884 @ =gEffectBank
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E840
- b _0801EA14
-_0801E840:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E84C
- b _0801EA14
-_0801E84C:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E85A
- b _0801EA14
-_0801E85A:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0801E862
- b _0801EA14
-_0801E862:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _0801E86E
- b _0801EA14
-_0801E86E:
- adds r0, r3, 0
- bl CancelMultiTurnMoves
- movs r3, 0x1
- mov r10, r3
- b _0801EA14
- .align 2, 0
-_0801E87C: .4byte gBattleWeather
-_0801E880: .4byte gBattleMons
-_0801E884: .4byte gEffectBank
-_0801E888:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0801E8D0
- cmp r4, 0x1
- beq _0801E8A6
- cmp r5, 0x80
- beq _0801E8A6
- b _0801EA14
-_0801E8A6:
- ldr r0, _0801E8C4 @ =gLastUsedAbility
- strb r2, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x7
- bl RecordAbilityBattle
- ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention
- b _0801E664
- .align 2, 0
-_0801E8C4: .4byte gLastUsedAbility
-_0801E8C8: .4byte gBattlescriptCurrInstr
-_0801E8CC: .4byte BattleScript_PRLZPrevention
-_0801E8D0:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E8DE
- b _0801EA14
-_0801E8DE:
- movs r4, 0x1
- mov r10, r4
- b _0801EA14
-_0801E8E4:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E952
- cmp r4, 0x1
- beq _0801E8FE
- cmp r5, 0x80
- bne _0801E952
-_0801E8FE:
- ldr r0, _0801E938 @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x11
- bl RecordAbilityBattle
- ldr r4, _0801E93C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E940 @ =BattleScript_PSNPrevention
- str r0, [r4]
- ldr r2, _0801E944 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E94C
-_0801E928:
- movs r0, 0x1
- strb r0, [r7, 0x5]
- ldr r0, _0801E948 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0801F5FA
- .align 2, 0
-_0801E938: .4byte gLastUsedAbility
-_0801E93C: .4byte gBattlescriptCurrInstr
-_0801E940: .4byte BattleScript_PSNPrevention
-_0801E944: .4byte gHitMarker
-_0801E948: .4byte 0xffffdfff
-_0801E94C:
- strb r0, [r7, 0x5]
- bl _0801F5FA
-_0801E952:
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E976
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E976
- cmp r1, 0x8
- beq _0801E976
- cmp r0, 0x8
- bne _0801E9B4
-_0801E976:
- ldr r0, _0801E9A4 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E9B4
- cmp r4, 0x1
- beq _0801E98C
- cmp r5, 0x80
- bne _0801E9B4
-_0801E98C:
- ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E9AC @ =BattleScript_PSNPrevention
-_0801E998:
- str r0, [r4]
- ldr r1, _0801E9B0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0801F5FA
- .align 2, 0
-_0801E9A4: .4byte gHitMarker
-_0801E9A8: .4byte gBattlescriptCurrInstr
-_0801E9AC: .4byte BattleScript_PSNPrevention
-_0801E9B0: .4byte gBattleCommunication
-_0801E9B4:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r9
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _0801EA14
- mov r3, r9
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _0801EA0A
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801EA0A
- cmp r3, 0x8
- beq _0801EA0A
- cmp r0, 0x8
- beq _0801EA0A
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801EA14
- mov r4, r8
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_0801EA04:
- movs r0, 0x1
- mov r10, r0
- b _0801EA14
-_0801EA0A:
- ldr r0, _0801EA58 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801EA14:
- mov r1, r10
- cmp r1, 0x1
- beq _0801EA1C
- b _0801EB3C
-_0801EA1C:
- ldr r0, _0801EA5C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects
- ldr r0, _0801EA64 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _0801EA70
- bl Random
- ldr r2, _0801EA68 @ =gBattleMons
- ldr r1, _0801EA6C @ =gEffectBank
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _0801EA84
- .align 2, 0
-_0801EA58: .4byte gBattleMoveFlags
-_0801EA5C: .4byte gBattlescriptCurrInstr
-_0801EA60: .4byte gStatusFlagsForMoveEffects
-_0801EA64: .4byte gBattleCommunication
-_0801EA68: .4byte gBattleMons
-_0801EA6C: .4byte gEffectBank
-_0801EA70:
- ldr r2, _0801EAD4 @ =gBattleMons
- ldr r0, _0801EAD8 @ =gEffectBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_0801EA84:
- ldr r2, _0801EADC @ =gBattlescriptCurrInstr
- ldr r1, _0801EAE0 @ =gMoveEffectBS_Ptrs
- ldr r5, _0801EAE4 @ =gBattleCommunication
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _0801EAE8 @ =gActiveBank
- ldr r1, _0801EAD8 @ =gEffectBank
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801EAEC @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r2, _0801EAF0 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801EAF8
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _0801EAF4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _0801EAFA
- .align 2, 0
-_0801EAD4: .4byte gBattleMons
-_0801EAD8: .4byte gEffectBank
-_0801EADC: .4byte gBattlescriptCurrInstr
-_0801EAE0: .4byte gMoveEffectBS_Ptrs
-_0801EAE4: .4byte gBattleCommunication
-_0801EAE8: .4byte gActiveBank
-_0801EAEC: .4byte gUnknown_02024ACC
-_0801EAF0: .4byte gHitMarker
-_0801EAF4: .4byte 0xffffdfff
-_0801EAF8:
- strb r0, [r5, 0x5]
-_0801EAFA:
- ldr r0, _0801EB2C @ =gBattleCommunication
- ldrb r2, [r0, 0x3]
- adds r7, r0, 0
- cmp r2, 0x2
- beq _0801EB14
- cmp r2, 0x6
- beq _0801EB14
- cmp r2, 0x5
- beq _0801EB14
- cmp r2, 0x3
- beq _0801EB14
- bl _0801F5FA
-_0801EB14:
- ldr r0, _0801EB30 @ =0x02000000
- ldrb r1, [r7, 0x3]
- ldr r2, _0801EB34 @ =0x000160ca
- adds r0, r2
- strb r1, [r0]
- ldr r2, _0801EB38 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _0801F4F2
- .align 2, 0
-_0801EB2C: .4byte gBattleCommunication
-_0801EB30: .4byte 0x02000000
-_0801EB34: .4byte 0x000160ca
-_0801EB38: .4byte gHitMarker
-_0801EB3C:
- mov r3, r10
- cmp r3, 0
- beq _0801EB46
- bl _0801F5FA
-_0801EB46:
- bl _0801F5DC
-_0801EB4A:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r0, r9
- adds r0, 0x50
- adds r1, r0
- ldr r2, _0801EB84 @ =gStatusFlagsForMoveEffects
- ldrb r3, [r7, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801EB6E
- bl _0801F5DC
-_0801EB6E:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _0801EB78
- bl _0801F5FA
-_0801EB78:
- lsls r0, 2
- ldr r1, _0801EB88 @ =_0801EB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801EB84: .4byte gStatusFlagsForMoveEffects
-_0801EB88: .4byte _0801EB8C
- .align 2, 0
-_0801EB8C:
- .4byte _0801EC60
- .4byte _0801ECD4
- .4byte _0801EE4C
- .4byte _0801ED60
- .4byte _0801EDDC
- .4byte _0801EE84
- .4byte _0801EECC
- .4byte _0801EFA8
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F13C
- .4byte _0801F184
- .4byte _0801F1A4
- .4byte _0801F364
- .4byte _0801F3A0
- .4byte _0801F3BC
- .4byte _0801F3D4
- .4byte _0801F3EC
- .4byte _0801F44C
- .4byte _0801F464
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F4A8
- .4byte _0801F500
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5EC
-_0801EC60:
- mov r1, r8
- ldrb r0, [r1]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC7A
- bl _0801F5DC
-_0801EC7A:
- mov r4, r9
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801EC8E
- bl _0801F5DC
-_0801EC8E:
- bl Random
- mov r3, r8
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs
- ldr r0, _0801ECD0 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801ECC8: .4byte gBattlescriptCurrInstr
-_0801ECCC: .4byte gMoveEffectBS_Ptrs
-_0801ECD0: .4byte gBattleCommunication
-_0801ECD4:
- mov r0, r8
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _0801ED18
- cmp r4, 0x1
- beq _0801ECF4
- cmp r5, 0x80
- beq _0801ECF4
- bl _0801F5DC
-_0801ECF4:
- ldr r0, _0801ED0C @ =gLastUsedAbility
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x27
- bl RecordAbilityBattle
- ldr r1, _0801ED10 @ =gBattlescriptCurrInstr
- ldr r0, _0801ED14 @ =BattleScript_FlinchPrevention
- str r0, [r1]
- bl _0801F5FA
- .align 2, 0
-_0801ED0C: .4byte gLastUsedAbility
-_0801ED10: .4byte gBattlescriptCurrInstr
-_0801ED14: .4byte BattleScript_FlinchPrevention
-_0801ED18:
- adds r0, r2, 0
- bl sub_801E3B4
- ldr r1, _0801ED54 @ =gCurrentMoveTurn
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _0801ED2E
- bl _0801F5DC
-_0801ED2E:
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r1, _0801ED58 @ =gStatusFlagsForMoveEffects
- ldr r0, _0801ED5C @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _0801F5DC
- .align 2, 0
-_0801ED54: .4byte gCurrentMoveTurn
-_0801ED58: .4byte gStatusFlagsForMoveEffects
-_0801ED5C: .4byte gBattleCommunication
-_0801ED60:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0801ED7C
- bl _0801F5DC
-_0801ED7C:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801EDC8 @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EDCC @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EDD8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EDC8: .4byte gLockedMove
-_0801EDCC: .4byte gCurrentMove
-_0801EDD0: .4byte gBattlescriptCurrInstr
-_0801EDD4: .4byte gMoveEffectBS_Ptrs
-_0801EDD8: .4byte gBattleCommunication
-_0801EDDC:
- ldr r5, _0801EE30 @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0801EE14
- ldr r4, _0801EE34 @ =gPaydayMoney
- ldrh r3, [r4]
- ldr r2, _0801EE38 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0801EE14
- ldr r3, _0801EE3C @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0801EE14:
- ldr r4, _0801EE40 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EE48 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EE30: .4byte gBankAttacker
-_0801EE34: .4byte gPaydayMoney
-_0801EE38: .4byte gBattleMons
-_0801EE3C: .4byte 0x0000ffff
-_0801EE40: .4byte gBattlescriptCurrInstr
-_0801EE44: .4byte gMoveEffectBS_Ptrs
-_0801EE48: .4byte gBattleCommunication
-_0801EE4C:
- mov r4, r8
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801EE62
- b _0801F5DC
-_0801EE62:
- bl Random
- ldr r4, _0801EE80 @ =gBattleCommunication
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F5FA
- .align 2, 0
-_0801EE80: .4byte gBattleCommunication
-_0801EE84:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0801EEC0 @ =gLockedMove
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EEC4 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _0801EEC8 @ =gProtectStructs
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _0801F5DC
- .align 2, 0
-_0801EEC0: .4byte gLockedMove
-_0801EEC4: .4byte gCurrentMove
-_0801EEC8: .4byte gProtectStructs
-_0801EECC:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r9
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _0801EEE8
- b _0801F5DC
-_0801EEE8:
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801EF80 @ =0x02000000
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _0801EF84 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldr r6, _0801EF88 @ =gCurrentMove
- ldrh r1, [r6]
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- ldr r1, _0801EF8C @ =0x00016005
- adds r0, r1
- adds r0, r2
- ldrh r1, [r6]
- lsrs r1, 8
- strb r1, [r0]
- ldrb r0, [r3]
- ldr r3, _0801EF90 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldr r1, _0801EF94 @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _0801EF98 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs
- ldr r2, _0801EFA0 @ =gBattleCommunication
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r1, _0801EFA4 @ =gTrappingMoves
- ldrh r0, [r1]
- ldrh r4, [r6]
- cmp r0, r4
- bne _0801EF5C
- b _0801F5FA
-_0801EF5C:
- adds r3, r1, 0
- adds r1, r6, 0
-_0801EF60:
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0801EF70
- b _0801F5FA
-_0801EF70:
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r1]
- cmp r0, r4
- bne _0801EF60
- b _0801F5FA
- .align 2, 0
-_0801EF80: .4byte 0x02000000
-_0801EF84: .4byte 0x00016004
-_0801EF88: .4byte gCurrentMove
-_0801EF8C: .4byte 0x00016005
-_0801EF90: .4byte 0x00016020
-_0801EF94: .4byte gBankAttacker
-_0801EF98: .4byte gBattlescriptCurrInstr
-_0801EF9C: .4byte gMoveEffectBS_Ptrs
-_0801EFA0: .4byte gBattleCommunication
-_0801EFA4: .4byte gTrappingMoves
-_0801EFA8:
- ldr r1, _0801EFD8 @ =gBattleMoveDamage
- ldr r0, _0801EFDC @ =gHP_dealt
- ldr r0, [r0]
- cmp r0, 0
- bge _0801EFB4
- adds r0, 0x3
-_0801EFB4:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _0801EFC0
- movs r0, 0x1
- str r0, [r1]
-_0801EFC0:
- ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801EFE8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801EFD8: .4byte gBattleMoveDamage
-_0801EFDC: .4byte gHP_dealt
-_0801EFE0: .4byte gBattlescriptCurrInstr
-_0801EFE4: .4byte gMoveEffectBS_Ptrs
-_0801EFE8: .4byte gBattleCommunication
-_0801EFEC:
- ldrb r1, [r7, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F008
- b _0801F5DC
-_0801F008:
- ldr r2, _0801F02C @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F030 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F034 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F038 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F03C @ =BattleScript_StatUp
- b _0801F5F8
- .align 2, 0
-_0801F02C: .4byte 0x02000000
-_0801F030: .4byte 0x000160a4
-_0801F034: .4byte 0x000160a5
-_0801F038: .4byte gBattlescriptCurrInstr
-_0801F03C: .4byte BattleScript_StatUp
-_0801F040:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F05E
- b _0801F5DC
-_0801F05E:
- ldr r2, _0801F080 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F084 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F088 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F08C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F090 @ =BattleScript_StatDown
- b _0801F5F8
- .align 2, 0
-_0801F080: .4byte 0x02000000
-_0801F084: .4byte 0x000160a4
-_0801F088: .4byte 0x000160a5
-_0801F08C: .4byte gBattlescriptCurrInstr
-_0801F090: .4byte BattleScript_StatDown
-_0801F094:
- ldrb r1, [r7, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F0B0
- b _0801F5DC
-_0801F0B0:
- ldr r2, _0801F0D4 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F0D8 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F0DC @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F0E4 @ =BattleScript_StatUp
- b _0801F5F8
- .align 2, 0
-_0801F0D4: .4byte 0x02000000
-_0801F0D8: .4byte 0x000160a4
-_0801F0DC: .4byte 0x000160a5
-_0801F0E0: .4byte gBattlescriptCurrInstr
-_0801F0E4: .4byte BattleScript_StatUp
-_0801F0E8:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F106
- b _0801F5DC
-_0801F106:
- ldr r2, _0801F128 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F12C @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F130 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F134 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F138 @ =BattleScript_StatDown
- b _0801F5F8
- .align 2, 0
-_0801F128: .4byte 0x02000000
-_0801F12C: .4byte 0x000160a4
-_0801F130: .4byte 0x000160a5
-_0801F134: .4byte gBattlescriptCurrInstr
-_0801F138: .4byte BattleScript_StatDown
-_0801F13C:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F178 @ =gDisableStructs
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _0801F17C @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F180 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- b _0801F5DC
- .align 2, 0
-_0801F178: .4byte gDisableStructs
-_0801F17C: .4byte gLockedMove
-_0801F180: .4byte gCurrentMove
-_0801F184:
- ldr r0, _0801F1A0 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_0801F19A:
- orrs r0, r1
- str r0, [r2]
- b _0801F5DC
- .align 2, 0
-_0801F1A0: .4byte gBankAttacker
-_0801F1A4:
- ldr r4, _0801F254 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801F1D8
- ldr r0, _0801F258 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F1D8
- b _0801F5DC
-_0801F1D8:
- ldr r0, _0801F258 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F214
- ldr r0, _0801F264 @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _0801F268 @ =gBitTable
- ldr r2, _0801F26C @ =gBattlePartyID
- ldr r0, _0801F254 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F214
- b _0801F5DC
-_0801F214:
- ldr r2, _0801F270 @ =gBattleMons
- ldr r1, _0801F274 @ =gBankTarget
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r9, r2
- cmp r0, 0
- beq _0801F284
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0801F284
- ldr r1, _0801F278 @ =gBattlescriptCurrInstr
- ldr r0, _0801F27C @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldr r1, _0801F280 @ =gLastUsedAbility
- ldrb r0, [r7]
- muls r0, r3
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _0801F5FA
- .align 2, 0
-_0801F254: .4byte gBankAttacker
-_0801F258: .4byte gBattleTypeFlags
-_0801F25C: .4byte 0x00000902
-_0801F260: .4byte gTrainerBattleOpponent
-_0801F264: .4byte gWishFutureKnock
-_0801F268: .4byte gBitTable
-_0801F26C: .4byte gBattlePartyID
-_0801F270: .4byte gBattleMons
-_0801F274: .4byte gBankTarget
-_0801F278: .4byte gBattlescriptCurrInstr
-_0801F27C: .4byte BattleScript_NoItemSteal
-_0801F280: .4byte gLastUsedAbility
-_0801F284:
- ldr r4, _0801F340 @ =gBankAttacker
- mov r10, r4
- ldrb r1, [r4]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r1
- add r0, r9
- ldrh r3, [r0, 0x2E]
- cmp r3, 0
- beq _0801F29C
- b _0801F5DC
-_0801F29C:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r2, [r0, 0x2E]
- adds r0, r2, 0
- cmp r0, 0xAF
- bne _0801F2B0
- b _0801F5DC
-_0801F2B0:
- cmp r0, 0
- bne _0801F2B6
- b _0801F5DC
-_0801F2B6:
- lsls r0, r1, 1
- ldr r5, _0801F344 @ =0x020160f0
- adds r0, r5
- ldr r1, _0801F348 @ =gLastUsedItem
- strh r2, [r0]
- strh r2, [r1]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- add r0, r9
- movs r6, 0
- strh r3, [r0, 0x2E]
- ldr r4, _0801F34C @ =gActiveBank
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r4]
- str r1, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- mov r3, r10
- ldrb r0, [r3]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r4, _0801F350 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F354 @ =BattleScript_ItemSteal
- str r0, [r4]
- ldr r0, _0801F358 @ =0xfffe9f10
- adds r5, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0801F35C @ =0x000160e8
- adds r0, r1
- adds r0, r5
- strb r6, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801F360 @ =0x000160e9
- adds r0, r2
- adds r0, r5
- strb r6, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F340: .4byte gBankAttacker
-_0801F344: .4byte 0x020160f0
-_0801F348: .4byte gLastUsedItem
-_0801F34C: .4byte gActiveBank
-_0801F350: .4byte gBattlescriptCurrInstr
-_0801F354: .4byte BattleScript_ItemSteal
-_0801F358: .4byte 0xfffe9f10
-_0801F35C: .4byte 0x000160e8
-_0801F360: .4byte 0x000160e9
-_0801F364:
- ldr r3, _0801F394 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F398 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0801F39C @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _0801F5DC
- .align 2, 0
-_0801F394: .4byte gBankTarget
-_0801F398: .4byte gDisableStructs
-_0801F39C: .4byte gBankAttacker
-_0801F3A0:
- ldr r0, _0801F3B8 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _0801F19A
- .align 2, 0
-_0801F3B8: .4byte gBankTarget
-_0801F3BC:
- ldr r4, _0801F3CC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3D0 @ =gUnknown_081D9224
- b _0801F5F8
- .align 2, 0
-_0801F3CC: .4byte gBattlescriptCurrInstr
-_0801F3D0: .4byte gUnknown_081D9224
-_0801F3D4:
- ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway
- b _0801F5F8
- .align 2, 0
-_0801F3E4: .4byte gBattlescriptCurrInstr
-_0801F3E8: .4byte BattleScript_RapidSpinAway
-_0801F3EC:
- ldr r6, _0801F43C @ =gBankTarget
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r9
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _0801F406
- b _0801F5DC
-_0801F406:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _0801F440 @ =gActiveBank
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r4, _0801F444 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal
- b _0801F5F8
- .align 2, 0
-_0801F43C: .4byte gBankTarget
-_0801F440: .4byte gActiveBank
-_0801F444: .4byte gBattlescriptCurrInstr
-_0801F448: .4byte BattleScript_TargetPRLZHeal
-_0801F44C:
- ldr r4, _0801F45C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F460 @ =gUnknown_081D93FA
- b _0801F5F8
- .align 2, 0
-_0801F45C: .4byte gBattlescriptCurrInstr
-_0801F460: .4byte gUnknown_081D93FA
-_0801F464:
- ldr r4, _0801F494 @ =gBattleMoveDamage
- ldr r0, _0801F498 @ =gHP_dealt
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F47A
- movs r0, 0x1
- str r0, [r4]
-_0801F47A:
- ldr r4, _0801F49C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs
- ldr r0, _0801F4A4 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801F494: .4byte gBattleMoveDamage
-_0801F498: .4byte gHP_dealt
-_0801F49C: .4byte gBattlescriptCurrInstr
-_0801F4A0: .4byte gMoveEffectBS_Ptrs
-_0801F4A4: .4byte gBattleCommunication
-_0801F4A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0801F4C4
- b _0801F5DC
-_0801F4C4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801F4F8 @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F4FC @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_0801F4F2:
- orrs r0, r1
- str r0, [r2]
- b _0801F5FA
- .align 2, 0
-_0801F4F8: .4byte gLockedMove
-_0801F4FC: .4byte gCurrentMove
-_0801F500:
- mov r5, r8
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _0801F540
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- ldr r0, _0801F534 @ =gLastUsedAbility
- strb r2, [r0]
- ldr r1, _0801F538 @ =gBattlescriptCurrInstr
- ldr r0, _0801F53C @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl RecordAbilityBattle
- b _0801F5FA
- .align 2, 0
-_0801F534: .4byte gLastUsedAbility
-_0801F538: .4byte gBattlescriptCurrInstr
-_0801F53C: .4byte BattleScript_NoItemSteal
-_0801F540:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- adds r0, r3, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0801F5B8 @ =gLastUsedItem
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _0801F5BC @ =gWishFutureKnock
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _0801F5C0 @ =gBitTable
- ldr r1, _0801F5C4 @ =gBattlePartyID
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F5CC @ =BattleScript_KnockedOff
- str r0, [r4]
- ldr r1, _0801F5D0 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- ldr r3, _0801F5D4 @ =0x000160e8
- adds r0, r3
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r4, _0801F5D8 @ =0x000160e9
- adds r0, r4
- adds r0, r1
- strb r5, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F5B8: .4byte gLastUsedItem
-_0801F5BC: .4byte gWishFutureKnock
-_0801F5C0: .4byte gBitTable
-_0801F5C4: .4byte gBattlePartyID
-_0801F5C8: .4byte gBattlescriptCurrInstr
-_0801F5CC: .4byte BattleScript_KnockedOff
-_0801F5D0: .4byte 0x02000000
-_0801F5D4: .4byte 0x000160e8
-_0801F5D8: .4byte 0x000160e9
-_0801F5DC:
- ldr r1, _0801F5E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F5FA
- .align 2, 0
-_0801F5E8: .4byte gBattlescriptCurrInstr
-_0801F5EC:
- ldr r4, _0801F60C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F610 @ =gUnknown_081D94B0
-_0801F5F8:
- str r0, [r4]
-_0801F5FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F60C: .4byte gBattlescriptCurrInstr
-_0801F610: .4byte gUnknown_081D94B0
- thumb_func_end sub_801E3EC
-
- thumb_func_start atk15_seteffectwithchancetarget
-atk15_seteffectwithchancetarget: @ 801F614
- push {r4,lr}
- ldr r2, _0801F640 @ =gBattleMons
- ldr r0, _0801F644 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _0801F650
- ldr r2, _0801F648 @ =gBattleMoves
- ldr r0, _0801F64C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _0801F660
- .align 2, 0
-_0801F640: .4byte gBattleMons
-_0801F644: .4byte gBankAttacker
-_0801F648: .4byte gBattleMoves
-_0801F64C: .4byte gCurrentMove
-_0801F650:
- ldr r2, _0801F680 @ =gBattleMoves
- ldr r0, _0801F684 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_0801F660:
- ldr r3, _0801F688 @ =gBattleCommunication
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0801F690
- ldr r0, _0801F68C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F690
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _0801F6BE
- .align 2, 0
-_0801F680: .4byte gBattleMoves
-_0801F684: .4byte gCurrentMove
-_0801F688: .4byte gBattleCommunication
-_0801F68C: .4byte gBattleMoveFlags
-_0801F690:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _0801F6DA
- ldr r0, _0801F6C8 @ =gBattleCommunication
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0801F6DA
- ldr r0, _0801F6CC @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F6DA
- cmp r4, 0x63
- bls _0801F6D0
-_0801F6BE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801E3EC
- b _0801F6E2
- .align 2, 0
-_0801F6C8: .4byte gBattleCommunication
-_0801F6CC: .4byte gBattleMoveFlags
-_0801F6D0:
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F6E2
-_0801F6DA:
- ldr r1, _0801F6F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F6E2:
- ldr r0, _0801F6FC @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0801F700 @ =0x02000000
- ldr r2, _0801F704 @ =0x00016112
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F6F8: .4byte gBattlescriptCurrInstr
-_0801F6FC: .4byte gBattleCommunication
-_0801F700: .4byte 0x02000000
-_0801F704: .4byte 0x00016112
- thumb_func_end atk15_seteffectwithchancetarget
-
- thumb_func_start atk16_seteffectprimary
-atk16_seteffectprimary: @ 801F708
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end atk16_seteffectprimary
-
- thumb_func_start atk17_seteffectsecondary
-atk17_seteffectsecondary: @ 801F718
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end atk17_seteffectsecondary
-
- thumb_func_start atk18_status_effect_clear
-atk18_status_effect_clear: @ 801F728
- push {lr}
- ldr r0, _0801F74C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801F750 @ =gActiveBank
- strb r0, [r2]
- ldr r3, _0801F754 @ =gBattleCommunication
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _0801F75C
- ldr r1, _0801F758 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0801F766
- .align 2, 0
-_0801F74C: .4byte gBattlescriptCurrInstr
-_0801F750: .4byte gActiveBank
-_0801F754: .4byte gBattleCommunication
-_0801F758: .4byte gBattleMons
-_0801F75C:
- ldr r1, _0801F794 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0801F766:
- adds r2, r1
- ldr r1, _0801F798 @ =gStatusFlagsForMoveEffects
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _0801F79C @ =gBattleCommunication
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _0801F7A0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _0801F7A4 @ =0x02000000
- ldr r1, _0801F7A8 @ =0x00016112
- adds r0, r1
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0801F794: .4byte gBattleMons
-_0801F798: .4byte gStatusFlagsForMoveEffects
-_0801F79C: .4byte gBattleCommunication
-_0801F7A0: .4byte gBattlescriptCurrInstr
-_0801F7A4: .4byte 0x02000000
-_0801F7A8: .4byte 0x00016112
- thumb_func_end atk18_status_effect_clear
-
- thumb_func_start atk19_faint_pokemon
-atk19_faint_pokemon: @ 801F7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0801F81C @ =gBattlescriptCurrInstr
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801F834
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- ldr r5, _0801F820 @ =gActiveBank
- strb r0, [r5]
- ldr r2, _0801F824 @ =gHitMarker
- ldr r1, _0801F828 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0801F7E6
- b _0801FB1C
-_0801F7E6:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl b_movescr_stack_pop_cursor
- str r4, [r6]
- ldrb r0, [r5]
- bl GetBankSide
- ldr r1, _0801F82C @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0801F830 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _0801FB22
- .align 2, 0
-_0801F81C: .4byte gBattlescriptCurrInstr
-_0801F820: .4byte gActiveBank
-_0801F824: .4byte gHitMarker
-_0801F828: .4byte gBitTable
-_0801F82C: .4byte gSideAffecting
-_0801F830: .4byte 0x0000fdff
-_0801F834:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _0801F85C
- ldr r1, _0801F84C @ =gActiveBank
- ldr r0, _0801F850 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F854 @ =gBankTarget
- ldrb r7, [r0]
- ldr r4, _0801F858 @ =gUnknown_081D8C58
- b _0801F86A
- .align 2, 0
-_0801F84C: .4byte gActiveBank
-_0801F850: .4byte gBankAttacker
-_0801F854: .4byte gBankTarget
-_0801F858: .4byte gUnknown_081D8C58
-_0801F85C:
- ldr r1, _0801F954 @ =gActiveBank
- ldr r0, _0801F958 @ =gBankTarget
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F95C @ =gBankAttacker
- ldrb r7, [r0]
- ldr r4, _0801F960 @ =gUnknown_081D8C65
-_0801F86A:
- ldr r0, _0801F964 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r0, _0801F968 @ =gBitTable
- mov r12, r0
- ldr r2, _0801F954 @ =gActiveBank
- mov r8, r2
- ldrb r2, [r2]
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F886
- b _0801FB1C
-_0801F886:
- ldr r3, _0801F96C @ =gBattleMons
- mov r10, r3
- movs r5, 0x58
- mov r9, r5
- mov r0, r9
- muls r0, r2
- add r0, r10
- ldrh r3, [r0, 0x28]
- cmp r3, 0
- beq _0801F89C
- b _0801FB1C
-_0801F89C:
- ldr r2, _0801F970 @ =0x02000000
- lsls r1, r7, 1
- ldr r5, _0801F974 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F978 @ =0x000160ad
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- lsls r1, r7, 2
- adds r5, 0x54
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F97C @ =0x00016103
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- ldr r5, _0801F980 @ =gHitMarker
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl b_movescr_stack_push
- str r4, [r6]
- mov r2, r8
- ldrb r0, [r2]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0801F9B0
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _0801F984 @ =gBattleResults
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0801F914
- adds r0, 0x1
- strb r0, [r1]
-_0801F914:
- mov r0, r9
- muls r0, r7
- add r0, r10
- adds r3, r0, 0
- adds r3, 0x2A
- mov r4, r8
- ldrb r2, [r4]
- mov r0, r9
- muls r0, r2
- add r0, r10
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r5, [r1]
- cmp r0, r5
- bls _0801F9CC
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _0801F990
- ldr r1, _0801F988 @ =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F98C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F954: .4byte gActiveBank
-_0801F958: .4byte gBankTarget
-_0801F95C: .4byte gBankAttacker
-_0801F960: .4byte gUnknown_081D8C65
-_0801F964: .4byte gAbsentBankFlags
-_0801F968: .4byte gBitTable
-_0801F96C: .4byte gBattleMons
-_0801F970: .4byte 0x02000000
-_0801F974: .4byte 0x000160ac
-_0801F978: .4byte 0x000160ad
-_0801F97C: .4byte 0x00016103
-_0801F980: .4byte gHitMarker
-_0801F984: .4byte gBattleResults
-_0801F988: .4byte gBattlePartyID
-_0801F98C: .4byte gPlayerParty
-_0801F990:
- ldr r1, _0801F9A8 @ =gBattlePartyID
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F9AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F9A8: .4byte gBattlePartyID
-_0801F9AC: .4byte gPlayerParty
-_0801F9B0:
- ldr r1, _0801FAE0 @ =gBattleResults
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFE
- bhi _0801F9BC
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_0801F9BC:
- ldr r2, _0801FAE4 @ =gActiveBank
- ldrb r0, [r2]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
-_0801F9CC:
- ldr r0, _0801FAE8 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801FA02
- ldr r6, _0801FAEC @ =gBattleMons
- ldr r0, _0801FAF0 @ =gBankAttacker
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FA02
- ldr r4, _0801FAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gBattleMoveDamage
- adds r0, r7, 0
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _0801FAFC @ =gUnknown_081D9156
- str r0, [r4]
-_0801FA02:
- ldr r1, _0801FB00 @ =gStatuses3
- ldr r6, _0801FB04 @ =gBankTarget
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _0801FA1A
- b _0801FB22
-_0801FA1A:
- ldr r0, _0801FAE8 @ =gHitMarker
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- bne _0801FB22
- ldr r4, _0801FAF0 @ =gBankAttacker
- mov r8, r4
- ldrb r0, [r4]
- bl GetBankSide
- adds r4, r0, 0
- ldrb r0, [r6]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801FB22
- ldr r0, _0801FAEC @ =gBattleMons
- mov r9, r0
- mov r1, r8
- ldrb r2, [r1]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r3, r0
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FB22
- ldr r0, _0801FB08 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801FB22
- ldr r1, _0801FB0C @ =0x02000000
- ldr r4, _0801FB10 @ =0x0001608c
- adds r0, r2, r4
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r4, r3
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _0801FAF4 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- bl b_movescr_stack_push
- ldr r0, _0801FB14 @ =gUnknown_081D9468
- str r0, [r5]
- ldr r5, _0801FAE4 @ =gActiveBank
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0801FB18 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _0801FB22
- .align 2, 0
-_0801FAE0: .4byte gBattleResults
-_0801FAE4: .4byte gActiveBank
-_0801FAE8: .4byte gHitMarker
-_0801FAEC: .4byte gBattleMons
-_0801FAF0: .4byte gBankAttacker
-_0801FAF4: .4byte gBattlescriptCurrInstr
-_0801FAF8: .4byte gBattleMoveDamage
-_0801FAFC: .4byte gUnknown_081D9156
-_0801FB00: .4byte gStatuses3
-_0801FB04: .4byte gBankTarget
-_0801FB08: .4byte gCurrentMove
-_0801FB0C: .4byte 0x02000000
-_0801FB10: .4byte 0x0001608c
-_0801FB14: .4byte gUnknown_081D9468
-_0801FB18: .4byte gBattleTextBuff1
-_0801FB1C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FB22:
- 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 atk19_faint_pokemon
-
- thumb_func_start atk1A_faint_animation
-atk1A_faint_animation: @ 801FB34
- push {r4,r5,lr}
- ldr r0, _0801FB64 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB5E
- ldr r5, _0801FB68 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FB6C @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FB5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB64: .4byte gBattleExecBuffer
-_0801FB68: .4byte gBattlescriptCurrInstr
-_0801FB6C: .4byte gActiveBank
- thumb_func_end atk1A_faint_animation
-
- thumb_func_start atk1B_faint_effects_clear
-atk1B_faint_effects_clear: @ 801FB70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0801FBC4 @ =gBattleExecBuffer
- ldr r6, [r0]
- cmp r6, 0
- bne _0801FBBC
- ldr r5, _0801FBC8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FBCC @ =gActiveBank
- strb r0, [r4]
- ldr r1, _0801FBD0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl UndoEffectsAfterFainting
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FBBC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FBC4: .4byte gBattleExecBuffer
-_0801FBC8: .4byte gBattlescriptCurrInstr
-_0801FBCC: .4byte gActiveBank
-_0801FBD0: .4byte gBattleMons
- thumb_func_end atk1B_faint_effects_clear
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 801FBD4
- push {r4,r5,lr}
- ldr r5, _0801FC30 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FC34 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FC38
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FC38
- str r3, [r5]
- b _0801FC40
- .align 2, 0
-_0801FC30: .4byte gBattlescriptCurrInstr
-_0801FC34: .4byte gBattleMons
-_0801FC38:
- ldr r1, _0801FC48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FC40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FC48: .4byte gBattlescriptCurrInstr
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifstatus2
-atk1D_jumpifstatus2: @ 801FC4C
- push {r4,r5,lr}
- ldr r5, _0801FCA8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FCAC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FCB0
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FCB0
- str r3, [r5]
- b _0801FCB8
- .align 2, 0
-_0801FCA8: .4byte gBattlescriptCurrInstr
-_0801FCAC: .4byte gBattleMons
-_0801FCB0:
- ldr r1, _0801FCC0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FCB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FCC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk1D_jumpifstatus2
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 801FCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _0801FD18 @ =gBattlescriptCurrInstr
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _0801FD24
- ldr r0, _0801FD1C @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD20 @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD18: .4byte gBattlescriptCurrInstr
-_0801FD1C: .4byte gBankAttacker
-_0801FD20: .4byte gLastUsedAbility
-_0801FD24:
- cmp r0, 0x9
- bne _0801FD5C
- ldr r0, _0801FD54 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD58 @ =gLastUsedAbility
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD54: .4byte gBankAttacker
-_0801FD58: .4byte gLastUsedAbility
-_0801FD5C:
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801FD90 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _0801FDA0
- ldr r0, _0801FD94 @ =gLastUsedAbility
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_0801FD80:
- bl RecordAbilityBattle
- ldr r0, _0801FD98 @ =0x02000000
- ldr r1, _0801FD9C @ =0x000160f8
- adds r0, r1
- strb r4, [r0]
- b _0801FDA6
- .align 2, 0
-_0801FD90: .4byte gBattleMons
-_0801FD94: .4byte gLastUsedAbility
-_0801FD98: .4byte 0x02000000
-_0801FD9C: .4byte 0x000160f8
-_0801FDA0:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FDA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start atk1F_jumpifsideaffecting
-atk1F_jumpifsideaffecting: @ 801FDB4
- push {r4-r6,lr}
- ldr r0, _0801FDCC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _0801FDD4
- ldr r0, _0801FDD0 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- b _0801FDDE
- .align 2, 0
-_0801FDCC: .4byte gBattlescriptCurrInstr
-_0801FDD0: .4byte gBankAttacker
-_0801FDD4:
- ldr r0, _0801FE14 @ =gBankTarget
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r4, 0x1
-_0801FDDE:
- ands r4, r0
- ldr r6, _0801FE18 @ =gBattlescriptCurrInstr
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _0801FE1C @ =gSideAffecting
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0801FE20
- str r5, [r6]
- b _0801FE26
- .align 2, 0
-_0801FE14: .4byte gBankTarget
-_0801FE18: .4byte gBattlescriptCurrInstr
-_0801FE1C: .4byte gSideAffecting
-_0801FE20:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0801FE26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk1F_jumpifsideaffecting
-
- thumb_func_start atk20_jumpifstat
-atk20_jumpifstat: @ 801FE2C
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0801FE60 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0801FE64 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0801FEEA
- lsls r0, 2
- ldr r1, _0801FE68 @ =_0801FE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FE60: .4byte gBattlescriptCurrInstr
-_0801FE64: .4byte gBattleMons
-_0801FE68: .4byte _0801FE6C
- .align 2, 0
-_0801FE6C:
- .4byte _0801FE84
- .4byte _0801FE94
- .4byte _0801FEA4
- .4byte _0801FEB4
- .4byte _0801FEC4
- .4byte _0801FED8
-_0801FE84:
- ldr r0, _0801FE90 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FE90: .4byte gBattlescriptCurrInstr
-_0801FE94:
- ldr r0, _0801FEA0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEA0: .4byte gBattlescriptCurrInstr
-_0801FEA4:
- ldr r0, _0801FEB0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEB0: .4byte gBattlescriptCurrInstr
-_0801FEB4:
- ldr r0, _0801FEC0 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEC0: .4byte gBattlescriptCurrInstr
-_0801FEC4:
- ldr r0, _0801FED4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FED4: .4byte gBattlescriptCurrInstr
-_0801FED8:
- ldr r0, _0801FF0C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0801FEEA
-_0801FEE4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801FEEA:
- cmp r5, 0
- beq _0801FF10
- ldr r3, _0801FF0C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0801FF18
- .align 2, 0
-_0801FF0C: .4byte gBattlescriptCurrInstr
-_0801FF10:
- ldr r1, _0801FF20 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0801FF18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gBattlescriptCurrInstr
- thumb_func_end atk20_jumpifstat
-
- thumb_func_start atk21_jumpifstatus3
-atk21_jumpifstatus3: @ 801FF24
- push {r4-r6,lr}
- ldr r4, _0801FF78 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0801FF7C @ =gActiveBank
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0801FF84
- ldr r0, _0801FF80 @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _0801FF9C
- b _0801FF94
- .align 2, 0
-_0801FF78: .4byte gBattlescriptCurrInstr
-_0801FF7C: .4byte gActiveBank
-_0801FF80: .4byte gStatuses3
-_0801FF84:
- ldr r0, _0801FF98 @ =gStatuses3
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _0801FF9C
-_0801FF94:
- str r3, [r4]
- b _0801FFA2
- .align 2, 0
-_0801FF98: .4byte gStatuses3
-_0801FF9C:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_0801FFA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifstatus3
-
- thumb_func_start atk22_jumpiftype
-atk22_jumpiftype: @ 801FFA8
- push {r4-r6,lr}
- ldr r4, _0801FFF0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _0801FFF4 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _0801FFEC
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _0801FFF8
-_0801FFEC:
- str r6, [r4]
- b _0801FFFC
- .align 2, 0
-_0801FFF0: .4byte gBattlescriptCurrInstr
-_0801FFF4: .4byte gBattleMons
-_0801FFF8:
- adds r0, r3, 0x7
- str r0, [r4]
-_0801FFFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk22_jumpiftype
-
- thumb_func_start atk23_getexp
-atk23_getexp: @ 8020004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r0, _0802004C @ =0x0201605c
- mov r10, r0
- ldr r0, _08020050 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08020054 @ =gBank1
- strb r0, [r1]
- ldr r2, _08020058 @ =gSentPokesToOpponent
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- mov r0, r10
- subs r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08020040
- bl _08020996
-_08020040:
- lsls r0, 2
- ldr r1, _0802005C @ =_08020060
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802004C: .4byte 0x0201605c
-_08020050: .4byte gBattlescriptCurrInstr
-_08020054: .4byte gBank1
-_08020058: .4byte gSentPokesToOpponent
-_0802005C: .4byte _08020060
- .align 2, 0
-_08020060:
- .4byte _0802007C
- .4byte _080200FC
- .4byte _08020216
- .4byte _0802055C
- .4byte _08020648
- .4byte _08020910
- .4byte _0802096C
-_0802007C:
- ldr r4, _080200A8 @ =gBank1
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020098
- ldr r0, _080200AC @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _080200B0 @ =0x00000982
- ands r0, r1
- cmp r0, 0
- beq _080200BC
-_08020098:
- ldr r0, _080200B4 @ =0x02000000
- ldr r1, _080200B8 @ =0x0001600f
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- bl _08020996
- .align 2, 0
-_080200A8: .4byte gBank1
-_080200AC: .4byte gBattleTypeFlags
-_080200B0: .4byte 0x00000982
-_080200B4: .4byte 0x02000000
-_080200B8: .4byte 0x0001600f
-_080200BC:
- ldr r2, _080200E8 @ =0x02000000
- ldr r3, _080200EC @ =0x0001600f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080200F0 @ =0x00016113
- adds r2, r0
- ldr r3, _080200F4 @ =gBitTable
- ldr r1, _080200F8 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _08020996
- .align 2, 0
-_080200E8: .4byte 0x02000000
-_080200EC: .4byte 0x0001600f
-_080200F0: .4byte 0x00016113
-_080200F4: .4byte gBitTable
-_080200F8: .4byte gBattlePartyID
-_080200FC:
- movs r5, 0
- movs r7, 0
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
- mov r9, r1
-_08020104:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08020154 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- ldr r0, _08020158 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _08020138
- adds r5, 0x1
-_08020138:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802015C
- mov r3, r9
- ldrb r4, [r3]
- b _08020164
- .align 2, 0
-_08020150: .4byte gSaveBlock1 + 0x3688
-_08020154: .4byte gPlayerParty
-_08020158: .4byte gBitTable
-_0802015C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020164:
- cmp r4, 0x19
- bne _0802016A
- adds r6, 0x1
-_0802016A:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08020104
- ldr r3, _080201D0 @ =gBaseStats
- ldr r2, _080201D4 @ =gBattleMons
- ldr r0, _080201D8 @ =gBank1
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _080201E0
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080201B6
- movs r0, 0x1
- strh r0, [r1]
-_080201B6:
- ldr r5, _080201DC @ =gExpShareExp
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _080201FA
- movs r0, 0x1
- strh r0, [r5]
- b _080201FA
- .align 2, 0
-_080201D0: .4byte gBaseStats
-_080201D4: .4byte gBattleMons
-_080201D8: .4byte gBank1
-_080201DC: .4byte gExpShareExp
-_080201E0:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r10
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _080201F6
- movs r0, 0x1
- strh r0, [r2]
-_080201F6:
- ldr r0, _08020248 @ =gExpShareExp
- strh r6, [r0]
-_080201FA:
- ldr r1, _0802024C @ =0x02000000
- ldr r3, _08020250 @ =0x0001600f
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08020254 @ =0x00016018
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _08020258 @ =0x0001605f
- adds r1, r3
- mov r0, r8
- strb r0, [r1]
-_08020216:
- ldr r0, _0802025C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _08020220
- b _08020996
-_08020220:
- ldr r0, _0802024C @ =0x02000000
- ldr r1, _08020254 @ =0x00016018
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802026C
- ldr r0, _08020264 @ =gSaveBlock1
- ldr r2, _08020268 @ =0x00003688
- adds r0, r2
- ldrb r4, [r0]
- b _08020274
- .align 2, 0
-_08020248: .4byte gExpShareExp
-_0802024C: .4byte 0x02000000
-_08020250: .4byte 0x0001600f
-_08020254: .4byte 0x00016018
-_08020258: .4byte 0x0001605f
-_0802025C: .4byte gBattleExecBuffer
-_08020260: .4byte gPlayerParty
-_08020264: .4byte gSaveBlock1
-_08020268: .4byte 0x00003688
-_0802026C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020274:
- ldr r5, _08020294 @ =0x02000000
- cmp r4, 0x19
- beq _080202A0
- ldr r3, _08020298 @ =0x0001605f
- adds r1, r5, r3
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _080202A0
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, _0802029C @ =0x0001600f
- adds r1, r5, r0
- b _080202C8
- .align 2, 0
-_08020294: .4byte 0x02000000
-_08020298: .4byte 0x0001605f
-_0802029C: .4byte 0x0001600f
-_080202A0:
- ldr r1, _080202D4 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080202D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _080202E8
- ldr r2, _080202DC @ =0x0001605f
- adds r1, r5, r2
- ldrb r0, [r1]
- lsrs r0, 1
- movs r2, 0
- strb r0, [r1]
- ldr r3, _080202E0 @ =0x0001600f
- adds r1, r5, r3
-_080202C8:
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080202E4 @ =gBattleMoveDamage
- str r2, [r0]
- b _08020996
- .align 2, 0
-_080202D4: .4byte 0x00016018
-_080202D8: .4byte gPlayerParty
-_080202DC: .4byte 0x0001605f
-_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gBattleMoveDamage
-_080202E8:
- ldr r0, _0802034C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08020316
- ldr r0, _08020350 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08020316
- ldr r0, _08020354 @ =0x0001601b
- adds r5, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08020316
- bl sub_80325B8
- ldr r0, _08020358 @ =0x00000161
- bl PlayBGM
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08020316:
- ldr r5, _0802035C @ =0x02000000
- ldr r1, _08020360 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020364 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08020332
- b _0802051E
-_08020332:
- ldr r2, _08020368 @ =0x0001605f
- adds r0, r5, r2
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08020370
- ldr r1, _0802036C @ =gBattleMoveDamage
- mov r3, r10
- ldrh r0, [r3]
- str r0, [r1]
- mov r8, r1
- b _08020376
- .align 2, 0
-_0802034C: .4byte gBattleTypeFlags
-_08020350: .4byte gBattleMons
-_08020354: .4byte 0x0001601b
-_08020358: .4byte 0x00000161
-_0802035C: .4byte 0x02000000
-_08020360: .4byte 0x00016018
-_08020364: .4byte gPlayerParty
-_08020368: .4byte 0x0001605f
-_0802036C: .4byte gBattleMoveDamage
-_08020370:
- ldr r0, _080203EC @ =gBattleMoveDamage
- str r3, [r0]
- mov r8, r0
-_08020376:
- cmp r4, 0x19
- bne _08020386
- ldr r0, _080203F0 @ =gExpShareExp
- ldrh r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08020386:
- cmp r4, 0x28
- bne _0802039C
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802039C:
- ldr r0, _080203F4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080203B8
- ldr r4, _080203EC @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_080203B8:
- ldr r0, _080203F8 @ =0x02000000
- ldr r2, _080203FC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020400 @ =gPlayerParty
- adds r0, r1
- bl IsTradedMon
- lsls r0, 24
- cmp r0, 0
- beq _08020404
- ldr r4, _080203EC @ =gBattleMoveDamage
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r8, r4
- b _0802040A
- .align 2, 0
-_080203EC: .4byte gBattleMoveDamage
-_080203F0: .4byte gExpShareExp
-_080203F4: .4byte gBattleTypeFlags
-_080203F8: .4byte 0x02000000
-_080203FC: .4byte 0x00016018
-_08020400: .4byte gPlayerParty
-_08020404:
- ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gBattleMoveDamage
- mov r8, r3
-_0802040A:
- ldr r0, _08020444 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08020488
- ldr r1, _08020448 @ =gBattlePartyID
- ldr r0, _0802044C @ =0x02000000
- ldr r3, _08020450 @ =0x00016018
- adds r2, r0, r3
- ldrh r1, [r1, 0x4]
- adds r5, r0, 0
- ldr r4, _08020454 @ =gBitTable
- ldr r3, _08020458 @ =gAbsentBankFlags
- ldrb r2, [r2]
- cmp r1, r2
- bne _08020460
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08020460
- ldr r0, _0802045C @ =0x000160a2
- adds r1, r5, r0
- b _0802047C
- .align 2, 0
-_0802043C: .4byte 0x00000149
-_08020440: .4byte gBattleMoveDamage
-_08020444: .4byte gBattleTypeFlags
-_08020448: .4byte gBattlePartyID
-_0802044C: .4byte 0x02000000
-_08020450: .4byte 0x00016018
-_08020454: .4byte gBitTable
-_08020458: .4byte gAbsentBankFlags
-_0802045C: .4byte 0x000160a2
-_08020460:
- ldrb r2, [r3]
- ldr r0, [r4]
- ands r2, r0
- cmp r2, 0
- bne _08020478
- ldr r1, _08020474 @ =0x000160a2
- adds r0, r5, r1
- strb r2, [r0]
- b _08020490
- .align 2, 0
-_08020474: .4byte 0x000160a2
-_08020478:
- ldr r2, _08020484 @ =0x000160a2
- adds r1, r5, r2
-_0802047C:
- movs r0, 0x2
- strb r0, [r1]
- b _08020490
- .align 2, 0
-_08020484: .4byte 0x000160a2
-_08020488:
- ldr r0, _08020530 @ =0x02000000
- ldr r3, _08020534 @ =0x000160a2
- adds r0, r3
- strb r1, [r0]
-_08020490:
- ldr r1, _08020538 @ =gBattleTextBuff1
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r4, _08020530 @ =0x02000000
- ldr r0, _08020534 @ =0x000160a2
- adds r6, r4, r0
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r0, _0802053C @ =0x00016018
- adds r4, r0
- ldrb r0, [r4]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08020540 @ =gBattleTextBuff2
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r7, r3
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08020544 @ =gBattleTextBuff3
- strb r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r8
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r3
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldrb r1, [r6]
- movs r0, 0xD
- bl PrepareStringBattle
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020548 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802054C @ =gBattleMons
- ldr r1, _08020550 @ =gBank1
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_0802051E:
- ldr r1, _08020530 @ =0x02000000
- ldr r3, _08020554 @ =0x0001605f
- adds r2, r1, r3
- ldrb r0, [r2]
- lsrs r0, 1
- strb r0, [r2]
- ldr r0, _08020558 @ =0x0001600f
- adds r1, r0
- b _08020618
- .align 2, 0
-_08020530: .4byte 0x02000000
-_08020534: .4byte 0x000160a2
-_08020538: .4byte gBattleTextBuff1
-_0802053C: .4byte 0x00016018
-_08020540: .4byte gBattleTextBuff2
-_08020544: .4byte gBattleTextBuff3
-_08020548: .4byte gPlayerParty
-_0802054C: .4byte gBattleMons
-_08020550: .4byte gBank1
-_08020554: .4byte 0x0001605f
-_08020558: .4byte 0x0001600f
-_0802055C:
- ldr r0, _08020620 @ =gBattleExecBuffer
- ldr r2, [r0]
- cmp r2, 0
- beq _08020566
- b _08020996
-_08020566:
- ldr r1, _08020624 @ =gBattleBufferB
- ldr r4, _08020628 @ =0x02000000
- ldr r3, _0802062C @ =0x000160a2
- adds r3, r4
- mov r8, r3
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08020630 @ =0x00016018
- adds r7, r4, r0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08020634 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08020638 @ =0x00017180
- adds r4, r1
- strh r0, [r4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
- ldr r4, _0802063C @ =gActiveBank
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r4]
- ldrb r1, [r7]
- ldr r0, _08020640 @ =gBattleMoveDamage
- ldrh r2, [r0]
- movs r0, 0
- bl EmitExpBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08020612:
- ldr r1, _08020628 @ =0x02000000
- ldr r3, _08020644 @ =0x0001600f
- adds r1, r3
-_08020618:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020620: .4byte gBattleExecBuffer
-_08020624: .4byte gBattleBufferB
-_08020628: .4byte 0x02000000
-_0802062C: .4byte 0x000160a2
-_08020630: .4byte 0x00016018
-_08020634: .4byte gPlayerParty
-_08020638: .4byte 0x00017180
-_0802063C: .4byte gActiveBank
-_08020640: .4byte gBattleMoveDamage
-_08020644: .4byte 0x0001600f
-_08020648:
- ldr r0, _080208AC @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _08020652
- b _08020996
-_08020652:
- ldr r1, _080208B0 @ =gActiveBank
- ldr r4, _080208B4 @ =0x02000000
- ldr r2, _080208B8 @ =0x000160a2
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, _080208BC @ =gBattleBufferB
- ldrb r3, [r1]
- lsls r1, r3, 9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _0802066E
- b _080208F0
-_0802066E:
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802067A
- b _080208F0
-_0802067A:
- ldr r0, _080208C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080206A8
- ldr r1, _080208C4 @ =gBattlePartyID
- lsls r0, r3, 1
- adds r2, r0, r1
- ldr r0, _080208C8 @ =0x00016018
- adds r1, r4, r0
- ldrh r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080206A8
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080208CC @ =gPlayerParty
- adds r0, r1
- adds r1, r3, 0
- bl sub_80324F8
-_080206A8:
- ldr r1, _080208D0 @ =gBattleTextBuff1
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r5, _080208B0 @ =gActiveBank
- ldrb r0, [r5]
- strb r0, [r1, 0x2]
- ldr r0, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r6, r0, r3
- ldrb r0, [r6]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _080208D4 @ =gBattleTextBuff2
- strb r2, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _080208CC @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl b_movescr_stack_push_cursor
- ldr r2, _080208D8 @ =gLeveledUpInBattle
- ldr r1, _080208DC @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080208E0 @ =gBattlescriptCurrInstr
- ldr r0, _080208E4 @ =BattleScript_LevelUp
- str r0, [r1]
- ldr r4, _080208E8 @ =gBattleMoveDamage
- ldr r2, _080208BC @ =gBattleBufferB
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r0, _080208C4 @ =gBattlePartyID
- ldrb r1, [r6]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080207EC
- ldr r4, _080208EC @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _080207EC
- mov r0, r8
- muls r0, r1
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_080207EC:
- ldr r0, _080208C4 @ =gBattlePartyID
- ldr r1, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r7, r1, r3
- ldrb r2, [r7]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080208F6
- ldr r6, _080208EC @ =gBattleMons
- movs r0, 0xD8
- adds r0, r6
- mov r8, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _080208F6
- ldr r0, _080208C0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080208F6
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _080208CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r3, r8
- strh r0, [r3]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _080208F6
- .align 2, 0
-_080208AC: .4byte gBattleExecBuffer
-_080208B0: .4byte gActiveBank
-_080208B4: .4byte 0x02000000
-_080208B8: .4byte 0x000160a2
-_080208BC: .4byte gBattleBufferB
-_080208C0: .4byte gBattleTypeFlags
-_080208C4: .4byte gBattlePartyID
-_080208C8: .4byte 0x00016018
-_080208CC: .4byte gPlayerParty
-_080208D0: .4byte gBattleTextBuff1
-_080208D4: .4byte gBattleTextBuff2
-_080208D8: .4byte gLeveledUpInBattle
-_080208DC: .4byte gBitTable
-_080208E0: .4byte gBattlescriptCurrInstr
-_080208E4: .4byte BattleScript_LevelUp
-_080208E8: .4byte gBattleMoveDamage
-_080208EC: .4byte gBattleMons
-_080208F0:
- ldr r1, _08020904 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_080208F6:
- ldr r0, _08020908 @ =0x02000000
- ldr r1, _0802090C @ =0x0001600f
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020904: .4byte gBattleMoveDamage
-_08020908: .4byte 0x02000000
-_0802090C: .4byte 0x0001600f
-_08020910:
- ldr r0, _08020924 @ =gBattleMoveDamage
- ldr r0, [r0]
- cmp r0, 0
- beq _08020930
- ldr r0, _08020928 @ =0x02000000
- ldr r2, _0802092C @ =0x0001600f
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020924: .4byte gBattleMoveDamage
-_08020928: .4byte 0x02000000
-_0802092C: .4byte 0x0001600f
-_08020930:
- ldr r2, _08020950 @ =0x02000000
- ldr r3, _08020954 @ =0x00016018
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0802095C
- ldr r0, _08020958 @ =0x0001600f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020950: .4byte 0x02000000
-_08020954: .4byte 0x00016018
-_08020958: .4byte 0x0001600f
-_0802095C:
- ldr r3, _08020968 @ =0x0001600f
- adds r1, r2, r3
- movs r0, 0x6
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020968: .4byte 0x0001600f
-_0802096C:
- ldr r0, _080209A4 @ =gBattleExecBuffer
- ldr r5, [r0]
- cmp r5, 0
- bne _08020996
- ldr r4, _080209A8 @ =gBattleMons
- ldr r2, _080209AC @ =gBank1
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080209B0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08020996:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080209A4: .4byte gBattleExecBuffer
-_080209A8: .4byte gBattleMons
-_080209AC: .4byte gBank1
-_080209B0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk23_getexp
-
- thumb_func_start atk24
-atk24: @ 80209B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08020AF0 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _080209C6
- b _08020B46
-_080209C6:
- movs r5, 0
-_080209C8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AF4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080209F8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080209F8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_080209F8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080209C8
- cmp r6, 0
- bne _08020A0C
- ldr r0, _08020AF8 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08020A0C:
- movs r6, 0
- movs r5, 0
-_08020A10:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AFC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08020A40
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08020A40
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08020A40:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08020A10
- ldr r2, _08020AF8 @ =gBattleOutcome
- cmp r6, 0
- bne _08020A54
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08020A54:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08020B3E
- ldr r2, _08020B00 @ =gBattleTypeFlags
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08020B3E
- movs r2, 0
- movs r5, 0
- ldr r0, _08020B04 @ =gNoOfAllBanks
- ldrb r3, [r0]
- mov r12, r0
- ldr r7, _08020B08 @ =gBattlescriptCurrInstr
- cmp r2, r3
- bge _08020AA0
- ldr r0, _08020B0C @ =gHitMarker
- movs r1, 0x80
- lsls r1, 21
- ldr r6, [r0]
- adds r4, r3, 0
- ldr r3, _08020B10 @ =gSpecialStatuses
-_08020A84:
- adds r0, r1, 0
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08020A98
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020A98
- adds r2, 0x1
-_08020A98:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08020A84
-_08020AA0:
- movs r4, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r3, [r0]
- cmp r5, r3
- bge _08020ADA
- ldr r0, _08020B0C @ =gHitMarker
- movs r1, 0x80
- lsls r1, 21
- mov r12, r1
- ldr r1, [r0]
- ldr r0, _08020B10 @ =gSpecialStatuses
- adds r6, r3, 0
- adds r3, r0, 0
- adds r3, 0x14
-_08020ABE:
- mov r0, r12
- lsls r0, r5
- ands r0, r1
- cmp r0, 0
- beq _08020AD2
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020AD2
- adds r4, 0x1
-_08020AD2:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r6
- blt _08020ABE
-_08020ADA:
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08020B14
- adds r0, r4, r2
- cmp r0, 0x1
- bgt _08020B1C
- b _08020B36
- .align 2, 0
-_08020AF0: .4byte gBattleExecBuffer
-_08020AF4: .4byte gPlayerParty
-_08020AF8: .4byte gBattleOutcome
-_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gBattleTypeFlags
-_08020B04: .4byte gNoOfAllBanks
-_08020B08: .4byte gBattlescriptCurrInstr
-_08020B0C: .4byte gHitMarker
-_08020B10: .4byte gSpecialStatuses
-_08020B14:
- cmp r4, 0
- beq _08020B36
- cmp r2, 0
- beq _08020B36
-_08020B1C:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08020B46
-_08020B36:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08020B46
-_08020B3E:
- ldr r1, _08020B50 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08020B46:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08020B50: .4byte gBattlescriptCurrInstr
- thumb_func_end atk24
-
- thumb_func_start sub_8020B54
-sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gBattleMoveFlags
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08020B84 @ =0x02000000
- ldr r1, _08020B88 @ =0x0001601f
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08020B8C @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _08020B90 @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _08020B94 @ =gHitMarker
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _08020B98 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020B80: .4byte gBattleMoveFlags
-_08020B84: .4byte 0x02000000
-_08020B88: .4byte 0x0001601f
-_08020B8C: .4byte gCritMultiplier
-_08020B90: .4byte gBattleCommunication
-_08020B94: .4byte gHitMarker
-_08020B98: .4byte 0xffffbfff
- thumb_func_end sub_8020B54
-
- thumb_func_start atk25_move_values_cleanup
-atk25_move_values_cleanup: @ 8020B9C
- push {lr}
- bl sub_8020B54
- ldr r1, _08020BB0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08020BB0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk25_move_values_cleanup
-
- thumb_func_start atk26_set_multihit
-atk26_set_multihit: @ 8020BB4
- ldr r3, _08020BC4 @ =gMultiHitCounter
- ldr r2, _08020BC8 @ =gBattlescriptCurrInstr
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020BC4: .4byte gMultiHitCounter
-_08020BC8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk26_set_multihit
-
- thumb_func_start atk27_decrement_multihit
-atk27_decrement_multihit: @ 8020BCC
- push {lr}
- ldr r1, _08020BE8 @ =gMultiHitCounter
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08020BF0
- ldr r1, _08020BEC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08020C0A
- .align 2, 0
-_08020BE8: .4byte gMultiHitCounter
-_08020BEC: .4byte gBattlescriptCurrInstr
-_08020BF0:
- ldr r3, _08020C10 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08020C0A:
- pop {r0}
- bx r0
- .align 2, 0
-_08020C10: .4byte gBattlescriptCurrInstr
- thumb_func_end atk27_decrement_multihit
-
- thumb_func_start atk28_goto
-atk28_goto: @ 8020C14
- ldr r3, _08020C30 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08020C30: .4byte gBattlescriptCurrInstr
- thumb_func_end atk28_goto
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8020C34
- push {r4-r6,lr}
- ldr r3, _08020C78 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020CCC
- lsls r0, r6, 2
- ldr r1, _08020C7C @ =_08020C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020C78: .4byte gBattlescriptCurrInstr
-_08020C7C: .4byte _08020C80
- .align 2, 0
-_08020C80:
- .4byte _08020C98
- .4byte _08020CA0
- .4byte _08020CA8
- .4byte _08020CB0
- .4byte _08020CB8
- .4byte _08020CC2
-_08020C98:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08020CCC
- b _08020CCA
-_08020CA0:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08020CCC
- b _08020CCA
-_08020CA8:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08020CCC
- b _08020CCA
-_08020CB0:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08020CCC
- b _08020CCA
-_08020CB8:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020CCC
- b _08020CCA
-_08020CC2:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020CCC
-_08020CCA:
- str r2, [r3]
-_08020CCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start atk2A_jumpifhalfword
-atk2A_jumpifhalfword: @ 8020CD4
- push {r4-r6,lr}
- ldr r3, _08020D20 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020D74
- lsls r0, r6, 2
- ldr r1, _08020D24 @ =_08020D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020D20: .4byte gBattlescriptCurrInstr
-_08020D24: .4byte _08020D28
- .align 2, 0
-_08020D28:
- .4byte _08020D40
- .4byte _08020D48
- .4byte _08020D50
- .4byte _08020D58
- .4byte _08020D60
- .4byte _08020D6A
-_08020D40:
- ldrh r0, [r5]
- cmp r0, r4
- bne _08020D74
- b _08020D72
-_08020D48:
- ldrh r0, [r5]
- cmp r0, r4
- beq _08020D74
- b _08020D72
-_08020D50:
- ldrh r0, [r5]
- cmp r0, r4
- bls _08020D74
- b _08020D72
-_08020D58:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _08020D74
- b _08020D72
-_08020D60:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020D74
- b _08020D72
-_08020D6A:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020D74
-_08020D72:
- str r2, [r3]
-_08020D74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2A_jumpifhalfword
-
- thumb_func_start atk2B_jumpifword
-atk2B_jumpifword: @ 8020D7C
- push {r4-r6,lr}
- ldr r3, _08020DD4 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020E28
- lsls r0, r6, 2
- ldr r1, _08020DD8 @ =_08020DDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DD4: .4byte gBattlescriptCurrInstr
-_08020DD8: .4byte _08020DDC
- .align 2, 0
-_08020DDC:
- .4byte _08020DF4
- .4byte _08020DFC
- .4byte _08020E04
- .4byte _08020E0C
- .4byte _08020E14
- .4byte _08020E1E
-_08020DF4:
- ldr r0, [r5]
- cmp r0, r4
- bne _08020E28
- b _08020E26
-_08020DFC:
- ldr r0, [r5]
- cmp r0, r4
- beq _08020E28
- b _08020E26
-_08020E04:
- ldr r0, [r5]
- cmp r0, r4
- bls _08020E28
- b _08020E26
-_08020E0C:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08020E28
- b _08020E26
-_08020E14:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08020E28
- b _08020E26
-_08020E1E:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08020E28
-_08020E26:
- str r2, [r3]
-_08020E28:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2B_jumpifword
-
- thumb_func_start atk2C_jumpifarrayequal
-atk2C_jumpifarrayequal: @ 8020E30
- push {r4-r7,lr}
- ldr r2, _08020E88 @ =gBattlescriptCurrInstr
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _08020E8C
- adds r0, r3, 0
- b _08020EA4
- .align 2, 0
-_08020E88: .4byte gBattlescriptCurrInstr
-_08020E8C:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08020E8C
- ldr r0, [r2]
-_08020EA4:
- adds r0, 0xE
- str r0, [r2]
-_08020EA8:
- cmp r1, r6
- bne _08020EB0
- mov r7, r12
- str r7, [r2]
-_08020EB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2C_jumpifarrayequal
-
- thumb_func_start atk2D_jumpifarraynotequal
-atk2D_jumpifarraynotequal: @ 8020EB8
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08020F2C @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _08020F22
-_08020F06:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08020F14
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08020F14:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08020F06
-_08020F22:
- cmp r7, r6
- beq _08020F30
- mov r0, r12
- b _08020F34
- .align 2, 0
-_08020F2C: .4byte gBattlescriptCurrInstr
-_08020F30:
- ldr r0, [r3]
- adds r0, 0xE
-_08020F34:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2D_jumpifarraynotequal
-
- thumb_func_start atk2E_setbyte
-atk2E_setbyte: @ 8020F3C
- ldr r3, _08020F60 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F60: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2E_setbyte
-
- thumb_func_start atk2F_addbyte
-atk2F_addbyte: @ 8020F64
- ldr r3, _08020F8C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F8C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2F_addbyte
-
- thumb_func_start atk30_subbyte
-atk30_subbyte: @ 8020F90
- ldr r3, _08020FB8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020FB8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk30_subbyte
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 8020FBC
- push {r4-r6,lr}
- ldr r3, _0802100C @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08021000
-_08020FF2:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08020FF2
-_08021000:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802100C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_copyarray_withindex
-atk32_copyarray_withindex: @ 8021010
- push {r4-r7,lr}
- ldr r3, _08021078 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _0802106C
-_0802105A:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _0802105A
-_0802106C:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021078: .4byte gBattlescriptCurrInstr
- thumb_func_end atk32_copyarray_withindex
-
- thumb_func_start atk33_orbyte
-atk33_orbyte: @ 802107C
- ldr r3, _080210A4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080210A4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk33_orbyte
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 80210A8
- push {r4,lr}
- ldr r4, _080210DC @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080210DC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 80210E0
- push {r4,lr}
- ldr r4, _08021120 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021120: .4byte gBattlescriptCurrInstr
- thumb_func_end atk35_orword
-
- thumb_func_start atk36_bicbyte
-atk36_bicbyte: @ 8021124
- ldr r3, _0802114C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802114C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk36_bicbyte
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8021150
- push {r4,lr}
- ldr r4, _08021184 @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021184: .4byte gBattlescriptCurrInstr
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8021188
- push {r4,lr}
- ldr r4, _080211C8 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080211C8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 80211CC
- push {r4,r5,lr}
- ldr r0, _08021200 @ =gBattleExecBuffer
- ldr r4, [r0]
- cmp r4, 0
- bne _080211F8
- ldr r5, _08021204 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08021208 @ =gPauseCounterBattle
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _080211F8
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_080211F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021200: .4byte gBattleExecBuffer
-_08021204: .4byte gBattlescriptCurrInstr
-_08021208: .4byte gPauseCounterBattle
- thumb_func_end atk39_pause
-
- thumb_func_start atk3A_waitstate
-atk3A_waitstate: @ 802120C
- push {lr}
- ldr r0, _08021224 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802121E
- ldr r1, _08021228 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802121E:
- pop {r0}
- bx r0
- .align 2, 0
-_08021224: .4byte gBattleExecBuffer
-_08021228: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3A_waitstate
-
- thumb_func_start atk3B_healthbar_update
-atk3B_healthbar_update: @ 802122C
- push {lr}
- ldr r0, _08021240 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0802124C
- ldr r0, _08021244 @ =gActiveBank
- ldr r1, _08021248 @ =gBankTarget
- b _08021250
- .align 2, 0
-_08021240: .4byte gBattlescriptCurrInstr
-_08021244: .4byte gActiveBank
-_08021248: .4byte gBankTarget
-_0802124C:
- ldr r0, _08021274 @ =gActiveBank
- ldr r1, _08021278 @ =gBankAttacker
-_08021250:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0802127C @ =gBattleMoveDamage
- ldrh r1, [r0]
- movs r0, 0
- bl EmitHealthBarUpdate
- ldr r0, _08021274 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08021280 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08021274: .4byte gActiveBank
-_08021278: .4byte gBankAttacker
-_0802127C: .4byte gBattleMoveDamage
-_08021280: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3B_healthbar_update
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8021284
- push {lr}
- bl b_movescr_stack_pop_cursor
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start atk3D_end
-atk3D_end: @ 8021290
- ldr r0, _080212A4 @ =gBattleMoveFlags
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080212A8 @ =gActiveBank
- strb r1, [r0]
- ldr r1, _080212AC @ =gFightStateTracker
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212A4: .4byte gBattleMoveFlags
-_080212A8: .4byte gActiveBank
-_080212AC: .4byte gFightStateTracker
- thumb_func_end atk3D_end
-
- thumb_func_start atk3E_end2
-atk3E_end2: @ 80212B0
- ldr r1, _080212C0 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080212C4 @ =gFightStateTracker
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212C0: .4byte gActiveBank
-_080212C4: .4byte gFightStateTracker
- thumb_func_end atk3E_end2
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 80212C8
- push {lr}
- bl b_movescr_stack_pop_cursor
- ldr r2, _080212F0 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _080212DE
- subs r0, 0x1
- strb r0, [r1]
-_080212DE:
- ldr r0, _080212F4 @ =gBattleMainFunc
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080212F0: .4byte 0x02017140
-_080212F4: .4byte gBattleMainFunc
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 80212F8
- push {r4,lr}
- ldr r4, _08021324 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x5
- bl b_movescr_stack_push
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021324: .4byte gBattlescriptCurrInstr
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8021328
- push {r4,lr}
- ldr r4, _08021370 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08021374 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08021356
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08021378
-_08021356:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802137C
- .align 2, 0
-_08021370: .4byte gBattlescriptCurrInstr
-_08021374: .4byte gBattleMons
-_08021378:
- adds r0, r3, 0x7
- str r0, [r4]
-_0802137C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start atk43_jumpifabilitypresent
-atk43_jumpifabilitypresent: @ 8021384
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080213BC @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080213C0
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _080213C6
- .align 2, 0
-_080213BC: .4byte gBattlescriptCurrInstr
-_080213C0:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_080213C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk43_jumpifabilitypresent
-
- thumb_func_start atk44
-atk44: @ 80213D0
- ldr r1, _080213E4 @ =0x02000000
- ldr r0, _080213E8 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r2, _080213EC @ =0x00016060
- adds r0, r2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080213E4: .4byte 0x02000000
-_080213E8: .4byte gBankAttacker
-_080213EC: .4byte 0x00016060
- thumb_func_end atk44
-
- thumb_func_start atk45_playanimation
-atk45_playanimation: @ 80213F0
- push {r4-r6,lr}
- ldr r5, _08021444 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _08021448 @ =gActiveBank
- strb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r4, [r2, 0x2]
- adds r0, r4, 0
- cmp r0, 0x1
- beq _08021426
- cmp r0, 0x11
- beq _08021426
- cmp r0, 0x2
- bne _0802144C
-_08021426:
- ldr r4, _08021444 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08021448 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _080214AE
- .align 2, 0
-_08021444: .4byte gBattlescriptCurrInstr
-_08021448: .4byte gActiveBank
-_0802144C:
- ldr r0, _08021464 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802146C
- adds r0, r2, 0x7
- bl b_movescr_stack_push
- ldr r0, _08021468 @ =BattleScript_Pausex20
- b _080214AC
- .align 2, 0
-_08021464: .4byte gHitMarker
-_08021468: .4byte BattleScript_Pausex20
-_0802146C:
- adds r0, r4, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021498
- ldr r1, _08021490 @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021494 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021498
- adds r0, r2, 0x7
- b _080214AC
- .align 2, 0
-_08021490: .4byte gStatuses3
-_08021494: .4byte 0x000400c0
-_08021498:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x7
-_080214AC:
- str r0, [r5]
-_080214AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk45_playanimation
-
- thumb_func_start atk46_playanimation2
-atk46_playanimation2: @ 80214B4
- push {r4-r7,lr}
- ldr r6, _0802151C @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08021520 @ =gActiveBank
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _080214FE
- cmp r0, 0x11
- beq _080214FE
- cmp r0, 0x2
- bne _08021524
-_080214FE:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldr r0, _08021520 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802151C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802157A
- .align 2, 0
-_0802151C: .4byte gBattlescriptCurrInstr
-_08021520: .4byte gActiveBank
-_08021524:
- ldr r0, _08021534 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08021538
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_08021534: .4byte gHitMarker
-_08021538:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021564
- ldr r1, _0802155C @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021560 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021564
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_0802155C: .4byte gStatuses3
-_08021560: .4byte 0x000400c0
-_08021564:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl EmitBattleAnimation
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
-_08021576:
- adds r0, 0xA
- str r0, [r6]
-_0802157A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk46_playanimation2
-
- thumb_func_start atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
-atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues: @ 8021580
- push {r4,lr}
- movs r3, 0
- ldr r0, _080215A0 @ =0x02000000
- ldr r2, _080215A4 @ =0x0001601e
- adds r1, r0, r2
- ldrb r1, [r1]
- movs r2, 0xF0
- ands r2, r1
- adds r4, r0, 0
- cmp r2, 0x20
- beq _080215B6
- cmp r2, 0x20
- bgt _080215A8
- cmp r2, 0x10
- beq _080215B2
- b _080215C0
- .align 2, 0
-_080215A0: .4byte 0x02000000
-_080215A4: .4byte 0x0001601e
-_080215A8:
- cmp r2, 0x90
- beq _080215BA
- cmp r2, 0xA0
- beq _080215BE
- b _080215C0
-_080215B2:
- movs r3, 0xF
- b _080215C0
-_080215B6:
- movs r3, 0x27
- b _080215C0
-_080215BA:
- movs r3, 0x16
- b _080215C0
-_080215BE:
- movs r3, 0x2E
-_080215C0:
- ldr r1, _080215EC @ =0x0001601e
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- ldr r2, _080215F0 @ =0x000160a4
- adds r1, r4, r2
- movs r2, 0
- strb r0, [r1]
- ldr r1, _080215F4 @ =0x000160a5
- adds r0, r4, r1
- strb r2, [r0]
- ldr r1, _080215F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080215EC: .4byte 0x0001601e
-_080215F0: .4byte 0x000160a4
-_080215F4: .4byte 0x000160a5
-_080215F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 80215FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08021670 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8015150
- ldr r2, _08021674 @ =gActiveBank
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08021710
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802163C
- movs r1, 0x2D
-_0802163C:
- cmp r4, 0
- beq _080216E4
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08021678 @ =gUnknown_02024A98
- mov r9, r0
- lsls r5, r1, 16
-_0802164A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080216D6
- ldr r0, _08021670 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802167C
- ldr r0, _08021674 @ =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080216C4
- .align 2, 0
-_08021670: .4byte gBattlescriptCurrInstr
-_08021674: .4byte gActiveBank
-_08021678: .4byte gUnknown_02024A98
-_0802167C:
- ldr r6, _08021700 @ =gActiveBank
- ldrb r0, [r6]
- str r3, [sp]
- bl GetBankIdentity
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08021704 @ =gSideTimer
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r3, [sp]
- cmp r0, 0
- bne _080216D6
- ldr r0, _08021708 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080216D6
- cmp r0, 0x49
- beq _080216D6
- cmp r0, 0x33
- bne _080216BA
- cmp r7, 0x6
- beq _080216D6
-_080216BA:
- cmp r0, 0x34
- bne _080216C2
- cmp r7, 0x1
- beq _080216D6
-_080216C2:
- adds r0, r7, r2
-_080216C4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080216D6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080216D6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802164A
-_080216E4:
- ldr r0, _0802170C @ =gBattlescriptCurrInstr
- mov r9, r0
- cmp r3, 0x1
- ble _08021772
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x3A
- b _08021770
- .align 2, 0
-_08021700: .4byte gActiveBank
-_08021704: .4byte gSideTimer
-_08021708: .4byte gBattleMons
-_0802170C: .4byte gBattlescriptCurrInstr
-_08021710:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802171C
- movs r1, 0x26
-_0802171C:
- mov r9, r5
- cmp r4, 0
- beq _08021758
- ldr r6, _0802178C @ =gUnknown_02024A98
- adds r5, r2, 0
- lsls r2, r1, 16
-_08021728:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802174A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802174A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802174A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08021728
-_08021758:
- cmp r3, 0x1
- ble _08021772
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x38
-_08021770:
- mov r8, r0
-_08021772:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08021790
- cmp r3, 0x1
- bgt _08021790
- adds r0, r2, 0x4
- mov r1, r9
- b _080217E6
- .align 2, 0
-_0802178C: .4byte gUnknown_02024A98
-_08021790:
- cmp r3, 0
- beq _080217E0
- ldr r0, _080217D0 @ =0x02000000
- ldr r1, _080217D4 @ =0x000160dc
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _080217E0
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl EmitBattleAnimation
- ldr r0, _080217D8 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r0, _080217DC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080217CC
- cmp r3, 0x1
- ble _080217CC
- movs r0, 0x1
- strb r0, [r4]
-_080217CC:
- ldr r1, _080217DC @ =gBattlescriptCurrInstr
- b _080217E2
- .align 2, 0
-_080217D0: .4byte 0x02000000
-_080217D4: .4byte 0x000160dc
-_080217D8: .4byte gActiveBank
-_080217DC: .4byte gBattlescriptCurrInstr
-_080217E0:
- mov r1, r9
-_080217E2:
- ldr r0, [r1]
- adds r0, 0x4
-_080217E6:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start sub_80217F8
-sub_80217F8: @ 80217F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r10, r0
- ldr r0, _08021834 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- str r1, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _08021838 @ =gBattleMons
- ldr r0, _0802183C @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08021844
- ldr r1, _08021840 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _0802184E
- .align 2, 0
-_08021834: .4byte gBattlescriptCurrInstr
-_08021838: .4byte gBattleMons
-_0802183C: .4byte gBankAttacker
-_08021840: .4byte gEnigmaBerries
-_08021844:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0802184E:
- str r0, [sp, 0x8]
- ldr r0, _0802186C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, _08021870 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0xC]
- subs r0, 0xCC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080218C0
- movs r2, 0x3F
- ands r2, r0
- str r2, [sp, 0x4]
- b _080218D2
- .align 2, 0
-_0802186C: .4byte gBankAttacker
-_08021870: .4byte 0x020160e8
-_08021874:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _080218AC @ =0x02000000
- ldr r3, _080218B0 @ =0x0001600c
- adds r0, r3
- strb r4, [r0]
- bl sub_8020B54
- ldr r2, _080218B4 @ =gUnknown_081D6BBC
- mov r4, r8
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _080218B8 @ =gBattlescriptCurrInstr
- ldr r0, _080218BC @ =gUnknown_081D9B2D
- bl _0802229C
- .align 2, 0
-_080218AC: .4byte 0x02000000
-_080218B0: .4byte 0x0001600c
-_080218B4: .4byte gUnknown_081D6BBC
-_080218B8: .4byte gBattlescriptCurrInstr
-_080218BC: .4byte gUnknown_081D9B2D
-_080218C0:
- ldr r2, _080218D8 @ =gBattleMoves
- ldr r0, _080218DC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_080218D2:
- ldr r5, _080218E0 @ =0x02000000
- mov r12, r5
- b _080218EE
- .align 2, 0
-_080218D8: .4byte gBattleMoves
-_080218DC: .4byte gCurrentMove
-_080218E0: .4byte 0x02000000
-_080218E4:
- mov r0, r10
- cmp r0, 0
- beq _080218EE
- bl _08022286
-_080218EE:
- ldr r0, _08021908 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080218FC
- bl _0802224E
-_080218FC:
- lsls r0, 2
- ldr r1, _0802190C @ =_08021910
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021908: .4byte 0x0001600c
-_0802190C: .4byte _08021910
- .align 2, 0
-_08021910:
- .4byte _08021958
- .4byte _08021A34
- .4byte _08021AF0
- .4byte _08021B20
- .4byte _08021B44
- .4byte _08021B78
- .4byte _08021B9C
- .4byte _08021C40
- .4byte _08021C78
- .4byte _08021CA8
- .4byte _08021CCC
- .4byte _08021D18
- .4byte _08021DAC
- .4byte _08021E30
- .4byte _08021E70
- .4byte _08022068
- .4byte _080221C0
- .4byte _0802224E
-_08021958:
- ldr r5, _08021A08 @ =gBattleMons
- ldr r2, _08021A0C @ =gBankTarget
- ldrb r4, [r2]
- movs r6, 0x58
- adds r3, r4, 0
- muls r3, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080219FE
- adds r0, r3, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080219FE
- ldr r0, _08021A10 @ =gBankAttacker
- ldrb r1, [r0]
- cmp r1, r4
- beq _080219FE
- adds r0, r1, 0
- bl GetBankSide
- adds r4, r0, 0
- ldr r1, _08021A0C @ =gBankTarget
- ldrb r0, [r1]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080219FE
- ldr r0, _08021A14 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080219FE
- ldr r2, _08021A18 @ =gProtectStructs
- ldr r4, _08021A0C @ =gBankTarget
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080219C8
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080219FE
-_080219C8:
- ldr r2, _08021A1C @ =gBattleMoves
- ldr r0, _08021A20 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080219FE
- adds r0, r3, 0
- muls r0, r6
- adds r1, r0, r5
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080219FE
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl b_movescr_stack_push_cursor
- ldr r1, _08021A24 @ =gBattlescriptCurrInstr
- ldr r0, _08021A28 @ =gUnknown_081D9132
- str r0, [r1]
- movs r5, 0x1
- mov r10, r5
-_080219FE:
- ldr r2, _08021A2C @ =0x02000000
- ldr r0, _08021A30 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021A08: .4byte gBattleMons
-_08021A0C: .4byte gBankTarget
-_08021A10: .4byte gBankAttacker
-_08021A14: .4byte gBattleMoveFlags
-_08021A18: .4byte gProtectStructs
-_08021A1C: .4byte gBattleMoves
-_08021A20: .4byte gCurrentMove
-_08021A24: .4byte gBattlescriptCurrInstr
-_08021A28: .4byte gUnknown_081D9132
-_08021A2C: .4byte 0x02000000
-_08021A30: .4byte 0x0001600c
-_08021A34:
- ldr r2, _08021AD0 @ =gBattleMons
- ldr r1, _08021AD4 @ =gBankTarget
- ldrb r4, [r1]
- movs r3, 0x58
- mov r12, r3
- mov r3, r12
- muls r3, r4
- adds r7, r2, 0
- adds r7, 0x4C
- adds r6, r3, r7
- ldr r5, [r6]
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- bne _08021A54
- b _08021DFA
-_08021A54:
- adds r0, r3, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08021A5E
- b _08021DFA
-_08021A5E:
- ldr r0, _08021AD8 @ =gBankAttacker
- ldrb r0, [r0]
- cmp r0, r4
- bne _08021A68
- b _08021DFA
-_08021A68:
- ldr r0, _08021ADC @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08021A7C
- b _08021DFA
-_08021A7C:
- ldr r0, _08021AE0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021A8A
- b _08021DFA
-_08021A8A:
- ldr r4, [sp, 0x4]
- cmp r4, 0xA
- beq _08021A92
- b _08021DFA
-_08021A92:
- movs r0, 0x21
- negs r0, r0
- ands r5, r0
- str r5, [r6]
- ldr r4, _08021AE4 @ =gActiveBank
- ldr r5, _08021AD4 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r4]
- ldrb r0, [r5]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- bl b_movescr_stack_push_cursor
- ldr r1, _08021AE8 @ =gBattlescriptCurrInstr
- ldr r0, _08021AEC @ =gUnknown_081D955D
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _08021DFA
- .align 2, 0
-_08021AD0: .4byte gBattleMons
-_08021AD4: .4byte gBankTarget
-_08021AD8: .4byte gBankAttacker
-_08021ADC: .4byte gSpecialStatuses
-_08021AE0: .4byte gBattleMoveFlags
-_08021AE4: .4byte gActiveBank
-_08021AE8: .4byte gBattlescriptCurrInstr
-_08021AEC: .4byte gUnknown_081D955D
-_08021AF0:
- ldr r0, _08021B14 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08021B0C
- movs r4, 0x1
- mov r10, r4
-_08021B0C:
- ldr r2, _08021B18 @ =0x02000000
- ldr r5, _08021B1C @ =0x0001600c
- adds r1, r2, r5
- b _08021E00
- .align 2, 0
-_08021B14: .4byte gBankTarget
-_08021B18: .4byte 0x02000000
-_08021B1C: .4byte 0x0001600c
-_08021B20:
- ldr r0, _08021B40 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08021B3A
- b _08021DFA
-_08021B3A:
- movs r0, 0x1
- mov r10, r0
- b _08021DFA
- .align 2, 0
-_08021B40: .4byte gBankTarget
-_08021B44:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08021B68
- movs r4, 0x1
- mov r10, r4
- ldr r5, _08021B64 @ =0x02000000
- mov r12, r5
- b _0802224E
- .align 2, 0
-_08021B64: .4byte 0x02000000
-_08021B68:
- ldr r2, _08021B70 @ =0x02000000
- ldr r0, _08021B74 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021B70: .4byte 0x02000000
-_08021B74: .4byte 0x0001600c
-_08021B78:
- ldr r0, _08021B98 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08021B92
- b _08021DFA
-_08021B92:
- movs r1, 0x1
- mov r10, r1
- b _08021DFA
- .align 2, 0
-_08021B98: .4byte gBankAttacker
-_08021B9C:
- ldr r0, _08021C28 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021BE0
- ldr r4, [sp, 0x8]
- cmp r4, 0x1D
- bne _08021BE0
- ldr r0, _08021C2C @ =gUnknown_02024BE8
- ldrh r2, [r0]
- adds r7, r0, 0
- cmp r2, 0xA5
- beq _08021BE0
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- cmp r1, 0
- beq _08021BC8
- ldr r0, _08021C30 @ =0x0000ffff
- cmp r1, r0
- bne _08021BE0
-_08021BC8:
- cmp r2, 0xE2
- bne _08021BDA
- ldr r0, _08021C34 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08021BDA
- b _08022244
-_08021BDA:
- ldrh r0, [r7]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08021BE0:
- movs r4, 0
- ldr r2, _08021C38 @ =gBattleMons
- ldr r3, _08021C3C @ =gBankAttacker
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08021C18
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_08021C02:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08021C18
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _08021C02
-_08021C18:
- cmp r4, 0x4
- beq _08021C1E
- b _08022244
-_08021C1E:
- movs r0, 0
- ldr r1, [sp, 0xC]
-_08021C22:
- strh r0, [r1]
- b _08022244
- .align 2, 0
-_08021C28: .4byte gHitMarker
-_08021C2C: .4byte gUnknown_02024BE8
-_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gBattleMoveFlags
-_08021C38: .4byte gBattleMons
-_08021C3C: .4byte gBankAttacker
-_08021C40:
- movs r4, 0
- ldr r0, _08021C6C @ =gNoOfAllBanks
- ldrb r2, [r0]
- cmp r4, r2
- blt _08021C4C
- b _08022244
-_08021C4C:
- movs r5, 0
- ldr r2, _08021C70 @ =0x020160f0
- ldr r3, _08021C74 @ =gBattleMons
-_08021C52:
- ldrh r1, [r2]
- cmp r1, 0
- beq _08021C5C
- strh r1, [r3, 0x2E]
- strh r5, [r2]
-_08021C5C:
- adds r2, 0x2
- adds r3, 0x58
- adds r4, 0x1
- ldrb r1, [r0]
- cmp r4, r1
- blt _08021C52
- b _08022244
- .align 2, 0
-_08021C6C: .4byte gNoOfAllBanks
-_08021C70: .4byte 0x020160f0
-_08021C74: .4byte gBattleMons
-_08021C78:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021C98
- movs r2, 0x1
- mov r10, r2
- ldr r3, _08021C94 @ =0x02000000
- mov r12, r3
- b _0802224E
- .align 2, 0
-_08021C94: .4byte 0x02000000
-_08021C98:
- ldr r2, _08021CA0 @ =0x02000000
- ldr r4, _08021CA4 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021CA0: .4byte 0x02000000
-_08021CA4: .4byte 0x0001600c
-_08021CA8:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021CBC
- movs r5, 0x1
- mov r10, r5
-_08021CBC:
- ldr r2, _08021CC4 @ =0x02000000
- ldr r0, _08021CC8 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021CC4: .4byte 0x02000000
-_08021CC8: .4byte 0x0001600c
-_08021CCC:
- ldr r1, _08021D04 @ =gStatuses3
- ldr r0, _08021D08 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D0C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021CE2
- b _08021DFA
-_08021CE2:
- ldr r0, _08021D10 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08021CF0
- b _08021DFA
-_08021CF0:
- ldr r4, _08021D14 @ =gActiveBank
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08021DFA
- .align 2, 0
-_08021D04: .4byte gStatuses3
-_08021D08: .4byte gBankAttacker
-_08021D0C: .4byte 0x000400c0
-_08021D10: .4byte gHitMarker
-_08021D14: .4byte gActiveBank
-_08021D18:
- ldr r0, _08021D88 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08021D44
- ldr r1, _08021D8C @ =gStatuses3
- ldr r0, _08021D90 @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D94 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021D44
- adds r0, r2, 0
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08021D7E
-_08021D44:
- ldr r4, _08021D98 @ =gActiveBank
- ldr r5, _08021D90 @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _08021D8C @ =gStatuses3
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08021D9C @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _08021DA0 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08021D7E:
- ldr r2, _08021DA4 @ =0x02000000
- ldr r4, _08021DA8 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021D88: .4byte gBattleMoveFlags
-_08021D8C: .4byte gStatuses3
-_08021D90: .4byte gBankAttacker
-_08021D94: .4byte 0x000400c0
-_08021D98: .4byte gActiveBank
-_08021D9C: .4byte 0xfffbff3f
-_08021DA0: .4byte gSpecialStatuses
-_08021DA4: .4byte 0x02000000
-_08021DA8: .4byte 0x0001600c
-_08021DAC:
- ldr r2, _08021E0C @ =gSpecialStatuses
- ldr r1, _08021E10 @ =gBankTarget
- ldrb r3, [r1]
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08021DFA
- ldr r0, _08021E14 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08021DFA
- ldr r5, _08021E18 @ =gStatuses3
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08021E1C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021DFA
- ldr r4, _08021E20 @ =gActiveBank
- strb r3, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, _08021E10 @ =gBankTarget
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, [r2]
- ldr r1, _08021E24 @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
-_08021DFA:
- ldr r2, _08021E28 @ =0x02000000
- ldr r3, _08021E2C @ =0x0001600c
- adds r1, r2, r3
-_08021E00:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0802224E
- .align 2, 0
-_08021E0C: .4byte gSpecialStatuses
-_08021E10: .4byte gBankTarget
-_08021E14: .4byte gNoOfAllBanks
-_08021E18: .4byte gStatuses3
-_08021E1C: .4byte 0x000400c0
-_08021E20: .4byte gActiveBank
-_08021E24: .4byte 0xfffbff3f
-_08021E28: .4byte 0x02000000
-_08021E2C: .4byte 0x0001600c
-_08021E30:
- movs r4, 0
- ldr r0, _08021E60 @ =gNoOfAllBanks
- ldrb r5, [r0]
- cmp r4, r5
- blt _08021E3C
- b _08022244
-_08021E3C:
- ldr r2, _08021E64 @ =gDisableStructs
- ldr r5, _08021E68 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _08021E6C @ =gUnknown_02024AD0
-_08021E44:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _08021E50
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_08021E50:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _08021E44
- b _08022244
- .align 2, 0
-_08021E60: .4byte gNoOfAllBanks
-_08021E64: .4byte gDisableStructs
-_08021E68: .4byte 0xfeffffff
-_08021E6C: .4byte gUnknown_02024AD0
-_08021E70:
- ldr r1, _08021F2C @ =gHitMarker
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08021F30 @ =gBankAttacker
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _08021E9A
- ldr r0, _08021F34 @ =gActiveBank
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08021F38 @ =gBankTarget
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08021F3C @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_08021E9A:
- ldr r1, _08021F40 @ =gBattleMoves
- ldr r2, _08021F44 @ =gUnknown_02024BE8
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r1
- adds r7, r2, 0
- cmp r0, 0x7F
- bne _08021EBE
- ldr r0, _08021F48 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021ECA
-_08021EBE:
- ldr r1, _08021F4C @ =gUnknown_02024C2C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
-_08021ECA:
- ldr r0, _08021F50 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08021F54 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _08021EE4
- b _08022244
-_08021EE4:
- ldr r0, _08021F58 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08021EF2
- b _08022244
-_08021EF2:
- ldrh r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08021F04
- b _08022244
-_08021F04:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021F68
- ldr r1, _08021F5C @ =gLastUsedMove
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _08021F60 @ =gUnknown_02024C4C
- mov r4, r9
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08021F64 @ =gCurrentMove
- ldrh r0, [r0]
- strh r0, [r1]
- b _08021F82
- .align 2, 0
-_08021F2C: .4byte gHitMarker
-_08021F30: .4byte gBankAttacker
-_08021F34: .4byte gActiveBank
-_08021F38: .4byte gBankTarget
-_08021F3C: .4byte 0xffffefff
-_08021F40: .4byte gBattleMoves
-_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gBattleMoveFlags
-_08021F4C: .4byte gUnknown_02024C2C
-_08021F50: .4byte gAbsentBankFlags
-_08021F54: .4byte gBitTable
-_08021F58: .4byte 0x000160a6
-_08021F5C: .4byte gLastUsedMove
-_08021F60: .4byte gUnknown_02024C4C
-_08021F64: .4byte gCurrentMove
-_08021F68:
- ldr r1, _08021FD0 @ =gLastUsedMove
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _08021FD4 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _08021FD8 @ =gUnknown_02024C4C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08021F82:
- ldr r2, _08021FDC @ =gBankTarget
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08021FA0
- ldr r0, _08021FE0 @ =gUnknown_02024C5C
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08021FA0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802204C
- ldr r0, _08021FE4 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802204C
- ldrh r2, [r7]
- ldr r0, _08021FD4 @ =0x0000ffff
- cmp r2, r0
- bne _08021FEC
- ldr r1, _08021FE8 @ =gMoveHitWith
- ldr r4, _08021FDC @ =gBankTarget
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- b _08022244
- .align 2, 0
-_08021FD0: .4byte gLastUsedMove
-_08021FD4: .4byte 0x0000ffff
-_08021FD8: .4byte gUnknown_02024C4C
-_08021FDC: .4byte gBankTarget
-_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gBattleMoveFlags
-_08021FE8: .4byte gMoveHitWith
-_08021FEC:
- ldr r0, _08022014 @ =gMoveHitWith
- ldr r5, _08022018 @ =gBankTarget
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- ldr r4, _0802201C @ =gCurrentMove
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, _08022020 @ =0x0001601c
- add r0, r12
- ldrb r3, [r0]
- cmp r3, 0
- beq _08022028
- ldr r0, _08022024 @ =gUnknown_02024C44
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08021C22
- .align 2, 0
-_08022014: .4byte gMoveHitWith
-_08022018: .4byte gBankTarget
-_0802201C: .4byte gCurrentMove
-_08022020: .4byte 0x0001601c
-_08022024: .4byte gUnknown_02024C44
-_08022028:
- ldr r0, _08022044 @ =gUnknown_02024C44
- ldr r1, _08022048 @ =gBankTarget
- ldrb r2, [r1]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08022244
- .align 2, 0
-_08022044: .4byte gUnknown_02024C44
-_08022048: .4byte gBankTarget
-_0802204C:
- ldr r0, _0802205C @ =gMoveHitWith
- ldr r2, _08022060 @ =gBankTarget
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08022064 @ =0x0000ffff
- b _08021C22
- .align 2, 0
-_0802205C: .4byte gMoveHitWith
-_08022060: .4byte gBankTarget
-_08022064: .4byte 0x0000ffff
-_08022068:
- ldr r0, _0802212C @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r6, _08022130 @ =gBitTable
- ldr r2, _08022134 @ =gBankAttacker
- ldrb r5, [r2]
- lsls r0, r5, 2
- adds r0, r6
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- beq _08022082
- b _08022244
-_08022082:
- ldr r0, _08022138 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08022090
- b _08022244
-_08022090:
- ldr r1, _0802213C @ =gBattleMoves
- ldr r4, _08022140 @ =gUnknown_02024BE8
- ldrh r3, [r4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r0, _08022144 @ =gHitMarker
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r2, _08022148 @ =gBankTarget
- ldrb r0, [r2]
- cmp r5, r0
- bne _080220C0
- b _08022244
-_080220C0:
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _0802215C
- ldr r0, _0802214C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802215C
- lsls r0, r2, 1
- ldr r5, _08022150 @ =0x000160ac
- adds r0, r5
- add r0, r12
- strb r3, [r0]
- ldr r0, _08022148 @ =gBankTarget
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, _08022154 @ =0x000160ad
- adds r1, r2
- add r1, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1]
- ldr r3, _08022148 @ =gBankTarget
- ldrb r2, [r3]
- lsls r2, 2
- mov r5, r9
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- ldr r1, _08022158 @ =0x00016100
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- strb r0, [r2]
- ldrb r2, [r3]
- lsls r2, 2
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r2]
- b _08022244
- .align 2, 0
-_0802212C: .4byte gAbsentBankFlags
-_08022130: .4byte gBitTable
-_08022134: .4byte gBankAttacker
-_08022138: .4byte 0x000160a6
-_0802213C: .4byte gBattleMoves
-_08022140: .4byte gUnknown_02024BE8
-_08022144: .4byte gHitMarker
-_08022148: .4byte gBankTarget
-_0802214C: .4byte gBattleMoveFlags
-_08022150: .4byte 0x000160ac
-_08022154: .4byte 0x000160ad
-_08022158: .4byte 0x00016100
-_0802215C:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080221B4 @ =gBankTarget
- ldrb r2, [r2]
- cmp r0, r2
- beq _08022244
- ldr r3, _080221B4 @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _080221B8 @ =0x000160ac
- adds r0, r4
- add r0, r12
- movs r3, 0
- strb r3, [r0]
- ldr r5, _080221B4 @ =gBankTarget
- ldrb r0, [r5]
- lsls r0, 1
- ldr r1, _080221BC @ =0x000160ad
- adds r0, r1
- add r0, r12
- strb r3, [r0]
- ldrb r2, [r5]
- lsls r2, 2
- mov r4, r9
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x53
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- ldrb r2, [r5]
- lsls r2, 2
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- b _08022244
- .align 2, 0
-_080221B4: .4byte gBankTarget
-_080221B8: .4byte 0x000160ac
-_080221BC: .4byte 0x000160ad
-_080221C0:
- ldr r5, _080222B0 @ =gHitMarker
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08022244
- ldr r0, _080222B4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022244
- ldr r1, _080222B8 @ =gProtectStructs
- ldr r0, _080222BC @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08022244
- ldr r0, _080222C0 @ =gBattleMoves
- mov r9, r0
- ldr r1, _080222C4 @ =gCurrentMove
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08022244
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08022244
- ldr r7, _080222C8 @ =gBankTarget
- ldrb r0, [r7]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080222CC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802223A
- bl _08021874
-_0802223A:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _080222D0 @ =0x02000000
- mov r12, r2
-_08022244:
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0802224E:
- ldr r3, [sp, 0x10]
- cmp r3, 0x1
- bne _08022262
- mov r4, r10
- cmp r4, 0
- bne _08022262
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- movs r0, 0x11
- strb r0, [r1]
-_08022262:
- ldr r5, [sp, 0x10]
- cmp r5, 0x2
- bne _08022278
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldr r0, [sp, 0x14]
- ldrb r2, [r1]
- cmp r0, r2
- bne _08022278
- movs r0, 0x11
- strb r0, [r1]
-_08022278:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08022286
- bl _080218E4
-_08022286:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802229E
- mov r3, r10
- cmp r3, 0
- bne _0802229E
- ldr r1, _080222D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
-_0802229C:
- str r0, [r1]
-_0802229E:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080222B0: .4byte gHitMarker
-_080222B4: .4byte gBattleTypeFlags
-_080222B8: .4byte gProtectStructs
-_080222BC: .4byte gBankAttacker
-_080222C0: .4byte gBattleMoves
-_080222C4: .4byte gCurrentMove
-_080222C8: .4byte gBankTarget
-_080222CC: .4byte gBattleMons
-_080222D0: .4byte 0x02000000
-_080222D4: .4byte 0x0001600c
-_080222D8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80217F8
-
- thumb_func_start atk4A_damageflags
-atk4A_damageflags: @ 80222DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08022340 @ =gBattleMoves
- ldr r0, _08022344 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08022348 @ =gBattleMons
- ldr r3, _0802234C @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08022370
- mov r1, r8
- cmp r1, 0x4
- bne _08022370
- ldr r3, _08022350 @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _08022354 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022358 @ =gMoveHitWith
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _0802235C @ =gBattleCommunication
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl RecordAbilityBattle
- b _08022452
- .align 2, 0
-_08022340: .4byte gBattleMoves
-_08022344: .4byte gCurrentMove
-_08022348: .4byte gBattleMons
-_0802234C: .4byte gBankTarget
-_08022350: .4byte gLastUsedAbility
-_08022354: .4byte gBattleMoveFlags
-_08022358: .4byte gMoveHitWith
-_0802235C: .4byte gBattleCommunication
-_08022360:
- ldr r0, _0802236C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08022452
- .align 2, 0
-_0802236C: .4byte gBattleMoveFlags
-_08022370:
- ldr r1, _0802237C @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08022432
- .align 2, 0
-_0802237C: .4byte gTypeEffectiveness
-_08022380:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _0802242C
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _080223BE
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08022360
- cmp r1, 0x5
- bne _080223B2
- movs r0, 0x4
- orrs r4, r0
-_080223B2:
- cmp r1, 0x14
- bne _080223BE
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223BE:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _080223E6
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08022360
-_080223E6:
- cmp r1, r2
- beq _080223FC
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080223FC
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223FC:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0802242C
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0802242C
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0802242C:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08022432:
- cmp r0, 0xFF
- beq _08022452
- cmp r0, 0xFE
- bne _08022380
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0802242C
-_08022452:
- ldr r2, _08022500 @ =gBattleMons
- ldr r0, _08022504 @ =gBankTarget
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _080224CE
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _080224CE
- ldr r0, _08022508 @ =gBankAttacker
- ldrb r0, [r0]
- ldr r7, _0802250C @ =gCurrentMove
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080224CE
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08022494
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _080224CE
-_08022494:
- ldr r2, _08022510 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080224CE
- ldr r3, _08022514 @ =gLastUsedAbility
- strb r6, [r3]
- ldr r2, _08022518 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802251C @ =gMoveHitWith
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08022520 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl RecordAbilityBattle
-_080224CE:
- ldr r0, _08022518 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080224EC
- ldr r2, _08022524 @ =gProtectStructs
- ldr r0, _08022508 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_080224EC:
- ldr r1, _08022528 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022500: .4byte gBattleMons
-_08022504: .4byte gBankTarget
-_08022508: .4byte gBankAttacker
-_0802250C: .4byte gCurrentMove
-_08022510: .4byte gBattleMoves
-_08022514: .4byte gLastUsedAbility
-_08022518: .4byte gBattleMoveFlags
-_0802251C: .4byte gMoveHitWith
-_08022520: .4byte gBattleCommunication
-_08022524: .4byte gProtectStructs
-_08022528: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4A_damageflags
-
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 802252C
- push {r4,lr}
- ldr r4, _08022568 @ =gActiveBank
- ldr r0, _0802256C @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08022570 @ =gHitMarker
- ldr r1, _08022574 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0802255A
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802255A:
- ldr r1, _08022578 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022568: .4byte gActiveBank
-_0802256C: .4byte gBankAttacker
-_08022570: .4byte gHitMarker
-_08022574: .4byte gBitTable
-_08022578: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4B_cmd4b
-
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 802257C
- push {r4-r6,lr}
- ldr r0, _080225D4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _080225CC
- ldr r5, _080225D8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080225DC @ =gActiveBank
- strb r0, [r4]
- ldr r3, _080225E0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r3
- ldr r2, _080225E4 @ =0x02000000
- ldr r6, _080225E8 @ =0x00016068
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _080225EC @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitGetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080225CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080225D4: .4byte gBattleExecBuffer
-_080225D8: .4byte gBattlescriptCurrInstr
-_080225DC: .4byte gActiveBank
-_080225E0: .4byte gBattlePartyID
-_080225E4: .4byte 0x02000000
-_080225E8: .4byte 0x00016068
-_080225EC: .4byte gBitTable
- thumb_func_end atk4C_switch1
-
- thumb_func_start sub_80225F0
-sub_80225F0: @ 80225F0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _0802274C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _080225FE
- b _08022744
-_080225FE:
- ldr r0, _08022750 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022754 @ =gActiveBank
- strb r0, [r4]
- ldr r6, _08022758 @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _0802275C @ =gBattleBufferB
- adds r7, r4, 0
-_0802262C:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _0802262C
- ldr r4, _08022758 @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _08022760 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08022764 @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _08022768 @ =gBitTable
- ldr r2, _0802276C @ =gBattlePartyID
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _080226CA
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_080226CA:
- ldr r2, _08022770 @ =gBattleMoves
- ldr r0, _08022774 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08022710
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_080226EA:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080226EA
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08022710:
- bl SwitchInClearStructs
- ldr r0, _08022778 @ =0x02000000
- ldr r3, _08022754 @ =gActiveBank
- ldrb r2, [r3]
- ldr r1, _0802277C @ =0x00016003
- adds r0, r1
- strb r2, [r0]
- ldr r1, _08022780 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _0802276C @ =gBattlePartyID
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08022750 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08022744:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802274C: .4byte gBattleExecBuffer
-_08022750: .4byte gBattlescriptCurrInstr
-_08022754: .4byte gActiveBank
-_08022758: .4byte gBattleMons
-_0802275C: .4byte gBattleBufferB
-_08022760: .4byte gBaseStats
-_08022764: .4byte gWishFutureKnock
-_08022768: .4byte gBitTable
-_0802276C: .4byte gBattlePartyID
-_08022770: .4byte gBattleMoves
-_08022774: .4byte gCurrentMove
-_08022778: .4byte 0x02000000
-_0802277C: .4byte 0x00016003
-_08022780: .4byte gBattleTextBuff1
- thumb_func_end sub_80225F0
-
- thumb_func_start sub_8022784
-sub_8022784: @ 8022784
- push {r4,r5,lr}
- ldr r0, _0802280C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08022806
- ldr r0, _08022810 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022814 @ =gActiveBank
- strb r0, [r4]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080227D0
- ldr r0, _08022818 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802281C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080227D0
- ldr r2, _08022820 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetNationalPokedexFlag
-_080227D0:
- ldr r2, _08022824 @ =gAbsentBankFlags
- ldr r1, _08022828 @ =gBitTable
- ldr r5, _08022814 @ =gActiveBank
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0802282C @ =gBattlePartyID
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _08022810 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl sub_800C704
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08022806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802280C: .4byte gBattleExecBuffer
-_08022810: .4byte gBattlescriptCurrInstr
-_08022814: .4byte gActiveBank
-_08022818: .4byte gBattleTypeFlags
-_0802281C: .4byte 0x00000902
-_08022820: .4byte gBattleMons
-_08022824: .4byte gAbsentBankFlags
-_08022828: .4byte gBitTable
-_0802282C: .4byte gBattlePartyID
- thumb_func_end sub_8022784
-
- thumb_func_start sub_8022830
-sub_8022830: @ 8022830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022894 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8015150
- ldr r3, _08022898 @ =gActiveBank
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080228A8
- ldr r1, _0802289C @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080228A0 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _0802287C
- ldr r1, _080228A4 @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080228A8
-_0802287C:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022A2C
- .align 2, 0
-_08022894: .4byte gBattlescriptCurrInstr
-_08022898: .4byte gActiveBank
-_0802289C: .4byte gBattleMons
-_080228A0: .4byte 0x0400e000
-_080228A4: .4byte gStatuses3
-_080228A8:
- ldr r5, _08022934 @ =gBattleTypeFlags
- ldrh r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022948
- ldr r4, _08022938 @ =gActiveBank
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802293C @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _080228CC
- ldr r0, _08022940 @ =gEnemyParty
- mov r8, r0
-_080228CC:
- movs r5, 0
- ldrb r0, [r4]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080228E6
- movs r5, 0x3
-_080228E6:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802292E
- ldr r7, _08022944 @ =gBattlePartyID
-_080228EE:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022928
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022928
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022928
- ldr r0, _08022938 @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802292E
-_08022928:
- adds r5, 0x1
- cmp r5, r6
- blt _080228EE
-_0802292E:
- cmp r5, r6
- beq _080229FC
- b _08022A24
- .align 2, 0
-_08022934: .4byte gBattleTypeFlags
-_08022938: .4byte gActiveBank
-_0802293C: .4byte gPlayerParty
-_08022940: .4byte gEnemyParty
-_08022944: .4byte gBattlePartyID
-_08022948:
- ldr r0, _08022978 @ =gActiveBank
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08022988
- movs r0, 0x1
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0802297C
- movs r0, 0x3
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- b _0802297E
- .align 2, 0
-_08022978: .4byte gActiveBank
-_0802297C:
- adds r6, r7, 0
-_0802297E:
- ldr r0, _08022984 @ =gEnemyParty
- mov r8, r0
- b _080229AE
- .align 2, 0
-_08022984: .4byte gEnemyParty
-_08022988:
- movs r0, 0
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080229A8
- movs r0, 0x2
- bl GetBankByPlayerAI
- lsls r0, 24
- lsrs r6, r0, 24
- b _080229AA
-_080229A8:
- adds r6, r7, 0
-_080229AA:
- ldr r1, _08022A18 @ =gPlayerParty
- mov r8, r1
-_080229AE:
- movs r5, 0
-_080229B0:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080229F2
- ldr r1, _08022A1C @ =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080229F2
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _080229F8
-_080229F2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080229B0
-_080229F8:
- cmp r5, 0x6
- bne _08022A24
-_080229FC:
- ldr r3, _08022A20 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08022A2C
- .align 2, 0
-_08022A18: .4byte gPlayerParty
-_08022A1C: .4byte gBattlePartyID
-_08022A20: .4byte gBattlescriptCurrInstr
-_08022A24:
- ldr r1, _08022A38 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08022A2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A38: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8022830
-
- thumb_func_start sub_8022A3C
-sub_8022A3C: @ 8022A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _08022A84 @ =0x02000000
- ldr r5, _08022A88 @ =gActiveBank
- ldrb r0, [r5]
- ldr r3, _08022A8C @ =0x00016064
- adds r1, r0, r3
- adds r1, r4
- ldr r3, _08022A90 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08022A94 @ =0x0001606c
- adds r4, r1
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A84: .4byte 0x02000000
-_08022A88: .4byte gActiveBank
-_08022A8C: .4byte 0x00016064
-_08022A90: .4byte gBattlePartyID
-_08022A94: .4byte 0x0001606c
- thumb_func_end sub_8022A3C
-
- thumb_func_start atk50_openpartyscreen
-atk50_openpartyscreen: @ 8022A98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08022B44 @ =gBattlescriptCurrInstr
- ldr r1, [r6]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08022ACE
- b _08022F74
-_08022ACE:
- ldr r0, _08022B48 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08022BBC
- ldr r1, _08022B4C @ =gActiveBank
- strb r7, [r1]
- ldr r0, _08022B50 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08022AE8
- b _08022F62
-_08022AE8:
- ldr r7, _08022B54 @ =gHitMarker
- ldr r6, _08022B58 @ =gBitTable
- adds r4, r1, 0
- ldr r0, _08022B5C @ =gAbsentBankFlags
- mov r8, r0
-_08022AF2:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _08022B94
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022B60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022BA2
- .align 2, 0
-_08022B44: .4byte gBattlescriptCurrInstr
-_08022B48: .4byte gBattleTypeFlags
-_08022B4C: .4byte gActiveBank
-_08022B50: .4byte gNoOfAllBanks
-_08022B54: .4byte gHitMarker
-_08022B58: .4byte gBitTable
-_08022B5C: .4byte gAbsentBankFlags
-_08022B60:
- ldr r5, _08022B90 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022BA2
- movs r0, 0x6
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022BA2
- .align 2, 0
-_08022B90: .4byte gSpecialStatuses
-_08022B94:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022BA2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08022BB8 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08022AF2
- b _08022F62
- .align 2, 0
-_08022BB8: .4byte gNoOfAllBanks
-_08022BBC:
- ands r1, r0
- cmp r1, 0
- bne _08022BC4
- b _08022F62
-_08022BC4:
- ldr r0, _08022C1C @ =gHitMarker
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08022C20 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _08022C7E
- ldr r4, _08022C24 @ =gActiveBank
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022C2C
- ldr r2, _08022C28 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022C7E
- .align 2, 0
-_08022C1C: .4byte gHitMarker
-_08022C20: .4byte gBitTable
-_08022C24: .4byte gActiveBank
-_08022C28: .4byte gAbsentBankFlags
-_08022C2C:
- ldr r6, _08022C60 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022C6C
- ldr r0, _08022C64 @ =0x02000000
- ldr r1, _08022C68 @ =0x0001606a
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022C7E
- .align 2, 0
-_08022C60: .4byte gSpecialStatuses
-_08022C64: .4byte 0x02000000
-_08022C68: .4byte 0x0001606a
-_08022C6C:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r2, 0x1
- mov r9, r2
-_08022C7E:
- ldr r6, _08022CD8 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _08022D40
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _08022D40
- ldr r4, _08022CDC @ =gActiveBank
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022CE8
- ldr r2, _08022CE0 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022CE4 @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022D40
- .align 2, 0
-_08022CD8: .4byte gBitTable
-_08022CDC: .4byte gActiveBank
-_08022CE0: .4byte gAbsentBankFlags
-_08022CE4: .4byte gHitMarker
-_08022CE8:
- ldr r6, _08022D1C @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022D28
- ldr r0, _08022D20 @ =0x02000000
- ldr r1, _08022D24 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022D40
- .align 2, 0
-_08022D1C: .4byte gSpecialStatuses
-_08022D20: .4byte 0x02000000
-_08022D24: .4byte 0x00016068
-_08022D28:
- movs r0, 0x1
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08022D40
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022D40:
- ldr r6, _08022D90 @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _08022DF6
- ldr r4, _08022D94 @ =gActiveBank
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022DA0
- ldr r2, _08022D98 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022D9C @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022DF6
- .align 2, 0
-_08022D90: .4byte gBitTable
-_08022D94: .4byte gActiveBank
-_08022D98: .4byte gAbsentBankFlags
-_08022D9C: .4byte gHitMarker
-_08022DA0:
- ldr r6, _08022DD4 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022DE0
- ldr r0, _08022DD8 @ =0x02000000
- ldr r1, _08022DDC @ =0x0001606b
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022DF6
- .align 2, 0
-_08022DD4: .4byte gSpecialStatuses
-_08022DD8: .4byte 0x02000000
-_08022DDC: .4byte 0x0001606b
-_08022DE0:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_08022DF6:
- ldr r6, _08022E50 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08022EB8
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _08022EB8
- ldr r4, _08022E54 @ =gActiveBank
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022E60
- ldr r2, _08022E58 @ =gAbsentBankFlags
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022E5C @ =gHitMarker
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _08022EB8
- .align 2, 0
-_08022E50: .4byte gBitTable
-_08022E54: .4byte gActiveBank
-_08022E58: .4byte gAbsentBankFlags
-_08022E5C: .4byte gHitMarker
-_08022E60:
- ldr r6, _08022E94 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022EA0
- ldr r0, _08022E98 @ =0x02000000
- ldr r1, _08022E9C @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022EB8
- .align 2, 0
-_08022E94: .4byte gSpecialStatuses
-_08022E98: .4byte 0x02000000
-_08022E9C: .4byte 0x00016069
-_08022EA0:
- movs r0, 0x2
- mov r2, r9
- ands r2, r0
- cmp r2, 0
- bne _08022EB8
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08022EB8:
- ldr r1, _08022EE8 @ =gSpecialStatuses
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- cmp r5, 0
- beq _08022F0C
- ldr r0, _08022EEC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r0, _08022EF0 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08022EF8
- ldr r1, _08022EF4 @ =gActiveBank
- movs r0, 0x2
- strb r0, [r1]
- b _08022EFC
- .align 2, 0
-_08022EE8: .4byte gSpecialStatuses
-_08022EEC: .4byte gAbsentBankFlags
-_08022EF0: .4byte gBitTable
-_08022EF4: .4byte gActiveBank
-_08022EF8:
- ldr r0, _08022F3C @ =gActiveBank
- strb r1, [r0]
-_08022EFC:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _08022F3C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_08022F0C:
- ldr r1, _08022F40 @ =gSpecialStatuses
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- cmp r5, 0
- beq _08022F62
- ldr r0, _08022F44 @ =gAbsentBankFlags
- ldrb r0, [r0]
- ldr r1, _08022F48 @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08022F4C
- ldr r1, _08022F3C @ =gActiveBank
- movs r0, 0x3
- b _08022F50
- .align 2, 0
-_08022F3C: .4byte gActiveBank
-_08022F40: .4byte gSpecialStatuses
-_08022F44: .4byte gAbsentBankFlags
-_08022F48: .4byte gBitTable
-_08022F4C:
- ldr r1, _08022F6C @ =gActiveBank
- movs r0, 0x1
-_08022F50:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldr r0, _08022F6C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
-_08022F62:
- ldr r1, _08022F70 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08023302
- .align 2, 0
-_08022F6C: .4byte gActiveBank
-_08022F70: .4byte gBattlescriptCurrInstr
-_08022F74:
- cmp r0, 0x6
- beq _08022F7A
- b _08023170
-_08022F7A:
- ldr r0, _08022FF0 @ =gBattleTypeFlags
- ldrh r2, [r0]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08022F88
- b _0802310C
-_08022F88:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08022F92
- b _0802310C
-_08022F92:
- ldr r7, _08022FF4 @ =gHitMarker
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _08022FF8 @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r6, _08022FFC @ =gActiveBank
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08023000 @ =gBattleBufferB
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08023008
- ldr r2, _08023004 @ =gAbsentBankFlags
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- b _0802303A
- .align 2, 0
-_08022FF0: .4byte gBattleTypeFlags
-_08022FF4: .4byte gHitMarker
-_08022FF8: .4byte gBitTable
-_08022FFC: .4byte gActiveBank
-_08023000: .4byte gBattleBufferB
-_08023004: .4byte gAbsentBankFlags
-_08023008:
- ldr r4, _08023098 @ =gSpecialStatuses
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802303A
- ldr r0, _0802309C @ =0x02000000
- ldr r1, _080230A0 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802303A:
- ldr r4, _080230A4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080230EE
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _080230EE
- ldr r5, _080230A8 @ =gActiveBank
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080230AC @ =gBattleBufferB
- ldr r2, _080230B0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080230BC
- ldr r2, _080230B4 @ =gAbsentBankFlags
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080230B8 @ =gHitMarker
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- b _080230EE
- .align 2, 0
-_08023098: .4byte gSpecialStatuses
-_0802309C: .4byte 0x02000000
-_080230A0: .4byte 0x00016068
-_080230A4: .4byte gBitTable
-_080230A8: .4byte gActiveBank
-_080230AC: .4byte gBattleBufferB
-_080230B0: .4byte 0x00000201
-_080230B4: .4byte gAbsentBankFlags
-_080230B8: .4byte gHitMarker
-_080230BC:
- ldr r4, _080230FC @ =gSpecialStatuses
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080230EE
- ldr r0, _08023100 @ =0x02000000
- ldr r1, _08023104 @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080230EE:
- ldr r1, _08023108 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08023110
- .align 2, 0
-_080230FC: .4byte gSpecialStatuses
-_08023100: .4byte 0x02000000
-_08023104: .4byte 0x00016069
-_08023108: .4byte gBattlescriptCurrInstr
-_0802310C:
- adds r0, r1, 0x6
- str r0, [r6]
-_08023110:
- ldr r0, _08023160 @ =gHitMarker
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08023164 @ =gBank1
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08023168 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _0802316C @ =gNoOfAllBanks
- cmp r2, 0
- bne _0802314C
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _0802314C
- adds r3, r1, 0
-_08023132:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0802314C
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08023132
-_0802314C:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08023156
- b _08023302
-_08023156:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08023302
- .align 2, 0
-_08023160: .4byte gHitMarker
-_08023164: .4byte gBank1
-_08023168: .4byte gBitTable
-_0802316C: .4byte gNoOfAllBanks
-_08023170:
- movs r0, 0x80
- ands r0, r2
- movs r5, 0x1
- cmp r0, 0
- beq _0802317C
- movs r5, 0
-_0802317C:
- movs r0, 0x7F
- ands r0, r2
- bl sub_8015150
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080231A4 @ =gSpecialStatuses
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080231A8
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231A4: .4byte gSpecialStatuses
-_080231A8:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080231F8
- ldr r2, _080231E8 @ =gActiveBank
- strb r7, [r2]
- ldr r3, _080231EC @ =gAbsentBankFlags
- ldr r4, _080231F0 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _080231F4 @ =gHitMarker
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231E8: .4byte gActiveBank
-_080231EC: .4byte gAbsentBankFlags
-_080231F0: .4byte gBitTable
-_080231F4: .4byte gHitMarker
-_080231F8:
- ldr r4, _080232A0 @ =gActiveBank
- strb r7, [r4]
- ldr r3, _080232A4 @ =0x02000000
- ldrb r0, [r4]
- ldr r2, _080232A8 @ =0x00016064
- adds r1, r0, r2
- adds r1, r3
- ldr r2, _080232AC @ =gBattlePartyID
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r1, _080232B0 @ =0x00016068
- adds r0, r1
- adds r0, r3
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080232B4 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl GetBankIdentity
- lsls r0, 24
- cmp r0, 0
- bne _0802325A
- ldr r1, _080232B8 @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0802325A
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0802325A:
- ldr r0, _080232BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080232C4
- ldr r1, _080232A0 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080232C0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023302
- adds r4, r1, 0
-_08023276:
- ldrb r0, [r4]
- cmp r0, r7
- beq _0802328A
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802328A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080232C0 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08023276
- b _08023302
- .align 2, 0
-_080232A0: .4byte gActiveBank
-_080232A4: .4byte 0x02000000
-_080232A8: .4byte 0x00016064
-_080232AC: .4byte gBattlePartyID
-_080232B0: .4byte 0x00016068
-_080232B4: .4byte 0x0001606c
-_080232B8: .4byte gBattleResults
-_080232BC: .4byte gBattleTypeFlags
-_080232C0: .4byte gNoOfAllBanks
-_080232C4:
- adds r0, r7, 0
- bl GetBankIdentity
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r4, _08023310 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _08023314 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08023318 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080232F4
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_080232F4:
- movs r0, 0
- movs r1, 0x2
- bl EmitLinkStandbyMsg
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08023302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023310: .4byte gActiveBank
-_08023314: .4byte gAbsentBankFlags
-_08023318: .4byte gBitTable
- thumb_func_end atk50_openpartyscreen
-
- thumb_func_start sub_802331C
-sub_802331C: @ 802331C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802334C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0802332C
- b _080234FE
-_0802332C:
- ldr r4, _08023350 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08023354 @ =gActiveBank
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080233A0
- cmp r0, 0x1
- bgt _08023358
- cmp r0, 0
- beq _0802335E
- b _080234F6
- .align 2, 0
-_0802334C: .4byte gBattleExecBuffer
-_08023350: .4byte gBattlescriptCurrInstr
-_08023354: .4byte gActiveBank
-_08023358:
- cmp r0, 0x2
- beq _080233BC
- b _080234F6
-_0802335E:
- movs r3, 0
- ldr r2, _08023390 @ =gNoOfAllBanks
- ldrb r0, [r2]
- cmp r3, r0
- blt _0802336A
- b _080234F6
-_0802336A:
- ldr r0, _08023394 @ =0x02000000
- ldr r1, _08023398 @ =gBattleBufferB
- movs r5, 0x80
- lsls r5, 2
- adds r4, r2, 0
- ldr r6, _0802339C @ =0x00016068
- adds r2, r0, r6
-_08023378:
- ldrb r0, [r1]
- cmp r0, 0x22
- bne _08023382
- ldrb r0, [r1, 0x1]
- strb r0, [r2]
-_08023382:
- adds r1, r5
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08023378
- b _080234F6
- .align 2, 0
-_08023390: .4byte gNoOfAllBanks
-_08023394: .4byte 0x02000000
-_08023398: .4byte gBattleBufferB
-_0802339C: .4byte 0x00016068
-_080233A0:
- ldr r0, _080233B8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080233AE
- b _080234F6
-_080233AE:
- ldrb r0, [r7]
- bl sub_8012258
- b _080234F6
- .align 2, 0
-_080233B8: .4byte gBattleTypeFlags
-_080233BC:
- ldr r1, _08023484 @ =gBattleCommunication
- ldr r4, _08023488 @ =gBattleBufferB
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r6, _0802348C @ =0x02000000
- ldrb r0, [r7]
- ldr r3, _08023490 @ =0x00016068
- adds r1, r0, r3
- adds r1, r6
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08023494 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080234A4
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08023498 @ =0x0001606c
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- lsls r0, 9
- adds r2, r4, 0x2
- mov r12, r2
- add r0, r12
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _0802349C @ =0x0001606d
- adds r1, r2
- adds r1, r6
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _080234A0 @ =0x0001606e
- adds r1, r3
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- b _080234AA
- .align 2, 0
-_08023484: .4byte gBattleCommunication
-_08023488: .4byte gBattleBufferB
-_0802348C: .4byte 0x02000000
-_08023490: .4byte 0x00016068
-_08023494: .4byte gBattleTypeFlags
-_08023498: .4byte 0x0001606c
-_0802349C: .4byte 0x0001606d
-_080234A0: .4byte 0x0001606e
-_080234A4:
- ldrb r0, [r7]
- bl sub_8012258
-_080234AA:
- ldr r1, _08023508 @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0802350C @ =gBattleMons
- ldr r3, _08023510 @ =gBankAttacker
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08023514 @ =gBattleTextBuff2
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08023518 @ =gActiveBank
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _0802351C @ =gBattleBufferB
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_080234F6:
- ldr r1, _08023520 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_080234FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023508: .4byte gBattleTextBuff1
-_0802350C: .4byte gBattleMons
-_08023510: .4byte gBankAttacker
-_08023514: .4byte gBattleTextBuff2
-_08023518: .4byte gActiveBank
-_0802351C: .4byte gBattleBufferB
-_08023520: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023524
-sub_8023524: @ 8023524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08023630 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08023634 @ =gActiveBank
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80157C4
- ldr r2, _08023638 @ =gHitMarker
- ldr r1, _0802363C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08023640 @ =gSpecialStatuses
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl GetBankSide
- ldr r5, _08023644 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _0802367C
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802367C
- ldr r1, _08023648 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _0802367C
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl GetBankSide
- ldr r2, _0802364C @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08023650 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08023614
- movs r0, 0x1
- str r0, [r5]
-_08023614:
- ldr r0, _08023654 @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _08023658 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023660
- ldr r0, _0802365C @ =gUnknown_081D919F
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023630: .4byte gBattlescriptCurrInstr
-_08023634: .4byte gActiveBank
-_08023638: .4byte gHitMarker
-_0802363C: .4byte gBitTable
-_08023640: .4byte gSpecialStatuses
-_08023644: .4byte gSideAffecting
-_08023648: .4byte gBattleMons
-_0802364C: .4byte gSideTimer
-_08023650: .4byte gBattleMoveDamage
-_08023654: .4byte 0x02000000
-_08023658: .4byte 0x00016003
-_0802365C: .4byte gUnknown_081D919F
-_08023660:
- cmp r0, 0x1
- bne _08023670
- ldr r0, _0802366C @ =gUnknown_081D9171
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_0802366C: .4byte gUnknown_081D9171
-_08023670:
- ldr r0, _08023678 @ =gUnknown_081D91CD
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023678: .4byte gUnknown_081D91CD
-_0802367C:
- ldr r1, _08023754 @ =gBattleMons
- ldr r5, _08023758 @ =gActiveBank
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _080236A2
- ldr r1, _0802375C @ =gDisableStructs
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_080236A2:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080236B8
- b _080237B6
-_080236B8:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- bne _080237B6
- ldrb r0, [r5]
- bl GetBankSide
- ldr r1, _08023760 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08023764 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r3, [r0]
- cmp r4, r3
- bge _08023706
- ldr r6, _0802376C @ =gTurnOrder
- ldr r3, _08023770 @ =gUnknown_02024A76
- movs r2, 0xC
- adds r1, r0, 0
-_080236F0:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _080236FE
- adds r0, r4, r3
- strb r2, [r0]
-_080236FE:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _080236F0
-_08023706:
- movs r4, 0
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- bge _08023736
- ldr r5, _08023754 @ =gBattleMons
-_08023712:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08023774 @ =0x020160bc
- adds r0, r1
- movs r1, 0x58
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, _08023768 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r4, r0
- blt _08023712
-_08023736:
- ldr r0, _08023778 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080237B0
- ldr r0, _0802377C @ =gHitMarker
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08023780 @ =gBank1
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08023784 @ =gBitTable
- b _08023796
- .align 2, 0
-_08023754: .4byte gBattleMons
-_08023758: .4byte gActiveBank
-_0802375C: .4byte gDisableStructs
-_08023760: .4byte gSideAffecting
-_08023764: .4byte 0x0000fdff
-_08023768: .4byte gNoOfAllBanks
-_0802376C: .4byte gTurnOrder
-_08023770: .4byte gUnknown_02024A76
-_08023774: .4byte 0x020160bc
-_08023778: .4byte gBattlescriptCurrInstr
-_0802377C: .4byte gHitMarker
-_08023780: .4byte gBank1
-_08023784: .4byte gBitTable
-_08023788:
- ldr r0, _080237C4 @ =gNoOfAllBanks
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080237B0
- adds r0, r3, 0x1
- strb r0, [r1]
-_08023796:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08023788
- ldr r0, _080237C8 @ =gAbsentBankFlags
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08023788
-_080237B0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080237B6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237C4: .4byte gNoOfAllBanks
-_080237C8: .4byte gAbsentBankFlags
- thumb_func_end sub_8023524
-
- thumb_func_start sub_80237CC
-sub_80237CC: @ 80237CC
- push {lr}
- ldr r0, _080237DC @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080237E0
- movs r0, 0
- b _080237E2
- .align 2, 0
-_080237DC: .4byte gBattlescriptCurrInstr
-_080237E0:
- movs r0, 0x1
-_080237E2:
- bl GetBankByPlayerAI
- ldr r1, _08023804 @ =gActiveBank
- strb r0, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x08_8_8_8
- ldr r0, _08023804 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08023808 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08023804: .4byte gActiveBank
-_08023808: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80237CC
-
- thumb_func_start atk54_802511C
-atk54_802511C: @ 802380C
- push {r4,r5,lr}
- ldr r5, _0802383C @ =gActiveBank
- ldr r0, _08023840 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023844 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl EmitEffectivenessSound
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802383C: .4byte gActiveBank
-_08023840: .4byte gBankAttacker
-_08023844: .4byte gBattlescriptCurrInstr
- thumb_func_end atk54_802511C
-
- thumb_func_start sub_8023848
-sub_8023848: @ 8023848
- push {r4,r5,lr}
- ldr r5, _08023878 @ =gActiveBank
- ldr r0, _0802387C @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023880 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl sub_800D074
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023878: .4byte gActiveBank
-_0802387C: .4byte gBankAttacker
-_08023880: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8023848
-
- thumb_func_start atk56_8025194
-atk56_8025194: @ 8023884
- push {r4,r5,lr}
- ldr r5, _080238AC @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080238B0 @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl EmitFaintingCry
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080238AC: .4byte gBattlescriptCurrInstr
-_080238B0: .4byte gActiveBank
- thumb_func_end atk56_8025194
-
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 80238B4
- push {r4,lr}
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r4, _080238E0 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _080238E4 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x37_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _080238E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080238E0: .4byte gActiveBank
-_080238E4: .4byte gBattleOutcome
-_080238E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk57_80251C4_flee
-
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 80238EC
- push {r4,r5,lr}
- ldr r5, _08023918 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802391C @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023918: .4byte gBattlescriptCurrInstr
-_0802391C: .4byte gActiveBank
- thumb_func_end atk58_cmd58
-
- thumb_func_start atk59_8025230
-atk59_8025230: @ 8023920
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802399C @ =gBattlescriptCurrInstr
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080239A0 @ =0x02000000
- ldr r1, _080239A4 @ =0x00016018
- adds r7, r0, r1
- ldrb r1, [r7]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080239AC @ =0x0000fffe
- cmp r5, r0
- bne _08023992
- mov r9, r7
- mov r8, r5
- movs r7, 0x64
-_0802397A:
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r7
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- beq _0802397A
-_08023992:
- cmp r5, 0
- bne _080239B0
- ldr r0, _0802399C @ =gBattlescriptCurrInstr
- str r4, [r0]
- b _08023A58
- .align 2, 0
-_0802399C: .4byte gBattlescriptCurrInstr
-_080239A0: .4byte 0x02000000
-_080239A4: .4byte 0x00016018
-_080239A8: .4byte gPlayerParty
-_080239AC: .4byte 0x0000fffe
-_080239B0:
- ldr r0, _080239C0 @ =0x0000ffff
- cmp r5, r0
- bne _080239C8
- ldr r1, _080239C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08023A58
- .align 2, 0
-_080239C0: .4byte 0x0000ffff
-_080239C4: .4byte gBattlescriptCurrInstr
-_080239C8:
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08023A64 @ =gActiveBank
- strb r0, [r1]
- ldr r0, _08023A68 @ =gBattlePartyID
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A08
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A08
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A08:
- ldr r0, _08023A78 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023A54
- movs r0, 0x2
- bl GetBankByPlayerAI
- ldr r1, _08023A64 @ =gActiveBank
- strb r0, [r1]
- ldr r0, _08023A68 @ =gBattlePartyID
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A54
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A54
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A54:
- ldr r0, _08023A7C @ =gBattlescriptCurrInstr
- str r6, [r0]
-_08023A58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023A64: .4byte gActiveBank
-_08023A68: .4byte gBattlePartyID
-_08023A6C: .4byte 0x02000000
-_08023A70: .4byte 0x00016018
-_08023A74: .4byte gBattleMons
-_08023A78: .4byte gBattleTypeFlags
-_08023A7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk59_8025230
-
- thumb_func_start sub_8023A80
-sub_8023A80: @ 8023A80
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- ldr r4, _08023AC8 @ =gUnknown_03004210
- ldr r1, _08023ACC @ =gUnknown_08400D7A
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x9
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08023AD0 @ =0x0000ffff
- ldr r3, _08023AD4 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023AC8: .4byte gUnknown_03004210
-_08023ACC: .4byte gUnknown_08400D7A
-_08023AD0: .4byte 0x0000ffff
-_08023AD4: .4byte 0x00002d9f
- thumb_func_end sub_8023A80
-
- thumb_func_start sub_8023AD8
-sub_8023AD8: @ 8023AD8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- bl DestroyMenuCursor
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8023AD8
-
- thumb_func_start sub_8023AF8
-sub_8023AF8: @ 8023AF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _08023B24 @ =gActiveBank
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08023B28 @ =0x02000000
- ldr r2, _08023B2C @ =0x0001601a
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08023B18
- b _08023E5C
-_08023B18:
- lsls r0, 2
- ldr r1, _08023B30 @ =_08023B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023B24: .4byte gActiveBank
-_08023B28: .4byte 0x02000000
-_08023B2C: .4byte 0x0001601a
-_08023B30: .4byte _08023B34
- .align 2, 0
-_08023B34:
- .4byte _08023B4C
- .4byte _08023B74
- .4byte _08023C30
- .4byte _08023C84
- .4byte _08023E38
- .4byte _08023E4C
-_08023B4C:
- bl sub_8023A80
- ldr r1, _08023B68 @ =0x02000000
- ldr r0, _08023B6C @ =0x0001601a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08023B70 @ =gBattleCommunication
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08023E5C
- .align 2, 0
-_08023B68: .4byte 0x02000000
-_08023B6C: .4byte 0x0001601a
-_08023B70: .4byte gBattleCommunication
-_08023B74:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023B9A
- ldr r4, _08023C00 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023B9A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023B9A:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023BC0
- ldr r4, _08023C00 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023BC0
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023BC0:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023C0C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023C00 @ =gBattleCommunication
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _08023C1C
- bl sub_8023AD8
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08023C04 @ =0x02000000
- ldr r2, _08023C08 @ =0x0001601a
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023BFC: .4byte gMain
-_08023C00: .4byte gBattleCommunication
-_08023C04: .4byte 0x02000000
-_08023C08: .4byte 0x0001601a
-_08023C0C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08023C16
- b _08023E5C
-_08023C16:
- movs r0, 0x5
- bl PlaySE
-_08023C1C:
- ldr r0, _08023C28 @ =0x02000000
- ldr r1, _08023C2C @ =0x0001601a
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _08023E5C
- .align 2, 0
-_08023C28: .4byte 0x02000000
-_08023C2C: .4byte 0x0001601a
-_08023C30:
- ldr r0, _08023C68 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C3E
- b _08023E5C
-_08023C3E:
- ldr r0, _08023C6C @ =gPlayerParty
- ldr r2, _08023C70 @ =0x00016018
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08023C74 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08023C78 @ =ReshowBattleScreenAfterMenu
- ldr r4, _08023C7C @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldr r0, _08023C80 @ =0x0001601a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023C68: .4byte gPaletteFade
-_08023C6C: .4byte gPlayerParty
-_08023C70: .4byte 0x00016018
-_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte ReshowBattleScreenAfterMenu
-_08023C7C: .4byte word_2024E82
-_08023C80: .4byte 0x0001601a
-_08023C84:
- ldr r0, _08023CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C92
- b _08023E5C
-_08023C92:
- ldr r0, _08023CB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08023CBC @ =sub_800F808
- cmp r1, r0
- beq _08023C9E
- b _08023E5C
-_08023C9E:
- bl sub_809FA30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _08023CC8
- ldr r0, _08023CC0 @ =0x02000000
- ldr r1, _08023CC4 @ =0x0001601a
- adds r0, r1
- strb r5, [r0]
- b _08023E5C
- .align 2, 0
-_08023CB4: .4byte gPaletteFade
-_08023CB8: .4byte gMain
-_08023CBC: .4byte sub_800F808
-_08023CC0: .4byte 0x02000000
-_08023CC4: .4byte 0x0001601a
-_08023CC8:
- ldr r2, _08023D08 @ =0x02000000
- mov r9, r2
- ldr r6, _08023D0C @ =0x00016018
- add r6, r9
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _08023D10 @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsHMMove2
- cmp r0, 0
- beq _08023D20
- ldr r0, _08023D14 @ =0x0000013f
- ldr r1, _08023D18 @ =gActiveBank
- ldrb r1, [r1]
- bl PrepareStringBattle
- ldr r1, _08023D1C @ =0x0001601a
- add r1, r9
- movs r0, 0x5
- b _08023E5A
- .align 2, 0
-_08023D08: .4byte 0x02000000
-_08023D0C: .4byte 0x00016018
-_08023D10: .4byte gPlayerParty
-_08023D14: .4byte 0x0000013f
-_08023D18: .4byte gActiveBank
-_08023D1C: .4byte 0x0001601a
-_08023D20:
- ldr r3, _08023E10 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- ldr r1, _08023E14 @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- ldr r7, _08023E18 @ =word_2024E82
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _08023E1C @ =gBattlePartyID
- ldrh r0, [r0]
- ldrb r6, [r6]
- cmp r0, r6
- bne _08023DB0
- ldr r4, _08023E20 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023DB0
- ldr r0, _08023E24 @ =gDisableStructs
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023DB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08023DB0:
- ldr r0, _08023E2C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023E5C
- ldr r0, _08023E1C @ =gBattlePartyID
- ldr r1, _08023E30 @ =0x02000000
- ldr r2, _08023E34 @ =0x00016018
- adds r1, r2
- ldrh r0, [r0, 0x4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08023E5C
- ldr r4, _08023E20 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023E5C
- ldr r0, _08023E24 @ =gDisableStructs
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023E5C
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08023E18 @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _08023E5C
- .align 2, 0
-_08023E10: .4byte gBattlescriptCurrInstr
-_08023E14: .4byte gBattleTextBuff2
-_08023E18: .4byte word_2024E82
-_08023E1C: .4byte gBattlePartyID
-_08023E20: .4byte gBattleMons
-_08023E24: .4byte gDisableStructs
-_08023E28: .4byte gBitTable
-_08023E2C: .4byte gBattleTypeFlags
-_08023E30: .4byte 0x02000000
-_08023E34: .4byte 0x00016018
-_08023E38:
- bl sub_8023AD8
- ldr r1, _08023E48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08023E5C
- .align 2, 0
-_08023E48: .4byte gBattlescriptCurrInstr
-_08023E4C:
- ldr r0, _08023E6C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08023E5C
- ldr r2, _08023E70 @ =0x0001601a
- adds r1, r5, r2
- movs r0, 0x2
-_08023E5A:
- strb r0, [r1]
-_08023E5C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E6C: .4byte gBattleExecBuffer
-_08023E70: .4byte 0x0001601a
- thumb_func_end sub_8023AF8
-
- thumb_func_start atk5B_80256E0
-atk5B_80256E0: @ 8023E74
- push {r4,r5,lr}
- ldr r0, _08023E88 @ =0x02000000
- ldr r1, _08023E8C @ =0x0001601a
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _08023E90
- cmp r4, 0x1
- beq _08023EA8
- b _08023F78
- .align 2, 0
-_08023E88: .4byte 0x02000000
-_08023E8C: .4byte 0x0001601a
-_08023E90:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r0, _08023EA4 @ =gBattleCommunication
- strb r4, [r0, 0x1]
- bl sub_802BC6C
- b _08023F78
- .align 2, 0
-_08023EA4: .4byte gBattleCommunication
-_08023EA8:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023ECE
- ldr r4, _08023F30 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023ECE
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023ECE:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023EF4
- ldr r4, _08023F30 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023EF4
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023EF4:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023F4C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023F30 @ =gBattleCommunication
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023F38
- ldr r3, _08023F34 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08023F40
- .align 2, 0
-_08023F2C: .4byte gMain
-_08023F30: .4byte gBattleCommunication
-_08023F34: .4byte gBattlescriptCurrInstr
-_08023F38:
- ldr r1, _08023F48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08023F40:
- bl sub_8023AD8
- b _08023F78
- .align 2, 0
-_08023F48: .4byte gBattlescriptCurrInstr
-_08023F4C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08023F78
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08023F80 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bl sub_8023AD8
-_08023F78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gBattlescriptCurrInstr
- thumb_func_end atk5B_80256E0
-
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 8023F84
- push {r4,lr}
- ldr r4, _08023FF0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _08023FF4 @ =gActiveBank
- strb r0, [r2]
- ldr r0, _08023FF8 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08024008
- ldr r0, _08023FFC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r1, _08024000 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r0, _08024004 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024008
-_08023FD6:
- movs r0, 0
- bl EmitHitAnimation
- ldr r0, _08023FF4 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08023FF0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _0802400E
- .align 2, 0
-_08023FF0: .4byte gBattlescriptCurrInstr
-_08023FF4: .4byte gActiveBank
-_08023FF8: .4byte gBattleMoveFlags
-_08023FFC: .4byte gHitMarker
-_08024000: .4byte gBattleMons
-_08024004: .4byte gDisableStructs
-_08024008:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_0802400E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk5C_cmd5c
-
- thumb_func_start sub_8024014
-sub_8024014: @ 8024014
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _08024048 @ =gTrainerBattleOpponent
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08024058
- ldr r0, _0802404C @ =0x02017000
- adds r1, r0, 0
- adds r1, 0x94
- ldrb r2, [r1]
- ldr r1, _08024050 @ =0xfffff056
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490
- mov r8, r0
- b _08024140
- .align 2, 0
-_08024048: .4byte gTrainerBattleOpponent
-_0802404C: .4byte 0x02017000
-_08024050: .4byte 0xfffff056
-_08024054: .4byte gSaveBlock1 + 0x490
-_08024058:
- ldr r2, _08024074 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080240AE
- cmp r1, 0x1
- bgt _08024078
- cmp r1, 0
- beq _08024082
- b _080240C4
- .align 2, 0
-_08024074: .4byte gTrainers
-_08024078:
- cmp r1, 0x2
- beq _08024098
- cmp r1, 0x3
- beq _080240AE
- b _080240C4
-_08024082:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_08024098:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_080240AE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_080240C2:
- ldrb r5, [r0, 0x2]
-_080240C4:
- ldr r0, _08024120 @ =gTrainerMoney
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gBattleTypeFlags
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490
- mov r8, r0
- cmp r1, 0xFF
- beq _080240FE
- ldr r2, _08024130 @ =gTrainers
- ldr r0, _08024134 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_080240EE:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080240FE
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080240EE
-_080240FE:
- ldr r1, _08024138 @ =0x00016056
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldrh r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802413C
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _08024140
- .align 2, 0
-_08024120: .4byte gTrainerMoney
-_08024124: .4byte 0x02000000
-_08024128: .4byte gBattleTypeFlags
-_0802412C: .4byte gSaveBlock1 + 0x490
-_08024130: .4byte gTrainers
-_08024134: .4byte gTrainerBattleOpponent
-_08024138: .4byte 0x00016056
-_0802413C:
- adds r4, r3, 0
- muls r4, r2
-_08024140:
- mov r0, r8
- adds r1, r4, 0
- bl sub_80B79B8
- ldr r1, _0802418C @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- ldr r1, _08024190 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802418C: .4byte gBattleTextBuff1
-_08024190: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024014
-
- thumb_func_start atk5E_8025A70
-atk5E_8025A70: @ 8024194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241B8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _080241BC @ =gActiveBank
- strb r0, [r6]
- ldr r5, _080241C0 @ =gBattleCommunication
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _080241C4
- cmp r0, 0x1
- beq _080241DC
- b _08024230
- .align 2, 0
-_080241B8: .4byte gBattlescriptCurrInstr
-_080241BC: .4byte gActiveBank
-_080241C0: .4byte gBattleCommunication
-_080241C4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl EmitGetAttributes
- ldrb r0, [r6]
- bl MarkBufferBankForExecution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08024230
-_080241DC:
- ldr r0, _0802423C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08024230
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08024240 @ =gUnknown_02024264
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08024244 @ =gUnknown_02024AA4
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_080241FE:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080241FE
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024230:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802423C: .4byte gBattleExecBuffer
-_08024240: .4byte gUnknown_02024264
-_08024244: .4byte gUnknown_02024AA4
- thumb_func_end atk5E_8025A70
-
- thumb_func_start atk5F_8025B24
-atk5F_8025B24: @ 8024248
- push {lr}
- ldr r0, _08024270 @ =gActiveBank
- ldr r2, _08024274 @ =gBankAttacker
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08024278 @ =gBankTarget
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _0802427C @ =gHitMarker
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08024284
- ldr r0, _08024280 @ =0xffffefff
- ands r1, r0
- b _08024286
- .align 2, 0
-_08024270: .4byte gActiveBank
-_08024274: .4byte gBankAttacker
-_08024278: .4byte gBankTarget
-_0802427C: .4byte gHitMarker
-_08024280: .4byte 0xffffefff
-_08024284:
- orrs r1, r3
-_08024286:
- str r1, [r2]
- ldr r1, _08024294 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024294: .4byte gBattlescriptCurrInstr
- thumb_func_end atk5F_8025B24
-
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 8024298
- push {lr}
- ldr r0, _080242C0 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080242B2
- ldr r0, _080242C4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl IncrementGameStat
-_080242B2:
- ldr r1, _080242C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080242C0: .4byte gBankAttacker
-_080242C4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk60_cmd60
-
- thumb_func_start atk61_8025BA4
-atk61_8025BA4: @ 80242C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _0802432C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802437C
- ldr r0, _08024330 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024334 @ =gActiveBank
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _08024338 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080242FA
- ldr r0, _0802433C @ =gPlayerParty
- mov r8, r0
-_080242FA:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08024300:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08024324
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08024344
-_08024324:
- ldr r0, _08024340 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08024356
- .align 2, 0
-_0802432C: .4byte gBattleExecBuffer
-_08024330: .4byte gBattlescriptCurrInstr
-_08024334: .4byte gActiveBank
-_08024338: .4byte gEnemyParty
-_0802433C: .4byte gPlayerParty
-_08024340: .4byte 0x0000ffff
-_08024344:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08024356:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08024300
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl dp01_build_cmdbuf_x30_TODO
- ldr r0, _08024388 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802438C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802437C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024388: .4byte gActiveBank
-_0802438C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk61_8025BA4
-
- thumb_func_start atk62_08025C6C
-atk62_08025C6C: @ 8024390
- push {r4,r5,lr}
- ldr r5, _080243B8 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080243BC @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x31_31_31_31
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243B8: .4byte gBattlescriptCurrInstr
-_080243BC: .4byte gActiveBank
- thumb_func_end atk62_08025C6C
-
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 80243C0
- push {r4,lr}
- ldr r0, _080243D8 @ =gBattlescriptCurrInstr
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _080243E4
- ldr r0, _080243DC @ =gCurrentMove
- ldr r1, _080243E0 @ =gUnknown_02024BEA
- ldrh r1, [r1]
- strh r1, [r0]
- b _080243F2
- .align 2, 0
-_080243D8: .4byte gBattlescriptCurrInstr
-_080243DC: .4byte gCurrentMove
-_080243E0: .4byte gUnknown_02024BEA
-_080243E4:
- ldr r2, _08024410 @ =gUnknown_02024BE8
- ldr r1, _08024414 @ =gCurrentMove
- ldr r0, _08024418 @ =gUnknown_02024BEA
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_080243F2:
- ldr r3, _0802441C @ =gUnknown_081D6BBC
- ldr r2, _08024420 @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024410: .4byte gUnknown_02024BE8
-_08024414: .4byte gCurrentMove
-_08024418: .4byte gUnknown_02024BEA
-_0802441C: .4byte gUnknown_081D6BBC
-_08024420: .4byte gBattleMoves
- thumb_func_end atk63_jumptoattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8024424
- push {r4,lr}
- ldr r0, _08024494 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _0802448C
- ldr r0, _08024498 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802449C @ =gActiveBank
- strb r0, [r4]
- ldr r1, _080244A0 @ =gStatuses3
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080244A4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r0, _080244A8 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024484
- ldr r0, _080244AC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r1, _080244B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitStatusAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_08024484:
- ldr r1, _08024498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802448C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024494: .4byte gBattleExecBuffer
-_08024498: .4byte gBattlescriptCurrInstr
-_0802449C: .4byte gActiveBank
-_080244A0: .4byte gStatuses3
-_080244A4: .4byte 0x000400c0
-_080244A8: .4byte gDisableStructs
-_080244AC: .4byte gHitMarker
-_080244B0: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 80244B4
- push {r4,r5,lr}
- ldr r0, _0802453C @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08024534
- ldr r4, _08024540 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _08024544 @ =gActiveBank
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08024548 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0802454C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024550 @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024554 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r1, _08024558 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_0802452C:
- ldr r1, _08024540 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024534:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802453C: .4byte gBattleExecBuffer
-_08024540: .4byte gBattlescriptCurrInstr
-_08024544: .4byte gActiveBank
-_08024548: .4byte gStatuses3
-_0802454C: .4byte 0x000400c0
-_08024550: .4byte gDisableStructs
-_08024554: .4byte gHitMarker
-_08024558: .4byte gBattleMons
- thumb_func_end atk65_8025D90
-
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 802455C
- push {r4,r5,lr}
- ldr r0, _080245D4 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _080245CE
- ldr r4, _080245D8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080245DC @ =gActiveBank
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _080245E0 @ =gStatuses3
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080245E4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245E8 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245EC @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl EmitStatusAnimation
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_080245C6:
- ldr r1, _080245D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_080245CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080245D4: .4byte gBattleExecBuffer
-_080245D8: .4byte gBattlescriptCurrInstr
-_080245DC: .4byte gActiveBank
-_080245E0: .4byte gStatuses3
-_080245E4: .4byte 0x000400c0
-_080245E8: .4byte gDisableStructs
-_080245EC: .4byte gHitMarker
- thumb_func_end atk66_8025E38
-
- thumb_func_start atk67_8025ECC
-atk67_8025ECC: @ 80245F0
- push {r4,r5,lr}
- ldr r5, _08024600 @ =gBattleCommunication
- ldrb r4, [r5]
- cmp r4, 0
- beq _08024604
- cmp r4, 0x1
- beq _08024616
- b _08024696
- .align 2, 0
-_08024600: .4byte gBattleCommunication
-_08024604:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802BC6C
- b _08024696
-_08024616:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802463A
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0802463A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802BC6C
-_0802463A:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08024660
- ldr r4, _08024678 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08024660
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08024660:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802467C
- ldr r1, _08024678 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _08024684
- .align 2, 0
-_08024674: .4byte gMain
-_08024678: .4byte gBattleCommunication
-_0802467C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024696
-_08024684:
- movs r0, 0x5
- bl PlaySE
- bl sub_8023AD8
- ldr r1, _0802469C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024696:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802469C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk67_8025ECC
-
- thumb_func_start sub_80246A0
-sub_80246A0: @ 80246A0
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _080246CC @ =gNoOfAllBanks
- ldr r5, _080246D0 @ =gBattlescriptCurrInstr
- ldrb r0, [r2]
- cmp r1, r0
- bge _080246BE
- ldr r4, _080246D4 @ =gUnknown_02024A76
- movs r3, 0xC
-_080246B2:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _080246B2
-_080246BE:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080246CC: .4byte gNoOfAllBanks
-_080246D0: .4byte gBattlescriptCurrInstr
-_080246D4: .4byte gUnknown_02024A76
- thumb_func_end sub_80246A0
-
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 80246D8
- push {r4-r7,lr}
- ldr r7, _08024700 @ =gBattleMons
- ldr r6, _08024704 @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0802470C
- ldr r1, _08024708 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08024726
- .align 2, 0
-_08024700: .4byte gBattleMons
-_08024704: .4byte gBankTarget
-_08024708: .4byte gEnigmaBerries
-_0802470C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08024726:
- ldr r1, _080247E8 @ =gStringBank
- ldr r5, _080247EC @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08024764
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08024764
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _080247F0 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08024764:
- ldr r2, _080247F4 @ =gBattleMons
- ldr r3, _080247EC @ =gBankTarget
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _08024834
- ldr r2, _080247F8 @ =gBattleMoves
- ldr r0, _080247FC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080247B6
- ldr r0, _08024800 @ =gProtectStructs
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080247B6
- ldr r0, _080247F0 @ =gSpecialStatuses
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
-_080247B6:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gBattleMoveDamage
- ldr r0, [r2]
- cmp r1, r0
- bgt _08024834
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08024800 @ =gProtectStructs
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0802480C
- ldr r0, _08024808 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08024834
- .align 2, 0
-_080247E8: .4byte gStringBank
-_080247EC: .4byte gBankTarget
-_080247F0: .4byte gSpecialStatuses
-_080247F4: .4byte gBattleMons
-_080247F8: .4byte gBattleMoves
-_080247FC: .4byte gCurrentMove
-_08024800: .4byte gProtectStructs
-_08024804: .4byte gBattleMoveDamage
-_08024808: .4byte gBattleMoveFlags
-_0802480C:
- ldr r0, _08024844 @ =gSpecialStatuses
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
- ldr r2, _08024848 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802484C @ =gLastUsedItem
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_08024834:
- ldr r1, _08024850 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024844: .4byte gSpecialStatuses
-_08024848: .4byte gBattleMoveFlags
-_0802484C: .4byte gLastUsedItem
-_08024850: .4byte gBattlescriptCurrInstr
- thumb_func_end atk69_8025FE0
-
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 8024854
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080248B0 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080248B4 @ =gActiveBank
- strb r0, [r5]
- ldrb r4, [r5]
- lsls r1, r4, 1
- ldr r0, _080248B8 @ =0x020160cc
- adds r1, r0
- ldr r2, _080248BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080248B0: .4byte gBattlescriptCurrInstr
-_080248B4: .4byte gActiveBank
-_080248B8: .4byte 0x020160cc
-_080248BC: .4byte gBattleMons
- thumb_func_end atk6A_stash_item_for_side
-
- thumb_func_start sub_80248C0
-sub_80248C0: @ 80248C0
- ldr r1, _080248EC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080248F0 @ =gBankAttacker
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080248F4 @ =gBattlePartyID
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080248F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080248EC: .4byte gBattleTextBuff1
-_080248F0: .4byte gBankAttacker
-_080248F4: .4byte gBattlePartyID
-_080248F8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80248C0
-
- thumb_func_start sub_80248FC
-sub_80248FC: @ 80248FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- movs r7, 0
- ldr r0, _08024928 @ =0x02000000
- mov r10, r0
- ldr r4, _0802492C @ =0x0001609c
- add r4, r10
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0802491C
- b _08024AF4
-_0802491C:
- cmp r0, 0x1
- bgt _08024930
- cmp r0, 0
- beq _0802493E
- b _08024C38
- .align 2, 0
-_08024928: .4byte 0x02000000
-_0802492C: .4byte 0x0001609c
-_08024930:
- cmp r0, 0x2
- bne _08024936
- b _08024C04
-_08024936:
- cmp r0, 0x3
- bne _0802493C
- b _08024C30
-_0802493C:
- b _08024C38
-_0802493E:
- str r1, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldr r0, _0802499C @ =gStringVar4
- ldr r1, _080249A0 @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0
- mov r8, r1
-_0802495A:
- movs r2, 0
- mov r9, r2
- ldr r0, _080249A4 @ =gUnknown_0840165C
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- ldr r0, _080249A8 @ =0x02000000
- ldr r2, _080249AC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080249B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080249B4 @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- mov r0, r8
- cmp r0, 0x5
- bhi _08024A1A
- ldr r0, _080249B8 @ =_080249BC
- adds r0, r4, r0
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802499C: .4byte gStringVar4
-_080249A0: .4byte gUnknown_08400D9F
-_080249A4: .4byte gUnknown_0840165C
-_080249A8: .4byte 0x02000000
-_080249AC: .4byte 0x00016018
-_080249B0: .4byte gPlayerParty
-_080249B4: .4byte gLevelUpStatBoxStats
-_080249B8: .4byte _080249BC
- .align 2, 0
-_080249BC:
- .4byte _080249D4
- .4byte _080249E0
- .4byte _080249EC
- .4byte _080249F8
- .4byte _08024A04
- .4byte _08024A10
-_080249D4:
- ldr r0, _080249DC @ =0x02017180
- ldrh r0, [r0]
- b _08024A14
- .align 2, 0
-_080249DC: .4byte 0x02017180
-_080249E0:
- ldr r0, _080249E8 @ =0x02017180
- ldrh r0, [r0, 0x8]
- b _08024A14
- .align 2, 0
-_080249E8: .4byte 0x02017180
-_080249EC:
- ldr r0, _080249F4 @ =0x02017180
- ldrh r0, [r0, 0x2]
- b _08024A14
- .align 2, 0
-_080249F4: .4byte 0x02017180
-_080249F8:
- ldr r0, _08024A00 @ =0x02017180
- ldrh r0, [r0, 0xA]
- b _08024A14
- .align 2, 0
-_08024A00: .4byte 0x02017180
-_08024A04:
- ldr r0, _08024A0C @ =0x02017180
- ldrh r0, [r0, 0x4]
- b _08024A14
- .align 2, 0
-_08024A0C: .4byte 0x02017180
-_08024A10:
- ldr r0, _08024A54 @ =0x02017180
- ldrh r0, [r0, 0x6]
-_08024A14:
- subs r0, r1, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_08024A1A:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- bge _08024A2C
- negs r0, r0
- lsls r0, 16
- lsrs r7, r0, 16
- movs r1, 0x1
- add r9, r1
-_08024A2C:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r1, 0x1
- mov r2, r8
- ands r1, r2
- lsls r0, r1, 3
- adds r0, r1
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- mov r0, r9
- cmp r0, 0
- beq _08024A5C
- ldr r1, _08024A58 @ =gUnknown_08400DAC
- b _08024A5E
- .align 2, 0
-_08024A54: .4byte 0x02017180
-_08024A58: .4byte gUnknown_08400DAC
-_08024A5C:
- ldr r1, _08024AA4 @ =gUnknown_08400DAA
-_08024A5E:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFC
- strb r6, [r5]
- movs r4, 0x14
- strb r4, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, r7, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08024AA8
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024AB8
- .align 2, 0
-_08024AA4: .4byte gUnknown_08400DAA
-_08024AA8:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024AB8:
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x5
- bgt _08024AC4
- b _0802495A
-_08024AC4:
- ldr r4, _08024AE4 @ =gUnknown_03004210
- ldr r1, _08024AE8 @ =gStringVar4
- adds r2, 0xFF
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024AEC @ =0x02000000
- ldr r2, _08024AF0 @ =0x0001609c
- adds r1, r2
- b _08024BEA
- .align 2, 0
-_08024AE4: .4byte gUnknown_03004210
-_08024AE8: .4byte gStringVar4
-_08024AEC: .4byte 0x02000000
-_08024AF0: .4byte 0x0001609c
-_08024AF4:
- ldr r0, _08024B94 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _08024AFE
- b _08024C38
-_08024AFE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08024B98 @ =gStringVar4
- ldr r1, _08024B9C @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0xFC
- movs r7, 0x14
- ldr r1, _08024BA0 @ =0x00016018
- add r10, r1
-_08024B1C:
- ldr r1, _08024BA4 @ =gUnknown_0840165C
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08024BA8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08024BAC @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r0, 0
- strb r6, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r4, 0x1
- mov r2, r8
- ands r4, r2
- lsls r0, r4, 3
- adds r0, r4
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- strb r6, [r5]
- strb r7, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r7, [r5, 0x1]
- mov r0, r9
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _08024BB0
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024BC0
- .align 2, 0
-_08024B94: .4byte gMain
-_08024B98: .4byte gStringVar4
-_08024B9C: .4byte gUnknown_08400D9F
-_08024BA0: .4byte 0x00016018
-_08024BA4: .4byte gUnknown_0840165C
-_08024BA8: .4byte gPlayerParty
-_08024BAC: .4byte gLevelUpStatBoxStats
-_08024BB0:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024BC0:
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x5
- ble _08024B1C
- ldr r4, _08024BF4 @ =gUnknown_03004210
- ldr r1, _08024BF8 @ =gStringVar4
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024BFC @ =0x02000000
- ldr r0, _08024C00 @ =0x0001609c
- adds r1, r0
-_08024BEA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08024C38
- .align 2, 0
-_08024BF4: .4byte gUnknown_03004210
-_08024BF8: .4byte gStringVar4
-_08024BFC: .4byte 0x02000000
-_08024C00: .4byte 0x0001609c
-_08024C04:
- ldr r0, _08024C2C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _08024C38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08024C38
- .align 2, 0
-_08024C2C: .4byte gMain
-_08024C30:
- ldr r1, _08024C48 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024C38:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024C48: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024C4C
-sub_8024C4C: @ 8024C4C
- push {lr}
- bl sub_80156DC
- ldr r1, _08024C60 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C60: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024C4C
-
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 8024C64
- push {lr}
- movs r0, 0
- bl GetBankByPlayerAI
- ldr r1, _08024C7C @ =gBankAttacker
- strb r0, [r1]
- ldr r1, _08024C80 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C7C: .4byte gBankAttacker
-_08024C80: .4byte gBattlescriptCurrInstr
- thumb_func_end atk6E_state0_side_becomes_attacker
-
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 8024C84
- push {r4,r5,lr}
- ldr r5, _08024CB0 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08024CB4 @ =gActiveBank
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CB0: .4byte gBattlescriptCurrInstr
-_08024CB4: .4byte gActiveBank
- thumb_func_end atk6F_8026810
-
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 8024CB8
- push {r4,lr}
- ldr r4, _08024CE0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024CE4 @ =gActiveBank
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08024CE8 @ =gLastUsedAbility
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CE0: .4byte gBattlescriptCurrInstr
-_08024CE4: .4byte gActiveBank
-_08024CE8: .4byte gLastUsedAbility
- thumb_func_end atk70_record_ability_usage_of_side
-
- thumb_func_start sub_8024CEC
-sub_8024CEC: @ 8024CEC
- ldr r2, _08024D0C @ =gBattleTextBuff2
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _08024D10 @ =word_2024E82
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08024D0C: .4byte gBattleTextBuff2
-_08024D10: .4byte word_2024E82
- thumb_func_end sub_8024CEC
-
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 8024D14
- push {lr}
- bl sub_8024CEC
- ldr r1, _08024D28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024D28: .4byte gBattlescriptCurrInstr
- thumb_func_end atk71_80268A0
-
- thumb_func_start atk72_flee
-atk72_flee: @ 8024D2C
- push {lr}
- ldr r0, _08024D58 @ =gBank1
- ldrb r0, [r0]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- beq _08024D60
- ldr r3, _08024D5C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08024D68
- .align 2, 0
-_08024D58: .4byte gBank1
-_08024D5C: .4byte gBattlescriptCurrInstr
-_08024D60:
- ldr r1, _08024D6C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08024D68:
- pop {r0}
- bx r0
- .align 2, 0
-_08024D6C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk72_flee
-
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 8024D70
- push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- bne _08024E12
- ldr r0, _08024DC4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024DC8 @ =gActiveBank
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024DCC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r4, [r1, 0x28]
- movs r0, 0x64
- muls r0, r4
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _08024DAE
- movs r0, 0x1
-_08024DAE:
- cmp r0, 0x45
- bgt _08024DB6
- cmp r4, 0
- bne _08024DD8
-_08024DB6:
- ldr r0, _08024DD0 @ =0x02000000
- ldr r1, _08024DD4 @ =0x000160c1
- adds r0, r1
- strb r5, [r0]
- b _08024E12
- .align 2, 0
-_08024DC0: .4byte gBattleTypeFlags
-_08024DC4: .4byte gBattlescriptCurrInstr
-_08024DC8: .4byte gActiveBank
-_08024DCC: .4byte gBattleMons
-_08024DD0: .4byte 0x02000000
-_08024DD4: .4byte 0x000160c1
-_08024DD8:
- cmp r0, 0x27
- ble _08024DF0
- ldr r0, _08024DE8 @ =0x02000000
- ldr r1, _08024DEC @ =0x000160c1
- adds r0, r1
- movs r1, 0x1
- b _08024E10
- .align 2, 0
-_08024DE8: .4byte 0x02000000
-_08024DEC: .4byte 0x000160c1
-_08024DF0:
- cmp r0, 0x9
- ble _08024E08
- ldr r0, _08024E00 @ =0x02000000
- ldr r1, _08024E04 @ =0x000160c1
- adds r0, r1
- movs r1, 0x2
- b _08024E10
- .align 2, 0
-_08024E00: .4byte 0x02000000
-_08024E04: .4byte 0x000160c1
-_08024E08:
- ldr r0, _08024E20 @ =0x02000000
- ldr r1, _08024E24 @ =0x000160c1
- adds r0, r1
- movs r1, 0x3
-_08024E10:
- strb r1, [r0]
-_08024E12:
- ldr r1, _08024E28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte 0x02000000
-_08024E24: .4byte 0x000160c1
-_08024E28: .4byte gBattlescriptCurrInstr
- thumb_func_end atk73_cmd73
-
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 8024E2C
- push {r4-r7,lr}
- ldr r0, _08024E8C @ =gBattleTypeFlags
- ldrh r0, [r0]
- movs r7, 0x1
- ands r7, r0
- cmp r7, 0
- bne _08024ED0
- ldr r0, _08024E90 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- adds r4, r0, 0
- ldr r0, _08024E94 @ =gActiveBank
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08024E98 @ =0x02000000
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08024E9C @ =0x000160bc
- adds r0, r1
- adds r0, r6
- ldrb r5, [r0]
- ldr r1, _08024EA0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08024EA8
- ldr r1, _08024EA4 @ =0x000160c1
- adds r0, r6, r1
- strb r7, [r0]
- b _08024ED0
- .align 2, 0
-_08024E8C: .4byte gBattleTypeFlags
-_08024E90: .4byte gBattlescriptCurrInstr
-_08024E94: .4byte gActiveBank
-_08024E98: .4byte 0x02000000
-_08024E9C: .4byte 0x000160bc
-_08024EA0: .4byte gBattleMons
-_08024EA4: .4byte 0x000160c1
-_08024EA8:
- cmp r0, 0x1D
- bgt _08024EB8
- ldr r0, _08024EB4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x1
- b _08024ECE
- .align 2, 0
-_08024EB4: .4byte 0x000160c1
-_08024EB8:
- cmp r1, 0x45
- bgt _08024EC8
- ldr r0, _08024EC4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x2
- b _08024ECE
- .align 2, 0
-_08024EC4: .4byte 0x000160c1
-_08024EC8:
- ldr r0, _08024EE0 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x3
-_08024ECE:
- strb r0, [r1]
-_08024ED0:
- ldr r1, _08024EE4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024EE0: .4byte 0x000160c1
-_08024EE4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk74_hp_tresholds_2
-
- thumb_func_start atk75_8026A58
-atk75_8026A58: @ 8024EE8
- push {lr}
- sub sp, 0x4
- ldr r2, _08024F28 @ =gBankInMenu
- ldr r1, _08024F2C @ =gBankAttacker
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08024F30 @ =gBattlePartyID
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08024F34 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08024F38 @ =gLastUsedItem
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl sub_803E1B0
- ldr r1, _08024F3C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08024F28: .4byte gBankInMenu
-_08024F2C: .4byte gBankAttacker
-_08024F30: .4byte gBattlePartyID
-_08024F34: .4byte gEnemyParty
-_08024F38: .4byte gLastUsedItem
-_08024F3C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk75_8026A58
-
- thumb_func_start sub_8024F40
-sub_8024F40: @ 8024F40
- push {r4-r6,lr}
- ldr r4, _08024F64 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024F68 @ =gActiveBank
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x6
- bls _08024F5A
- b _08025112
-_08024F5A:
- lsls r0, 2
- ldr r1, _08024F6C @ =_08024F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024F64: .4byte gBattlescriptCurrInstr
-_08024F68: .4byte gActiveBank
-_08024F6C: .4byte _08024F70
- .align 2, 0
-_08024F70:
- .4byte _08024F8C
- .4byte _08024F9C
- .4byte _08024FFC
- .4byte _0802500C
- .4byte _08025024
- .4byte _08025060
- .4byte _08025098
-_08024F8C:
- ldr r0, _08024F98 @ =gActiveBank
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- b _08025112
- .align 2, 0
-_08024F98: .4byte gActiveBank
-_08024F9C:
- ldr r1, _08024FD8 @ =gBankAttacker
- ldr r4, _08024FDC @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024FE0 @ =gSideTimer
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08024FE8
- ldr r1, _08024FE4 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08024FE8
- strb r2, [r4]
- b _08025112
- .align 2, 0
-_08024FD8: .4byte gBankAttacker
-_08024FDC: .4byte gBankTarget
-_08024FE0: .4byte gSideTimer
-_08024FE4: .4byte gBattleMons
-_08024FE8:
- ldr r0, _08024FF4 @ =gBankTarget
- ldr r1, _08024FF8 @ =gActiveBank
- ldrb r1, [r1]
- strb r1, [r0]
- b _08025112
- .align 2, 0
-_08024FF4: .4byte gBankTarget
-_08024FF8: .4byte gActiveBank
-_08024FFC:
- bl CanRunFromBattle
- ldr r1, _08025008 @ =gBattleCommunication
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025008: .4byte gBattleCommunication
-_0802500C:
- ldr r0, _0802501C @ =gCurrentMove
- ldrh r0, [r0]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025020 @ =gBankTarget
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_0802501C: .4byte gCurrentMove
-_08025020: .4byte gBankTarget
-_08025024:
- ldr r2, _08025044 @ =gHitMarker
- ldr r1, _08025048 @ =gBitTable
- ldr r0, _0802504C @ =gActiveBank
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08025054
- ldr r1, _08025050 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025044: .4byte gHitMarker
-_08025048: .4byte gBitTable
-_0802504C: .4byte gActiveBank
-_08025050: .4byte gBattleCommunication
-_08025054:
- ldr r0, _0802505C @ =gBattleCommunication
- strb r2, [r0]
- b _08025112
- .align 2, 0
-_0802505C: .4byte gBattleCommunication
-_08025060:
- ldr r4, _08025090 @ =gSpecialStatuses
- ldr r3, _08025094 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025090: .4byte gSpecialStatuses
-_08025094: .4byte gActiveBank
-_08025098:
- ldr r3, _080250B8 @ =gBattlePartyID
- ldr r0, _080250BC @ =0x02000000
- ldr r1, _080250C0 @ =0x00016018
- adds r0, r1
- ldrh r2, [r3]
- ldrb r1, [r0]
- cmp r2, r1
- beq _080250B2
- ldrh r0, [r3, 0x4]
- cmp r0, r1
- bne _08025112
- cmp r2, r0
- bne _080250C8
-_080250B2:
- ldr r1, _080250C4 @ =gActiveBank
- movs r0, 0
- b _080250CC
- .align 2, 0
-_080250B8: .4byte gBattlePartyID
-_080250BC: .4byte 0x02000000
-_080250C0: .4byte 0x00016018
-_080250C4: .4byte gActiveBank
-_080250C8:
- ldr r1, _08025120 @ =gActiveBank
- movs r0, 0x2
-_080250CC:
- strb r0, [r1]
- adds r5, r1, 0
- ldrb r2, [r5]
- lsls r1, r2, 1
- ldr r0, _08025124 @ =0x020160e8
- adds r4, r1, r0
- movs r3, 0
- ldr r1, _08025128 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r4]
- cmp r0, r2
- beq _0802510A
- adds r6, r5, 0
- movs r5, 0x58
- adds r2, r1, 0
-_080250F2:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0802510A
- lsls r1, r3, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r4]
- cmp r0, r1
- bne _080250F2
-_0802510A:
- cmp r3, 0x4
- bne _08025112
- movs r0, 0
- strh r0, [r4]
-_08025112:
- ldr r1, _0802512C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08025120: .4byte gActiveBank
-_08025124: .4byte 0x020160e8
-_08025128: .4byte gBattleMons
-_0802512C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8024F40
-
- thumb_func_start atk77_setprotect
-atk77_setprotect: @ 8025130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _080251FC @ =gUnknown_02024C4C
- ldr r1, _08025200 @ =gBankAttacker
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _08025204 @ =gDisableStructs
- cmp r0, 0xB6
- beq _08025160
- cmp r0, 0xC5
- beq _08025160
- cmp r0, 0xCB
- beq _08025160
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08025160:
- ldr r0, _08025208 @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802520C @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08025170
- movs r6, 0
-_08025170:
- ldr r2, _08025210 @ =gProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bls _08025224
- cmp r6, 0
- beq _08025224
- ldr r4, _08025214 @ =gBattleMoves
- ldr r3, _08025218 @ =gCurrentMove
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _080251C0
- ldr r0, _0802521C @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_080251C0:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _080251E6
- ldr r0, _0802521C @ =gProtectStructs
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080251E6:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _08025246
- .align 2, 0
-_080251FC: .4byte gUnknown_02024C4C
-_08025200: .4byte gBankAttacker
-_08025204: .4byte gDisableStructs
-_08025208: .4byte gCurrentMoveTurn
-_0802520C: .4byte gNoOfAllBanks
-_08025210: .4byte gProtectSuccessRates
-_08025214: .4byte gBattleMoves
-_08025218: .4byte gCurrentMove
-_0802521C: .4byte gProtectStructs
-_08025220: .4byte gBattleCommunication
-_08025224:
- ldr r2, _08025258 @ =gDisableStructs
- ldr r0, _0802525C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08025260 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08025246:
- ldr r1, _08025268 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025258: .4byte gDisableStructs
-_0802525C: .4byte gBankAttacker
-_08025260: .4byte gBattleCommunication
-_08025264: .4byte gBattleMoveFlags
-_08025268: .4byte gBattlescriptCurrInstr
- thumb_func_end atk77_setprotect
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 802526C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08025328 @ =gBattleExecBuffer
- ldr r2, [r0]
- cmp r2, 0
- bne _08025370
- ldr r1, _0802532C @ =gBankTarget
- strb r2, [r1]
- ldr r0, _08025330 @ =gNoOfAllBanks
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _08025334 @ =gBattleMons
- cmp r2, r3
- bcs _080252B8
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080252B8
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_0802529C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080252B8
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0802529C
-_080252B8:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _08025354
- ldr r4, _08025338 @ =gActiveBank
- ldr r7, _0802533C @ =gBankAttacker
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08025340 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08025344 @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08025348 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08025370
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _0802534C @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08025350 @ =gAbsentBankFlags
-_08025304:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802531A
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _08025370
-_0802531A:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _08025304
- b _08025370
- .align 2, 0
-_08025328: .4byte gBattleExecBuffer
-_0802532C: .4byte gBankTarget
-_08025330: .4byte gNoOfAllBanks
-_08025334: .4byte gBattleMons
-_08025338: .4byte gActiveBank
-_0802533C: .4byte gBankAttacker
-_08025340: .4byte gBattleMoveDamage
-_08025344: .4byte 0x00007fff
-_08025348: .4byte gBattlescriptCurrInstr
-_0802534C: .4byte gBitTable
-_08025350: .4byte gAbsentBankFlags
-_08025354:
- ldr r1, _0802537C @ =gLastUsedAbility
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r1, _08025380 @ =gBattlescriptCurrInstr
- ldr r0, _08025384 @ =gUnknown_081D9834
- str r0, [r1]
-_08025370:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802537C: .4byte gLastUsedAbility
-_08025380: .4byte gBattlescriptCurrInstr
-_08025384: .4byte gUnknown_081D9834
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 8025388
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080253D4 @ =gBattleExecBuffer
- ldr r3, [r0]
- cmp r3, 0
- bne _080253CC
- ldr r4, _080253D8 @ =gActiveBank
- ldr r0, _080253DC @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _080253E0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _080253E4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080253CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080253D4: .4byte gBattleExecBuffer
-_080253D8: .4byte gActiveBank
-_080253DC: .4byte gBankAttacker
-_080253E0: .4byte gBattleMons
-_080253E4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk79_setuserhptozero
-
- thumb_func_start sub_80253E8
-sub_80253E8: @ 80253E8
- push {r4-r7,lr}
- ldr r3, _08025460 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _08025464 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08025480
- ldr r0, _08025468 @ =gBankTarget
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _0802546C @ =gBankAttacker
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _08025470 @ =gAbsentBankFlags
- ldr r5, _08025474 @ =gBitTable
- ldr r0, _08025478 @ =gNoOfAllBanks
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _0802543E
-_0802542E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _0802542E
-_0802543E:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0802542E
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802547C
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08025484
- .align 2, 0
-_08025460: .4byte gBattlescriptCurrInstr
-_08025464: .4byte gBattleTypeFlags
-_08025468: .4byte gBankTarget
-_0802546C: .4byte gBankAttacker
-_08025470: .4byte gAbsentBankFlags
-_08025474: .4byte gBitTable
-_08025478: .4byte gNoOfAllBanks
-_0802547C:
- str r4, [r7]
- b _08025484
-_08025480:
- adds r0, r2, 0x5
- str r0, [r3]
-_08025484:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80253E8
-
- thumb_func_start sub_802548C
-sub_802548C: @ 802548C
- push {r4-r6,lr}
- ldr r4, _080254E8 @ =gBattlescriptCurrInstr
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _080254EC @ =gBankTarget
- cmp r0, 0x1
- bne _080254B4
- ldr r0, _080254F0 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r3]
-_080254B4:
- ldr r1, _080254F4 @ =gBattleMoveDamage
- ldr r6, _080254F8 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _080254CE
- movs r0, 0x1
- str r0, [r1]
-_080254CE:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _080254FC
- str r2, [r4]
- b _08025502
- .align 2, 0
-_080254E8: .4byte gBattlescriptCurrInstr
-_080254EC: .4byte gBankTarget
-_080254F0: .4byte gBankAttacker
-_080254F4: .4byte gBattleMoveDamage
-_080254F8: .4byte gBattleMons
-_080254FC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08025502:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802548C
-
- thumb_func_start sub_8025508
-sub_8025508: @ 8025508
- push {r4-r7,lr}
- ldr r3, _0802556C @ =0x02000000
- ldr r4, _08025570 @ =gBankAttacker
- ldrb r2, [r4]
- lsls r1, r2, 1
- ldr r5, _08025574 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r3
- ldrb r7, [r0]
- ldr r0, _08025578 @ =0x000160ad
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r7, r0
- lsls r2, 2
- ldr r1, _0802557C @ =0x00016100
- adds r0, r2, r1
- adds r0, r3
- ldrb r6, [r0]
- adds r5, 0x55
- adds r0, r2, r5
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- adds r1, 0x2
- adds r0, r2, r1
- adds r0, r3
- ldrb r5, [r0]
- ldr r0, _08025580 @ =0x00016103
- adds r2, r0
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r5, r0
- cmp r7, 0
- beq _08025594
- ldr r0, _08025584 @ =0x0000ffff
- cmp r7, r0
- beq _08025594
- ldr r2, _08025588 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802558C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025590 @ =gCurrentMove
- strh r7, [r4]
- b _0802565C
- .align 2, 0
-_0802556C: .4byte 0x02000000
-_08025570: .4byte gBankAttacker
-_08025574: .4byte 0x000160ac
-_08025578: .4byte 0x000160ad
-_0802557C: .4byte 0x00016100
-_08025580: .4byte 0x00016103
-_08025584: .4byte 0x0000ffff
-_08025588: .4byte gHitMarker
-_0802558C: .4byte 0xfffffbff
-_08025590: .4byte gCurrentMove
-_08025594:
- cmp r6, 0
- beq _08025644
- cmp r5, 0
- beq _08025618
- ldr r0, _080255C4 @ =0x0000ffff
- cmp r6, r0
- beq _08025618
- cmp r5, r0
- beq _08025618
- ldr r2, _080255C8 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _080255CC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080255D4
- ldr r0, _080255D0 @ =gCurrentMove
- strh r6, [r0]
- b _080255D8
- .align 2, 0
-_080255C4: .4byte 0x0000ffff
-_080255C8: .4byte gHitMarker
-_080255CC: .4byte 0xfffffbff
-_080255D0: .4byte gCurrentMove
-_080255D4:
- ldr r0, _08025604 @ =gCurrentMove
- strh r5, [r0]
-_080255D8:
- adds r5, r0, 0
- ldrh r0, [r5]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025608 @ =gBankTarget
- strb r0, [r1]
- ldr r4, _0802560C @ =gBattlescriptCurrInstr
- ldr r3, _08025610 @ =gUnknown_081D6BBC
- ldr r2, _08025614 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- b _080256C0
- .align 2, 0
-_08025604: .4byte gCurrentMove
-_08025608: .4byte gBankTarget
-_0802560C: .4byte gBattlescriptCurrInstr
-_08025610: .4byte gUnknown_081D6BBC
-_08025614: .4byte gBattleMoves
-_08025618:
- cmp r6, 0
- beq _08025644
- ldr r0, _08025634 @ =0x0000ffff
- cmp r6, r0
- beq _08025644
- ldr r2, _08025638 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802563C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025640 @ =gCurrentMove
- strh r6, [r4]
- b _0802565C
- .align 2, 0
-_08025634: .4byte 0x0000ffff
-_08025638: .4byte gHitMarker
-_0802563C: .4byte 0xfffffbff
-_08025640: .4byte gCurrentMove
-_08025644:
- cmp r5, 0
- beq _080256A4
- ldr r0, _08025684 @ =0x0000ffff
- cmp r5, r0
- beq _080256A4
- ldr r2, _08025688 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802568C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025690 @ =gCurrentMove
- strh r5, [r4]
-_0802565C:
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025694 @ =gBankTarget
- strb r0, [r1]
- ldr r5, _08025698 @ =gBattlescriptCurrInstr
- ldr r3, _0802569C @ =gUnknown_081D6BBC
- ldr r2, _080256A0 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _080256C0
- .align 2, 0
-_08025684: .4byte 0x0000ffff
-_08025688: .4byte gHitMarker
-_0802568C: .4byte 0xfffffbff
-_08025690: .4byte gCurrentMove
-_08025694: .4byte gBankTarget
-_08025698: .4byte gBattlescriptCurrInstr
-_0802569C: .4byte gUnknown_081D6BBC
-_080256A0: .4byte gBattleMoves
-_080256A4:
- ldr r2, _080256C8 @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080256CC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080256C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256C8: .4byte gSpecialStatuses
-_080256CC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025508
-
- thumb_func_start sub_80256D0
-sub_80256D0: @ 80256D0
- push {lr}
- ldr r2, _080256F0 @ =gBattleWeather
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080256FC
- ldr r2, _080256F4 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080256F8 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802570C
- .align 2, 0
-_080256F0: .4byte gBattleWeather
-_080256F4: .4byte gBattleMoveFlags
-_080256F8: .4byte gBattleCommunication
-_080256FC:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _08025718 @ =gBattleCommunication
- strb r1, [r0, 0x5]
- ldr r0, _0802571C @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802570C:
- ldr r1, _08025720 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025718: .4byte gBattleCommunication
-_0802571C: .4byte gWishFutureKnock
-_08025720: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80256D0
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 8025724
- push {r4-r6,lr}
- ldr r5, _08025754 @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- ldr r6, _08025758 @ =gSideAffecting
- movs r4, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025764
- ldr r2, _0802575C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025760 @ =gBattleCommunication
- movs r0, 0
- b _080257C4
- .align 2, 0
-_08025754: .4byte gBankAttacker
-_08025758: .4byte gSideAffecting
-_0802575C: .4byte gBattleMoveFlags
-_08025760: .4byte gBattleCommunication
-_08025764:
- ldrb r0, [r5]
- bl GetBankIdentity
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl GetBankIdentity
- ldr r2, _080257B4 @ =gSideTimer
- adds r1, r4, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- ldr r0, _080257B8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257C0
- movs r0, 0x1
- bl CountAliveMons
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080257C0
- ldr r0, _080257BC @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _080257C6
- .align 2, 0
-_080257B4: .4byte gSideTimer
-_080257B8: .4byte gBattleTypeFlags
-_080257BC: .4byte gBattleCommunication
-_080257C0:
- ldr r1, _080257D4 @ =gBattleCommunication
- movs r0, 0x1
-_080257C4:
- strb r0, [r1, 0x5]
-_080257C6:
- ldr r1, _080257D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080257D4: .4byte gBattleCommunication
-_080257D8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk7E_setreflect
-
- thumb_func_start sub_80257DC
-sub_80257DC: @ 80257DC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _0802581C @ =gBattleMoveFlags
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _0802580E
- ldr r0, _08025820 @ =gStatuses3
- mov r9, r0
- ldr r1, _08025824 @ =gBankTarget
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _0802582C
-_0802580E:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08025828 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_0802581C: .4byte gBattleMoveFlags
-_08025820: .4byte gStatuses3
-_08025824: .4byte gBankTarget
-_08025828: .4byte gBattleCommunication
-_0802582C:
- ldr r1, _08025858 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08025848
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08025860
-_08025848:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _0802585C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_08025858: .4byte gBattleMons
-_0802585C: .4byte gBattleCommunication
-_08025860:
- ldr r0, _08025890 @ =gBankAttacker
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08025894 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_0802587C:
- ldr r1, _08025898 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025890: .4byte gBankAttacker
-_08025894: .4byte gBattleCommunication
-_08025898: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80257DC
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 802589C
- push {r4,lr}
- ldr r1, _080258B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080258CC
- cmp r2, 0x1
- bgt _080258B8
- cmp r2, 0
- beq _080258BE
- b _0802590C
- .align 2, 0
-_080258B4: .4byte gBattlescriptCurrInstr
-_080258B8:
- cmp r2, 0x2
- beq _08025904
- b _0802590C
-_080258BE:
- ldr r1, _080258C8 @ =gBattleMoveDamage
- ldr r0, [r1]
- negs r0, r0
- b _0802590A
- .align 2, 0
-_080258C8: .4byte gBattleMoveDamage
-_080258CC:
- ldr r3, _080258F8 @ =gBattleMoveDamage
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080258DE
- str r2, [r3]
-_080258DE:
- ldr r2, _080258FC @ =gBattleMons
- ldr r0, _08025900 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _0802590C
- str r1, [r3]
- b _0802590C
- .align 2, 0
-_080258F8: .4byte gBattleMoveDamage
-_080258FC: .4byte gBattleMons
-_08025900: .4byte gBankTarget
-_08025904:
- ldr r1, _08025918 @ =gBattleMoveDamage
- ldr r0, [r1]
- lsls r0, 1
-_0802590A:
- str r0, [r1]
-_0802590C:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025918: .4byte gBattleMoveDamage
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_setrest
-atk81_setrest: @ 802591C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08025974 @ =gBattlescriptCurrInstr
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08025978 @ =gActiveBank
- ldr r2, _0802597C @ =gBankTarget
- ldr r0, _08025980 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08025984 @ =gBattleMoveDamage
- ldr r1, _08025988 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _0802598C
- mov r0, r12
- str r6, [r0]
- b _080259DC
- .align 2, 0
-_08025974: .4byte gBattlescriptCurrInstr
-_08025978: .4byte gActiveBank
-_0802597C: .4byte gBankTarget
-_08025980: .4byte gBankAttacker
-_08025984: .4byte gBattleMoveDamage
-_08025988: .4byte gBattleMons
-_0802598C:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _080259A8
- ldr r1, _080259A4 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080259AC
- .align 2, 0
-_080259A4: .4byte gBattleCommunication
-_080259A8:
- ldr r0, _080259E4 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_080259AC:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _080259E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080259DC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080259E4: .4byte gBattleCommunication
-_080259E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk81_setrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80259EC
- push {r4,r5,lr}
- ldr r5, _08025A20 @ =gBattlescriptCurrInstr
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08025A24 @ =gDisableStructs
- ldr r0, _08025A28 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08025A2C
- adds r0, r4, 0x5
- str r0, [r5]
- b _08025A2E
- .align 2, 0
-_08025A20: .4byte gBattlescriptCurrInstr
-_08025A24: .4byte gDisableStructs
-_08025A28: .4byte gBankAttacker
-_08025A2C:
- str r3, [r5]
-_08025A2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start sub_8025A34
-sub_8025A34: @ 8025A34
- ldr r1, _08025A40 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08025A40: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025A34
-
- thumb_func_start sub_8025A44
-sub_8025A44: @ 8025A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08025A9C @ =gNoOfAllBanks
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _08025AB8
- ldr r0, _08025AA0 @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- ldr r6, _08025AA4 @ =0x02016003
- movs r3, 0
- ldr r7, _08025AA8 @ =gBattleCommunication
- adds r4, r1, 0
-_08025A70:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08025AB0
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08025AB0
- movs r3, 0
- strb r2, [r6]
- ldr r1, _08025AAC @ =gBankTarget
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08025AD0
- cmp r0, r2
- beq _08025AC4
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _08025AB8
- .align 2, 0
-_08025A9C: .4byte gNoOfAllBanks
-_08025AA0: .4byte gBattleMons
-_08025AA4: .4byte 0x02016003
-_08025AA8: .4byte gBattleCommunication
-_08025AAC: .4byte gBankTarget
-_08025AB0:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _08025A70
-_08025AB8:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _08025AD4
- movs r0, 0x1
- b _08025AD6
-_08025AC4:
- ldr r0, _08025ACC @ =gBattleCommunication
- strb r3, [r0, 0x5]
- b _08025AB8
- .align 2, 0
-_08025ACC: .4byte gBattleCommunication
-_08025AD0:
- strb r2, [r1]
- b _08025AB8
-_08025AD4:
- movs r0, 0
-_08025AD6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8025A44
-
- thumb_func_start sub_8025AE0
-sub_8025AE0: @ 8025AE0
- push {r4-r6,lr}
- ldr r5, _08025B0C @ =gBattlescriptCurrInstr
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _08025B10 @ =gBankTarget
- ldrb r0, [r6]
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08025B14
- str r4, [r5]
- b _08025B56
- .align 2, 0
-_08025B0C: .4byte gBattlescriptCurrInstr
-_08025B10: .4byte gBankTarget
-_08025B14:
- ldr r1, _08025B44 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08025B2C
- cmp r1, 0x48
- bne _08025B50
-_08025B2C:
- ldr r2, _08025B48 @ =gLastUsedAbility
- strb r0, [r2]
- ldr r1, _08025B4C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl RecordAbilityBattle
- b _08025B56
- .align 2, 0
-_08025B44: .4byte gBattleMons
-_08025B48: .4byte gLastUsedAbility
-_08025B4C: .4byte gBattleCommunication
-_08025B50:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08025B56:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8025AE0
-
- thumb_func_start sub_8025B5C
-sub_8025B5C: @ 8025B5C
- push {r4,r5,lr}
- ldr r5, _08025B84 @ =gDisableStructs
- ldr r4, _08025B88 @ =gBankAttacker
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08025B94
- ldr r2, _08025B8C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025B90 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025BBE
- .align 2, 0
-_08025B84: .4byte gDisableStructs
-_08025B88: .4byte gBankAttacker
-_08025B8C: .4byte gBattleMoveFlags
-_08025B90: .4byte gBattleCommunication
-_08025B94:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _08025BCC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _08025BD0 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_08025BBE:
- ldr r1, _08025BD4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025BCC: .4byte gBattleTextBuff1
-_08025BD0: .4byte gBattleCommunication
-_08025BD4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8025B5C
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 8025BD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _08025C10 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08025C14 @ =gDisableStructs
- ldr r6, _08025C18 @ =gBankAttacker
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08025C1C
- str r2, [r3]
- b _08025CC2
- .align 2, 0
-_08025C10: .4byte gBattlescriptCurrInstr
-_08025C14: .4byte gDisableStructs
-_08025C18: .4byte gBankAttacker
-_08025C1C:
- ldr r0, _08025CD0 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08025CA8
- ldr r0, _08025CD4 @ =gBattleMoveDamage
- mov r8, r0
- ldr r4, _08025CD8 @ =gSideAffecting
- ldr r5, _08025CDC @ =gBankTarget
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08025CE0 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08025CE4 @ =gCurrentMove
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08025CE8 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- ldr r1, _08025CEC @ =0x00016002
- adds r2, r1
- strb r0, [r2]
- ldr r1, _08025CF0 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08025CA8
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08025CA8:
- ldr r2, _08025CF4 @ =gDisableStructs
- ldr r0, _08025CF8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08025CFC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08025CC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CD0: .4byte gBattleCommunication
-_08025CD4: .4byte gBattleMoveDamage
-_08025CD8: .4byte gSideAffecting
-_08025CDC: .4byte gBankTarget
-_08025CE0: .4byte gBattleMons
-_08025CE4: .4byte gCurrentMove
-_08025CE8: .4byte 0x02000000
-_08025CEC: .4byte 0x00016002
-_08025CF0: .4byte gProtectStructs
-_08025CF4: .4byte gDisableStructs
-_08025CF8: .4byte gBankAttacker
-_08025CFC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start sub_8025D00
-sub_8025D00: @ 8025D00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08025D40 @ =gBattlescriptCurrInstr
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08025D44 @ =gDisableStructs
- mov r8, r0
- ldr r6, _08025D48 @ =gBankAttacker
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08025D50
- str r2, [r7]
- ldr r0, _08025D4C @ =gBattleCommunication
- strb r1, [r0, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D40: .4byte gBattlescriptCurrInstr
-_08025D44: .4byte gDisableStructs
-_08025D48: .4byte gBankAttacker
-_08025D4C: .4byte gBattleCommunication
-_08025D50:
- ldr r1, _08025D74 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08025D80
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08025D78 @ =gBankTarget
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08025D7C @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D74: .4byte gBattleMons
-_08025D78: .4byte gBankTarget
-_08025D7C: .4byte gBattleCommunication
-_08025D80:
- ldr r5, _08025DDC @ =gBattleMoveDamage
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08025D9C
- str r4, [r5]
-_08025D9C:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r2, _08025DE0 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- ldr r1, _08025DE4 @ =0x00016002
- adds r2, r1
- movs r3, 0
- strb r0, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r3, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08025DE8 @ =gBankTarget
- ldrb r0, [r6]
- strb r0, [r1]
-_08025DD0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025DDC: .4byte gBattleMoveDamage
-_08025DE0: .4byte 0x02000000
-_08025DE4: .4byte 0x00016002
-_08025DE8: .4byte gBankTarget
- thumb_func_end sub_8025D00
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8025DEC
- push {lr}
- ldr r2, _08025E14 @ =gBattleMoveDamage
- ldr r0, _08025E18 @ =gHP_dealt
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08025E08
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08025E08:
- ldr r1, _08025E1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025E14: .4byte gBattleMoveDamage
-_08025E18: .4byte gHP_dealt
-_08025E1C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk88_negativedamage
-
- thumb_func_start sub_8025E20
-sub_8025E20: @ 8025E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08025E54
- ldr r0, _08025E4C @ =gActiveBank
- ldr r1, _08025E50 @ =gBankAttacker
- b _08025E58
- .align 2, 0
-_08025E4C: .4byte gActiveBank
-_08025E50: .4byte gBankAttacker
-_08025E54:
- ldr r0, _08025EF8 @ =gActiveBank
- ldr r1, _08025EFC @ =gBankTarget
-_08025E58:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08025E72
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08025E72:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08025E88
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08025E88:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08025F00 @ =gBattleTextBuff1
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08025EAC
- b _080261B0
-_08025EAC:
- ldr r4, _08025F04 @ =gSideTimer
- ldr r1, _08025EF8 @ =gActiveBank
- ldrb r0, [r1]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08025F54
- mov r2, r9
- cmp r2, 0
- bne _08025F54
- ldr r0, _08025F08 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025F0C @ =gSpecialStatuses
- ldr r3, _08025EF8 @ =gActiveBank
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08025F14
- ldr r0, _08025F10 @ =gBattlescriptCurrInstr
- mov r4, r8
- str r4, [r0]
- b _08025F74
- .align 2, 0
-_08025EF8: .4byte gActiveBank
-_08025EFC: .4byte gBankTarget
-_08025F00: .4byte gBattleTextBuff1
-_08025F04: .4byte gSideTimer
-_08025F08: .4byte gCurrentMove
-_08025F0C: .4byte gSpecialStatuses
-_08025F10: .4byte gBattlescriptCurrInstr
-_08025F14:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08025F40 @ =0x02000000
- ldr r6, _08025F44 @ =gActiveBank
- ldrb r1, [r6]
- ldr r2, _08025F48 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08025F4C @ =gBattlescriptCurrInstr
- ldr r0, _08025F50 @ =gUnknown_081D9128
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08025F40: .4byte 0x02000000
-_08025F44: .4byte gActiveBank
-_08025F48: .4byte 0x00016003
-_08025F4C: .4byte gBattlescriptCurrInstr
-_08025F50: .4byte gUnknown_081D9128
-_08025F54:
- ldr r0, _08025F78 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- mov r3, r10
- cmp r3, 0x1
- beq _08025F84
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _08025F84
- ldr r1, _08025F7C @ =gBattlescriptCurrInstr
- ldr r0, _08025F80 @ =BattleScript_1D83D6
- str r0, [r1]
-_08025F74:
- movs r0, 0x1
- b _080262A4
- .align 2, 0
-_08025F78: .4byte gCurrentMove
-_08025F7C: .4byte gBattlescriptCurrInstr
-_08025F80: .4byte BattleScript_1D83D6
-_08025F84:
- ldr r2, _08025FCC @ =gBattleMons
- ldr r1, _08025FD0 @ =gActiveBank
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08025FA0
- cmp r0, 0x49
- bne _08026040
-_08025FA0:
- mov r0, r9
- cmp r0, 0
- bne _08026040
- ldr r0, _08025FD4 @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08026040
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025FD8 @ =gSpecialStatuses
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08025FE0
- ldr r0, _08025FDC @ =gBattlescriptCurrInstr
- mov r1, r8
- str r1, [r0]
- b _08025F74
- .align 2, 0
-_08025FCC: .4byte gBattleMons
-_08025FD0: .4byte gActiveBank
-_08025FD4: .4byte gCurrentMove
-_08025FD8: .4byte gSpecialStatuses
-_08025FDC: .4byte gBattlescriptCurrInstr
-_08025FE0:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026028 @ =0x02000000
- ldr r2, _0802602C @ =gActiveBank
- ldrb r1, [r2]
- ldr r3, _08026030 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- ldr r1, _08026034 @ =gBattlescriptCurrInstr
- ldr r0, _08026038 @ =gUnknown_081D989B
- str r0, [r1]
- ldr r1, _0802603C @ =gLastUsedAbility
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r0, _0802602C @ =gActiveBank
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08026028: .4byte 0x02000000
-_0802602C: .4byte gActiveBank
-_08026030: .4byte 0x00016003
-_08026034: .4byte gBattlescriptCurrInstr
-_08026038: .4byte gUnknown_081D989B
-_0802603C: .4byte gLastUsedAbility
-_08026040:
- ldr r1, _08026090 @ =gActiveBank
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _080260A8
- mov r2, r9
- cmp r2, 0
- bne _080260A8
- cmp r7, 0x6
- bne _080260A8
- cmp r5, 0x1
- bne _08025F74
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026094 @ =0x02000000
- ldr r3, _08026090 @ =gActiveBank
- ldrb r1, [r3]
- ldr r6, _08026098 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _0802609C @ =gBattlescriptCurrInstr
- ldr r0, _080260A0 @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _080260A4 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08025F74
- .align 2, 0
-_08026090: .4byte gActiveBank
-_08026094: .4byte 0x02000000
-_08026098: .4byte 0x00016003
-_0802609C: .4byte gBattlescriptCurrInstr
-_080260A0: .4byte gUnknown_081D9903
-_080260A4: .4byte gLastUsedAbility
-_080260A8:
- ldr r1, _080260FC @ =gActiveBank
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08026114
- mov r2, r9
- cmp r2, 0
- bne _08026114
- cmp r7, 0x1
- bne _08026114
- cmp r5, 0x1
- beq _080260CA
- b _08025F74
-_080260CA:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026100 @ =0x02000000
- ldr r3, _080260FC @ =gActiveBank
- ldrb r1, [r3]
- ldr r6, _08026104 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _08026108 @ =gBattlescriptCurrInstr
- ldr r0, _0802610C @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _08026110 @ =gLastUsedAbility
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _08025F74
- .align 2, 0
-_080260FC: .4byte gActiveBank
-_08026100: .4byte 0x02000000
-_08026104: .4byte 0x00016003
-_08026108: .4byte gBattlescriptCurrInstr
-_0802610C: .4byte gUnknown_081D9903
-_08026110: .4byte gLastUsedAbility
-_08026114:
- ldr r0, _080261A0 @ =gActiveBank
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0802612C
- cmp r5, 0
- bne _0802612C
- b _08025F74
-_0802612C:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _080261A4 @ =gBattleTextBuff2
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08026156
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08026156:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080261A0 @ =gActiveBank
- ldrb r2, [r1]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08026206
- movs r1, 0
- ldr r0, _080261A8 @ =gBankTarget
- ldrb r0, [r0]
- ldr r3, _080261AC @ =gBattleCommunication
- mov r8, r3
- cmp r0, r2
- bne _0802619A
- movs r1, 0x1
-_0802619A:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08026234
- .align 2, 0
-_080261A0: .4byte gActiveBank
-_080261A4: .4byte gBattleTextBuff2
-_080261A8: .4byte gBankTarget
-_080261AC: .4byte gBattleCommunication
-_080261B0:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08026210 @ =gBattleTextBuff2
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _080261CA
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_080261CA:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08026214 @ =gBattleMons
- ldr r4, _08026218 @ =gActiveBank
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08026220
-_08026206:
- ldr r1, _0802621C @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08026234
- .align 2, 0
-_08026210: .4byte gBattleTextBuff2
-_08026214: .4byte gBattleMons
-_08026218: .4byte gActiveBank
-_0802621C: .4byte gBattleCommunication
-_08026220:
- movs r1, 0
- ldr r0, _080262B4 @ =gBankTarget
- ldrb r0, [r0]
- ldr r2, _080262B8 @ =gBattleCommunication
- mov r8, r2
- cmp r0, r3
- bne _08026230
- movs r1, 0x1
-_08026230:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08026234:
- ldr r2, _080262BC @ =gActiveBank
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08026264
- movs r0, 0
- strb r0, [r1]
-_08026264:
- ldr r1, _080262BC @ =gActiveBank
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0802627A
- movs r0, 0xC
- strb r0, [r1]
-_0802627A:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _080262A2
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08026294
- ldr r0, _080262C0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08026294:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _080262A2
- cmp r3, 0
- bne _080262A2
- b _08025F74
-_080262A2:
- movs r0, 0
-_080262A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080262B4: .4byte gBankTarget
-_080262B8: .4byte gBattleCommunication
-_080262BC: .4byte gActiveBank
-_080262C0: .4byte gBattleMoveFlags
- thumb_func_end sub_8025E20
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 80262C4
- push {r4,r5,lr}
- ldr r5, _0802630C @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _08026310 @ =0x02000000
- ldr r1, _08026314 @ =0x0001601e
- adds r0, r1
- ldrb r4, [r0]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl sub_8025E20
- lsls r0, 24
- cmp r0, 0
- bne _08026304
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_08026304:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802630C: .4byte gBattlescriptCurrInstr
-_08026310: .4byte 0x02000000
-_08026314: .4byte 0x0001601e
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 8026318
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08026360 @ =gNoOfAllBanks
- ldrb r1, [r0]
- ldr r0, _08026364 @ =gBattlescriptCurrInstr
- mov r12, r0
- cmp r2, r1
- bge _08026350
- ldr r0, _08026368 @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_08026334:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_08026340:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08026340
- adds r2, r3, 0
- cmp r2, r5
- blt _08026334
-_08026350:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026360: .4byte gNoOfAllBanks
-_08026364: .4byte gBattlescriptCurrInstr
-_08026368: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 802636C
- push {r4,r5,lr}
- ldr r4, _080263C4 @ =gBattleMons
- ldr r3, _080263C8 @ =gBankAttacker
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080263CC @ =gLockedMove
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _080263D0 @ =gCurrentMove
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _080263D4 @ =gTakenDmg
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _080263D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080263C4: .4byte gBattleMons
-_080263C8: .4byte gBankAttacker
-_080263CC: .4byte gLockedMove
-_080263D0: .4byte gCurrentMove
-_080263D4: .4byte gTakenDmg
-_080263D8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 80263DC
- push {lr}
- ldr r1, _0802640C @ =gBattleMons
- ldr r0, _08026410 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080263FE
- ldr r1, _08026414 @ =gBattleCommunication
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080263FE:
- ldr r1, _08026418 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802640C: .4byte gBattleMons
-_08026410: .4byte gBankAttacker
-_08026414: .4byte gBattleCommunication
-_08026418: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 802641C
- push {r4,r5,lr}
- ldr r0, _08026430 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _08026438
- ldr r0, _08026434 @ =gMultiHitCounter
- strb r1, [r0]
- b _08026452
- .align 2, 0
-_08026430: .4byte gBattlescriptCurrInstr
-_08026434: .4byte gMultiHitCounter
-_08026438:
- ldr r4, _08026460 @ =gMultiHitCounter
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _0802644E
- bl Random
- ands r0, r5
-_0802644E:
- adds r0, 0x2
- strb r0, [r4]
-_08026452:
- ldr r1, _08026464 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08026460: .4byte gMultiHitCounter
-_08026464: .4byte gBattlescriptCurrInstr
- thumb_func_end atk8D_setloopcounter
-
- thumb_func_start sub_8026468
-sub_8026468: @ 8026468
- push {r4,lr}
- ldr r1, _080264A8 @ =0x02000000
- ldr r0, _080264AC @ =0x000160e0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xFD
- strb r0, [r2]
- ldr r2, _080264B0 @ =0x000160e1
- adds r0, r1, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r4, _080264B4 @ =0x000160e2
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r1, r4
- strb r2, [r0]
- ldr r2, _080264B8 @ =0x000160e4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x2
- adds r1, r4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080264BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080264A8: .4byte 0x02000000
-_080264AC: .4byte 0x000160e0
-_080264B0: .4byte 0x000160e1
-_080264B4: .4byte 0x000160e2
-_080264B8: .4byte 0x000160e4
-_080264BC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026468
-
- thumb_func_start sub_80264C0
-sub_80264C0: @ 80264C0
- push {r4-r7,lr}
- ldr r6, _080264F4 @ =gBattleMons
- ldr r7, _080264F8 @ =gBankAttacker
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _080264FC @ =gBankTarget
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802650C
- ldr r0, _08026500 @ =0x02000000
- ldr r2, _08026504 @ =0x00016064
- adds r1, r3, r2
- adds r1, r0
- ldr r2, _08026508 @ =gBattlePartyID
- lsls r0, r3, 1
- b _08026568
- .align 2, 0
-_080264F4: .4byte gBattleMons
-_080264F8: .4byte gBankAttacker
-_080264FC: .4byte gBankTarget
-_08026500: .4byte 0x02000000
-_08026504: .4byte 0x00016064
-_08026508: .4byte gBattlePartyID
-_0802650C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _0802655C
- ldr r3, _08026558 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _08026576
- .align 2, 0
-_08026558: .4byte gBattlescriptCurrInstr
-_0802655C:
- ldr r0, _0802657C @ =0x02000000
- ldr r2, _08026580 @ =0x00016064
- adds r1, r4, r2
- adds r1, r0
- ldr r2, _08026584 @ =gBattlePartyID
- lsls r0, r4, 1
-_08026568:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08026588 @ =gBattlescriptCurrInstr
- ldr r0, _0802658C @ =gUnknown_081D90FC
- str r0, [r1]
- movs r0, 0x1
-_08026576:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802657C: .4byte 0x02000000
-_08026580: .4byte 0x00016064
-_08026584: .4byte gBattlePartyID
-_08026588: .4byte gBattlescriptCurrInstr
-_0802658C: .4byte gUnknown_081D90FC
- thumb_func_end sub_80264C0
-
- thumb_func_start sub_8026590
-sub_8026590: @ 8026590
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08026628 @ =gBattleTypeFlags
- ldrh r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080265A4
- b _0802687C
-_080265A4:
- ldr r5, _0802662C @ =gBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _08026630 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080265BA
- ldr r2, _08026634 @ =gPlayerParty
- mov r8, r2
-_080265BA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026638
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080265E0
- movs r6, 0x3
-_080265E0:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08026678
-_080265E8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802661A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802661A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _080265E8
- b _08026678
- .align 2, 0
-_08026628: .4byte gBattleTypeFlags
-_0802662C: .4byte gBankTarget
-_08026630: .4byte gEnemyParty
-_08026634: .4byte gPlayerParty
-_08026638:
- movs r7, 0
- movs r5, 0
-_0802663C:
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802666E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802666E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802663C
-_08026678:
- cmp r7, 0x1
- bhi _08026688
- ldr r0, _080266BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _080266A0
-_08026688:
- cmp r7, 0x2
- bhi _080266C4
- ldr r0, _080266BC @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080266C4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080266C4
-_080266A0:
- ldr r3, _080266C0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026880
- .align 2, 0
-_080266BC: .4byte gBattleTypeFlags
-_080266C0: .4byte gBattlescriptCurrInstr
-_080266C4:
- bl sub_80264C0
- lsls r0, 24
- cmp r0, 0
- bne _080266D0
- b _08026880
-_080266D0:
- ldr r0, _08026710 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026774
-_080266DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08026714 @ =gBankTarget
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08026718
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802671A
- .align 2, 0
-_08026710: .4byte gBattleTypeFlags
-_08026714: .4byte gBankTarget
-_08026718:
- adds r5, r6, 0
-_0802671A:
- ldr r4, _0802676C @ =gBattlePartyID
- ldr r0, _08026770 @ =gBankTarget
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _080266DC
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _080266DC
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- b _08026832
- .align 2, 0
-_0802676C: .4byte gBattlePartyID
-_08026770: .4byte gBankTarget
-_08026774:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267E4
- ldr r6, _080267DC @ =gBattlePartyID
-_0802677E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080267E0 @ =gBankTarget
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- b _08026832
- .align 2, 0
-_080267DC: .4byte gBattlePartyID
-_080267E0: .4byte gBankTarget
-_080267E4:
- ldr r6, _0802686C @ =gBattlePartyID
-_080267E6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08026870 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _080267E6
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080267E6
-_08026832:
- ldr r0, _08026874 @ =0x02000000
- ldr r4, _08026870 @ =gBankTarget
- ldrb r1, [r4]
- ldr r2, _08026878 @ =0x00016068
- adds r1, r2
- adds r1, r0
- strb r5, [r1]
- bl IsLinkDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08026850
- ldrb r0, [r4]
- bl sub_8012258
-_08026850:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8094B6C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094B6C
- b _08026880
- .align 2, 0
-_0802686C: .4byte gBattlePartyID
-_08026870: .4byte gBankTarget
-_08026874: .4byte 0x02000000
-_08026878: .4byte 0x00016068
-_0802687C:
- bl sub_80264C0
-_08026880:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8026590
-
- thumb_func_start sub_802688C
-sub_802688C: @ 802688C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08026920 @ =gBattleMons
- ldr r3, _08026924 @ =gBankAttacker
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _080268CE
- movs r5, 0x58
- adds r2, r1, 0
-_080268B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080268CE
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080268B4
-_080268CE:
- movs r3, 0
- cmp r3, r6
- bcs _08026950
- ldr r0, _08026928 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08026920 @ =gBattleMons
- mov r12, r5
- ldr r7, _08026924 @ =gBankAttacker
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_080268EC:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _0802692E
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0802691A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0802692C
-_0802691A:
- movs r2, 0x7
- b _0802692E
- .align 2, 0
-_08026920: .4byte gBattleMons
-_08026924: .4byte gBankAttacker
-_08026928: .4byte gBattleMoves
-_0802692C:
- movs r2, 0
-_0802692E:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _08026946
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08026950
-_08026946:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _080268EC
-_08026950:
- cmp r3, r6
- bne _08026974
- ldr r3, _08026970 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026A18
- .align 2, 0
-_08026970: .4byte gBattlescriptCurrInstr
-_08026974:
- movs r7, 0x3
- ldr r5, _080269CC @ =gBattleMoves
- mov r9, r5
-_0802697A:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _0802697A
- ldr r4, _080269D0 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _080269D4 @ =gBankAttacker
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _080269DA
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080269C8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080269D8
-_080269C8:
- movs r2, 0x7
- b _080269DA
- .align 2, 0
-_080269CC: .4byte gBattleMoves
-_080269D0: .4byte gBattleMons
-_080269D4: .4byte gBankAttacker
-_080269D8:
- movs r2, 0
-_080269DA:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _0802697A
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _0802697A
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08026A28 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08026A2C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08026A18:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A28: .4byte gBattleTextBuff1
-_08026A2C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802688C
-
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 8026A30
- push {r4,lr}
- ldr r0, _08026A8C @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08026AAC
- ldr r4, _08026A90 @ =gPaydayMoney
- ldrh r0, [r4]
- cmp r0, 0
- beq _08026AAC
- ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
- ldrh r2, [r4]
- ldr r1, _08026A98 @ =0x02000000
- ldr r3, _08026A9C @ =0x00016056
- adds r1, r3
- ldrb r1, [r1]
- muls r1, r2
- bl sub_80B79B8
- ldr r1, _08026AA0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- ldrh r2, [r4]
- strb r2, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08026AA4 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _08026AA8 @ =gUnknown_081D95DB
- str r0, [r4]
- b _08026AB4
- .align 2, 0
-_08026A8C: .4byte gBattleTypeFlags
-_08026A90: .4byte gPaydayMoney
-_08026A94: .4byte gSaveBlock1 + 0x490
-_08026A98: .4byte 0x02000000
-_08026A9C: .4byte 0x00016056
-_08026AA0: .4byte gBattleTextBuff1
-_08026AA4: .4byte gBattlescriptCurrInstr
-_08026AA8: .4byte gUnknown_081D95DB
-_08026AAC:
- ldr r1, _08026ABC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08026AB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026ABC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk91_givemoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 8026AC0
- push {r4-r6,lr}
- ldr r4, _08026AF0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r6, _08026AF4 @ =gSideAffecting
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08026B00
- ldr r2, _08026AF8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026AFC @ =gBattleCommunication
- movs r0, 0
- b _08026B60
- .align 2, 0
-_08026AF0: .4byte gBankAttacker
-_08026AF4: .4byte gSideAffecting
-_08026AF8: .4byte gBattleMoveFlags
-_08026AFC: .4byte gBattleCommunication
-_08026B00:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _08026B50 @ =gSideTimer
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gBattleTypeFlags
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08026B5C
- movs r0, 0x1
- bl CountAliveMons
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08026B5C
- ldr r1, _08026B58 @ =gBattleCommunication
- movs r0, 0x4
- b _08026B60
- .align 2, 0
-_08026B50: .4byte gSideTimer
-_08026B54: .4byte gBattleTypeFlags
-_08026B58: .4byte gBattleCommunication
-_08026B5C:
- ldr r1, _08026B70 @ =gBattleCommunication
- movs r0, 0x3
-_08026B60:
- strb r0, [r1, 0x5]
- ldr r1, _08026B74 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026B70: .4byte gBattleCommunication
-_08026B74: .4byte gBattlescriptCurrInstr
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start sub_8026B78
-sub_8026B78: @ 8026B78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _08026BA8 @ =gBattleMons
- ldr r6, _08026BAC @ =gBankTarget
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026BB4
- ldr r1, _08026BB0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08026BCE
- .align 2, 0
-_08026BA8: .4byte gBattleMons
-_08026BAC: .4byte gBankTarget
-_08026BB0: .4byte gEnigmaBerries
-_08026BB4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08026BCE:
- ldr r1, _08026C4C @ =gStringBank
- ldr r5, _08026C50 @ =gBankTarget
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08026C0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08026C0C
- ldrb r0, [r5]
- movs r1, 0x27
- bl RecordItemBattle
- ldr r2, _08026C54 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08026C0C:
- ldr r0, _08026C58 @ =gBattleMons
- mov r8, r0
- ldr r1, _08026C50 @ =gBankTarget
- ldrb r2, [r1]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- mov r3, r8
- adds r5, r0, r3
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r3, [r0]
- mov r10, r8
- cmp r3, 0x5
- bne _08026C6C
- ldr r2, _08026C5C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026C60 @ =gLastUsedAbility
- strb r3, [r0]
- ldr r1, _08026C64 @ =gBattlescriptCurrInstr
- ldr r0, _08026C68 @ =gUnknown_081D9826
- str r0, [r1]
- ldr r1, _08026C50 @ =gBankTarget
- ldrb r0, [r1]
- movs r1, 0x5
- bl RecordAbilityBattle
- b _08026E40
- .align 2, 0
-_08026C4C: .4byte gStringBank
-_08026C50: .4byte gBankTarget
-_08026C54: .4byte gSpecialStatuses
-_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gBattleMoveFlags
-_08026C60: .4byte gLastUsedAbility
-_08026C64: .4byte gBattlescriptCurrInstr
-_08026C68: .4byte gUnknown_081D9826
-_08026C6C:
- ldr r1, _08026CE0 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08026CF4
- ldr r1, _08026CE4 @ =gBattleMoves
- ldr r0, _08026CE8 @ =gCurrentMove
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08026CEC @ =gBankAttacker
- ldrb r0, [r7]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08026CDC
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r10
- adds r1, 0x2A
- ldr r2, _08026CF0 @ =gBankTarget
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08026D20
-_08026CDC:
- mov r10, r8
- b _08026DE0
- .align 2, 0
-_08026CE0: .4byte gStatuses3
-_08026CE4: .4byte gBattleMoves
-_08026CE8: .4byte gCurrentMove
-_08026CEC: .4byte gBankAttacker
-_08026CF0: .4byte gBankTarget
-_08026CF4:
- ldr r0, _08026D4C @ =gDisableStructs
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, _08026D50 @ =gBankAttacker
- ldrb r0, [r1, 0x15]
- movs r4, 0
- ldrb r3, [r2]
- cmp r0, r3
- bne _08026D20
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08026D20
- movs r4, 0x1
-_08026D20:
- cmp r4, 0
- beq _08026DE0
- ldr r0, _08026D54 @ =gProtectStructs
- ldr r1, _08026D58 @ =gBankTarget
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08026D64
- ldr r1, _08026D5C @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026D60 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x40
- b _08026DC6
- .align 2, 0
-_08026D4C: .4byte gDisableStructs
-_08026D50: .4byte gBankAttacker
-_08026D54: .4byte gProtectStructs
-_08026D58: .4byte gBankTarget
-_08026D5C: .4byte gBattleMoveDamage
-_08026D60: .4byte gBattleMoveFlags
-_08026D64:
- ldr r0, _08026DA0 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08026DB4
- ldr r1, _08026DA4 @ =gBattleMoveDamage
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026DA8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026DAC @ =gLastUsedItem
- ldr r2, _08026DB0 @ =gBankTarget
- ldrb r0, [r2]
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08026DCA
- .align 2, 0
-_08026DA0: .4byte gSpecialStatuses
-_08026DA4: .4byte gBattleMoveDamage
-_08026DA8: .4byte gBattleMoveFlags
-_08026DAC: .4byte gLastUsedItem
-_08026DB0: .4byte gBankTarget
-_08026DB4:
- ldr r1, _08026DD4 @ =gBattleMoveDamage
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08026DD8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x10
-_08026DC6:
- orrs r0, r1
- strb r0, [r2]
-_08026DCA:
- ldr r1, _08026DDC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08026E40
- .align 2, 0
-_08026DD4: .4byte gBattleMoveDamage
-_08026DD8: .4byte gBattleMoveFlags
-_08026DDC: .4byte gBattlescriptCurrInstr
-_08026DE0:
- ldr r2, _08026E10 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026E14 @ =gBankAttacker
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- add r1, r10
- adds r1, 0x2A
- ldr r3, _08026E18 @ =gBankTarget
- ldrb r0, [r3]
- muls r0, r2
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08026E20
- ldr r1, _08026E1C @ =gBattleCommunication
- movs r0, 0
- b _08026E24
- .align 2, 0
-_08026E10: .4byte gBattleMoveFlags
-_08026E14: .4byte gBankAttacker
-_08026E18: .4byte gBankTarget
-_08026E1C: .4byte gBattleCommunication
-_08026E20:
- ldr r1, _08026E50 @ =gBattleCommunication
- movs r0, 0x1
-_08026E24:
- strb r0, [r1, 0x5]
- ldr r3, _08026E54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08026E40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E50: .4byte gBattleCommunication
-_08026E54: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026B78
-
- thumb_func_start atk94_gethalfcurrentenemyhp
-atk94_gethalfcurrentenemyhp: @ 8026E58
- push {lr}
- ldr r3, _08026E84 @ =gBattleMoveDamage
- ldr r2, _08026E88 @ =gBattleMons
- ldr r0, _08026E8C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08026E76
- movs r0, 0x1
- str r0, [r3]
-_08026E76:
- ldr r1, _08026E90 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026E84: .4byte gBattleMoveDamage
-_08026E88: .4byte gBattleMons
-_08026E8C: .4byte gBankTarget
-_08026E90: .4byte gBattlescriptCurrInstr
- thumb_func_end atk94_gethalfcurrentenemyhp
-
- thumb_func_start sub_8026E94
-sub_8026E94: @ 8026E94
- push {lr}
- ldr r2, _08026EB4 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08026EC0
- ldr r2, _08026EB8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026EBC @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08026ED2
- .align 2, 0
-_08026EB4: .4byte gBattleWeather
-_08026EB8: .4byte gBattleMoveFlags
-_08026EBC: .4byte gBattleCommunication
-_08026EC0:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08026EE0 @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08026EE4 @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08026ED2:
- ldr r1, _08026EE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026EE0: .4byte gBattleCommunication
-_08026EE4: .4byte gWishFutureKnock
-_08026EE8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026E94
-
- thumb_func_start sub_8026EEC
-sub_8026EEC: @ 8026EEC
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08026F0A
- b _0802701C
-_08026F0A:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08026F20
- b _0802701C
-_08026F20:
- ldr r2, _08026F94 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- adds r4, r2, 0
- ldr r5, _08026F98 @ =gBankAttacker
- cmp r0, 0
- beq _08026FAE
- ldr r0, _08026F9C @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08026FA8
- ldr r0, _08026FA0 @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08026FA8
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08026FA8
- ldr r1, _08026FA4 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08026FAE
- movs r0, 0x1
- b _08026FAC
- .align 2, 0
-_08026F94: .4byte gBattleWeather
-_08026F98: .4byte gBankAttacker
-_08026F9C: .4byte gBattleMons
-_08026FA0: .4byte gStatuses3
-_08026FA4: .4byte gBattleMoveDamage
-_08026FA8:
- ldr r1, _08027004 @ =gBattleMoveDamage
- movs r0, 0
-_08026FAC:
- str r0, [r1]
-_08026FAE:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08027024
- ldr r1, _08027008 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- ldr r0, _0802700C @ =gStatuses3
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08027010
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08027010
- ldr r1, _08027004 @ =gBattleMoveDamage
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08027024
- movs r0, 0x1
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027004: .4byte gBattleMoveDamage
-_08027008: .4byte gBattleMons
-_0802700C: .4byte gStatuses3
-_08027010:
- ldr r1, _08027018 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027018: .4byte gBattleMoveDamage
-_0802701C:
- ldr r1, _08027050 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r5, _08027054 @ =gBankAttacker
-_08027024:
- ldr r0, _08027058 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802705C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802703E
- ldr r1, _08027050 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
-_0802703E:
- ldr r1, _08027060 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08027050: .4byte gBattleMoveDamage
-_08027054: .4byte gBankAttacker
-_08027058: .4byte gAbsentBankFlags
-_0802705C: .4byte gBitTable
-_08027060: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8026EEC
-
- thumb_func_start sub_8027064
-sub_8027064: @ 8027064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08027090 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0802709C
- ldr r1, _08027094 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027098 @ =gPlayerParty
- b _080270AC
- .align 2, 0
-_08027090: .4byte gBankAttacker
-_08027094: .4byte gBattlePartyID
-_08027098: .4byte gPlayerParty
-_0802709C:
- ldr r1, _080270D0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270D4 @ =gEnemyParty
-_080270AC:
- adds r5, r1, r0
- ldr r4, _080270D8 @ =gBankTarget
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080270E0
- ldr r1, _080270D0 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270DC @ =gPlayerParty
- b _080270F0
- .align 2, 0
-_080270D0: .4byte gBattlePartyID
-_080270D4: .4byte gEnemyParty
-_080270D8: .4byte gBankTarget
-_080270DC: .4byte gPlayerParty
-_080270E0:
- ldr r1, _0802714C @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027150 @ =gEnemyParty
-_080270F0:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08027154 @ =gBankTarget
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08027158 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08027168
- ldr r1, _0802715C @ =gBattlescriptCurrInstr
- ldr r0, _08027160 @ =gUnknown_081D98C9
- str r0, [r1]
- ldr r0, _08027164 @ =gLastUsedAbility
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl RecordAbilityBattle
- b _0802721C
- .align 2, 0
-_0802714C: .4byte gBattlePartyID
-_08027150: .4byte gEnemyParty
-_08027154: .4byte gBankTarget
-_08027158: .4byte gBattleMons
-_0802715C: .4byte gBattlescriptCurrInstr
-_08027160: .4byte gUnknown_081D98C9
-_08027164: .4byte gLastUsedAbility
-_08027168:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080271CA
- ldr r1, _080271E8 @ =gStatuses3
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080271EC @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- adds r0, r2, 0
- muls r0, r6
- ldr r4, _080271F0 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080271CA
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080271F8
-_080271CA:
- ldr r3, _080271F4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802721C
- .align 2, 0
-_080271E8: .4byte gStatuses3
-_080271EC: .4byte 0x000400c0
-_080271F0: .4byte gBattleMons
-_080271F4: .4byte gBattlescriptCurrInstr
-_080271F8:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802722C @ =gBitTable
- ldr r0, _08027230 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08027234 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802721C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802722C: .4byte gBitTable
-_08027230: .4byte gBankAttacker
-_08027234: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027064
-
- thumb_func_start sub_8027238
-sub_8027238: @ 8027238
- push {r4-r7,lr}
- ldr r0, _08027280 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- bne _08027324
- ldr r5, _08027284 @ =gBattlescriptCurrInstr
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _08027290
- bl sub_8015150
- ldr r4, _08027288 @ =gActiveBank
- strb r0, [r4]
- ldr r3, _0802728C @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- b _08027324
- .align 2, 0
-_08027280: .4byte gBattleExecBuffer
-_08027284: .4byte gBattlescriptCurrInstr
-_08027288: .4byte gActiveBank
-_0802728C: .4byte gBattleMons
-_08027290:
- ldr r4, _0802732C @ =gActiveBank
- ldr r5, _08027330 @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08027334 @ =gAbsentBankFlags
- ldrb r1, [r6]
- ldr r7, _08027338 @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080272CC
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080272CC:
- ldr r0, _08027340 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802731C
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802731C
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl EmitStatusIconUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_0802731C:
- ldr r1, _08027344 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08027324:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802732C: .4byte gActiveBank
-_08027330: .4byte gBankAttacker
-_08027334: .4byte gAbsentBankFlags
-_08027338: .4byte gBitTable
-_0802733C: .4byte gBattleMons
-_08027340: .4byte gBattleTypeFlags
-_08027344: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027238
-
- thumb_func_start sub_8027348
-sub_8027348: @ 8027348
- push {r4-r6,lr}
- ldr r6, _08027378 @ =gSideTimer
- ldr r4, _0802737C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08027388
- ldr r2, _08027380 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08027384 @ =gBattleCommunication
- strb r5, [r0, 0x5]
- b _080273C0
- .align 2, 0
-_08027378: .4byte gSideTimer
-_0802737C: .4byte gBankAttacker
-_08027380: .4byte gBattleMoveFlags
-_08027384: .4byte gBattleCommunication
-_08027388:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _080273D0 @ =gSideAffecting
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _080273D4 @ =gBattleCommunication
- strb r3, [r0, 0x5]
-_080273C0:
- ldr r1, _080273D8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080273D0: .4byte gSideAffecting
-_080273D4: .4byte gBattleCommunication
-_080273D8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027348
-
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 80273DC
- push {lr}
- ldr r1, _0802740C @ =gBattleMons
- ldr r0, _08027410 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _0802741C
- ldr r2, _08027414 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027418 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027424
- .align 2, 0
-_0802740C: .4byte gBattleMons
-_08027410: .4byte gBankAttacker
-_08027414: .4byte gBattleMoveFlags
-_08027418: .4byte gBattleCommunication
-_0802741C:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _08027430 @ =gBattleCommunication
- strb r2, [r0, 0x5]
-_08027424:
- ldr r1, _08027434 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027430: .4byte gBattleCommunication
-_08027434: .4byte gBattlescriptCurrInstr
- thumb_func_end atk9A_setincreasedcriticalchance
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 8027438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08027490 @ =gUnknown_02024BE8
- ldr r2, _08027494 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08027498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _0802749C @ =gBattleMons
- ldr r0, _080274A0 @ =gBankTarget
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802747E
- ldr r0, _080274A4 @ =gStatuses3
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _080274A8 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _080274B4
-_0802747E:
- ldr r2, _080274AC @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274B0 @ =gBattleCommunication
- movs r0, 0x1
- b _080275C8
- .align 2, 0
-_08027490: .4byte gUnknown_02024BE8
-_08027494: .4byte 0x0000ffff
-_08027498: .4byte gBattlescriptCurrInstr
-_0802749C: .4byte gBattleMons
-_080274A0: .4byte gBankTarget
-_080274A4: .4byte gStatuses3
-_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gBattleMoveFlags
-_080274B0: .4byte gBattleCommunication
-_080274B4:
- ldr r3, _08027588 @ =gBankAttacker
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _0802758C @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _08027590 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08027594 @ =gActiveBank
- mov r8, r0
-_0802754C:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _0802754C
- movs r4, 0
- ldr r7, _08027598 @ =gBattleMoves
- ldr r3, _0802759C @ =gUnknown_02024A8C
- adds r5, r3, 0
- adds r5, 0x18
-_08027564:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _080275A0
- adds r0, r4, r2
- adds r0, r5
- b _080275A6
- .align 2, 0
-_08027588: .4byte gBankAttacker
-_0802758C: .4byte gDisableStructs
-_08027590: .4byte gBattleTextBuff1
-_08027594: .4byte gActiveBank
-_08027598: .4byte gBattleMoves
-_0802759C: .4byte gUnknown_02024A8C
-_080275A0:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_080275A6:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08027564
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl EmitResetActionMoveSelection
- mov r2, r8
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldr r1, _080275D4 @ =gBattleCommunication
- movs r0, 0
-_080275C8:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080275D4: .4byte gBattleCommunication
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start sub_80275D8
-sub_80275D8: @ 80275D8
- push {r4-r7,lr}
- ldr r7, _08027608 @ =gBattleMons
- ldr r6, _0802760C @ =gBankAttacker
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _080275F2
- movs r2, 0x1
-_080275F2:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _08027618
- ldr r1, _08027610 @ =gBattleMoveDamage
- movs r0, 0
- str r0, [r1]
- ldr r1, _08027614 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802766C
- .align 2, 0
-_08027608: .4byte gBattleMons
-_0802760C: .4byte gBankAttacker
-_08027610: .4byte gBattleMoveDamage
-_08027614: .4byte gBattleCommunication
-_08027618:
- ldr r4, _0802767C @ =gBattleMoveDamage
- str r1, [r4]
- cmp r1, 0
- bne _08027624
- movs r0, 0x1
- str r0, [r4]
-_08027624:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _08027680 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08027684 @ =gDisableStructs
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08027688 @ =gBattleCommunication
- strb r2, [r0, 0x5]
- ldr r2, _0802768C @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_0802766C:
- ldr r1, _08027690 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gBattleMoveDamage
-_08027680: .4byte 0xffff1fff
-_08027684: .4byte gDisableStructs
-_08027688: .4byte gBattleCommunication
-_0802768C: .4byte gHitMarker
-_08027690: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80275D8
-
- thumb_func_start sub_8027694
-sub_8027694: @ 8027694
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _080276D4 @ =gUnknown_081FACFE
- ldrh r1, [r0]
- ldr r4, _080276D8 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _080276BC
- cmp r1, r2
- beq _080276BC
- adds r1, r5, 0
-_080276AE:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _080276BC
- cmp r0, r2
- bne _080276AE
-_080276BC:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080276D8 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080276D4: .4byte gUnknown_081FACFE
-_080276D8: .4byte 0x0000fffe
- thumb_func_end sub_8027694
-
- thumb_func_start atk9D_copyattack
-atk9D_copyattack: @ 80276DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08027754 @ =gUnknown_02024BE8
- ldr r1, _08027758 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _0802775C @ =gLastUsedMove
- ldr r6, _08027760 @ =gBankTarget
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8027694
- lsls r0, 24
- cmp r0, 0
- bne _08027736
- ldr r3, _08027764 @ =gBattleMons
- ldr r2, _08027768 @ =gBankAttacker
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _08027736
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _08027736
- cmp r1, r7
- bne _08027770
-_08027736:
- ldr r3, _0802776C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080278A8
- .align 2, 0
-_08027754: .4byte gUnknown_02024BE8
-_08027758: .4byte 0x0000ffff
-_0802775C: .4byte gLastUsedMove
-_08027760: .4byte gBankTarget
-_08027764: .4byte gBattleMons
-_08027768: .4byte gBankAttacker
-_0802776C: .4byte gBattlescriptCurrInstr
-_08027770:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _08027800 @ =gBattlescriptCurrInstr
- mov r10, r4
- cmp r0, r1
- beq _080277AA
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_0802778C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080277AA
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802778C
-_080277AA:
- cmp r2, 0x4
- bne _0802788C
- ldr r5, _08027804 @ =gCurrMovePos
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _08027808 @ =gLastUsedMove
- ldr r3, _0802780C @ =gBankTarget
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _08027810 @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _08027814
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _08027828
- .align 2, 0
-_08027800: .4byte gBattlescriptCurrInstr
-_08027804: .4byte gCurrMovePos
-_08027808: .4byte gLastUsedMove
-_0802780C: .4byte gBankTarget
-_08027810: .4byte gBattleMoves
-_08027814:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_08027828:
- ldr r1, _08027880 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08027884 @ =gDisableStructs
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08027888 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _080278A8
- .align 2, 0
-_08027880: .4byte gBattleTextBuff1
-_08027884: .4byte gDisableStructs
-_08027888: .4byte gBitTable
-_0802788C:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_080278A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_copyattack
-
- thumb_func_start sub_80278B8
-sub_80278B8: @ 80278B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027938 @ =gCurrentMove
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _0802793C @ =gUnknown_081FACFE
- ldr r0, _08027940 @ =gBattlescriptCurrInstr
- mov r8, r0
-_080278CA:
- bl Random
- ldr r2, _08027944 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _080278CA
- movs r0, 0x3
-_080278DE:
- subs r0, 0x1
- cmp r0, 0
- bge _080278DE
- ldr r4, _08027938 @ =gCurrentMove
- ldrh r2, [r4]
- ldr r3, _08027948 @ =0x0000ffff
- subs r0, r5, 0x2
-_080278EC:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _080278F8
- cmp r1, r3
- bne _080278EC
-_080278F8:
- ldr r0, _08027948 @ =0x0000ffff
- cmp r1, r0
- bne _080278CA
- ldr r2, _0802794C @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08027950 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08027954 @ =gUnknown_081D6BBC
- ldr r2, _08027958 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802795C @ =gBankTarget
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027938: .4byte gCurrentMove
-_0802793C: .4byte gUnknown_081FACFE
-_08027940: .4byte gBattlescriptCurrInstr
-_08027944: .4byte 0x000001ff
-_08027948: .4byte 0x0000ffff
-_0802794C: .4byte gHitMarker
-_08027950: .4byte 0xfffffbff
-_08027954: .4byte gUnknown_081D6BBC
-_08027958: .4byte gBattleMoves
-_0802795C: .4byte gBankTarget
- thumb_func_end sub_80278B8
-
- thumb_func_start sub_8027960
-sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gBattleMoveDamage
- ldr r2, _08027984 @ =gBattleMons
- ldr r0, _08027988 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _0802798C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08027980: .4byte gBattleMoveDamage
-_08027984: .4byte gBattleMons
-_08027988: .4byte gBankAttacker
-_0802798C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027960
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 8027990
- push {r4,lr}
- movs r4, 0xF
-_08027994:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08027994
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _080279D4 @ =gBattleMoveDamage
- ldr r2, _080279D8 @ =gBattleMons
- ldr r0, _080279DC @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _080279E0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080279D4: .4byte gBattleMoveDamage
-_080279D8: .4byte gBattleMons
-_080279DC: .4byte gBankAttacker
-_080279E0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 80279E4
- push {r4-r6,lr}
- ldr r4, _08027A54 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027A58 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027A98
- cmp r6, r2
- beq _08027A98
- ldr r6, _08027A5C @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A98
- ldr r1, _08027A60 @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027A64 @ =gSideTimer
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027A6C
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A6C
- ldr r0, _08027A68 @ =gBankTarget
- strb r1, [r0]
- b _08027A7C
- .align 2, 0
-_08027A54: .4byte gBankAttacker
-_08027A58: .4byte gProtectStructs
-_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gBattleMoveDamage
-_08027A64: .4byte gSideTimer
-_08027A68: .4byte gBankTarget
-_08027A6C:
- ldr r2, _08027A88 @ =gBankTarget
- ldr r1, _08027A8C @ =gProtectStructs
- ldr r0, _08027A90 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08027A7C:
- ldr r1, _08027A94 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027AC8
- .align 2, 0
-_08027A88: .4byte gBankTarget
-_08027A8C: .4byte gProtectStructs
-_08027A90: .4byte gBankAttacker
-_08027A94: .4byte gBattlescriptCurrInstr
-_08027A98:
- ldr r2, _08027AD0 @ =gSpecialStatuses
- ldr r0, _08027AD4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027AD8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027AC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AD0: .4byte gSpecialStatuses
-_08027AD4: .4byte gBankAttacker
-_08027AD8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8027ADC
- push {r4-r6,lr}
- ldr r4, _08027B4C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027B50 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027B90
- cmp r6, r2
- beq _08027B90
- ldr r6, _08027B54 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B90
- ldr r1, _08027B58 @ =gBattleMoveDamage
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027B5C @ =gSideTimer
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027B64
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B64
- ldr r0, _08027B60 @ =gBankTarget
- strb r1, [r0]
- b _08027B74
- .align 2, 0
-_08027B4C: .4byte gBankAttacker
-_08027B50: .4byte gProtectStructs
-_08027B54: .4byte gBattleMons
-_08027B58: .4byte gBattleMoveDamage
-_08027B5C: .4byte gSideTimer
-_08027B60: .4byte gBankTarget
-_08027B64:
- ldr r2, _08027B80 @ =gBankTarget
- ldr r1, _08027B84 @ =gProtectStructs
- ldr r0, _08027B88 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08027B74:
- ldr r1, _08027B8C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027BC0
- .align 2, 0
-_08027B80: .4byte gBankTarget
-_08027B84: .4byte gProtectStructs
-_08027B88: .4byte gBankAttacker
-_08027B8C: .4byte gBattlescriptCurrInstr
-_08027B90:
- ldr r2, _08027BC8 @ =gSpecialStatuses
- ldr r0, _08027BCC @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027BD0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027BC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BC8: .4byte gSpecialStatuses
-_08027BCC: .4byte gBankAttacker
-_08027BD0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8027BD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08027CD4 @ =gBattleMons
- ldr r3, _08027CD8 @ =gBankTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08027CDC @ =gLastUsedMove
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08027CE0 @ =gDisableStructs
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027C28
- mov r12, r6
- movs r3, 0x58
-_08027C08:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08027C28
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027C08
-_08027C28:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08027CEC
- cmp r4, 0x4
- beq _08027CEC
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027CEC
- ldr r1, _08027CE4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08027CE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027D06
- .align 2, 0
-_08027CD4: .4byte gBattleMons
-_08027CD8: .4byte gBankTarget
-_08027CDC: .4byte gLastUsedMove
-_08027CE0: .4byte gDisableStructs
-_08027CE4: .4byte gBattleTextBuff1
-_08027CE8: .4byte gBattlescriptCurrInstr
-_08027CEC:
- ldr r3, _08027D14 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027D06:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027D14: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_setencore
-atkA4_setencore: @ 8027D18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08027E0C @ =gBattleMons
- ldr r4, _08027E10 @ =gBankTarget
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08027E14 @ =gLastUsedMove
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08027E18 @ =gDisableStructs
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027D72
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08027D52:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08027D72
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027D52
-_08027D72:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08027D86
- cmp r2, 0xE3
- beq _08027D86
- cmp r2, 0x77
- bne _08027D88
-_08027D86:
- movs r5, 0x4
-_08027D88:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08027E20
- cmp r5, 0x4
- beq _08027E20
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027E20
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08027E1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027E3A
- .align 2, 0
-_08027E0C: .4byte gBattleMons
-_08027E10: .4byte gBankTarget
-_08027E14: .4byte gLastUsedMove
-_08027E18: .4byte gDisableStructs
-_08027E1C: .4byte gBattlescriptCurrInstr
-_08027E20:
- ldr r3, _08027E48 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027E3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027E48: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA4_setencore
-
- thumb_func_start sub_8027E4C
-sub_8027E4C: @ 8027E4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027EEC @ =gBattleMons
- ldr r0, _08027EF0 @ =gBankTarget
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08027F18
- ldr r1, _08027EF4 @ =gBankAttacker
- mov r12, r1
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r4, [r0, 0x28]
- adds r0, r2, r7
- ldrh r2, [r0, 0x28]
- adds r4, r2
- asrs r4, 1
- ldr r5, _08027EF8 @ =gBattleMoveDamage
- mov r9, r5
- subs r2, r4
- str r2, [r5]
- ldr r3, _08027EFC @ =0x02000000
- ldr r1, _08027F00 @ =0x00016014
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- asrs r0, 8
- ldr r5, _08027F04 @ =0x00016015
- adds r1, r3, r5
- strb r0, [r1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- adds r5, 0x1
- adds r1, r3, r5
- strb r0, [r1]
- lsrs r2, 24
- ldr r0, _08027F08 @ =0x00016017
- adds r3, r0
- strb r2, [r3]
- mov r1, r12
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x28]
- subs r0, r4
- mov r5, r9
- str r0, [r5]
- ldr r2, _08027F0C @ =gSpecialStatuses
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08027F10 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08027F14 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027F32
- .align 2, 0
-_08027EEC: .4byte gBattleMons
-_08027EF0: .4byte gBankTarget
-_08027EF4: .4byte gBankAttacker
-_08027EF8: .4byte gBattleMoveDamage
-_08027EFC: .4byte 0x02000000
-_08027F00: .4byte 0x00016014
-_08027F04: .4byte 0x00016015
-_08027F08: .4byte 0x00016017
-_08027F0C: .4byte gSpecialStatuses
-_08027F10: .4byte 0x0000ffff
-_08027F14: .4byte gBattlescriptCurrInstr
-_08027F18:
- ldr r3, _08027F40 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027F32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027F40: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8027E4C
-
- thumb_func_start sub_8027F44
-sub_8027F44: @ 8027F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08027FA8 @ =gMoveHitWith
- ldr r4, _08027FAC @ =gBankAttacker
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08027F8C
- ldr r0, _08027FB0 @ =0x0000ffff
- cmp r1, r0
- beq _08027F8C
- ldrh r0, [r2]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _08028024
- ldr r2, _08027FB4 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
-_08027F8C:
- ldr r3, _08027FB8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028110
- .align 2, 0
-_08027FA8: .4byte gMoveHitWith
-_08027FAC: .4byte gBankAttacker
-_08027FB0: .4byte 0x0000ffff
-_08027FB4: .4byte gProtectStructs
-_08027FB8: .4byte gBattlescriptCurrInstr
-_08027FBC:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08027FE0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08027FE4 @ =gBattlescriptCurrInstr
- b _08028012
- .align 2, 0
-_08027FE0: .4byte gBattleTextBuff1
-_08027FE4: .4byte gBattlescriptCurrInstr
-_08027FE8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _0802801C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08028020 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08028012:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028110
- .align 2, 0
-_0802801C: .4byte gBattleMons
-_08028020: .4byte gBattleTextBuff1
-_08028024:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_0802802C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _0802802C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08028120 @ =gTypeEffectiveness
- adds r3, r4, r6
- ldr r1, _08028124 @ =gUnknown_02024C44
- ldr r2, _08028128 @ =gBankAttacker
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08028088
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08028088
- ldr r7, _0802812C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08028088
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08027FBC
-_08028088:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08028130 @ =0x000003e7
- cmp r8, r0
- ble _0802802C
- movs r0, 0
- mov r8, r0
- ldr r1, _08028134 @ =gBattlescriptCurrInstr
- mov r12, r1
- ldr r3, _08028120 @ =gTypeEffectiveness
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_080280A4:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _080280AE
- cmp r1, 0xFE
- bge _080280E8
-_080280AE:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08028124 @ =gUnknown_02024C44
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _080280E8
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _080280E8
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _0802812C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _080280E8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _080280E8
- b _08027FE8
-_080280E8:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08028138 @ =0x0000014f
- cmp r8, r0
- bls _080280A4
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08028110:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028120: .4byte gTypeEffectiveness
-_08028124: .4byte gUnknown_02024C44
-_08028128: .4byte gBankAttacker
-_0802812C: .4byte gBattleMons
-_08028130: .4byte 0x000003e7
-_08028134: .4byte gBattlescriptCurrInstr
-_08028138: .4byte 0x0000014f
- thumb_func_end sub_8027F44
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 802813C
- push {r4,lr}
- ldr r4, _08028180 @ =gStatuses3
- ldr r3, _08028184 @ =gBankTarget
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08028188 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0802818C @ =gBankAttacker
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _08028190 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028180: .4byte gStatuses3
-_08028184: .4byte gBankTarget
-_08028188: .4byte gDisableStructs
-_0802818C: .4byte gBankAttacker
-_08028190: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 8028194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080282F4 @ =gUnknown_02024BE8
- ldr r1, _080282F8 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _080282FC @ =gBattleMons
- ldr r2, _08028300 @ =gBankAttacker
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _080281CC
- b _08028320
-_080281CC:
- ldr r0, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gBankTarget
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _080281E2
- b _08028320
-_080281E2:
- cmp r1, 0
- bne _080281E8
- b _08028320
-_080281E8:
- cmp r1, r5
- bne _080281EE
- b _08028320
-_080281EE:
- cmp r1, 0xA6
- bne _080281F4
- b _08028320
-_080281F4:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_08028200:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _08028212
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802821A
-_08028212:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028200
-_0802821A:
- cmp r7, 0x4
- beq _08028220
- b _08028320
-_08028220:
- ldr r4, _0802830C @ =gCurrMovePos
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _08028310 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _08028314 @ =gActiveBank
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_08028282:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028282
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl EmitSetAttributes
- ldr r0, _08028314 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _08028318 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gBankTarget
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802831C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802833A
- .align 2, 0
-_080282F4: .4byte gUnknown_02024BE8
-_080282F8: .4byte 0x0000ffff
-_080282FC: .4byte gBattleMons
-_08028300: .4byte gBankAttacker
-_08028304: .4byte gUnknown_02024C2C
-_08028308: .4byte gBankTarget
-_0802830C: .4byte gCurrMovePos
-_08028310: .4byte gBattleMoves
-_08028314: .4byte gActiveBank
-_08028318: .4byte gBattleTextBuff1
-_0802831C: .4byte gBattlescriptCurrInstr
-_08028320:
- ldr r3, _0802834C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802833A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802834C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start sub_8028350
-sub_8028350: @ 8028350
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08028380 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802837A
- cmp r0, 0x27
- beq _0802837A
- cmp r0, 0x4B
- beq _0802837A
- cmp r0, 0x97
- beq _0802837A
- cmp r0, 0x9B
- beq _0802837A
- cmp r0, 0x1A
- bne _08028384
-_0802837A:
- movs r0, 0x1
- b _08028386
- .align 2, 0
-_08028380: .4byte gBattleMoves
-_08028384:
- movs r0, 0
-_08028386:
- pop {r1}
- bx r1
- thumb_func_end sub_8028350
-
- thumb_func_start sub_802838C
-sub_802838C: @ 802838C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080283AA
- cmp r1, 0xD6
- beq _080283AA
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _080283AA
- cmp r1, 0x77
- beq _080283AA
- cmp r1, 0x76
- bne _080283AE
-_080283AA:
- movs r0, 0x1
- b _080283B0
-_080283AE:
- movs r0, 0
-_080283B0:
- pop {r1}
- bx r1
- thumb_func_end sub_802838C
-
- thumb_func_start move_weather_interaction
-move_weather_interaction: @ 80283B4
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802840C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _080283D8
- ldr r0, _08028410 @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _08028418
-_080283D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _080283FA
- cmp r0, 0x27
- beq _080283FA
- cmp r0, 0x4B
- beq _080283FA
- cmp r0, 0x97
- beq _080283FA
- cmp r0, 0x9B
- beq _080283FA
- cmp r0, 0x1A
- bne _08028418
-_080283FA:
- ldr r0, _08028414 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08028418
- movs r0, 0x1
- b _0802841A
- .align 2, 0
-_0802840C: .4byte gBattleMoves
-_08028410: .4byte gBattleWeather
-_08028414: .4byte gHitMarker
-_08028418:
- movs r0, 0x2
-_0802841A:
- pop {r1}
- bx r1
- thumb_func_end move_weather_interaction
-
- thumb_func_start sub_8028420
-sub_8028420: @ 8028420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080284B0 @ =gBankAttacker
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _080284B4 @ =gUnknown_02024A8C
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802843E:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl sub_802838C
- lsls r0, 24
- cmp r0, 0
- bne _0802847E
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802847E
- cmp r1, 0xFD
- beq _0802847E
- adds r0, r1, 0
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0802848C
-_0802847E:
- ldr r1, _080284B8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802848C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802843E
- ldr r0, _080284B0 @ =gBankAttacker
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _080284C0
- ldr r1, _080284BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028524
- .align 2, 0
-_080284B0: .4byte gBankAttacker
-_080284B4: .4byte gUnknown_02024A8C
-_080284B8: .4byte gBitTable
-_080284BC: .4byte gBattlescriptCurrInstr
-_080284C0:
- movs r7, 0x3
- ldr r4, _08028534 @ =gBitTable
-_080284C4:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _080284C4
- ldr r4, _08028538 @ =gUnknown_02024BEA
- ldr r2, _0802853C @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _08028540 @ =gBankAttacker
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _08028544 @ =gCurrMovePos
- strb r5, [r0]
- ldr r2, _08028548 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802854C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08028550 @ =gBankTarget
- strb r0, [r1]
- ldr r3, _08028554 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028524:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028534: .4byte gBitTable
-_08028538: .4byte gUnknown_02024BEA
-_0802853C: .4byte gBattleMons
-_08028540: .4byte gBankAttacker
-_08028544: .4byte gCurrMovePos
-_08028548: .4byte gHitMarker
-_0802854C: .4byte 0xfffffbff
-_08028550: .4byte gBankTarget
-_08028554: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028420
-
- thumb_func_start sub_8028558
-sub_8028558: @ 8028558
- ldr r1, _0802857C @ =gBattleMons
- ldr r0, _08028580 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028584 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802857C: .4byte gBattleMons
-_08028580: .4byte gBankAttacker
-_08028584: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028558
-
- thumb_func_start b_feature_update_destiny_bond
-b_feature_update_destiny_bond: @ 8028588
- push {r4,r5,lr}
- ldr r0, _080285D8 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080285DC @ =gBankTarget
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080285E0 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _080285D2
- cmp r5, r3
- beq _080285D2
- ldr r2, _080285E4 @ =gHitMarker
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _080285D2
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_080285D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080285D8: .4byte gBankAttacker
-_080285DC: .4byte gBankTarget
-_080285E0: .4byte gBattleMons
-_080285E4: .4byte gHitMarker
- thumb_func_end b_feature_update_destiny_bond
-
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80285E8
- push {lr}
- bl b_feature_update_destiny_bond
- ldr r1, _080285FC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080285FC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkAB_802A458
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 8028600
- push {lr}
- ldr r2, _08028654 @ =gBattleMons
- ldr r0, _08028658 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl GetScaledHPFraction
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802865C @ =gUnknown_081FAD26
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802863A
- adds r2, r0, 0
-_0802862C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802863A
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802862C
-_0802863A:
- ldr r2, _08028660 @ =gDynamicBasePower
- ldr r1, _0802865C @ =gUnknown_081FAD26
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08028664 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028654: .4byte gBattleMons
-_08028658: .4byte gBankAttacker
-_0802865C: .4byte gUnknown_081FAD26
-_08028660: .4byte gDynamicBasePower
-_08028664: .4byte gBattlescriptCurrInstr
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start sub_8028668
-sub_8028668: @ 8028668
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _080287F8 @ =gLastUsedMove
- ldr r1, _080287FC @ =gBankTarget
- ldrb r2, [r1]
- lsls r0, r2, 1
- adds r0, r4
- ldrh r3, [r0]
- mov r8, r1
- cmp r3, 0
- bne _08028688
- b _08028828
-_08028688:
- ldr r0, _08028800 @ =0x0000ffff
- cmp r3, r0
- bne _08028690
- b _08028828
-_08028690:
- ldr r1, _08028804 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028808 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _080286A2
- b _08028828
-_080286A2:
- movs r7, 0
- ldr r0, _0802880C @ =gBattleMons
- movs r1, 0x58
- muls r1, r2
- adds r2, r0, 0
- adds r2, 0xC
- adds r1, r2
- ldrh r1, [r1]
- cmp r3, r1
- beq _080286DA
- adds r6, r4, 0
- mov r5, r8
- adds r4, r2, 0
- movs r3, 0x58
-_080286BE:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080286DA
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080286BE
-_080286DA:
- cmp r7, 0x4
- bne _080286E0
- b _08028828
-_080286E0:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802880C @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08028700
- b _08028828
-_08028700:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802871E
- adds r6, r0, 0
-_0802871E:
- ldr r1, _08028810 @ =gBattleTextBuff1
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _080287F8 @ =gLastUsedMove
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08028814 @ =gBattleTextBuff2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _08028818 @ =gActiveBank
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802881C @ =gDisableStructs
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08028820 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080287D2
- mov r2, r9
- muls r2, r3
- ldr r0, _0802880C @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080287D2
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
-_080287D2:
- ldr r1, _08028824 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802880C @ =gBattleMons
- ldr r0, _080287FC @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08028842
- adds r0, r2, 0
- bl CancelMultiTurnMoves
- b _08028842
- .align 2, 0
-_080287F8: .4byte gLastUsedMove
-_080287FC: .4byte gBankTarget
-_08028800: .4byte 0x0000ffff
-_08028804: .4byte gStatuses3
-_08028808: .4byte 0x000400c0
-_0802880C: .4byte gBattleMons
-_08028810: .4byte gBattleTextBuff1
-_08028814: .4byte gBattleTextBuff2
-_08028818: .4byte gActiveBank
-_0802881C: .4byte gDisableStructs
-_08028820: .4byte gBitTable
-_08028824: .4byte gBattlescriptCurrInstr
-_08028828:
- ldr r3, _08028854 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028842:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028854: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028668
-
- thumb_func_start sub_8028858
-sub_8028858: @ 8028858
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0
- ldr r0, _080288AC @ =gCurrentMove
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _08028872
- b _08028A26
-_08028872:
- ldr r5, _080288B0 @ =gBattleCommunication
- strb r7, [r5, 0x5]
- ldr r6, _080288B4 @ =gBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- lsls r0, 24
- ldr r1, _080288B8 @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _0802888C
- ldr r2, _080288BC @ =gPlayerParty
- mov r9, r2
-_0802888C:
- ldr r4, _080288C0 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _080288C4
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- str r7, [r0]
- b _080288D4
- .align 2, 0
-_080288AC: .4byte gCurrentMove
-_080288B0: .4byte gBattleCommunication
-_080288B4: .4byte gBankAttacker
-_080288B8: .4byte gEnemyParty
-_080288BC: .4byte gPlayerParty
-_080288C0: .4byte gBattleMons
-_080288C4:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl RecordAbilityBattle
- ldrb r0, [r5, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080288D4:
- ldr r4, _08028934 @ =gActiveBank
- ldr r0, _08028938 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r6, 0x2
- eors r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r1, _0802893C @ =0x02000000
- ldr r2, _08028940 @ =0x00016003
- adds r1, r2
- strb r0, [r1]
- strb r0, [r4]
- ldr r0, _08028944 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028964
- ldr r0, _08028948 @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, _0802894C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028964
- ldr r5, _08028950 @ =gBattleMons
- movs r0, 0x58
- adds r4, r3, 0
- muls r4, r0
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _08028954
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- b _08028964
- .align 2, 0
-_08028934: .4byte gActiveBank
-_08028938: .4byte gBankAttacker
-_0802893C: .4byte 0x02000000
-_08028940: .4byte 0x00016003
-_08028944: .4byte gBattleTypeFlags
-_08028948: .4byte gAbsentBankFlags
-_0802894C: .4byte gBitTable
-_08028950: .4byte gBattleMons
-_08028954:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl RecordAbilityBattle
- ldr r1, _080289AC @ =gBattleCommunication
- ldrb r0, [r1, 0x5]
- orrs r0, r6
- strb r0, [r1, 0x5]
-_08028964:
- movs r6, 0
- ldr r0, _080289B0 @ =gBattleMons
- mov r8, r0
-_0802896A:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _08028A1E
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _08028A1E
- ldr r2, _080289B4 @ =gBattlePartyID
- ldr r0, _080289B8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _080289BC
- movs r0, 0x58
- muls r0, r1
- b _080289EC
- .align 2, 0
-_080289AC: .4byte gBattleCommunication
-_080289B0: .4byte gBattleMons
-_080289B4: .4byte gBattlePartyID
-_080289B8: .4byte gBankAttacker
-_080289BC:
- ldr r0, _080289F4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A04
- ldr r0, _080289F8 @ =gActiveBank
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _08028A04
- ldr r0, _080289FC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _08028A00 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08028A04
- movs r0, 0x58
- muls r0, r3
-_080289EC:
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- b _08028A10
- .align 2, 0
-_080289F4: .4byte gBattleTypeFlags
-_080289F8: .4byte gActiveBank
-_080289FC: .4byte gAbsentBankFlags
-_08028A00: .4byte gBitTable
-_08028A04:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_08028A10:
- cmp r0, 0x2B
- beq _08028A1E
- movs r0, 0x1
- lsls r0, r6
- orrs r7, r0
- lsls r0, r7, 24
- lsrs r7, r0, 24
-_08028A1E:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802896A
- b _08028A7E
-_08028A26:
- ldr r1, _08028AB4 @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r7, 0x3F
- ldr r2, _08028AB8 @ =gBattleMons
- ldr r1, _08028ABC @ =gBankAttacker
- ldrb r0, [r1]
- movs r6, 0x58
- muls r0, r6
- adds r5, r2, 0
- adds r5, 0x4C
- adds r0, r5
- str r4, [r0]
- ldrb r0, [r1]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r3, _08028AC0 @ =gActiveBank
- strb r0, [r3]
- ldr r0, _08028AC4 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A7E
- ldr r0, _08028AC8 @ =gAbsentBankFlags
- ldrb r2, [r0]
- ldr r1, _08028ACC @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028A7E
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- str r2, [r0]
-_08028A7E:
- ldr r4, _08028AC0 @ =gActiveBank
- ldr r0, _08028ABC @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- adds r2, r7, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08028AD0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AB4: .4byte gBattleCommunication
-_08028AB8: .4byte gBattleMons
-_08028ABC: .4byte gBankAttacker
-_08028AC0: .4byte gActiveBank
-_08028AC4: .4byte gBattleTypeFlags
-_08028AC8: .4byte gAbsentBankFlags
-_08028ACC: .4byte gBitTable
-_08028AD0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028858
-
- thumb_func_start sub_8028AD4
-sub_8028AD4: @ 8028AD4
- push {r4-r7,lr}
- ldr r7, _08028B24 @ =gBattleMons
- ldr r0, _08028B28 @ =gBankTarget
- ldrb r3, [r0]
- movs r6, 0x58
- adds r1, r3, 0
- muls r1, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r4, r1, r0
- ldr r2, [r4]
- movs r5, 0x80
- lsls r5, 21
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08028B06
- ldr r1, _08028B2C @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028B30 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08028B38
-_08028B06:
- ldr r3, _08028B34 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028B5C
- .align 2, 0
-_08028B24: .4byte gBattleMons
-_08028B28: .4byte gBankTarget
-_08028B2C: .4byte gStatuses3
-_08028B30: .4byte 0x000400c0
-_08028B34: .4byte gBattlescriptCurrInstr
-_08028B38:
- orrs r2, r5
- str r2, [r4]
- ldr r1, _08028B64 @ =gBattleMoveDamage
- ldr r0, _08028B68 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08028B54
- movs r0, 0x1
- str r0, [r1]
-_08028B54:
- ldr r1, _08028B6C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028B5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028B64: .4byte gBattleMoveDamage
-_08028B68: .4byte gBankAttacker
-_08028B6C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028AD4
-
- thumb_func_start sub_8028B70
-sub_8028B70: @ 8028B70
- push {r4,lr}
- ldr r4, _08028BC4 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08028BC8 @ =gSideTimer
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x3
- bne _08028BD4
- ldr r2, _08028BCC @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08028BD0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028BEE
- .align 2, 0
-_08028BC4: .4byte gBankAttacker
-_08028BC8: .4byte gSideTimer
-_08028BCC: .4byte gSpecialStatuses
-_08028BD0: .4byte gBattlescriptCurrInstr
-_08028BD4:
- ldr r1, _08028BF4 @ =gSideAffecting
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- strb r0, [r3, 0x6]
- ldr r1, _08028BF8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028BEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028BF4: .4byte gSideAffecting
-_08028BF8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028B70
-
- thumb_func_start sub_8028BFC
-sub_8028BFC: @ 8028BFC
- ldr r1, _08028C20 @ =gBattleMons
- ldr r0, _08028C24 @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028C28 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08028C20: .4byte gBattleMons
-_08028C24: .4byte gBankTarget
-_08028C28: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028BFC
-
- thumb_func_start atkB2_setperishsong
-atkB2_setperishsong: @ 8028C2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _08028C70 @ =gNoOfAllBanks
- adds r7, r0, 0
- ldr r0, _08028C74 @ =gBankAttacker
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _08028C98
- movs r5, 0x20
- ldr r0, _08028C78 @ =gBattleMons
- mov r12, r0
- ldr r0, _08028C7C @ =gDisableStructs
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _08028C80 @ =gStatuses3
-_08028C54:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _08028C6C
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08028C84
-_08028C6C:
- adds r6, 0x1
- b _08028C8C
- .align 2, 0
-_08028C70: .4byte gNoOfAllBanks
-_08028C74: .4byte gBankAttacker
-_08028C78: .4byte gBattleMons
-_08028C7C: .4byte gDisableStructs
-_08028C80: .4byte gStatuses3
-_08028C84:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_08028C8C:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _08028C54
-_08028C98:
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80153D0
- ldr r0, _08028CC4 @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bne _08028CCC
- ldr r3, _08028CC8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028CD4
- .align 2, 0
-_08028CC4: .4byte gNoOfAllBanks
-_08028CC8: .4byte gBattlescriptCurrInstr
-_08028CCC:
- ldr r1, _08028CE0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028CD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB2_setperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 8028CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08028D08 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028D18
- ldr r0, _08028D0C @ =gBankAttacker
- ldrb r0, [r0]
- bl CancelMultiTurnMoves
- ldr r1, _08028D10 @ =gBattlescriptCurrInstr
- ldr r0, _08028D14 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028E30
- .align 2, 0
-_08028D08: .4byte gBattleMoveFlags
-_08028D0C: .4byte gBankAttacker
-_08028D10: .4byte gBattlescriptCurrInstr
-_08028D14: .4byte BattleScript_1D6F74
-_08028D18:
- ldr r2, _08028E3C @ =gBattleMons
- ldr r1, _08028E40 @ =gBankAttacker
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _08028E44 @ =gDisableStructs
- mov r12, r1
- ldr r2, _08028E48 @ =gCurrentMove
- mov r8, r2
- cmp r0, 0
- bne _08028D8A
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x50
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _08028E4C @ =gLockedMove
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_08028D8A:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _08028DBE
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _08028E50 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_08028DBE:
- ldr r3, _08028E54 @ =gDynamicBasePower
- ldr r2, _08028E58 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _08028E5C @ =gBattlescriptCurrInstr
- adds r5, r3, 0
- cmp r2, r1
- bge _08028E0C
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_08028DF8:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _08028DF8
-_08028E0C:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _08028E2A
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_08028E2A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_08028E30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E3C: .4byte gBattleMons
-_08028E40: .4byte gBankAttacker
-_08028E44: .4byte gDisableStructs
-_08028E48: .4byte gCurrentMove
-_08028E4C: .4byte gLockedMove
-_08028E50: .4byte 0xffffefff
-_08028E54: .4byte gDynamicBasePower
-_08028E58: .4byte gBattleMoves
-_08028E5C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8028E60
- push {r4,r5,lr}
- ldr r5, _08028EB0 @ =gBattleMons
- ldr r0, _08028EB4 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _08028EB8 @ =gBattlescriptCurrInstr
- cmp r0, 0
- beq _08028EBC
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _08028EBC
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08028EC2
- .align 2, 0
-_08028EB0: .4byte gBattleMons
-_08028EB4: .4byte gBankTarget
-_08028EB8: .4byte gBattlescriptCurrInstr
-_08028EBC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08028EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
-
- thumb_func_start sub_8028EC8
-sub_8028EC8: @ 8028EC8
- push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028F04
- ldr r2, _08028EF4 @ =gDisableStructs
- ldr r0, _08028EF8 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _08028EFC @ =gBattlescriptCurrInstr
- ldr r0, _08028F00 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028F5C
- .align 2, 0
-_08028EF0: .4byte gBattleMoveFlags
-_08028EF4: .4byte gDisableStructs
-_08028EF8: .4byte gBankAttacker
-_08028EFC: .4byte gBattlescriptCurrInstr
-_08028F00: .4byte BattleScript_1D6F74
-_08028F04:
- ldr r5, _08028F64 @ =gDisableStructs
- ldr r4, _08028F68 @ =gBankAttacker
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _08028F1C
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_08028F1C:
- ldr r3, _08028F6C @ =gDynamicBasePower
- ldr r2, _08028F70 @ =gBattleMoves
- ldr r0, _08028F74 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _08028F78 @ =gBattlescriptCurrInstr
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _08028F56
- adds r1, r3, 0
- adds r3, r0, 0
-_08028F48:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _08028F48
-_08028F56:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_08028F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028F64: .4byte gDisableStructs
-_08028F68: .4byte gBankAttacker
-_08028F6C: .4byte gDynamicBasePower
-_08028F70: .4byte gBattleMoves
-_08028F74: .4byte gCurrentMove
-_08028F78: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8028EC8
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 8028F7C
- push {r4,lr}
- ldr r2, _08028FA8 @ =gBattleMoves
- ldr r0, _08028FAC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _08028FBC
- ldr r4, _08028FB0 @ =gDynamicBasePower
- ldr r2, _08028FB4 @ =gBattleMons
- ldr r0, _08028FB8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _08028FD2
- .align 2, 0
-_08028FA8: .4byte gBattleMoves
-_08028FAC: .4byte gCurrentMove
-_08028FB0: .4byte gDynamicBasePower
-_08028FB4: .4byte gBattleMons
-_08028FB8: .4byte gBankAttacker
-_08028FBC:
- ldr r4, _08028FF0 @ =gDynamicBasePower
- ldr r2, _08028FF4 @ =gBattleMons
- ldr r0, _08028FF8 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_08028FD2:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _08028FFC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028FF0: .4byte gDynamicBasePower
-_08028FF4: .4byte gBattleMons
-_08028FF8: .4byte gBankAttacker
-_08028FFC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 8029000
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802901C
- ldr r1, _08029018 @ =gDynamicBasePower
- movs r0, 0x28
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029018: .4byte gDynamicBasePower
-_0802901C:
- cmp r4, 0xB1
- bgt _0802902C
- ldr r1, _08029028 @ =gDynamicBasePower
- movs r0, 0x50
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029028: .4byte gDynamicBasePower
-_0802902C:
- cmp r4, 0xCB
- bgt _0802903C
- ldr r1, _08029038 @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029038: .4byte gDynamicBasePower
-_0802903C:
- ldr r3, _08029068 @ =gBattleMoveDamage
- ldr r2, _0802906C @ =gBattleMons
- ldr r0, _08029070 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _08029058
- movs r0, 0x1
- str r0, [r3]
-_08029058:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802905E:
- cmp r4, 0xCB
- bgt _0802907C
- ldr r1, _08029074 @ =gBattlescriptCurrInstr
- ldr r0, _08029078 @ =BattleScript_1D6F44
- b _080290AC
- .align 2, 0
-_08029068: .4byte gBattleMoveDamage
-_0802906C: .4byte gBattleMons
-_08029070: .4byte gBankTarget
-_08029074: .4byte gBattlescriptCurrInstr
-_08029078: .4byte BattleScript_1D6F44
-_0802907C:
- ldr r2, _08029098 @ =gBattleMons
- ldr r0, _0802909C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _080290A8
- ldr r1, _080290A0 @ =gBattlescriptCurrInstr
- ldr r0, _080290A4 @ =BattleScript_1D83B5
- b _080290AC
- .align 2, 0
-_08029098: .4byte gBattleMons
-_0802909C: .4byte gBankTarget
-_080290A0: .4byte gBattlescriptCurrInstr
-_080290A4: .4byte BattleScript_1D83B5
-_080290A8:
- ldr r1, _080290B4 @ =gBattlescriptCurrInstr
- ldr r0, _080290B8 @ =BattleScript_1D839B
-_080290AC:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080290B4: .4byte gBattlescriptCurrInstr
-_080290B8: .4byte BattleScript_1D839B
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start sub_80290BC
-sub_80290BC: @ 80290BC
- push {r4-r6,lr}
- ldr r4, _080290F0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r6, _080290F4 @ =gSideAffecting
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08029100
- ldr r2, _080290F8 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080290FC @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- b _08029132
- .align 2, 0
-_080290F0: .4byte gBankAttacker
-_080290F4: .4byte gSideAffecting
-_080290F8: .4byte gBattleMoveFlags
-_080290FC: .4byte gBattleCommunication
-_08029100:
- ldrb r0, [r4]
- bl GetBankIdentity
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl GetBankIdentity
- ldr r2, _08029140 @ =gSideTimer
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x7]
- ldr r0, _08029144 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_08029132:
- ldr r1, _08029148 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029140: .4byte gSideTimer
-_08029144: .4byte gBattleCommunication
-_08029148: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80290BC
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802914C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _08029178
- ldr r1, _08029174 @ =gDynamicBasePower
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _080291E4
- .align 2, 0
-_08029174: .4byte gDynamicBasePower
-_08029178:
- cmp r3, 0xE
- bgt _0802918C
- ldr r1, _08029188 @ =gDynamicBasePower
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _080291E4
- .align 2, 0
-_08029188: .4byte gDynamicBasePower
-_0802918C:
- cmp r3, 0x22
- bgt _080291A0
- ldr r1, _0802919C @ =gDynamicBasePower
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _080291E4
- .align 2, 0
-_0802919C: .4byte gDynamicBasePower
-_080291A0:
- cmp r3, 0x40
- bgt _080291B4
- ldr r1, _080291B0 @ =gDynamicBasePower
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _080291E4
- .align 2, 0
-_080291B0: .4byte gDynamicBasePower
-_080291B4:
- cmp r3, 0x54
- bgt _080291C8
- ldr r1, _080291C4 @ =gDynamicBasePower
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _080291E4
- .align 2, 0
-_080291C4: .4byte gDynamicBasePower
-_080291C8:
- cmp r3, 0x5E
- bgt _080291DC
- ldr r1, _080291D8 @ =gDynamicBasePower
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _080291E4
- .align 2, 0
-_080291D8: .4byte gDynamicBasePower
-_080291DC:
- ldr r1, _08029250 @ =gDynamicBasePower
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_080291E4:
- ldr r1, _08029254 @ =gBattleTextBuff1
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _08029258 @ =gBankTarget
- strb r2, [r1]
- ldr r0, _0802925C @ =gNoOfAllBanks
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _08029260 @ =gBattlescriptCurrInstr
- mov r8, r0
- cmp r2, r3
- bcs _0802923C
- adds r4, r6, 0
- ldr r0, _08029264 @ =gBankAttacker
- ldrb r5, [r0]
- ldr r1, _08029268 @ =gBitTable
- mov r12, r1
- ldr r7, _0802926C @ =gAbsentBankFlags
-_0802921A:
- ldrb r2, [r4]
- cmp r2, r5
- beq _08029230
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802923C
-_08029230:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802921A
-_0802923C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029250: .4byte gDynamicBasePower
-_08029254: .4byte gBattleTextBuff1
-_08029258: .4byte gBankTarget
-_0802925C: .4byte gNoOfAllBanks
-_08029260: .4byte gBattlescriptCurrInstr
-_08029264: .4byte gBankAttacker
-_08029268: .4byte gBitTable
-_0802926C: .4byte gAbsentBankFlags
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start sub_8029270
-sub_8029270: @ 8029270
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08029294 @ =gMultiHitCounter
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080292A0
- ldr r0, _08029298 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _0802929C
- movs r0, 0x1
- b _080292BA
- .align 2, 0
-_08029294: .4byte gMultiHitCounter
-_08029298: .4byte gBankAttacker
-_0802929C:
- movs r0, 0
- b _080292BA
-_080292A0:
- ldr r0, _080292B4 @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080292B8
- movs r0, 0x3
- b _080292BA
- .align 2, 0
-_080292B4: .4byte gBankAttacker
-_080292B8:
- movs r0, 0x2
-_080292BA:
- bl GetBankByPlayerAI
- ldr r1, _0802937C @ =gBankTarget
- strb r0, [r1]
- ldr r0, _08029380 @ =gActionForBanks
- ldr r1, _0802937C @ =gBankTarget
- mov r9, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080293BC
- ldr r5, _08029384 @ =gBankAttacker
- ldr r0, _08029388 @ =0x02000000
- ldr r2, _0802938C @ =0x00016010
- adds r1, r3, r2
- adds r1, r0
- ldrb r2, [r5]
- mov r10, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _080293BC
- ldr r4, _08029390 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _080293BC
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080293BC
- ldr r0, _08029394 @ =gDisableStructs
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080293BC
- ldr r0, _08029398 @ =gChosenMovesByBanks
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _080293BC
- movs r1, 0
- ldr r0, _0802939C @ =gNoOfAllBanks
- ldr r7, _080293A0 @ =gCurrentMove
- mov r8, r7
- ldr r2, _080293A4 @ =gHitMarker
- mov r12, r2
- ldrb r7, [r0]
- cmp r1, r7
- bge _0802935A
- ldr r6, _080293A8 @ =gTurnOrder
- mov r5, r9
- ldr r4, _080293AC @ =gUnknown_02024A76
- movs r3, 0xB
- adds r2, r0, 0
-_08029344:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _08029352
- adds r0, r1, r4
- strb r3, [r0]
-_08029352:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08029344
-_0802935A:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _080293B0 @ =gBattlescriptCurrInstr
- ldr r0, [r2]
- adds r0, 0x5
- str r0, [r2]
- ldr r1, _080293B4 @ =0x00016002
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- mov r7, r12
- ldr r0, [r7]
- ldr r1, _080293B8 @ =0xfffffbff
- ands r0, r1
- str r0, [r7]
- b _080293D6
- .align 2, 0
-_0802937C: .4byte gBankTarget
-_08029380: .4byte gActionForBanks
-_08029384: .4byte gBankAttacker
-_08029388: .4byte 0x02000000
-_0802938C: .4byte 0x00016010
-_08029390: .4byte gBattleMons
-_08029394: .4byte gDisableStructs
-_08029398: .4byte gChosenMovesByBanks
-_0802939C: .4byte gNoOfAllBanks
-_080293A0: .4byte gCurrentMove
-_080293A4: .4byte gHitMarker
-_080293A8: .4byte gTurnOrder
-_080293AC: .4byte gUnknown_02024A76
-_080293B0: .4byte gBattlescriptCurrInstr
-_080293B4: .4byte 0x00016002
-_080293B8: .4byte 0xfffffbff
-_080293BC:
- ldr r3, _080293E4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080293D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080293E4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029270
-
- thumb_func_start sub_80293E8
-sub_80293E8: @ 80293E8
- push {lr}
- ldr r2, _08029408 @ =gBattleWeather
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029414
- ldr r2, _0802940C @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029410 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029426
- .align 2, 0
-_08029408: .4byte gBattleWeather
-_0802940C: .4byte gBattleMoveFlags
-_08029410: .4byte gBattleCommunication
-_08029414:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _08029434 @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _08029438 @ =gWishFutureKnock
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08029426:
- ldr r1, _0802943C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029434: .4byte gBattleCommunication
-_08029438: .4byte gWishFutureKnock
-_0802943C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_80293E8
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 8029440
- push {r4,r5,lr}
- ldr r5, _0802948C @ =gBattleMons
- ldr r4, _08029490 @ =gBankAttacker
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _08029458
- movs r1, 0x1
-_08029458:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802949C
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802949C
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gBattleMoveDamage
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08029480
- movs r0, 0x1
- str r0, [r1]
-_08029480:
- ldr r1, _08029498 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080294B6
- .align 2, 0
-_0802948C: .4byte gBattleMons
-_08029490: .4byte gBankAttacker
-_08029494: .4byte gBattleMoveDamage
-_08029498: .4byte gBattlescriptCurrInstr
-_0802949C:
- ldr r3, _080294BC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080294B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080294BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 80294C0
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _080294F8 @ =gBattlescriptCurrInstr
- ldr r6, _080294FC @ =gBankAttacker
- movs r4, 0x58
- ldr r3, _08029500 @ =gUnknown_02024A98
- ldr r5, _08029504 @ =gBankTarget
-_080294CE:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080294CE
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080294F8: .4byte gBattlescriptCurrInstr
-_080294FC: .4byte gBankAttacker
-_08029500: .4byte gUnknown_02024A98
-_08029504: .4byte gBankTarget
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_breakfree
-atkBE_breakfree: @ 8029508
- push {r4,r5,lr}
- ldr r1, _08029570 @ =gBattleMons
- ldr r5, _08029574 @ =gBankAttacker
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r3, r0, r1
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08029594
- ldr r0, _08029578 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
- ldr r1, _0802957C @ =gBankTarget
- ldr r2, _08029580 @ =0x02000000
- ldrb r0, [r5]
- ldr r3, _08029584 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08029588 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- subs r3, 0x1C
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r3, 0x1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0802958C @ =gBattlescriptCurrInstr
- ldr r0, _08029590 @ =gUnknown_081D92C2
- b _0802963E
- .align 2, 0
-_08029570: .4byte gBattleMons
-_08029574: .4byte gBankAttacker
-_08029578: .4byte 0xffff1fff
-_0802957C: .4byte gBankTarget
-_08029580: .4byte 0x02000000
-_08029584: .4byte 0x00016020
-_08029588: .4byte gBattleTextBuff1
-_0802958C: .4byte gBattlescriptCurrInstr
-_08029590: .4byte gUnknown_081D92C2
-_08029594:
- ldr r4, _080295C8 @ =gStatuses3
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080295D4
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _080295CC @ =gBattlescriptCurrInstr
- ldr r0, _080295D0 @ =gUnknown_081D92C9
- b _0802963E
- .align 2, 0
-_080295C8: .4byte gStatuses3
-_080295CC: .4byte gBattlescriptCurrInstr
-_080295D0: .4byte gUnknown_081D92C9
-_080295D4:
- adds r0, r2, 0
- bl GetBankSide
- ldr r4, _08029624 @ =gSideAffecting
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08029638
- ldrb r0, [r5]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _08029628 @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl GetBankSide
- ldr r2, _0802962C @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0x6]
- bl b_movescr_stack_push_cursor
- ldr r1, _08029630 @ =gBattlescriptCurrInstr
- ldr r0, _08029634 @ =gUnknown_081D92D0
- b _0802963E
- .align 2, 0
-_08029624: .4byte gSideAffecting
-_08029628: .4byte 0x0000ffef
-_0802962C: .4byte gSideTimer
-_08029630: .4byte gBattlescriptCurrInstr
-_08029634: .4byte gUnknown_081D92D0
-_08029638:
- ldr r1, _08029648 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
-_0802963E:
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029648: .4byte gBattlescriptCurrInstr
- thumb_func_end atkBE_breakfree
-
- thumb_func_start sub_802964C
-sub_802964C: @ 802964C
- ldr r1, _08029670 @ =gBattleMons
- ldr r0, _08029674 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029678 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08029670: .4byte gBattleMons
-_08029674: .4byte gBankAttacker
-_08029678: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802964C
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802967C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080296E8 @ =gBankTarget
- ldr r5, _080296EC @ =gBankAttacker
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _080296F0 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802975C
- ldr r4, _080296F4 @ =gBattleWeather
- ldrh r0, [r4]
- cmp r0, 0
- beq _080296CE
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080296CE
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080296FC
-_080296CE:
- ldr r3, _080296F8 @ =gBattleMoveDamage
- ldr r2, _080296F0 @ =gBattleMons
- ldr r0, _080296EC @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _08029736
- .align 2, 0
-_080296E8: .4byte gBankTarget
-_080296EC: .4byte gBankAttacker
-_080296F0: .4byte gBattleMons
-_080296F4: .4byte gBattleWeather
-_080296F8: .4byte gBattleMoveDamage
-_080296FC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029728
- ldr r4, _08029724 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _08029736
- .align 2, 0
-_08029724: .4byte gBattleMoveDamage
-_08029728:
- ldr r1, _08029754 @ =gBattleMoveDamage
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_08029736:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08029742
- movs r0, 0x1
- str r0, [r2]
-_08029742:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _08029758 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029776
- .align 2, 0
-_08029754: .4byte gBattleMoveDamage
-_08029758: .4byte gBattlescriptCurrInstr
-_0802975C:
- ldr r3, _08029780 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029776:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029780: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_8029784
-sub_8029784: @ 8029784
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08029894 @ =gBattleMons
- ldr r0, _08029898 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- ldrb r0, [r4, 0x14]
- mov r10, r0
- mov r7, r10
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r10, r0
- movs r1, 0x2
- mov r2, r10
- ands r2, r1
- asrs r2, 1
- ldrh r7, [r4, 0x14]
- mov r9, r7
- mov r0, r9
- lsls r0, 22
- mov r9, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- orrs r2, r0
- ldrb r7, [r4, 0x15]
- mov r8, r7
- mov r0, r8
- lsls r0, 25
- mov r8, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 1
- orrs r2, r0
- ldr r6, [r4, 0x14]
- lsls r6, 12
- lsrs r3, r6, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 2
- orrs r2, r0
- ldrh r5, [r4, 0x16]
- lsls r5, 23
- lsrs r3, r5, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 3
- orrs r2, r0
- ldrb r3, [r4, 0x17]
- lsls r3, 26
- lsrs r0, r3, 27
- ands r1, r0
- lsls r1, 4
- orrs r2, r1
- movs r1, 0x1
- adds r4, r1, 0
- mov r7, r10
- ands r4, r7
- mov r0, r9
- lsrs r0, 27
- mov r9, r0
- adds r0, r1, 0
- mov r7, r9
- ands r0, r7
- lsls r0, 1
- orrs r4, r0
- mov r0, r8
- lsrs r0, 27
- mov r8, r0
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- lsls r0, 2
- orrs r4, r0
- lsrs r6, 27
- adds r0, r1, 0
- ands r0, r6
- lsls r0, 3
- orrs r4, r0
- lsrs r5, 27
- adds r0, r1, 0
- ands r0, r5
- lsls r0, 4
- orrs r4, r0
- lsrs r3, 27
- ands r1, r3
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802989C @ =gDynamicBasePower
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r5, _080298A0 @ =0x02000000
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r1, r0, 0x1
- ldr r0, _080298A4 @ =0x0001601c
- adds r5, r0
- strb r1, [r5]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _08029876
- adds r0, r1, 0x1
- strb r0, [r5]
-_08029876:
- ldrb r0, [r5]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5]
- ldr r1, _080298A8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029894: .4byte gBattleMons
-_08029898: .4byte gBankAttacker
-_0802989C: .4byte gDynamicBasePower
-_080298A0: .4byte 0x02000000
-_080298A4: .4byte 0x0001601c
-_080298A8: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029784
-
- thumb_func_start atkC2_selectnexttarget
-atkC2_selectnexttarget: @ 80298AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08029908 @ =gBankTarget
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802990C @ =gNoOfAllBanks
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _08029910 @ =gBattlescriptCurrInstr
- mov r8, r0
- cmp r1, 0
- beq _080298F6
- adds r3, r6, 0
- ldr r0, _08029914 @ =gBankAttacker
- ldrb r5, [r0]
- ldr r0, _08029918 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802991C @ =gAbsentBankFlags
-_080298D4:
- ldrb r2, [r3]
- cmp r2, r5
- beq _080298EA
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080298F6
-_080298EA:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _080298D4
-_080298F6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029908: .4byte gBankTarget
-_0802990C: .4byte gNoOfAllBanks
-_08029910: .4byte gBattlescriptCurrInstr
-_08029914: .4byte gBankAttacker
-_08029918: .4byte gBitTable
-_0802991C: .4byte gAbsentBankFlags
- thumb_func_end atkC2_selectnexttarget
-
- thumb_func_start atkC3_setfutureattack
-atkC3_setfutureattack: @ 8029920
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08029958 @ =gWishFutureKnock
- mov r8, r0
- ldr r7, _0802995C @ =gBankTarget
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _08029964
- ldr r3, _08029960 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029A2E
- .align 2, 0
-_08029958: .4byte gWishFutureKnock
-_0802995C: .4byte gBankTarget
-_08029960: .4byte gBattlescriptCurrInstr
-_08029964:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _08029A04 @ =gCurrentMove
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _08029A08 @ =gBankAttacker
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _08029A0C @ =gSideAffecting
- ldrb r0, [r7]
- bl GetBankIdentity
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08029A10 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _08029A14 @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _080299F2
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_080299F2:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _08029A18 @ =0x00000161
- cmp r1, r0
- bne _08029A20
- ldr r0, _08029A1C @ =gBattleCommunication
- mov r1, r10
- strb r1, [r0, 0x5]
- b _08029A26
- .align 2, 0
-_08029A04: .4byte gCurrentMove
-_08029A08: .4byte gBankAttacker
-_08029A0C: .4byte gSideAffecting
-_08029A10: .4byte gBattleMons
-_08029A14: .4byte gProtectStructs
-_08029A18: .4byte 0x00000161
-_08029A1C: .4byte gBattleCommunication
-_08029A20:
- ldr r1, _08029A40 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_08029A26:
- ldr r1, _08029A44 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029A2E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029A40: .4byte gBattleCommunication
-_08029A44: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC3_setfutureattack
-
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 8029A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08029A8C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- ldr r7, _08029A90 @ =gEnemyParty
- cmp r0, 0
- bne _08029A62
- ldr r7, _08029A94 @ =gPlayerParty
-_08029A62:
- ldr r2, _08029A98 @ =gBattleMons
- ldr r0, _08029A9C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08029AA4
- ldr r3, _08029AA0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029A8C: .4byte gBankAttacker
-_08029A90: .4byte gEnemyParty
-_08029A94: .4byte gPlayerParty
-_08029A98: .4byte gBattleMons
-_08029A9C: .4byte gBankTarget
-_08029AA0: .4byte gBattlescriptCurrInstr
-_08029AA4:
- ldr r6, _08029BE0 @ =gBattleCommunication
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _08029AB0
- b _08029C0C
-_08029AB0:
- adds r4, r6, 0
- movs r5, 0x64
-_08029AB4:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _08029B08
-_08029AF8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _08029AB4
-_08029B08:
- ldr r1, _08029BE0 @ =gBattleCommunication
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _08029C0C
- ldr r1, _08029BE4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08029BE8 @ =gBankAttacker
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029BEC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _08029BF0 @ =gBattleMoveDamage
- mov r8, r2
- ldr r5, _08029BF4 @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _08029BF8 @ =gBattleMoves
- ldr r0, _08029BFC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _08029C00 @ =gBattleMons
- ldr r1, _08029C04 @ =gBankTarget
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _08029C08 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08029BD4
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08029BD4:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _08029C46
- .align 2, 0
-_08029BE0: .4byte gBattleCommunication
-_08029BE4: .4byte gBattleTextBuff1
-_08029BE8: .4byte gBankAttacker
-_08029BEC: .4byte gBattlescriptCurrInstr
-_08029BF0: .4byte gBattleMoveDamage
-_08029BF4: .4byte gBaseStats
-_08029BF8: .4byte gBattleMoves
-_08029BFC: .4byte gCurrentMove
-_08029C00: .4byte gBattleMons
-_08029C04: .4byte gBankTarget
-_08029C08: .4byte gProtectStructs
-_08029C0C:
- mov r0, r8
- cmp r0, 0
- beq _08029C2C
- ldr r3, _08029C28 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029C28: .4byte gBattlescriptCurrInstr
-_08029C2C:
- ldr r3, _08029C54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_08029C40:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029C46:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029C54: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC4_802B910
-
- thumb_func_start atkC5_hidepreattack
-atkC5_hidepreattack: @ 8029C58
- push {lr}
- ldr r0, _08029C6C @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029C98
- cmp r1, 0x5B
- bgt _08029C70
- cmp r1, 0x13
- beq _08029C7C
- b _08029CC4
- .align 2, 0
-_08029C6C: .4byte gCurrentMove
-_08029C70:
- ldr r0, _08029C8C @ =0x00000123
- cmp r1, r0
- beq _08029CB0
- adds r0, 0x31
- cmp r1, r0
- bne _08029CC4
-_08029C7C:
- ldr r2, _08029C90 @ =gStatuses3
- ldr r0, _08029C94 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _08029CC0
- .align 2, 0
-_08029C8C: .4byte 0x00000123
-_08029C90: .4byte gStatuses3
-_08029C94: .4byte gBankAttacker
-_08029C98:
- ldr r2, _08029CA8 @ =gStatuses3
- ldr r0, _08029CAC @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _08029CC0
- .align 2, 0
-_08029CA8: .4byte gStatuses3
-_08029CAC: .4byte gBankAttacker
-_08029CB0:
- ldr r2, _08029CD0 @ =gStatuses3
- ldr r0, _08029CD4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_08029CC0:
- orrs r0, r2
- str r0, [r1]
-_08029CC4:
- ldr r1, _08029CD8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029CD0: .4byte gStatuses3
-_08029CD4: .4byte gBankAttacker
-_08029CD8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC5_hidepreattack
-
- thumb_func_start atkC6_unhidepostattack
-atkC6_unhidepostattack: @ 8029CDC
- push {lr}
- ldr r0, _08029CF0 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029D20
- cmp r1, 0x5B
- bgt _08029CF4
- cmp r1, 0x13
- beq _08029D00
- b _08029D4E
- .align 2, 0
-_08029CF0: .4byte gCurrentMove
-_08029CF4:
- ldr r0, _08029D14 @ =0x00000123
- cmp r1, r0
- beq _08029D3C
- adds r0, 0x31
- cmp r1, r0
- bne _08029D4E
-_08029D00:
- ldr r2, _08029D18 @ =gStatuses3
- ldr r0, _08029D1C @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D14: .4byte 0x00000123
-_08029D18: .4byte gStatuses3
-_08029D1C: .4byte gBankAttacker
-_08029D20:
- ldr r2, _08029D34 @ =gStatuses3
- ldr r0, _08029D38 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D34: .4byte gStatuses3
-_08029D38: .4byte gBankAttacker
-_08029D3C:
- ldr r2, _08029D5C @ =gStatuses3
- ldr r0, _08029D60 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _08029D64 @ =0xfffbffff
-_08029D4A:
- ands r0, r2
- str r0, [r1]
-_08029D4E:
- ldr r1, _08029D68 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D5C: .4byte gStatuses3
-_08029D60: .4byte gBankAttacker
-_08029D64: .4byte 0xfffbffff
-_08029D68: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC6_unhidepostattack
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 8029D6C
- push {lr}
- ldr r0, _08029D9C @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08029D90
- ldr r2, _08029DA0 @ =gStatuses3
- ldr r0, _08029DA4 @ =gBankAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_08029D90:
- ldr r1, _08029DA8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D9C: .4byte gHitMarker
-_08029DA0: .4byte gStatuses3
-_08029DA4: .4byte gBankAttacker
-_08029DA8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC7_setminimize
-
- thumb_func_start sub_8029DAC
-sub_8029DAC: @ 8029DAC
- push {lr}
- ldr r3, _08029DD0 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08029DDC
- ldr r2, _08029DD4 @ =gBattleMoveFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029DD8 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029DEA
- .align 2, 0
-_08029DD0: .4byte gBattleWeather
-_08029DD4: .4byte gBattleMoveFlags
-_08029DD8: .4byte gBattleCommunication
-_08029DDC:
- strh r2, [r3]
- ldr r0, _08029DF8 @ =gBattleCommunication
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _08029DFC @ =gWishFutureKnock
- adds r0, 0x28
- strb r1, [r0]
-_08029DEA:
- ldr r1, _08029E00 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029DF8: .4byte gBattleCommunication
-_08029DFC: .4byte gWishFutureKnock
-_08029E00: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8029DAC
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
- push {r4,lr}
- ldr r2, _08029E48 @ =gBattleMons
- ldr r0, _08029E4C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _08029E58
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _08029E58
- ldr r0, _08029E50 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08029E58
- ldr r3, _08029E54 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029E84
- .align 2, 0
-_08029E48: .4byte gBattleMons
-_08029E4C: .4byte gBankTarget
-_08029E50: .4byte gBattleCommunication
-_08029E54: .4byte gBattlescriptCurrInstr
-_08029E58:
- ldr r4, _08029E8C @ =gActiveBank
- ldr r0, _08029E90 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08029E94 @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08029E98 @ =0x00007fff
- movs r0, 0
- bl EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _08029E9C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029E84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029E8C: .4byte gActiveBank
-_08029E90: .4byte gBankAttacker
-_08029E94: .4byte gBattleMoveDamage
-_08029E98: .4byte 0x00007fff
-_08029E9C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 8029EA0
- push {r4,r5,lr}
- ldr r4, _08029EE0 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- ldr r5, _08029EE4 @ =gSideTimer
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _08029EE8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029EE0: .4byte gBankAttacker
-_08029EE4: .4byte gSideTimer
-_08029EE8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 8029EEC
- push {r4,lr}
- ldr r0, _08029F40 @ =gStatuses3
- ldr r3, _08029F44 @ =gBankAttacker
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _08029F48 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _08029F4C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F40: .4byte gStatuses3
-_08029F44: .4byte gBankAttacker
-_08029F48: .4byte gDisableStructs
-_08029F4C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 8029F50
- push {r4,lr}
- ldr r2, _08029FA0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08029FA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08029FA8 @ =gCurrentMove
- ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gBattleTerrain
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08029FB4 @ =gBankTarget
- strb r0, [r1]
- ldr r3, _08029FB8 @ =gUnknown_081D6BBC
- ldr r2, _08029FBC @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _08029FC0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FA0: .4byte gHitMarker
-_08029FA4: .4byte 0xfffffbff
-_08029FA8: .4byte gCurrentMove
-_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gBattleTerrain
-_08029FB4: .4byte gBankTarget
-_08029FB8: .4byte gUnknown_081D6BBC
-_08029FBC: .4byte gBattleMoves
-_08029FC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802A010 @ =gBattleMons
- ldr r3, _0802A014 @ =gBankAttacker
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802A020
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802A018 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802A01C @ =gActiveBank
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- b _0802A03A
- .align 2, 0
-_0802A010: .4byte gBattleMons
-_0802A014: .4byte gBankAttacker
-_0802A018: .4byte gBattlescriptCurrInstr
-_0802A01C: .4byte gActiveBank
-_0802A020:
- ldr r3, _0802A044 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A03A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A044: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802A048
- push {lr}
- ldr r1, _0802A080 @ =gBattleMons
- ldr r0, _0802A084 @ =gBankTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802A08C
- ldr r3, _0802A088 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A098
- .align 2, 0
-_0802A080: .4byte gBattleMons
-_0802A084: .4byte gBankTarget
-_0802A088: .4byte gBattlescriptCurrInstr
-_0802A08C:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802A09C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A098:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A09C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802A0A0
- push {lr}
- ldr r2, _0802A0CC @ =gProtectStructs
- ldr r0, _0802A0D0 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802A0C0
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A0D8
-_0802A0C0:
- ldr r1, _0802A0D4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A0F2
- .align 2, 0
-_0802A0CC: .4byte gProtectStructs
-_0802A0D0: .4byte gBankAttacker
-_0802A0D4: .4byte gBattlescriptCurrInstr
-_0802A0D8:
- ldr r3, _0802A0F8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A0F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A0F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802A0FC
- push {r4,lr}
- ldr r4, _0802A140 @ =gDisableStructs
- ldr r3, _0802A144 @ =gBankTarget
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802A14C
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802A148 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A166
- .align 2, 0
-_0802A140: .4byte gDisableStructs
-_0802A144: .4byte gBankTarget
-_0802A148: .4byte gBattlescriptCurrInstr
-_0802A14C:
- ldr r3, _0802A16C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A166:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A16C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD0_settaunt
-
- thumb_func_start sub_802A170
-sub_802A170: @ 802A170
- push {r4,lr}
- ldr r4, _0802A1D8 @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r3, _0802A1DC @ =gBankTarget
- strb r0, [r3]
- ldr r0, _0802A1E0 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A1F4
- ldr r0, _0802A1E4 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802A1E8 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A1F4
- ldr r1, _0802A1EC @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802A1F4
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802A1F4
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802A1F0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A20E
- .align 2, 0
-_0802A1D8: .4byte gBankAttacker
-_0802A1DC: .4byte gBankTarget
-_0802A1E0: .4byte gBattleTypeFlags
-_0802A1E4: .4byte gAbsentBankFlags
-_0802A1E8: .4byte gBitTable
-_0802A1EC: .4byte gProtectStructs
-_0802A1F0: .4byte gBattlescriptCurrInstr
-_0802A1F4:
- ldr r3, _0802A214 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A214: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A170
-
- thumb_func_start sub_802A218
-sub_802A218: @ 802A218
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0802A30C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802A24C
- ldr r0, _0802A310 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A24C
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802A2EE
-_0802A24C:
- ldr r4, _0802A30C @ =gBankAttacker
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gBattleTypeFlags
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A290
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802A290
- ldr r0, _0802A31C @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _0802A320 @ =gBitTable
- ldr r2, _0802A324 @ =gBattlePartyID
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A2EE
-_0802A290:
- ldr r0, _0802A328 @ =gBattleMons
- mov r9, r0
- ldr r1, _0802A30C @ =gBankAttacker
- ldrb r4, [r1]
- movs r2, 0x58
- mov r8, r2
- mov r0, r8
- muls r0, r4
- mov r3, r9
- adds r5, r0, r3
- ldrh r3, [r5, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802A2BE
- ldr r0, _0802A32C @ =gBankTarget
- ldrb r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802A2EE
-_0802A2BE:
- cmp r1, 0xAF
- beq _0802A2EE
- ldr r7, _0802A32C @ =gBankTarget
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- mov r1, r9
- adds r2, r0, r1
- ldrh r1, [r2, 0x2E]
- cmp r1, 0xAF
- beq _0802A2EE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802A2EE
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802A334
-_0802A2EE:
- ldr r3, _0802A330 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A49A
- .align 2, 0
-_0802A30C: .4byte gBankAttacker
-_0802A310: .4byte gBattleTypeFlags
-_0802A314: .4byte 0x00000902
-_0802A318: .4byte gTrainerBattleOpponent
-_0802A31C: .4byte gWishFutureKnock
-_0802A320: .4byte gBitTable
-_0802A324: .4byte gBattlePartyID
-_0802A328: .4byte gBattleMons
-_0802A32C: .4byte gBankTarget
-_0802A330: .4byte gBattlescriptCurrInstr
-_0802A334:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802A36C
- ldr r1, _0802A360 @ =gBattlescriptCurrInstr
- ldr r0, _0802A364 @ =BattleScript_NoItemSteal
- str r0, [r1]
- ldr r1, _0802A368 @ =gLastUsedAbility
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _0802A49A
- .align 2, 0
-_0802A360: .4byte gBattlescriptCurrInstr
-_0802A364: .4byte BattleScript_NoItemSteal
-_0802A368: .4byte gLastUsedAbility
-_0802A36C:
- lsls r0, r4, 1
- ldr r4, _0802A458 @ =0x020160f0
- adds r6, r0, r4
- ldrh r5, [r5, 0x2E]
- mov r10, r5
- strh r1, [r6]
- ldr r3, _0802A45C @ =gBankAttacker
- ldrb r0, [r3]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- mov r3, r10
- strh r3, [r0, 0x2E]
- ldr r5, _0802A460 @ =gActiveBank
- ldr r1, _0802A45C @ =gBankAttacker
- ldrb r0, [r1]
- strb r0, [r5]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldr r2, _0802A45C @ =gBankAttacker
- ldrb r0, [r2]
- bl MarkBufferBankForExecution
- ldrb r0, [r7]
- strb r0, [r5]
- ldrb r0, [r7]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r0, _0802A464 @ =0xfffe9f10
- adds r4, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0802A468 @ =0x000160e8
- adds r0, r2
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0802A46C @ =0x000160e9
- adds r0, r1
- adds r0, r4
- movs r3, 0
- strb r3, [r0]
- ldr r3, _0802A45C @ =gBankAttacker
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- ldr r1, _0802A470 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A474 @ =gBattleTextBuff1
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A478 @ =gBattleTextBuff2
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r3, r10
- strb r3, [r1, 0x2]
- mov r2, r10
- lsrs r0, r2, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r2, 0
- beq _0802A480
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r1, _0802A47C @ =gBattleCommunication
- movs r0, 0x2
- b _0802A498
- .align 2, 0
-_0802A458: .4byte 0x020160f0
-_0802A45C: .4byte gBankAttacker
-_0802A460: .4byte gActiveBank
-_0802A464: .4byte 0xfffe9f10
-_0802A468: .4byte 0x000160e8
-_0802A46C: .4byte 0x000160e9
-_0802A470: .4byte gBattlescriptCurrInstr
-_0802A474: .4byte gBattleTextBuff1
-_0802A478: .4byte gBattleTextBuff2
-_0802A47C: .4byte gBattleCommunication
-_0802A480:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r0, _0802A490 @ =gBattleCommunication
- movs r3, 0
- strb r3, [r0, 0x5]
- b _0802A49A
- .align 2, 0
-_0802A490: .4byte gBattleCommunication
-_0802A494:
- ldr r1, _0802A4AC @ =gBattleCommunication
- movs r0, 0x1
-_0802A498:
- strb r0, [r1, 0x5]
-_0802A49A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A4AC: .4byte gBattleCommunication
- thumb_func_end sub_802A218
-
- thumb_func_start sub_802A4B0
-sub_802A4B0: @ 802A4B0
- push {r4,lr}
- ldr r3, _0802A4F0 @ =gBattleMons
- ldr r4, _0802A4F4 @ =gBankTarget
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802A504
- cmp r0, 0x19
- beq _0802A504
- ldr r0, _0802A4F8 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A4FC @ =gLastUsedAbility
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802A500 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A51E
- .align 2, 0
-_0802A4F0: .4byte gBattleMons
-_0802A4F4: .4byte gBankTarget
-_0802A4F8: .4byte gBankAttacker
-_0802A4FC: .4byte gLastUsedAbility
-_0802A500: .4byte gBattlescriptCurrInstr
-_0802A504:
- ldr r3, _0802A524 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A51E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A524: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A4B0
-
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 802A528
- push {r4-r7,lr}
- ldr r7, _0802A53C @ =gBattlescriptCurrInstr
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802A540
- cmp r3, 0x1
- beq _0802A578
- b _0802A5F4
- .align 2, 0
-_0802A53C: .4byte gBattlescriptCurrInstr
-_0802A540:
- ldr r1, _0802A56C @ =gWishFutureKnock
- ldr r4, _0802A570 @ =gBankAttacker
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802A5C4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802A574 @ =gBattlePartyID
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802A5F2
- .align 2, 0
-_0802A56C: .4byte gWishFutureKnock
-_0802A570: .4byte gBankAttacker
-_0802A574: .4byte gBattlePartyID
-_0802A578:
- ldr r1, _0802A5DC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802A5E0 @ =gBankTarget
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802A5E4 @ =gWishFutureKnock
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gBattleMoveDamage
- ldr r6, _0802A5EC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A5B0
- str r3, [r1]
-_0802A5B0:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802A5F0
-_0802A5C4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802A5F4
- .align 2, 0
-_0802A5DC: .4byte gBattleTextBuff1
-_0802A5E0: .4byte gBankTarget
-_0802A5E4: .4byte gWishFutureKnock
-_0802A5E8: .4byte gBattleMoveDamage
-_0802A5EC: .4byte gBattleMons
-_0802A5F0:
- adds r0, r2, 0x6
-_0802A5F2:
- str r0, [r7]
-_0802A5F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_802C408
-
- thumb_func_start sub_802A5FC
-sub_802A5FC: @ 802A5FC
- push {lr}
- ldr r1, _0802A634 @ =gStatuses3
- ldr r0, _0802A638 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A640
- ldr r3, _0802A63C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A64C
- .align 2, 0
-_0802A634: .4byte gStatuses3
-_0802A638: .4byte gBankAttacker
-_0802A63C: .4byte gBattlescriptCurrInstr
-_0802A640:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A650 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A64C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A650: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A5FC
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802A654
- push {lr}
- ldr r3, _0802A6A4 @ =gProtectStructs
- ldr r0, _0802A6A8 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A674
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gBankTarget
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802A68C
-_0802A674:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A696
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gBankTarget
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802A696
-_0802A68C:
- ldr r0, _0802A6B0 @ =0x02000000
- ldr r1, _0802A6B4 @ =0x0001601f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0802A696:
- ldr r1, _0802A6B8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6A4: .4byte gProtectStructs
-_0802A6A8: .4byte gBankAttacker
-_0802A6AC: .4byte gBankTarget
-_0802A6B0: .4byte 0x02000000
-_0802A6B4: .4byte 0x0001601f
-_0802A6B8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start sub_802A6BC
-sub_802A6BC: @ 802A6BC
- push {r4,lr}
- ldr r1, _0802A700 @ =gStatuses3
- ldr r0, _0802A704 @ =gBankTarget
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802A6E4
- ldr r1, _0802A708 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A710
-_0802A6E4:
- ldr r3, _0802A70C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A720
- .align 2, 0
-_0802A700: .4byte gStatuses3
-_0802A704: .4byte gBankTarget
-_0802A708: .4byte gBattleMons
-_0802A70C: .4byte gBattlescriptCurrInstr
-_0802A710:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802A728 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A720:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A728: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802A6BC
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802A72C
- push {lr}
- ldr r2, _0802A768 @ =gBattleMons
- ldr r0, _0802A76C @ =gBankTarget
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802A770 @ =gBankAttacker
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802A778
- ldr r3, _0802A774 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A78A
- .align 2, 0
-_0802A768: .4byte gBattleMons
-_0802A76C: .4byte gBankTarget
-_0802A770: .4byte gBankAttacker
-_0802A774: .4byte gBattlescriptCurrInstr
-_0802A778:
- ldr r2, _0802A790 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802A794 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A78A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A790: .4byte gBattleMoveDamage
-_0802A794: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802A798
- push {r4,lr}
- ldr r4, _0802A7E4 @ =gDynamicBasePower
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802A7D4
- ldr r2, _0802A7E8 @ =gBattleMoves
- ldr r0, _0802A7EC @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802A7F0 @ =gBattleMons
- ldr r0, _0802A7F4 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802A7D4
- movs r0, 0x1
- strh r0, [r4]
-_0802A7D4:
- ldr r1, _0802A7F8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A7E4: .4byte gDynamicBasePower
-_0802A7E8: .4byte gBattleMoves
-_0802A7EC: .4byte gCurrentMove
-_0802A7F0: .4byte gBattleMons
-_0802A7F4: .4byte gBankAttacker
-_0802A7F8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_abilityswap
-atkDA_abilityswap: @ 802A7FC
- push {r4-r6,lr}
- ldr r5, _0802A860 @ =gBattleMons
- ldr r0, _0802A864 @ =gBankAttacker
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802A824
- ldr r0, _0802A868 @ =gBankTarget
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A844
-_0802A824:
- cmp r1, 0x19
- beq _0802A844
- ldr r6, _0802A868 @ =gBankTarget
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802A844
- ldr r0, _0802A86C @ =gBattleMoveFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802A874
-_0802A844:
- ldr r3, _0802A870 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A88A
- .align 2, 0
-_0802A860: .4byte gBattleMons
-_0802A864: .4byte gBankAttacker
-_0802A868: .4byte gBankTarget
-_0802A86C: .4byte gBattleMoveFlags
-_0802A870: .4byte gBattlescriptCurrInstr
-_0802A874:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A890 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A890: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDA_abilityswap
-
- thumb_func_start atkDB_imprisoneffect
-atkDB_imprisoneffect: @ 802A894
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _0802A8B8 @ =gStatuses3
- ldr r0, _0802A8BC @ =gBankAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802A8E8
- b _0802A95E
- .align 2, 0
-_0802A8B8: .4byte gStatuses3
-_0802A8BC: .4byte gBankAttacker
-_0802A8C0:
- ldr r0, _0802A8E0 @ =gStatuses3
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802A8E4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A956
- .align 2, 0
-_0802A8E0: .4byte gStatuses3
-_0802A8E4: .4byte gBattlescriptCurrInstr
-_0802A8E8:
- adds r0, r2, 0
- bl sub_801529C
- movs r6, 0
- b _0802A94E
-_0802A8F2:
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802A948
- movs r4, 0
- ldr r7, _0802A984 @ =gBankAttacker
- mov r9, r7
- ldr r0, _0802A988 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802A91C:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802A926:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802A930
- cmp r1, 0
- bne _0802A938
-_0802A930:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802A926
-_0802A938:
- cmp r2, 0x4
- bne _0802A944
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802A91C
-_0802A944:
- cmp r4, 0x4
- bne _0802A8C0
-_0802A948:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802A94E:
- ldr r0, _0802A98C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802A8F2
-_0802A956:
- ldr r0, _0802A98C @ =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802A978
-_0802A95E:
- ldr r3, _0802A990 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A978:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A984: .4byte gBankAttacker
-_0802A988: .4byte gBattleMons
-_0802A98C: .4byte gNoOfAllBanks
-_0802A990: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDB_imprisoneffect
-
- thumb_func_start atkDC_setgrudge
-atkDC_setgrudge: @ 802A994
- push {lr}
- ldr r1, _0802A9CC @ =gStatuses3
- ldr r0, _0802A9D0 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9D8
- ldr r3, _0802A9D4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A9E4
- .align 2, 0
-_0802A9CC: .4byte gStatuses3
-_0802A9D0: .4byte gBankAttacker
-_0802A9D4: .4byte gBattlescriptCurrInstr
-_0802A9D8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A9E8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A9E8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDC_setgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802A9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802AA50 @ =gWeightDamage
- ldrh r0, [r2]
- ldr r1, _0802AA54 @ =0x0000ffff
- cmp r0, r1
- beq _0802AA64
- adds r6, r2, 0
- ldr r0, _0802AA58 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802AA08:
- ldr r0, _0802AA5C @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetPokedexHeightWeight
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802AA36
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802AA08
-_0802AA36:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802AA54 @ =0x0000ffff
- cmp r1, r0
- beq _0802AA64
- ldr r0, _0802AA60 @ =gDynamicBasePower
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802AA6A
- .align 2, 0
-_0802AA50: .4byte gWeightDamage
-_0802AA54: .4byte 0x0000ffff
-_0802AA58: .4byte gBattleMons
-_0802AA5C: .4byte gBankTarget
-_0802AA60: .4byte gDynamicBasePower
-_0802AA64:
- ldr r1, _0802AA7C @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
-_0802AA6A:
- ldr r1, _0802AA80 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA7C: .4byte gDynamicBasePower
-_0802AA80: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802AA84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r0, _0802AB9C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankIdentity
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802ABA0 @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802AAAC
- ldr r1, _0802ABA4 @ =gEnemyParty
- str r1, [sp]
-_0802AAAC:
- movs r2, 0
-_0802AAAE:
- ldr r1, _0802ABA8 @ =gBattlePartyID
- ldr r0, _0802AB9C @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802AB54
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802AB54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802AB54
- movs r5, 0
- ldr r1, _0802ABAC @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r6, r0, r1
-_0802AAF8:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_802838C
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802AB4E
- ldr r0, _0802ABB4 @ =gUnknown_081FACFE
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802AB42
- cmp r4, r2
- beq _0802AB38
- ldr r5, _0802ABAC @ =0x0000ffff
- adds r2, r3, 0
-_0802AB2A:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802AB42
- cmp r4, r0
- bne _0802AB2A
-_0802AB38:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802AB4E
-_0802AB42:
- cmp r4, 0
- beq _0802AB4E
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802AB4E:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802AAF8
-_0802AB54:
- ldr r2, [sp, 0x4]
- cmp r2, 0x5
- ble _0802AAAE
- mov r1, r10
- cmp r1, 0
- beq _0802ABCC
- ldr r2, _0802ABB8 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802ABBC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802ABC0 @ =gUnknown_02024BEA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802ABC4 @ =gBankTarget
- strb r0, [r1]
- ldr r1, _0802ABC8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802ABE6
- .align 2, 0
-_0802AB9C: .4byte gBankAttacker
-_0802ABA0: .4byte gPlayerParty
-_0802ABA4: .4byte gEnemyParty
-_0802ABA8: .4byte gBattlePartyID
-_0802ABAC: .4byte 0x0000ffff
-_0802ABB0: .4byte 0x02016024
-_0802ABB4: .4byte gUnknown_081FACFE
-_0802ABB8: .4byte gHitMarker
-_0802ABBC: .4byte 0xfffffbff
-_0802ABC0: .4byte gUnknown_02024BEA
-_0802ABC4: .4byte gBankTarget
-_0802ABC8: .4byte gBattlescriptCurrInstr
-_0802ABCC:
- ldr r3, _0802ABF8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802ABE6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABF8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_setmagiccoat
-atkDF_setmagiccoat: @ 802ABFC
- push {lr}
- ldr r1, _0802AC44 @ =gBankTarget
- ldr r3, _0802AC48 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802AC4C @ =gSpecialStatuses
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802AC50 @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802AC54 @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802AC5C
- ldr r3, _0802AC58 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AC74
- .align 2, 0
-_0802AC44: .4byte gBankTarget
-_0802AC48: .4byte gBankAttacker
-_0802AC4C: .4byte gSpecialStatuses
-_0802AC50: .4byte gCurrentMoveTurn
-_0802AC54: .4byte gNoOfAllBanks
-_0802AC58: .4byte gBattlescriptCurrInstr
-_0802AC5C:
- ldr r0, _0802AC78 @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802AC7C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AC74:
- pop {r0}
- bx r0
- .align 2, 0
-_0802AC78: .4byte gProtectStructs
-_0802AC7C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDF_setmagiccoat
-
- thumb_func_start atkE0_setstealstatchange
-atkE0_setstealstatchange: @ 802AC80
- push {lr}
- ldr r2, _0802ACC4 @ =gSpecialStatuses
- ldr r3, _0802ACC8 @ =gBankAttacker
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802ACCC @ =gCurrentMoveTurn
- ldrb r1, [r0]
- ldr r0, _0802ACD0 @ =gNoOfAllBanks
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802ACD8
- ldr r3, _0802ACD4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ACEE
- .align 2, 0
-_0802ACC4: .4byte gSpecialStatuses
-_0802ACC8: .4byte gBankAttacker
-_0802ACCC: .4byte gCurrentMoveTurn
-_0802ACD0: .4byte gNoOfAllBanks
-_0802ACD4: .4byte gBattlescriptCurrInstr
-_0802ACD8:
- ldr r0, _0802ACF4 @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802ACF8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ACEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACF4: .4byte gProtectStructs
-_0802ACF8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE0_setstealstatchange
-
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 802ACFC
- push {r4-r6,lr}
- ldr r4, _0802ADA0 @ =0x02000000
- ldr r1, _0802ADA4 @ =0x000160dd
- adds r0, r4, r1
- ldrb r0, [r0]
- subs r1, 0xDA
- adds r4, r1
- strb r0, [r4]
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802ADA8 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802ADAC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802ADB0 @ =gBankTarget
- ldr r1, _0802ADB4 @ =gNoOfAllBanks
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802AD84
- adds r4, r2, 0
- ldr r6, _0802ADB8 @ =gBitTable
-_0802AD44:
- ldrb r0, [r4]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802AD66
- ldr r0, _0802ADBC @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802ADB4 @ =gNoOfAllBanks
- cmp r1, 0
- beq _0802AD7A
-_0802AD66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802ADB4 @ =gNoOfAllBanks
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802AD44
-_0802AD7A:
- ldr r0, _0802ADB0 @ =gBankTarget
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802ADC4
-_0802AD84:
- ldr r3, _0802ADC0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ADCC
- .align 2, 0
-_0802ADA0: .4byte 0x02000000
-_0802ADA4: .4byte 0x000160dd
-_0802ADA8: .4byte gBattleTextBuff1
-_0802ADAC: .4byte gBattleMons
-_0802ADB0: .4byte gBankTarget
-_0802ADB4: .4byte gNoOfAllBanks
-_0802ADB8: .4byte gBitTable
-_0802ADBC: .4byte gAbsentBankFlags
-_0802ADC0: .4byte gBattlescriptCurrInstr
-_0802ADC4:
- ldr r1, _0802ADD4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ADCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ADD4: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE1_802CBE4
-
- thumb_func_start sub_802ADD8
-sub_802ADD8: @ 802ADD8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r6, _0802AE44 @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0802AE48 @ =gActiveBank
- strb r0, [r5]
- ldr r4, _0802AE4C @ =gBattleMons
- ldrb r0, [r5]
- movs r1, 0x58
- mov r12, r1
- mov r1, r12
- muls r1, r0
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802AE34
- adds r4, 0x4C
- adds r1, r4
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802AE50 @ =gBitTable
- ldr r1, _0802AE54 @ =0x02000000
- ldrb r3, [r5]
- ldr r7, _0802AE58 @ =0x00016064
- adds r0, r3, r7
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r12
- muls r0, r3
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl EmitSetAttributes
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
-_0802AE34:
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE44: .4byte gBattlescriptCurrInstr
-_0802AE48: .4byte gActiveBank
-_0802AE4C: .4byte gBattleMons
-_0802AE50: .4byte gBitTable
-_0802AE54: .4byte 0x02000000
-_0802AE58: .4byte 0x00016064
- thumb_func_end sub_802ADD8
-
- thumb_func_start atkE3_jumpiffainted
-atkE3_jumpiffainted: @ 802AE5C
- push {r4,lr}
- ldr r4, _0802AE98 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0802AE9C @ =gActiveBank
- strb r0, [r1]
- ldr r2, _0802AEA0 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802AEA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AEAA
- .align 2, 0
-_0802AE98: .4byte gBattlescriptCurrInstr
-_0802AE9C: .4byte gActiveBank
-_0802AEA0: .4byte gBattleMons
-_0802AEA4:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AEAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpiffainted
-
- thumb_func_start sub_802AEB0
-sub_802AEB0: @ 802AEB0
- push {lr}
- ldr r0, _0802AEC4 @ =gBattleTerrain
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802AF4C
- lsls r0, 2
- ldr r1, _0802AEC8 @ =_0802AECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AEC4: .4byte gBattleTerrain
-_0802AEC8: .4byte _0802AECC
- .align 2, 0
-_0802AECC:
- .4byte _0802AEEC
- .4byte _0802AEF8
- .4byte _0802AF04
- .4byte _0802AF10
- .4byte _0802AF1C
- .4byte _0802AF28
- .4byte _0802AF34
- .4byte _0802AF40
-_0802AEEC:
- ldr r1, _0802AEF4 @ =gBattleCommunication
- movs r0, 0x2
- b _0802AF50
- .align 2, 0
-_0802AEF4: .4byte gBattleCommunication
-_0802AEF8:
- ldr r1, _0802AF00 @ =gBattleCommunication
- movs r0, 0x1
- b _0802AF50
- .align 2, 0
-_0802AF00: .4byte gBattleCommunication
-_0802AF04:
- ldr r1, _0802AF0C @ =gBattleCommunication
- movs r0, 0x1B
- b _0802AF50
- .align 2, 0
-_0802AF0C: .4byte gBattleCommunication
-_0802AF10:
- ldr r1, _0802AF18 @ =gBattleCommunication
- movs r0, 0x17
- b _0802AF50
- .align 2, 0
-_0802AF18: .4byte gBattleCommunication
-_0802AF1C:
- ldr r1, _0802AF24 @ =gBattleCommunication
- movs r0, 0x16
- b _0802AF50
- .align 2, 0
-_0802AF24: .4byte gBattleCommunication
-_0802AF28:
- ldr r1, _0802AF30 @ =gBattleCommunication
- movs r0, 0x18
- b _0802AF50
- .align 2, 0
-_0802AF30: .4byte gBattleCommunication
-_0802AF34:
- ldr r1, _0802AF3C @ =gBattleCommunication
- movs r0, 0x7
- b _0802AF50
- .align 2, 0
-_0802AF3C: .4byte gBattleCommunication
-_0802AF40:
- ldr r1, _0802AF48 @ =gBattleCommunication
- movs r0, 0x8
- b _0802AF50
- .align 2, 0
-_0802AF48: .4byte gBattleCommunication
-_0802AF4C:
- ldr r1, _0802AF60 @ =gBattleCommunication
- movs r0, 0x5
-_0802AF50:
- strb r0, [r1, 0x3]
- ldr r1, _0802AF64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF60: .4byte gBattleCommunication
-_0802AF64: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802AEB0
-
- thumb_func_start sub_802AF68
-sub_802AF68: @ 802AF68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _0802AFB4 @ =gBaseStats
- mov r9, r0
- ldr r1, _0802AFB8 @ =gPickupItems
- mov r8, r1
-_0802AF7A:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802AFBC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802AFC0
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _0802AFCA
- .align 2, 0
-_0802AFB4: .4byte gBaseStats
-_0802AFB8: .4byte gPickupItems
-_0802AFBC: .4byte gPlayerParty
-_0802AFC0:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_0802AFCA:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802B032
- cmp r5, 0
- beq _0802B032
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802B032
- cmp r6, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- mov r1, r8
- ldrh r0, [r1, 0x2]
- cmp r0, r3
- bgt _0802B020
- adds r1, 0x2
-_0802B012:
- adds r1, 0x4
- adds r2, 0x2
- cmp r2, 0x11
- bgt _0802B020
- ldrh r0, [r1]
- cmp r0, r3
- ble _0802B012
-_0802B020:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802B04C @ =gPlayerParty
- adds r0, r1
- lsls r2, 1
- add r2, r8
- movs r1, 0xC
- bl SetMonData
-_0802B032:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802AF7A
- ldr r1, _0802B050 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B04C: .4byte gPlayerParty
-_0802B050: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802AF68
-
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 802B054
- push {r4,lr}
- ldr r4, _0802B0A8 @ =gActiveBank
- ldr r3, _0802B0AC @ =0x02000000
- ldr r1, _0802B0B0 @ =0x00016003
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0802B0B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802B086
- ldr r0, _0802B0B8 @ =0x0001609b
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
-_0802B086:
- ldr r1, _0802B0B8 @ =0x0001609b
- adds r0, r3, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl EmitBattleAnimation
- ldrb r0, [r4]
- bl MarkBufferBankForExecution
- ldr r1, _0802B0BC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0A8: .4byte gActiveBank
-_0802B0AC: .4byte 0x02000000
-_0802B0B0: .4byte 0x00016003
-_0802B0B4: .4byte gBattleMons
-_0802B0B8: .4byte 0x0001609b
-_0802B0BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE6_castform_transform
-
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 802B0C0
- push {r4,r5,lr}
- ldr r1, _0802B0F4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r5, _0802B0F8 @ =0x02000000
- ldr r1, _0802B0FC @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl castform_switch
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802B0EC
- ldr r0, _0802B100 @ =gUnknown_081D977D
- bl b_push_move_exec
- subs r1, r4, 0x1
- ldr r2, _0802B104 @ =0x0001609b
- adds r0, r5, r2
- strb r1, [r0]
-_0802B0EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0F4: .4byte gBattlescriptCurrInstr
-_0802B0F8: .4byte 0x02000000
-_0802B0FC: .4byte 0x00016003
-_0802B100: .4byte gUnknown_081D977D
-_0802B104: .4byte 0x0001609b
- thumb_func_end atkE7_castform_switch
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802B108
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802B144 @ =gBattleMoves
- ldr r0, _0802B148 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802B158
- ldr r1, _0802B14C @ =gStatuses3
- ldr r0, _0802B150 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802B154 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- b _0802B180
- .align 2, 0
-_0802B144: .4byte gBattleMoves
-_0802B148: .4byte gCurrentMove
-_0802B14C: .4byte gStatuses3
-_0802B150: .4byte gBankAttacker
-_0802B154: .4byte gBattleCommunication
-_0802B158:
- ldr r1, _0802B18C @ =gStatuses3
- ldr r0, _0802B190 @ =gBankAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802B194 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802B17C:
- cmp r4, 0
- beq _0802B19C
-_0802B180:
- ldr r1, _0802B198 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B1B6
- .align 2, 0
-_0802B18C: .4byte gStatuses3
-_0802B190: .4byte gBankAttacker
-_0802B194: .4byte gBattleCommunication
-_0802B198: .4byte gBattlescriptCurrInstr
-_0802B19C:
- ldr r3, _0802B1BC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B1B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B1BC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start sub_802B1C0
-sub_802B1C0: @ 802B1C0
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802B276
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0802B276
- ldr r3, _0802B218 @ =gBattleWeather
- ldrb r0, [r3]
- ldr r2, _0802B21C @ =0x02000000
- cmp r0, 0
- beq _0802B202
- ldr r0, _0802B220 @ =0x0001601f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
-_0802B202:
- ldrh r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802B228
- ldr r0, _0802B224 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8B
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B218: .4byte gBattleWeather
-_0802B21C: .4byte 0x02000000
-_0802B220: .4byte 0x0001601f
-_0802B224: .4byte 0x0001601c
-_0802B228:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802B240
- ldr r0, _0802B23C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x85
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B23C: .4byte 0x0001601c
-_0802B240:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B258
- ldr r0, _0802B254 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8A
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B254: .4byte 0x0001601c
-_0802B258:
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802B270
- ldr r0, _0802B26C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8F
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B26C: .4byte 0x0001601c
-_0802B270:
- ldr r1, _0802B284 @ =0x0001601c
- adds r0, r2, r1
- strb r3, [r0]
-_0802B276:
- ldr r1, _0802B288 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802B284: .4byte 0x0001601c
-_0802B288: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B1C0
-
- thumb_func_start atkEA_recycleitem
-atkEA_recycleitem: @ 802B28C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802B2F0 @ =gActiveBank
- ldr r0, _0802B2F4 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r7]
- ldrb r2, [r7]
- lsls r1, r2, 1
- ldr r0, _0802B2F8 @ =0x020160cc
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802B308
- ldr r4, _0802B2FC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802B308
- ldr r1, _0802B300 @ =gLastUsedItem
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl EmitSetAttributes
- ldrb r0, [r7]
- bl MarkBufferBankForExecution
- ldr r1, _0802B304 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B322
- .align 2, 0
-_0802B2F0: .4byte gActiveBank
-_0802B2F4: .4byte gBankAttacker
-_0802B2F8: .4byte 0x020160cc
-_0802B2FC: .4byte gBattleMons
-_0802B300: .4byte gLastUsedItem
-_0802B304: .4byte gBattlescriptCurrInstr
-_0802B308:
- ldr r3, _0802B32C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B322:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B32C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEA_recycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802B330
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B3A0 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802B3A4 @ =gBankAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gBattleTerrain
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802B3B8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802B3B8
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802B3B0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802B3B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3D2
- .align 2, 0
-_0802B3A0: .4byte gBattleMons
-_0802B3A4: .4byte gBankAttacker
-_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gBattleTerrain
-_0802B3B0: .4byte gBattleTextBuff1
-_0802B3B4: .4byte gBattlescriptCurrInstr
-_0802B3B8:
- ldr r3, _0802B3DC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B3D2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3DC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start sub_802B3E0
-sub_802B3E0: @ 802B3E0
- push {r4,r5,lr}
- ldr r5, _0802B45C @ =gBankAttacker
- ldrb r0, [r5]
- bl GetBankIdentity
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBankByPlayerAI
- ldr r4, _0802B460 @ =gActiveBank
- strb r0, [r4]
- ldr r0, _0802B464 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802B490
- ldr r0, _0802B468 @ =gAbsentBankFlags
- ldrb r1, [r0]
- ldr r2, _0802B46C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802B490
- ldr r0, _0802B470 @ =gActionForBanks
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802B490
- ldr r1, _0802B474 @ =gChosenMovesByBanks
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802B490
- ldr r0, _0802B478 @ =gUnknown_02024A76
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802B47C @ =gCurrentMove
- strh r2, [r0]
- ldr r1, _0802B480 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802B484 @ =0x02000000
- ldr r0, _0802B488 @ =0x00016002
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r5]
- ldr r2, _0802B48C @ =0x000160a7
- adds r1, r2
- strb r0, [r1]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802B4AA
- .align 2, 0
-_0802B45C: .4byte gBankAttacker
-_0802B460: .4byte gActiveBank
-_0802B464: .4byte gBattleTypeFlags
-_0802B468: .4byte gAbsentBankFlags
-_0802B46C: .4byte gBitTable
-_0802B470: .4byte gActionForBanks
-_0802B474: .4byte gChosenMovesByBanks
-_0802B478: .4byte gUnknown_02024A76
-_0802B47C: .4byte gCurrentMove
-_0802B480: .4byte gBattlescriptCurrInstr
-_0802B484: .4byte 0x02000000
-_0802B488: .4byte 0x00016002
-_0802B48C: .4byte 0x000160a7
-_0802B490:
- ldr r3, _0802B4B0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B4AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B4B0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B3E0
-
- thumb_func_start sub_802B4B4
-sub_802B4B4: @ 802B4B4
- push {r4,r5,lr}
- ldr r1, _0802B4DC @ =gEffectBank
- ldr r3, _0802B4E0 @ =gBankAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802B4E4 @ =gBankTarget
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802B4F0
- ldr r0, _0802B4E8 @ =0x02000000
- ldr r5, _0802B4EC @ =0x00016003
- adds r1, r0, r5
- ldrb r1, [r1]
- strb r1, [r2]
- strb r1, [r3]
- b _0802B4FA
- .align 2, 0
-_0802B4DC: .4byte gEffectBank
-_0802B4E0: .4byte gBankAttacker
-_0802B4E4: .4byte gBankTarget
-_0802B4E8: .4byte 0x02000000
-_0802B4EC: .4byte 0x00016003
-_0802B4F0:
- ldr r0, _0802B510 @ =0x02000000
- ldr r3, _0802B514 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
-_0802B4FA:
- ldrb r1, [r4]
- ldr r5, _0802B514 @ =0x00016003
- adds r0, r5
- strb r1, [r0]
- ldr r1, _0802B518 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B510: .4byte 0x02000000
-_0802B514: .4byte 0x00016003
-_0802B518: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B4B4
-
- thumb_func_start sub_802B51C
-sub_802B51C: @ 802B51C
- push {r4,lr}
- ldr r0, _0802B56C @ =gBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802B570 @ =gSideTimer
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802B544
- ldrb r2, [r4, 0x1]
- cmp r2, 0
- beq _0802B58C
-_0802B544:
- ldr r2, _0802B574 @ =gSideAffecting
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802B578 @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802B57C @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x1]
- ldr r0, _0802B580 @ =0x02000000
- ldr r2, _0802B584 @ =0x00016002
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r3, _0802B588 @ =0x000160a1
- adds r0, r3
- b _0802B598
- .align 2, 0
-_0802B56C: .4byte gBankAttacker
-_0802B570: .4byte gSideTimer
-_0802B574: .4byte gSideAffecting
-_0802B578: .4byte 0x0000fffe
-_0802B57C: .4byte 0x0000fffd
-_0802B580: .4byte 0x02000000
-_0802B584: .4byte 0x00016002
-_0802B588: .4byte 0x000160a1
-_0802B58C:
- ldr r0, _0802B5A8 @ =0x02000000
- ldr r3, _0802B5AC @ =0x00016002
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0802B5B0 @ =0x000160a1
- adds r0, r1
-_0802B598:
- strb r2, [r0]
- ldr r1, _0802B5B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B5A8: .4byte 0x02000000
-_0802B5AC: .4byte 0x00016002
-_0802B5B0: .4byte 0x000160a1
-_0802B5B4: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B51C
-
- thumb_func_start sub_802B5B8
-sub_802B5B8: @ 802B5B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0802B5F8 @ =gBattleExecBuffer
- ldr r0, [r0]
- cmp r0, 0
- beq _0802B5C6
- b _0802B94E
-_0802B5C6:
- ldr r5, _0802B5FC @ =gActiveBank
- ldr r0, _0802B600 @ =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802B604 @ =gBankTarget
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802B608 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802B614
- movs r0, 0
- movs r1, 0x5
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802B60C @ =gBattlescriptCurrInstr
- ldr r0, _0802B610 @ =gUnknown_081D9F35
- b _0802B94C
- .align 2, 0
-_0802B5F8: .4byte gBattleExecBuffer
-_0802B5FC: .4byte gActiveBank
-_0802B600: .4byte gBankAttacker
-_0802B604: .4byte gBankTarget
-_0802B608: .4byte gBattleTypeFlags
-_0802B60C: .4byte gBattlescriptCurrInstr
-_0802B610: .4byte gUnknown_081D9F35
-_0802B614:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0802B63C
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl MarkBufferBankForExecution
- ldr r1, _0802B634 @ =gBattlescriptCurrInstr
- ldr r0, _0802B638 @ =gUnknown_081D9F00
- b _0802B94C
- .align 2, 0
-_0802B634: .4byte gBattlescriptCurrInstr
-_0802B638: .4byte gUnknown_081D9F00
-_0802B63C:
- ldr r0, _0802B660 @ =gLastUsedItem
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802B66C
- ldr r0, _0802B664 @ =0x02000000
- ldr r1, _0802B668 @ =0x00016089
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802B684
- .align 2, 0
-_0802B660: .4byte gLastUsedItem
-_0802B664: .4byte 0x02000000
-_0802B668: .4byte 0x00016089
-_0802B66C:
- ldr r3, _0802B6A0 @ =gBaseStats
- ldr r2, _0802B6A4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802B684:
- ldr r2, _0802B6A8 @ =gLastUsedItem
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802B68E
- b _0802B784
-_0802B68E:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802B696
- b _0802B78E
-_0802B696:
- lsls r0, 2
- ldr r1, _0802B6AC @ =_0802B6B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802B6A0: .4byte gBaseStats
-_0802B6A4: .4byte gBattleMons
-_0802B6A8: .4byte gLastUsedItem
-_0802B6AC: .4byte _0802B6B0
- .align 2, 0
-_0802B6B0:
- .4byte _0802B6CC
- .4byte _0802B6FC
- .4byte _0802B70E
- .4byte _0802B73C
- .4byte _0802B76C
- .4byte _0802B72E
- .4byte _0802B72E
-_0802B6CC:
- ldr r2, _0802B6F4 @ =gBattleMons
- ldr r0, _0802B6F8 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802B760
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802B760
- cmp r1, 0x6
- beq _0802B760
- cmp r0, 0x6
- beq _0802B760
- b _0802B72E
- .align 2, 0
-_0802B6F4: .4byte gBattleMons
-_0802B6F8: .4byte gBankTarget
-_0802B6FC:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802B78E
- movs r4, 0x23
- b _0802B78E
-_0802B70E:
- ldr r2, _0802B734 @ =gBattleMons
- ldr r0, _0802B738 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802B72E
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802B78E
-_0802B72E:
- movs r4, 0xA
- b _0802B78E
- .align 2, 0
-_0802B734: .4byte gBattleMons
-_0802B738: .4byte gBankTarget
-_0802B73C:
- ldr r2, _0802B764 @ =gBattleMons
- ldr r0, _0802B768 @ =gBankTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802B78E
-_0802B760:
- movs r4, 0x1E
- b _0802B78E
- .align 2, 0
-_0802B764: .4byte gBattleMons
-_0802B768: .4byte gBankTarget
-_0802B76C:
- ldr r0, _0802B780 @ =gBattleResults
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802B78E
- movs r4, 0x28
- b _0802B78E
- .align 2, 0
-_0802B780: .4byte gBattleResults
-_0802B784:
- ldr r1, _0802B7F4 @ =gBallCatchBonuses
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802B78E:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802B7F8 @ =gBattleMons
- ldr r1, _0802B7FC @ =gBankTarget
- ldrb r1, [r1]
- movs r7, 0x58
- adds r4, r1, 0
- muls r4, r7
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802B7CA
- lsls r6, 1
-_0802B7CA:
- ands r4, r7
- cmp r4, 0
- beq _0802B7DC
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802B7DC:
- ldr r1, _0802B800 @ =gLastUsedItem
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802B81C
- cmp r0, 0x1
- bne _0802B808
- ldr r0, _0802B804 @ =gBattleResults
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802B81C
- .align 2, 0
-_0802B7F4: .4byte gBallCatchBonuses
-_0802B7F8: .4byte gBattleMons
-_0802B7FC: .4byte gBankTarget
-_0802B800: .4byte gLastUsedItem
-_0802B804: .4byte gBattleResults
-_0802B808:
- ldr r0, _0802B860 @ =gBattleResults
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802B81C
- adds r0, 0x1
- strb r0, [r1]
-_0802B81C:
- cmp r6, 0xFE
- bls _0802B880
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B864 @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- ldr r1, _0802B868 @ =gBattlescriptCurrInstr
- ldr r0, _0802B86C @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B870 @ =gBattlePartyID
- ldr r0, _0802B874 @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B878 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802B87C @ =gLastUsedItem
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802B90E
- b _0802B938
- .align 2, 0
-_0802B860: .4byte gBattleResults
-_0802B864: .4byte gActiveBank
-_0802B868: .4byte gBattlescriptCurrInstr
-_0802B86C: .4byte gUnknown_081D9EC2
-_0802B870: .4byte gBattlePartyID
-_0802B874: .4byte gBankTarget
-_0802B878: .4byte gEnemyParty
-_0802B87C: .4byte gLastUsedItem
-_0802B880:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802B8A8 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802B8B2
- .align 2, 0
-_0802B8A8: .4byte 0x000ffff0
-_0802B8AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802B8B2:
- cmp r4, 0x3
- bhi _0802B8C2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802B8AC
-_0802B8C2:
- ldr r5, _0802B918 @ =gLastUsedItem
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802B8CC
- movs r4, 0x4
-_0802B8CC:
- movs r0, 0
- adds r1, r4, 0
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B91C @ =gActiveBank
- ldrb r0, [r0]
- bl MarkBufferBankForExecution
- cmp r4, 0x4
- bne _0802B944
- ldr r1, _0802B920 @ =gBattlescriptCurrInstr
- ldr r0, _0802B924 @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B928 @ =gBattlePartyID
- ldr r0, _0802B92C @ =gBankTarget
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B930 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802B938
-_0802B90E:
- ldr r1, _0802B934 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B918: .4byte gLastUsedItem
-_0802B91C: .4byte gActiveBank
-_0802B920: .4byte gBattlescriptCurrInstr
-_0802B924: .4byte gUnknown_081D9EC2
-_0802B928: .4byte gBattlePartyID
-_0802B92C: .4byte gBankTarget
-_0802B930: .4byte gEnemyParty
-_0802B934: .4byte gBattleCommunication
-_0802B938:
- ldr r1, _0802B940 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B940: .4byte gBattleCommunication
-_0802B944:
- ldr r0, _0802B954 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- ldr r1, _0802B958 @ =gBattlescriptCurrInstr
- ldr r0, _0802B95C @ =gUnknown_081D9F0A
-_0802B94C:
- str r0, [r1]
-_0802B94E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B954: .4byte gBattleCommunication
-_0802B958: .4byte gBattlescriptCurrInstr
-_0802B95C: .4byte gUnknown_081D9F0A
- thumb_func_end sub_802B5B8
-
- thumb_func_start sub_802B960
-sub_802B960: @ 802B960
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _0802B9C8 @ =gBattlePartyID
- mov r9, r0
- ldr r5, _0802B9CC @ =gBankAttacker
- ldrb r0, [r5]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _0802B9D0 @ =gEnemyParty
- adds r0, r6
- bl GiveMonToPlayer
- ldr r2, _0802B9D4 @ =gBattleResults
- ldr r1, _0802B9D8 @ =gBattleMons
- ldrb r0, [r5]
- eors r4, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- lsls r4, 1
- add r4, r9
- ldrh r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802B9DC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B9C8: .4byte gBattlePartyID
-_0802B9CC: .4byte gBankAttacker
-_0802B9D0: .4byte gEnemyParty
-_0802B9D4: .4byte gBattleResults
-_0802B9D8: .4byte gBattleMons
-_0802B9DC: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B960
-
- thumb_func_start sub_802B9E0
-sub_802B9E0: @ 802B9E0
- push {r4-r6,lr}
- ldr r4, _0802BA20 @ =gBattleMons
- ldr r6, _0802BA24 @ =gBankTarget
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetNationalPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _0802BA2C
- ldr r3, _0802BA28 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BA82
- .align 2, 0
-_0802BA20: .4byte gBattleMons
-_0802BA24: .4byte gBankTarget
-_0802BA28: .4byte gBattlescriptCurrInstr
-_0802BA2C:
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl GetNationalPokedexFlag
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _0802BA5C
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x1C]
-_0802BA5C:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x9A
- lsls r0, 1
- cmp r1, r0
- bne _0802BA7A
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x20]
-_0802BA7A:
- ldr r1, _0802BA8C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BA82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BA88: .4byte gSaveBlock2
-_0802BA8C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802B9E0
-
- thumb_func_start sub_802BA90
-sub_802BA90: @ 802BA90
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802BAA8 @ =gBattleCommunication
- ldrb r1, [r7]
- cmp r1, 0x1
- beq _0802BAC6
- cmp r1, 0x1
- bgt _0802BAAC
- cmp r1, 0
- beq _0802BAB8
- b _0802BBC4
- .align 2, 0
-_0802BAA8: .4byte gBattleCommunication
-_0802BAAC:
- cmp r1, 0x2
- beq _0802BB10
- cmp r1, 0x3
- bne _0802BAB6
- b _0802BBB0
-_0802BAB6:
- b _0802BBC4
-_0802BAB8:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- b _0802BB6E
-_0802BAC6:
- ldr r0, _0802BB04 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r4, _0802BB08 @ =gBattleMons
- ldr r6, _0802BB0C @ =gBankTarget
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r1, r4, 0
- adds r1, 0x54
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x48
- adds r2, r4
- ldr r2, [r2]
- bl sub_809070C
- strb r0, [r7, 0x1]
- b _0802BB72
- .align 2, 0
-_0802BB04: .4byte gPaletteFade
-_0802BB08: .4byte gBattleMons
-_0802BB0C: .4byte gBankTarget
-_0802BB10:
- ldr r0, _0802BB7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r0, _0802BB80 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BB84 @ =sub_800F808
- cmp r1, r0
- bne _0802BBC4
- ldr r2, _0802BB88 @ =gTasks
- ldrb r1, [r7, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _0802BBC4
- ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
- ldr r1, _0802BB90 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
- ldr r1, _0802BB98 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r1, _0802BBA0 @ =REG_BG3CNT
- ldr r2, _0802BBA4 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0802BBA8 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0802BBAC @ =0x0000fffc
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
-_0802BB6E:
- bl BeginNormalPaletteFade
-_0802BB72:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0802BBC4
- .align 2, 0
-_0802BB7C: .4byte gPaletteFade
-_0802BB80: .4byte gMain
-_0802BB84: .4byte sub_800F808
-_0802BB88: .4byte gTasks
-_0802BB8C: .4byte gBattleTerrainTiles_Building
-_0802BB90: .4byte 0x06008000
-_0802BB94: .4byte gBattleTerrainTilemap_Building
-_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
-_0802BBA0: .4byte REG_BG3CNT
-_0802BBA4: .4byte 0x00005a0b
-_0802BBA8: .4byte gUnknown_030041B0
-_0802BBAC: .4byte 0x0000fffc
-_0802BBB0:
- ldr r0, _0802BBCC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r1, _0802BBD0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802BBC4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BBCC: .4byte gPaletteFade
-_0802BBD0: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BA90
-
- thumb_func_start sub_802BBD4
-sub_802BBD4: @ 802BBD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r2, r12
- cmp r2, r7
- bgt _0802BC5A
- lsls r1, r6, 1
- ldr r0, _0802BC20 @ =0x0600c000
- adds r1, r0
- mov r9, r1
-_0802BC06:
- adds r1, r6, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r1, r5
- bgt _0802BC54
- lsls r0, r2, 6
- mov r4, r9
- adds r3, r4, r0
-_0802BC16:
- cmp r2, r12
- bne _0802BC28
- ldr r0, _0802BC24 @ =0x00001022
- b _0802BC36
- .align 2, 0
-_0802BC20: .4byte 0x0600c000
-_0802BC24: .4byte 0x00001022
-_0802BC28:
- cmp r2, r7
- bne _0802BC34
- ldr r0, _0802BC30 @ =0x00001028
- b _0802BC36
- .align 2, 0
-_0802BC30: .4byte 0x00001028
-_0802BC34:
- ldr r0, _0802BC68 @ =0x00001025
-_0802BC36:
- cmp r1, r6
- beq _0802BC42
- adds r0, 0x1
- cmp r1, r5
- bne _0802BC42
- adds r0, 0x1
-_0802BC42:
- mov r4, r8
- cmp r4, 0
- beq _0802BC4A
- movs r0, 0
-_0802BC4A:
- strh r0, [r3]
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, r5
- ble _0802BC16
-_0802BC54:
- mov r2, r10
- cmp r2, r7
- ble _0802BC06
-_0802BC5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC68: .4byte 0x00001025
- thumb_func_end sub_802BBD4
-
- thumb_func_start sub_802BC6C
-sub_802BC6C: @ 802BC6C
- push {lr}
- ldr r0, _0802BC88 @ =gBattleCommunication
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC88: .4byte gBattleCommunication
- thumb_func_end sub_802BC6C
-
- thumb_func_start nullsub_6
-nullsub_6: @ 802BC8C
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 802BC90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802BCB4 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802BCA8
- b _0802BEDA
-_0802BCA8:
- lsls r0, r1, 2
- ldr r1, _0802BCB8 @ =_0802BCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802BCB4: .4byte gBattleCommunication
-_0802BCB8: .4byte _0802BCBC
- .align 2, 0
-_0802BCBC:
- .4byte _0802BCD0
- .4byte _0802BCEC
- .4byte _0802BD84
- .4byte _0802BE50
- .4byte _0802BEA4
-_0802BCD0:
- bl sub_8023A80
- ldr r0, _0802BCE8 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _0802BEDA
- .align 2, 0
-_0802BCE8: .4byte gBattleCommunication
-_0802BCEC:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802BD10
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802BD10
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD10:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD36
- ldr r4, _0802BD64 @ =gBattleCommunication
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802BD36
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD36:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802BD68
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD64 @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802BD7A
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802BEDA
- .align 2, 0
-_0802BD60: .4byte gMain
-_0802BD64: .4byte gBattleCommunication
-_0802BD68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802BD72
- b _0802BEDA
-_0802BD72:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD80 @ =gBattleCommunication
-_0802BD7A:
- movs r0, 0x4
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BD80: .4byte gBattleCommunication
-_0802BD84:
- ldr r0, _0802BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD92
- b _0802BEDA
-_0802BD92:
- ldr r7, _0802BE38 @ =gBattlePartyID
- ldr r0, _0802BE3C @ =gBankAttacker
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0802BE40 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- ldr r2, _0802BE44 @ =0x02016079
- bl GetMonData
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- ldrb r0, [r1]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _0802BE48 @ =sub_800F808
- str r0, [sp, 0x4]
- movs r0, 0x2
- ldr r1, _0802BE44 @ =0x02016079
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802BE4C @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BE34: .4byte gPaletteFade
-_0802BE38: .4byte gBattlePartyID
-_0802BE3C: .4byte gBankAttacker
-_0802BE40: .4byte gEnemyParty
-_0802BE44: .4byte 0x02016079
-_0802BE48: .4byte sub_800F808
-_0802BE4C: .4byte gBattleCommunication
-_0802BE50:
- ldr r0, _0802BE88 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BE8C @ =sub_800F808
- cmp r1, r0
- bne _0802BEDA
- ldr r0, _0802BE90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BEDA
- ldr r2, _0802BE94 @ =gBattlePartyID
- ldr r0, _0802BE98 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802BE9C @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802BEA0 @ =0x02016079
- movs r1, 0x2
- bl SetMonData
- b _0802BEC0
- .align 2, 0
-_0802BE88: .4byte gMain
-_0802BE8C: .4byte sub_800F808
-_0802BE90: .4byte gPaletteFade
-_0802BE94: .4byte gBattlePartyID
-_0802BE98: .4byte gBankAttacker
-_0802BE9C: .4byte gEnemyParty
-_0802BEA0: .4byte 0x02016079
-_0802BEA4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802BEC0
- ldr r1, _0802BEBC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BEBC: .4byte gBattlescriptCurrInstr
-_0802BEC0:
- ldr r3, _0802BEEC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BEDA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BEEC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkF3_receive_new_pokemon_maybe
-
- thumb_func_start sub_802BEF0
-sub_802BEF0: @ 802BEF0
- ldr r2, _0802BF10 @ =gBattleMons
- ldr r0, _0802BF14 @ =gBankAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802BF18 @ =gBattleMoveDamage
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802BF1C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF10: .4byte gBattleMons
-_0802BF14: .4byte gBankAttacker
-_0802BF18: .4byte gBattleMoveDamage
-_0802BF1C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BEF0
-
- thumb_func_start sub_802BF20
-sub_802BF20: @ 802BF20
- ldr r1, _0802BF3C @ =gBattleMons
- ldr r0, _0802BF40 @ =gBankAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802BF44 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF3C: .4byte gBattleMons
-_0802BF40: .4byte gBankAttacker
-_0802BF44: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_802BF20
-
- thumb_func_start sub_802BF48
-sub_802BF48: @ 802BF48
- ldr r1, _0802BF50 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF50: .4byte gFightStateTracker
- thumb_func_end sub_802BF48
-
- thumb_func_start sub_802BF54
-sub_802BF54: @ 802BF54
- ldr r1, _0802BF64 @ =gFightStateTracker
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802BF68 @ =gCurrentMoveTurn
- ldr r0, _0802BF6C @ =gNoOfAllBanks
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF64: .4byte gFightStateTracker
-_0802BF68: .4byte gCurrentMoveTurn
-_0802BF6C: .4byte gNoOfAllBanks
- thumb_func_end sub_802BF54
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_tasks.s b/asm/field_tasks.s
deleted file mode 100644
index 5f3e3a03f..000000000
--- a/asm/field_tasks.s
+++ /dev/null
@@ -1,1972 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start Task_RunPerStepCallback
-Task_RunPerStepCallback: @ 806943C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08069460 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, _08069464 @ =gUnknown_08376364
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08069460: .4byte gTasks
-_08069464: .4byte gUnknown_08376364
- thumb_func_end Task_RunPerStepCallback
-
- thumb_func_start RunTimeBasedEvents
-RunTimeBasedEvents: @ 8069468
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806947A
- cmp r0, 0x1
- beq _08069498
- b _080694AC
-_0806947A:
- ldr r0, _08069494 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _080694AC
- bl DoTimeBasedEvents
- ldrh r0, [r4]
- adds r0, 0x1
- b _080694AA
- .align 2, 0
-_08069494: .4byte gMain
-_08069498:
- ldr r0, _080694B4 @ =gMain
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _080694AC
- ldrh r0, [r4]
- subs r0, 0x1
-_080694AA:
- strh r0, [r4]
-_080694AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694B4: .4byte gMain
- thumb_func_end RunTimeBasedEvents
-
- thumb_func_start Task_RunTimeBasedEvents
-Task_RunTimeBasedEvents: @ 80694B8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080694E8 @ =gTasks + 0x8
- adds r4, r1, r0
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _080694E0
- adds r0, r4, 0
- bl RunTimeBasedEvents
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl sub_80540D0
-_080694E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694E8: .4byte gTasks + 0x8
- thumb_func_end Task_RunTimeBasedEvents
-
- thumb_func_start SetUpFieldTasks
-SetUpFieldTasks: @ 80694EC
- push {r4,r5,lr}
- ldr r5, _08069548 @ =Task_RunPerStepCallback
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08069516
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806954C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08069516:
- ldr r4, _08069550 @ =Task_MuddySlope
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806952C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0806952C:
- ldr r4, _08069554 @ =Task_RunTimeBasedEvents
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069542
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08069542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069548: .4byte Task_RunPerStepCallback
-_0806954C: .4byte gTasks
-_08069550: .4byte Task_MuddySlope
-_08069554: .4byte Task_RunTimeBasedEvents
- thumb_func_end SetUpFieldTasks
-
- thumb_func_start ActivatePerStepCallback
-ActivatePerStepCallback: @ 8069558
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08069590 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0806959A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08069594 @ =gTasks + 0x8
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0806957C:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0806957C
- cmp r4, 0x7
- bls _08069598
- movs r0, 0
- strh r0, [r1]
- b _0806959A
- .align 2, 0
-_08069590: .4byte Task_RunPerStepCallback
-_08069594: .4byte gTasks + 0x8
-_08069598:
- strh r4, [r1]
-_0806959A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ActivatePerStepCallback
-
- thumb_func_start ResetFieldTasksArgs
-ResetFieldTasksArgs: @ 80695A0
- push {lr}
- ldr r0, _080695D0 @ =Task_RunPerStepCallback
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080695D4 @ =Task_RunTimeBasedEvents
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080695CA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080695D8 @ =gTasks + 0x8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_080695CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080695D0: .4byte Task_RunPerStepCallback
-_080695D4: .4byte Task_RunTimeBasedEvents
-_080695D8: .4byte gTasks + 0x8
- thumb_func_end ResetFieldTasksArgs
-
- thumb_func_start DummyPerStepCallback
-DummyPerStepCallback: @ 80695DC
- bx lr
- thumb_func_end DummyPerStepCallback
-
- thumb_func_start sub_80695E0
-sub_80695E0: @ 80695E0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _080695F8
- adds r0, r5, 0
- b _08069630
-_080695F8:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _0806960A
- adds r0, r5, 0
- adds r0, 0x8
- b _08069630
-_0806960A:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806961C
- adds r0, r5, 0
- adds r0, 0x10
- b _08069630
-_0806961C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- bne _0806962C
- movs r0, 0
- b _08069630
-_0806962C:
- adds r0, r5, 0
- adds r0, 0x18
-_08069630:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80695E0
-
- thumb_func_start sub_8069638
-sub_8069638: @ 8069638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80695E0
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _080696B6
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0806968E
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0806968E:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _080696B6
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_080696B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069638
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _080696E0 @ =gUnknown_08376384
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696E0: .4byte gUnknown_08376384
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696E4
-sub_80696E4: @ 80696E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069704 @ =gUnknown_083763A4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069704: .4byte gUnknown_083763A4
- thumb_func_end sub_80696E4
-
- thumb_func_start sub_8069708
-sub_8069708: @ 8069708
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069728 @ =gUnknown_083763C4
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069728: .4byte gUnknown_083763C4
- thumb_func_end sub_8069708
-
- thumb_func_start sub_806972C
-sub_806972C: @ 806972C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _08069770
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _080697B6
-_0806976C:
- movs r0, 0
- b _080697B8
-_08069770:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069788
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _080697B6
- b _0806976C
-_08069788:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _080697A0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _080697B6
- b _0806976C
-_080697A0:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _080697B6
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0806976C
-_080697B6:
- movs r0, 0x1
-_080697B8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806972C
-
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
- thumb_func_start PerStepCallback_8069864
-PerStepCallback_8069864: @ 8069864
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069898 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _080698BE
- cmp r0, 0x1
- bgt _0806989C
- cmp r0, 0
- beq _080698A2
- b _080699CE
- .align 2, 0
-_08069898: .4byte gTasks + 0x8
-_0806989C:
- cmp r0, 0x2
- beq _0806998C
- b _080699CE
-_080698A2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_80696E4
- b _080699CA
-_080698BE:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080698D8
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _080699CE
-_080698D8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_806972C
- cmp r0, 0
- beq _08069920
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_8069708
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0806992A
-_08069920:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0806992A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_80697C8
- cmp r0, 0
- beq _0806995E
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0806995E:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080699CE
- movs r0, 0x46
- bl PlaySE
- b _080699CE
-_0806998C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080699CE
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696E4
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080699CA
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _080699CA
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_8069708
-_080699CA:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080699CE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069864
-
- thumb_func_start sub_80699D8
-sub_80699D8: @ 80699D8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A32
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A14 @ =0x0000024e
- cmp r1, r0
- beq _08069A18
- adds r0, 0x8
- cmp r1, r0
- beq _08069A28
- b _08069A32
- .align 2, 0
-_08069A14: .4byte 0x0000024e
-_08069A18:
- ldr r2, _08069A24 @ =0x0000024f
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A32
- .align 2, 0
-_08069A24: .4byte 0x0000024f
-_08069A28:
- ldr r2, _08069A38 @ =0x00000257
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A38: .4byte 0x00000257
- thumb_func_end sub_80699D8
-
- thumb_func_start sub_8069A3C
-sub_8069A3C: @ 8069A3C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A96
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A78 @ =0x0000024f
- cmp r1, r0
- beq _08069A7C
- adds r0, 0x8
- cmp r1, r0
- beq _08069A8C
- b _08069A96
- .align 2, 0
-_08069A78: .4byte 0x0000024f
-_08069A7C:
- ldr r2, _08069A88 @ =0x0000024e
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A96
- .align 2, 0
-_08069A88: .4byte 0x0000024e
-_08069A8C:
- ldr r2, _08069A9C @ =0x00000256
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A9C: .4byte 0x00000256
- thumb_func_end sub_8069A3C
-
- thumb_func_start PerStepCallback_8069AA0
-PerStepCallback_8069AA0: @ 8069AA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069ADC @ =gTasks + 0x8
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _08069B34
- cmp r5, 0x1
- bgt _08069AE0
- cmp r5, 0
- beq _08069AE8
- b _08069CA6
- .align 2, 0
-_08069ADC: .4byte gTasks + 0x8
-_08069AE0:
- cmp r5, 0x2
- bne _08069AE6
- b _08069C14
-_08069AE6:
- b _08069CA6
-_08069AE8:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _08069B12
- b _08069CA2
-_08069B12:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _08069CA2
-_08069B34:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _08069B5C
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _08069B5C
- b _08069CA6
-_08069B5C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08069BA4
- movs r1, 0x1
-_08069BA4:
- cmp r1, 0
- beq _08069BB8
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _08069BB2
- cmp r7, 0x1
- bne _08069BB8
-_08069BB2:
- movs r0, 0x47
- bl PlaySE
-_08069BB8:
- cmp r7, 0
- beq _08069BF4
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8069A3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_08069BF4:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _08069CA6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_08069C14:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _08069C9A
- lsls r0, 2
- ldr r1, _08069C40 @ =_08069C44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08069C40: .4byte _08069C44
- .align 2, 0
-_08069C44:
- .4byte _08069C64
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C76
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
-_08069C64:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _08069C9A
-_08069C76:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80699D8
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069A3C
-_08069C9A:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08069CA6
-_08069CA2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_08069CA6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_8069AA0
-
- thumb_func_start sub_8069CB8
-sub_8069CB8: @ 8069CB8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, _08069CE8 @ =0xfffd0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _08069CF4
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, _08069CEC @ =0xfffa0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _08069CF4
- ldr r0, _08069CF0 @ =gUnknown_083763E4
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08069CF4
- movs r0, 0x1
- b _08069CF6
- .align 2, 0
-_08069CE8: .4byte 0xfffd0000
-_08069CEC: .4byte 0xfffa0000
-_08069CF0: .4byte gUnknown_083763E4
-_08069CF4:
- movs r0, 0
-_08069CF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8069CB8
-
- thumb_func_start sub_8069CFC
-sub_8069CFC: @ 8069CFC
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D2A
- ldr r1, _08069D30 @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_08069D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069D30: .4byte gUnknown_083763E4
- thumb_func_end sub_8069CFC
-
- thumb_func_start sub_8069D34
-sub_8069D34: @ 8069D34
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D66
- ldr r1, _08069D6C @ =gUnknown_083763E4
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _08069D70
-_08069D66:
- movs r0, 0
- b _08069D72
- .align 2, 0
-_08069D6C: .4byte gUnknown_083763E4
-_08069D70:
- movs r0, 0x1
-_08069D72:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069D34
-
- thumb_func_start sub_8069D78
-sub_8069D78: @ 8069D78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08069DCC @ =gMapHeader
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _08069DC0
-_08069D90:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08069DBA
- lsls r6, r5, 16
-_08069D9C:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_8069D34
- cmp r0, 0x1
- bne _08069DB4
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, _08069DD0 @ =0x0000020e
- bl MapGridSetMetatileIdAt
-_08069DB4:
- adds r4, 0x1
- cmp r4, r7
- blt _08069D9C
-_08069DBA:
- mov r5, r8
- cmp r5, r9
- blt _08069D90
-_08069DC0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069DCC: .4byte gMapHeader
-_08069DD0: .4byte 0x0000020e
- thumb_func_end sub_8069D78
-
- thumb_func_start PerStepCallback_8069DD4
-PerStepCallback_8069DD4: @ 8069DD4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069DF8 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08069E20
- cmp r0, 0x1
- bgt _08069DFC
- cmp r0, 0
- beq _08069E08
- b _08069F56
- .align 2, 0
-_08069DF8: .4byte gTasks + 0x8
-_08069DFC:
- cmp r0, 0x2
- beq _08069EB6
- cmp r0, 0x3
- bne _08069E06
- b _08069F10
-_08069E06:
- b _08069F56
-_08069E08:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _08069F52
-_08069E20:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- b _08069F56
-_08069E4A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08069E8C @ =0x00004022
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsThinIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069E90
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _08069EA8
- .align 2, 0
-_08069E8C: .4byte 0x00004022
-_08069E90:
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedIce
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069F56
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_08069EA8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _08069F56
-_08069EB6:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _08069F1A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F0C @ =0x0000020e
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8069CFC
- b _08069F52
- .align 2, 0
-_08069F0C: .4byte 0x0000020e
-_08069F10:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _08069F20
-_08069F1A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _08069F56
-_08069F20:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl PlaySE
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F60 @ =0x00000206
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_08069F52:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_08069F56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F60: .4byte 0x00000206
- thumb_func_end PerStepCallback_8069DD4
-
- thumb_func_start PerStepCallback_8069F64
-PerStepCallback_8069F64: @ 8069F64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069FE8 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069F9E
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A02A
-_08069F9E:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAshGrass
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, _08069FEC @ =0x0000020a
- cmp r0, r1
- bne _08069FF4
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069FF0 @ =0x00000212
- movs r3, 0x4
- bl ash
- b _0806A006
- .align 2, 0
-_08069FE8: .4byte gTasks + 0x8
-_08069FEC: .4byte 0x0000020a
-_08069FF0: .4byte 0x00000212
-_08069FF4:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _0806A034 @ =0x00000206
- movs r3, 0x4
- bl ash
-_0806A006:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- ldr r0, _0806A038 @ =0x00004048
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, _0806A03C @ =0x0000270e
- cmp r1, r0
- bhi _0806A02A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0806A02A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A034: .4byte 0x00000206
-_0806A038: .4byte 0x00004048
-_0806A03C: .4byte 0x0000270e
- thumb_func_end PerStepCallback_8069F64
-
- thumb_func_start sub_806A040
-sub_806A040: @ 806A040
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0806A074 @ =0x0000022f
- ldr r2, _0806A078 @ =0x00000237
- cmp r0, r1
- bne _0806A05C
- subs r2, 0x31
-_0806A05C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A074: .4byte 0x0000022f
-_0806A078: .4byte 0x00000237
- thumb_func_end sub_806A040
-
- thumb_func_start PerStepCallback_806A07C
-PerStepCallback_806A07C: @ 806A07C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A164 @ =gTasks + 0x8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0806A0CE
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0CE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0CE:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0806A0EE
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0EE
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0EE:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0806A106
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A106:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0806A122
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A182
-_0806A122:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl MetatileBehavior_IsCrackedFloor
- lsls r0, 24
- cmp r0, 0
- beq _0806A182
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0806A14A
- ldr r0, _0806A168 @ =0x00004022
- movs r1, 0
- bl VarSet
-_0806A14A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806A16C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0806A182
- .align 2, 0
-_0806A164: .4byte gTasks + 0x8
-_0806A168: .4byte 0x00004022
-_0806A16C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0806A182
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0806A182:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end PerStepCallback_806A07C
-
- thumb_func_start sub_806A18C
-sub_806A18C: @ 806A18C
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0806A1A8
- movs r2, 0xE8
- b _0806A1BC
-_0806A1A8:
- ldr r1, _0806A1E4 @ =gUnknown_08376418
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0806A1B4
- adds r0, 0x7
-_0806A1B4:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0806A1BC:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1E4: .4byte gUnknown_08376418
- thumb_func_end sub_806A18C
-
- thumb_func_start Task_MuddySlope
-Task_MuddySlope: @ 806A1E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A230 @ =gTasks + 0x8
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, _0806A234 @ =gSaveBlock1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0806A238
- cmp r1, 0x1
- beq _0806A264
- b _0806A2B8
- .align 2, 0
-_0806A230: .4byte gTasks + 0x8
-_0806A234: .4byte gSaveBlock1
-_0806A238:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0806A2B8
-_0806A252:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0806A2B8
-_0806A264:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0806A280
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A2B8
-_0806A280:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B8
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0806A2A8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0806A252
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0806A2A8
-_0806A2B8:
- ldr r2, _0806A2D4 @ =gUnknown_0202E844
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A2D8
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0806A2D8
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0806A2DC
- .align 2, 0
-_0806A2D4: .4byte gUnknown_0202E844
-_0806A2D8:
- movs r0, 0
- movs r1, 0
-_0806A2DC:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0806A2EE:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0806A312
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_806A18C
-_0806A312:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0806A2EE
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end Task_MuddySlope
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
deleted file mode 100644
index 17e399160..000000000
--- a/asm/item_menu.s
+++ /dev/null
@@ -1,9873 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A3118
-sub_80A3118: @ 80A3118
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl sub_80A740C
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80A3118
-
- thumb_func_start sub_80A3134
-sub_80A3134: @ 80A3134
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _080A3168 @ =gBGTilemapBuffers + 0x800
- ldr r2, _080A316C @ =0x06002000
- ldr r0, _080A3170 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r3, _080A3174 @ =0x80000400
- str r3, [r0, 0x8]
- ldr r2, [r0, 0x8]
- movs r2, 0x80
- lsls r2, 4
- adds r1, r2
- ldr r2, _080A3178 @ =0x06006000
- str r1, [r0]
- str r2, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3168: .4byte gBGTilemapBuffers + 0x800
-_080A316C: .4byte 0x06002000
-_080A3170: .4byte 0x040000d4
-_080A3174: .4byte 0x80000400
-_080A3178: .4byte 0x06006000
- thumb_func_end sub_80A3134
-
- thumb_func_start sub_80A317C
-sub_80A317C: @ 80A317C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080A3198 @ =gMain
- ldr r1, _080A319C @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _080A318E
- b _080A34A8
-_080A318E:
- lsls r0, 2
- ldr r1, _080A31A0 @ =_080A31A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A3198: .4byte gMain
-_080A319C: .4byte 0x0000043c
-_080A31A0: .4byte _080A31A4
- .align 2, 0
-_080A31A4:
- .4byte _080A31E8
- .4byte _080A31F2
- .4byte _080A3208
- .4byte _080A320E
- .4byte _080A3228
- .4byte _080A324C
- .4byte _080A3252
- .4byte _080A3270
- .4byte _080A327C
- .4byte _080A3298
- .4byte _080A32A4
- .4byte _080A3328
- .4byte _080A338C
- .4byte _080A33F4
- .4byte _080A3404
- .4byte _080A345C
- .4byte _080A347C
-_080A31E8:
- bl sub_80F9438
- bl sub_80A34E8
- b _080A3464
-_080A31F2:
- bl remove_some_task
- ldr r1, _080A3200 @ =gMain
- ldr r0, _080A3204 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3200: .4byte gMain
-_080A3204: .4byte 0x0000043c
-_080A3208:
- bl gpu_pal_allocator_reset__manage_upper_four
- b _080A3464
-_080A320E:
- bl sub_80F9020
- ldr r0, _080A3220 @ =0x02000000
- ldr r1, _080A3224 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _080A3464
- .align 2, 0
-_080A3220: .4byte 0x02000000
-_080A3224: .4byte 0x0001ffff
-_080A3228:
- bl ResetPaletteFade
- ldr r2, _080A3240 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080A3244 @ =gMain
- ldr r0, _080A3248 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3240: .4byte gPaletteFade
-_080A3244: .4byte gMain
-_080A3248: .4byte 0x0000043c
-_080A324C:
- bl ResetSpriteData
- b _080A3464
-_080A3252:
- bl sub_80A3520
- lsls r0, 24
- cmp r0, 0
- bne _080A325E
- b _080A34A8
-_080A325E:
- ldr r1, _080A3268 @ =gMain
- ldr r0, _080A326C @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3268: .4byte gMain
-_080A326C: .4byte 0x0000043c
-_080A3270:
- ldr r0, _080A3278 @ =gWindowConfig_81E6DFC
- bl SetUpWindowConfig
- b _080A3464
- .align 2, 0
-_080A3278: .4byte gWindowConfig_81E6DFC
-_080A327C:
- ldr r0, _080A328C @ =gWindowConfig_81E6DFC
- bl MultistepInitMenuWindowBegin
- ldr r1, _080A3290 @ =gMain
- ldr r0, _080A3294 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A328C: .4byte gWindowConfig_81E6DFC
-_080A3290: .4byte gMain
-_080A3294: .4byte 0x0000043c
-_080A3298:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _080A32A2
- b _080A34A8
-_080A32A2:
- b _080A3464
-_080A32A4:
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0xAC
- movs r2, 0xC
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xAC
- movs r2, 0x94
- bl CreateVerticalScrollIndicators
- movs r0, 0x2
- movs r1, 0x1C
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
- movs r0, 0x3
- movs r1, 0x64
- movs r2, 0x58
- bl CreateVerticalScrollIndicators
- movs r0, 0
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x1
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x2
- movs r1, 0x2
- bl sub_80F9988
- movs r0, 0x3
- movs r1, 0x2
- bl sub_80F9988
- ldr r0, _080A331C @ =gUnknown_03000701
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A3312
- movs r0, 0x2
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0x1
- bl sub_80F979C
-_080A3312:
- ldr r1, _080A3320 @ =gMain
- ldr r0, _080A3324 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A331C: .4byte gUnknown_03000701
-_080A3320: .4byte gMain
-_080A3324: .4byte 0x0000043c
-_080A3328:
- ldr r1, _080A3378 @ =gUnknown_0203855A
- movs r0, 0x10
- strb r0, [r1]
- ldr r4, _080A337C @ =gBGTilemapBuffers + 0x1000
- ldr r5, _080A3380 @ =gUnknown_02038559
- ldrb r1, [r5]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A39B8
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_80A3AC0
- bl sub_80A3D08
- ldr r4, _080A3384 @ =gBagPockets
- ldr r0, [r4, 0x10]
- ldr r1, [r4, 0x14]
- bl sub_80A3C34
- ldr r0, [r4, 0x18]
- ldr r1, [r4, 0x1C]
- bl sub_80A3C34
- bl sub_80A3D40
- ldr r1, _080A3388 @ =gUnknown_03005D24
- movs r0, 0
- ldrsb r0, [r5, r0]
- lsls r0, 3
- adds r0, r4
- ldr r0, [r0]
- str r0, [r1]
- bl sub_80A362C
- b _080A3464
- .align 2, 0
-_080A3378: .4byte gUnknown_0203855A
-_080A337C: .4byte gBGTilemapBuffers + 0x1000
-_080A3380: .4byte gUnknown_02038559
-_080A3384: .4byte gBagPockets
-_080A3388: .4byte gUnknown_03005D24
-_080A338C:
- ldr r0, _080A33D4 @ =0x0000ffff
- movs r1, 0
- movs r2, 0x7
- bl sub_80A48E8
- ldr r1, _080A33D8 @ =gUnknown_03005D10
- ldr r4, _080A33DC @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A33E0 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bl ItemListMenu_InitDescription
- bl ItemListMenu_InitMenu
- ldr r1, _080A33E4 @ =gUnknown_0203855B
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _080A33E8 @ =gUnknown_0203855C
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080A33EC @ =gMain
- ldr r0, _080A33F0 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A33D4: .4byte 0x0000ffff
-_080A33D8: .4byte gUnknown_03005D10
-_080A33DC: .4byte gUnknown_02038559
-_080A33E0: .4byte gUnknown_03005D24
-_080A33E4: .4byte gUnknown_0203855B
-_080A33E8: .4byte gUnknown_0203855C
-_080A33EC: .4byte gMain
-_080A33F0: .4byte 0x0000043c
-_080A33F4:
- bl CreateBagSprite
- movs r0, 0
- bl CreateBagPokeballSprite
- bl sub_80A3740
- b _080A3464
-_080A3404:
- ldr r3, _080A3444 @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _080A3448 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _080A344C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080A3450 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _080A3454 @ =gMain
- ldr r0, _080A3458 @ =0x0000043c
- adds r1, r0
- b _080A346A
- .align 2, 0
-_080A3444: .4byte 0x04000208
-_080A3448: .4byte 0x04000200
-_080A344C: .4byte REG_DISPSTAT
-_080A3450: .4byte gPaletteFade
-_080A3454: .4byte gMain
-_080A3458: .4byte 0x0000043c
-_080A345C:
- bl sub_8055870
- cmp r0, 0x1
- beq _080A34A8
-_080A3464:
- ldr r1, _080A3474 @ =gMain
- ldr r2, _080A3478 @ =0x0000043c
- adds r1, r2
-_080A346A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080A34A8
- .align 2, 0
-_080A3474: .4byte gMain
-_080A3478: .4byte 0x0000043c
-_080A347C:
- ldr r0, _080A34A0 @ =sub_80A3134
- bl SetVBlankCallback
- ldr r0, _080A34A4 @ =sub_80A3118
- bl SetMainCallback2
- bl sub_80A751C
- bl sub_80A7630
- bl sub_80A770C
- bl sub_80A7828
- bl sub_80A78B8
- movs r0, 0x1
- b _080A34AA
- .align 2, 0
-_080A34A0: .4byte sub_80A3134
-_080A34A4: .4byte sub_80A3118
-_080A34A8:
- movs r0, 0
-_080A34AA:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A317C
-
- thumb_func_start sub_80A34B4
-sub_80A34B4: @ 80A34B4
- push {lr}
-_080A34B6:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A34D2
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A34B6
- movs r0, 0
- b _080A34DE
-_080A34D2:
- ldr r1, _080A34E4 @ =gUnknown_03000700
- movs r0, 0
- strb r0, [r1]
- bl ResetTasks
- movs r0, 0x1
-_080A34DE:
- pop {r1}
- bx r1
- .align 2, 0
-_080A34E4: .4byte gUnknown_03000700
- thumb_func_end sub_80A34B4
-
- thumb_func_start sub_80A34E8
-sub_80A34E8: @ 80A34E8
- push {lr}
- bl sub_80F9368
- ldr r1, _080A3514 @ =REG_BG2CNT
- ldr r2, _080A3518 @ =0x00000c06
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _080A351C @ =0x00000405
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3514: .4byte REG_BG2CNT
-_080A3518: .4byte 0x00000c06
-_080A351C: .4byte 0x00000405
- thumb_func_end sub_80A34E8
-
- thumb_func_start sub_80A3520
-sub_80A3520: @ 80A3520
- push {lr}
- ldr r0, _080A353C @ =0x02000000
- ldr r1, _080A3540 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _080A3530
- b _080A3624
-_080A3530:
- lsls r0, 2
- ldr r1, _080A3544 @ =_080A3548
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A353C: .4byte 0x02000000
-_080A3540: .4byte 0x0001ffff
-_080A3544: .4byte _080A3548
- .align 2, 0
-_080A3548:
- .4byte _080A355C
- .4byte _080A3570
- .4byte _080A3588
- .4byte _080A35C0
- .4byte _080A3604
-_080A355C:
- ldr r0, _080A3568 @ =gBagScreen_Gfx
- ldr r1, _080A356C @ =0x06004000
- bl LZDecompressVram
- b _080A35EA
- .align 2, 0
-_080A3568: .4byte gBagScreen_Gfx
-_080A356C: .4byte 0x06004000
-_080A3570:
- ldr r0, _080A3580 @ =gUnknown_08E77004
- ldr r1, _080A3584 @ =gBGTilemapBuffers + 0x1000
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- b _080A35EA
- .align 2, 0
-_080A3580: .4byte gUnknown_08E77004
-_080A3584: .4byte gBGTilemapBuffers + 0x1000
-_080A3588:
- ldr r0, _080A35A4 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _080A3598
- ldr r0, _080A35A8 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080A35B0
-_080A3598:
- ldr r0, _080A35AC @ =gBagScreenMale_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _080A35EA
- .align 2, 0
-_080A35A4: .4byte gSaveBlock2
-_080A35A8: .4byte gUnknown_03000701
-_080A35AC: .4byte gBagScreenMale_Pal
-_080A35B0:
- ldr r0, _080A35BC @ =gBagScreenFemale_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _080A35EA
- .align 2, 0
-_080A35BC: .4byte gBagScreenFemale_Pal
-_080A35C0:
- ldr r0, _080A35D8 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- beq _080A35D0
- ldr r0, _080A35DC @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080A35E4
-_080A35D0:
- ldr r0, _080A35E0 @ =gUnknown_083C1CC8
- bl LoadCompressedObjectPic
- b _080A35EA
- .align 2, 0
-_080A35D8: .4byte gSaveBlock2
-_080A35DC: .4byte gUnknown_03000701
-_080A35E0: .4byte gUnknown_083C1CC8
-_080A35E4:
- ldr r0, _080A35F8 @ =gUnknown_083C1CD0
- bl LoadCompressedObjectPic
-_080A35EA:
- ldr r1, _080A35FC @ =0x02000000
- ldr r0, _080A3600 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080A3624
- .align 2, 0
-_080A35F8: .4byte gUnknown_083C1CD0
-_080A35FC: .4byte 0x02000000
-_080A3600: .4byte 0x0001ffff
-_080A3604:
- ldr r0, _080A3618 @ =gUnknown_083C1CD8
- bl LoadCompressedObjectPalette
- ldr r0, _080A361C @ =0x02000000
- ldr r1, _080A3620 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _080A3626
- .align 2, 0
-_080A3618: .4byte gUnknown_083C1CD8
-_080A361C: .4byte 0x02000000
-_080A3620: .4byte 0x0001ffff
-_080A3624:
- movs r0, 0
-_080A3626:
- pop {r1}
- bx r1
- thumb_func_end sub_80A3520
-
- thumb_func_start sub_80A362C
-sub_80A362C: @ 80A362C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080A3648 @ =gUnknown_03000701
- ldr r5, _080A364C @ =gUnknown_03005D10
-_080A3634:
- ldrb r0, [r6]
- cmp r0, 0x5
- bne _080A3650
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- b _080A3656
- .align 2, 0
-_080A3648: .4byte gUnknown_03000701
-_080A364C: .4byte gUnknown_03005D10
-_080A3650:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrb r3, [r0, 0x2]
-_080A3656:
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _080A366C
- ldrb r2, [r1, 0x3]
- adds r0, r2
- cmp r0, r3
- ble _080A3674
- subs r0, r3, r2
- strb r0, [r1, 0x1]
- b _080A3674
-_080A366C:
- ldrb r0, [r1]
- cmp r0, r3
- bls _080A3674
- strb r3, [r1]
-_080A3674:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3634
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A362C
-
- thumb_func_start sub_80A3684
-sub_80A3684: @ 80A3684
- push {r4,lr}
- movs r2, 0
- ldr r4, _080A36B0 @ =gUnknown_02038559
- ldr r3, _080A36B4 @ =gUnknown_03005D10
- movs r1, 0
-_080A368E:
- lsls r0, r2, 2
- adds r0, r3
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _080A368E
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A36B0: .4byte gUnknown_02038559
-_080A36B4: .4byte gUnknown_03005D10
- thumb_func_end sub_80A3684
-
- thumb_func_start sub_80A36B8
-sub_80A36B8: @ 80A36B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r0, [sp, 0x18]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r0, 24
- lsrs r0, 24
- lsrs r2, 24
- adds r0, r2, r0
- cmp r2, r0
- bgt _080A370A
- adds r7, r0, 0
-_080A36DE:
- mov r1, r8
- mov r3, r12
- adds r0, r1, r3
- adds r4, r2, 0x1
- cmp r1, r0
- bgt _080A3702
- lsls r3, r2, 5
- movs r5, 0
- adds r2, r0, 0
-_080A36F0:
- adds r0, r1, r3
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- ble _080A36F0
-_080A3702:
- lsls r0, r4, 16
- lsrs r2, r0, 16
- cmp r2, r7
- ble _080A36DE
-_080A370A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A36B8
-
- thumb_func_start ClearBag
-ClearBag: @ 80A3714
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080A373C @ =gBagPockets
-_080A371A:
- lsls r1, r4, 3
- adds r1, r5
- ldr r0, [r1]
- ldrb r1, [r1, 0x4]
- bl ClearItemSlots
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080A371A
- bl sub_80A3684
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A373C: .4byte gBagPockets
- thumb_func_end ClearBag
-
- thumb_func_start sub_80A3740
-sub_80A3740: @ 80A3740
- push {lr}
- sub sp, 0x4
- ldr r1, _080A376C @ =gUnknown_083C1704
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A376C: .4byte gUnknown_083C1704
- thumb_func_end sub_80A3740
-
- thumb_func_start sub_80A3770
-sub_80A3770: @ 80A3770
- push {lr}
- ldr r0, _080A379C @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A37B6
- ldr r3, _080A37A0 @ =gUnknown_03000704
- ldr r2, _080A37A4 @ =gUnknown_02038559
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldr r1, _080A37A8 @ =gUnknown_083C1690
- adds r0, r1
- str r0, [r3]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x3
- beq _080A37B0
- ldr r1, _080A37AC @ =gUnknown_02038564
- movs r0, 0x4
- b _080A37B4
- .align 2, 0
-_080A379C: .4byte gUnknown_03000701
-_080A37A0: .4byte gUnknown_03000704
-_080A37A4: .4byte gUnknown_02038559
-_080A37A8: .4byte gUnknown_083C1690
-_080A37AC: .4byte gUnknown_02038564
-_080A37B0:
- ldr r1, _080A37BC @ =gUnknown_02038564
- movs r0, 0x6
-_080A37B4:
- strb r0, [r1]
-_080A37B6:
- pop {r0}
- bx r0
- .align 2, 0
-_080A37BC: .4byte gUnknown_02038564
- thumb_func_end sub_80A3770
-
- thumb_func_start sub_80A37C0
-sub_80A37C0: @ 80A37C0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A37F0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080A37F4 @ =sub_80A50C8
- str r0, [r1]
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- movs r0, 0x2
- bl StartVerticalScrollIndicators
- movs r0, 0x3
- bl StartVerticalScrollIndicators
- pop {r0}
- bx r0
- .align 2, 0
-_080A37F0: .4byte gTasks
-_080A37F4: .4byte sub_80A50C8
- thumb_func_end sub_80A37C0
-
- thumb_func_start sub_80A37F8
-sub_80A37F8: @ 80A37F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _080A3854 @ =gUnknown_0203855A
- ldrb r5, [r6]
- cmp r5, 0xF
- bhi _080A3868
- adds r0, r5, 0x1
- strb r0, [r6]
- ldr r4, _080A3858 @ =gBGTilemapBuffers + 0x1000
- ldrb r2, [r6]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x4F
- bl sub_80A396C
- ldr r0, _080A385C @ =gUnknown_02038559
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r6]
- lsrs r2, 1
- ldr r3, _080A3860 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r3
- movs r3, 0x12
- ldrsb r3, [r0, r3]
- adds r0, r4, 0
- bl sub_80A39E4
- ldr r4, _080A3864 @ =gUnknown_02038558
- movs r0, 0x1
- strb r0, [r4]
- lsrs r1, r5, 1
- ldrb r2, [r6]
- lsrs r2, 1
- subs r2, 0x1
- adds r0, r7, 0
- bl sub_80A48E8
- movs r0, 0
- strb r0, [r4]
- b _080A3932
- .align 2, 0
-_080A3854: .4byte gUnknown_0203855A
-_080A3858: .4byte gBGTilemapBuffers + 0x1000
-_080A385C: .4byte gUnknown_02038559
-_080A3860: .4byte gTasks
-_080A3864: .4byte gUnknown_02038558
-_080A3868:
- ldr r0, _080A38A0 @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A38B4
- ldr r1, _080A38A4 @ =gUnknown_03005D10
- ldr r0, _080A38A8 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A38AC @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldr r4, _080A38B0 @ =gUnknown_02038562
- ldrb r1, [r4]
- bl ItemListMenu_ChangeDescription
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080A38F2
- .align 2, 0
-_080A38A0: .4byte gLinkOpen
-_080A38A4: .4byte gUnknown_03005D10
-_080A38A8: .4byte gUnknown_02038559
-_080A38AC: .4byte gUnknown_03005D24
-_080A38B0: .4byte gUnknown_02038562
-_080A38B4:
- ldr r1, _080A3938 @ =gUnknown_02038562
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _080A38F2
- ldr r5, _080A393C @ =gUnknown_03005D10
- adds r4, r1, 0
-_080A38C0:
- ldr r0, _080A3940 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A3944 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldrb r1, [r4]
- bl ItemListMenu_ChangeDescription
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _080A38C0
-_080A38F2:
- ldr r0, _080A3938 @ =gUnknown_02038562
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _080A3932
- ldr r1, _080A3948 @ =gUnknown_0203855A
- movs r0, 0x10
- strb r0, [r1]
- ldr r1, _080A394C @ =gUnknown_0203855B
- ldr r0, _080A3940 @ =gUnknown_02038559
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080A3950 @ =sub_80A4F68
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A37C0
- adds r0, r7, 0
- bl DestroyTask
- bl ItemListMenu_InitMenu
- movs r0, 0x2
- movs r1, 0
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0
- bl sub_80F979C
-_080A3932:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3938: .4byte gUnknown_02038562
-_080A393C: .4byte gUnknown_03005D10
-_080A3940: .4byte gUnknown_02038559
-_080A3944: .4byte gUnknown_03005D24
-_080A3948: .4byte gUnknown_0203855A
-_080A394C: .4byte gUnknown_0203855B
-_080A3950: .4byte sub_80A4F68
- thumb_func_end sub_80A37F8
-
- thumb_func_start sub_80A3954
-sub_80A3954: @ 80A3954
- push {lr}
- adds r1, r0, 0
- ldr r0, _080A3968 @ =gUnknown_08E77004
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- pop {r0}
- bx r0
- .align 2, 0
-_080A3968: .4byte gUnknown_08E77004
- thumb_func_end sub_80A3954
-
- thumb_func_start sub_80A396C
-sub_80A396C: @ 80A396C
- push {r4-r7,lr}
- lsls r1, 24
- lsrs r5, r1, 24
- adds r4, r5, 0
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0x2
- lsls r1, 6
- adds r1, 0x1C
- adds r2, r0, r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r7, r4
- bls _080A39B2
-_080A398E:
- movs r1, 0
- adds r3, r5, 0x1
- adds r4, r2, 0
- adds r4, 0x40
-_080A3996:
- lsls r0, r1, 1
- adds r0, r2
- strh r6, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xE
- bls _080A3996
- adds r2, r4, 0
- adds r1, r5, 0
- lsls r0, r3, 24
- lsrs r5, r0, 24
- cmp r7, r1
- bhi _080A398E
-_080A39B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A396C
-
- thumb_func_start sub_80A39B8
-sub_80A39B8: @ 80A39B8
- push {lr}
- sub sp, 0x10
- lsls r1, 25
- lsrs r1, 24
- ldr r3, _080A39E0 @ =gUnknown_08E96EC8
- movs r2, 0
- str r2, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x8
- str r1, [sp, 0x8]
- movs r1, 0x2
- str r1, [sp, 0xC]
- movs r1, 0x4
- movs r2, 0xA
- bl sub_809D104
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_080A39E0: .4byte gUnknown_08E96EC8
- thumb_func_end sub_80A39B8
-
- thumb_func_start sub_80A39E4
-sub_80A39E4: @ 80A39E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- adds r5, r6, 0
- lsls r2, r1, 1
- mov r9, r2
- lsls r3, 24
- asrs r3, 24
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _080A3A5C
- adds r0, r1, 0x1
- lsls r7, r0, 1
- cmp r1, 0x5
- bne _080A3A18
- movs r7, 0x2
-_080A3A18:
- ldr r0, _080A3A58 @ =gUnknown_08E96EC8
- mov r10, r0
- movs r4, 0x8
- subs r4, r6
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp]
- str r2, [sp, 0x4]
- str r6, [sp, 0x8]
- movs r0, 0x2
- mov r9, r0
- str r0, [sp, 0xC]
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xA
- mov r3, r10
- bl sub_809D104
- adds r1, r6, 0x4
- movs r0, 0
- str r0, [sp]
- str r7, [sp, 0x4]
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- movs r2, 0xA
- mov r3, r10
- bl sub_809D104
- b _080A3AAA
- .align 2, 0
-_080A3A58: .4byte gUnknown_08E96EC8
-_080A3A5C:
- cmp r3, 0x1
- bne _080A3AAA
- subs r0, r4, 0x1
- lsls r0, 17
- lsrs r7, r0, 16
- cmp r4, 0x1
- bne _080A3A6C
- movs r7, 0xA
-_080A3A6C:
- ldr r6, _080A3ABC @ =gUnknown_08E96EC8
- str r5, [sp]
- str r7, [sp, 0x4]
- movs r0, 0x8
- subs r0, r5
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- movs r4, 0x2
- str r4, [sp, 0xC]
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_809D104
- movs r1, 0xC
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r4, [sp, 0xC]
- mov r0, r8
- movs r2, 0xA
- adds r3, r6, 0
- bl sub_809D104
-_080A3AAA:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3ABC: .4byte gUnknown_08E96EC8
- thumb_func_end sub_80A39E4
-
- thumb_func_start sub_80A3AC0
-sub_80A3AC0: @ 80A3AC0
- push {r4-r6,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- movs r2, 0
- ldr r1, _080A3AE4 @ =0x0000024a
- ldr r0, _080A3AE8 @ =0x0000107d
- adds r6, r0, 0
- subs r0, 0x1
- adds r5, r0, 0
-_080A3AD4:
- cmp r2, r4
- bne _080A3AEC
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r1
- strh r6, [r0]
- b _080A3AF4
- .align 2, 0
-_080A3AE4: .4byte 0x0000024a
-_080A3AE8: .4byte 0x0000107d
-_080A3AEC:
- lsls r0, r2, 1
- adds r0, r3
- adds r0, r1
- strh r5, [r0]
-_080A3AF4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _080A3AD4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3AC0
-
- thumb_func_start sub_80A3B04
-sub_80A3B04: @ 80A3B04
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _080A3BA4 @ =gUnknown_02038559
- ldrb r0, [r4]
- lsls r1, 24
- asrs r6, r1, 24
- adds r0, r6, r0
- strb r0, [r4]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _080A3B20
- movs r0, 0
- strb r0, [r4]
-_080A3B20:
- movs r0, 0
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bge _080A3B2C
- movs r0, 0x4
- strb r0, [r4]
-_080A3B2C:
- bl sub_80A76A0
- bl sub_80A7590
- ldr r2, _080A3BA8 @ =gUnknown_03005D24
- ldr r1, _080A3BAC @ =gBagPockets
- movs r0, 0
- ldrsb r0, [r4, r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldrb r0, [r4]
- bl sub_80A3D24
- ldr r0, _080A3BB0 @ =gUnknown_0203855A
- movs r4, 0
- strb r4, [r0]
- adds r0, r5, 0
- bl sub_80A3954
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x3
- bl sub_80A396C
- adds r0, r5, 0
- movs r1, 0
- bl sub_80A39B8
- ldr r1, _080A3BB4 @ =gUnknown_0203855B
- movs r0, 0x6
- strb r0, [r1]
- ldr r0, _080A3BB8 @ =gUnknown_02038562
- strb r4, [r0]
- ldr r4, _080A3BBC @ =sub_80A37F8
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080A3B90
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
-_080A3B90:
- ldr r1, _080A3BC0 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x12]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3BA4: .4byte gUnknown_02038559
-_080A3BA8: .4byte gUnknown_03005D24
-_080A3BAC: .4byte gBagPockets
-_080A3BB0: .4byte gUnknown_0203855A
-_080A3BB4: .4byte gUnknown_0203855B
-_080A3BB8: .4byte gUnknown_02038562
-_080A3BBC: .4byte sub_80A37F8
-_080A3BC0: .4byte gTasks
- thumb_func_end sub_80A3B04
-
- thumb_func_start swap32
-swap32: @ 80A3BC4
- ldr r3, [r0]
- ldr r2, [r1]
- str r2, [r0]
- str r3, [r1]
- bx lr
- thumb_func_end swap32
-
- thumb_func_start sub_80A3BD0
-sub_80A3BD0: @ 80A3BD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r1, 0
- adds r6, r0, 0
- movs r3, 0
- b _080A3C1A
-_080A3BE0:
- adds r0, r3, 0x1
- lsls r1, r0, 16
- lsrs r4, r1, 16
- lsls r1, r2, 24
- lsrs r1, 24
- mov r8, r0
- cmp r4, r1
- bcs _080A3C14
- lsls r0, r3, 2
- adds r5, r0, r6
- adds r2, r1, 0
-_080A3BF6:
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- bne _080A3C0A
- lsls r1, r4, 2
- adds r1, r6
- adds r0, r5, 0
- str r2, [sp]
- bl swap32
- ldr r2, [sp]
-_080A3C0A:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bcc _080A3BF6
-_080A3C14:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
-_080A3C1A:
- adds r2, r7, 0
- lsls r0, r2, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r3, r0
- blt _080A3BE0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3BD0
-
- thumb_func_start sub_80A3C34
-sub_80A3C34: @ 80A3C34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r1, 0
- adds r6, r0, 0
- adds r2, r7, 0
- lsls r0, r2, 24
- movs r3, 0
- cmp r0, 0
- beq _080A3C9C
-_080A3C4A:
- adds r0, r3, 0x1
- lsls r1, r0, 16
- lsrs r4, r1, 16
- lsls r1, r2, 24
- lsrs r1, 24
- mov r8, r0
- cmp r4, r1
- bcs _080A3C8C
- lsls r0, r3, 2
- adds r5, r0, r6
- adds r2, r1, 0
-_080A3C60:
- ldrh r0, [r5, 0x2]
- cmp r0, 0
- beq _080A3C82
- lsls r0, r4, 2
- adds r1, r0, r6
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080A3C82
- ldrh r0, [r5]
- ldrh r3, [r1]
- cmp r0, r3
- bls _080A3C82
- adds r0, r5, 0
- str r2, [sp]
- bl swap32
- ldr r2, [sp]
-_080A3C82:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bcc _080A3C60
-_080A3C8C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- adds r2, r7, 0
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r3, r0
- bcc _080A3C4A
-_080A3C9C:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3C34
-
- thumb_func_start sub_80A3CA8
-sub_80A3CA8: @ 80A3CA8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A3D00 @ =gUnknown_03005D10
- lsls r0, r6, 2
- adds r3, r0, r1
- movs r0, 0
- strb r0, [r3, 0x2]
- movs r4, 0
- ldr r0, _080A3D04 @ =gBagPockets
- lsls r2, r6, 3
- adds r1, r2, r0
- mov r12, r0
- ldrb r1, [r1, 0x4]
- cmp r4, r1
- bcs _080A3CEC
- mov r7, r12
- adds r5, r3, 0
-_080A3CCC:
- adds r3, r2, r7
- ldr r0, [r3]
- lsls r1, r4, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080A3CE0
- ldrb r0, [r5, 0x2]
- adds r0, 0x1
- strb r0, [r5, 0x2]
-_080A3CE0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r3, [r3, 0x4]
- cmp r4, r3
- bcc _080A3CCC
-_080A3CEC:
- lsls r0, r6, 3
- add r0, r12
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- bl sub_80A3BD0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3D00: .4byte gUnknown_03005D10
-_080A3D04: .4byte gBagPockets
- thumb_func_end sub_80A3CA8
-
- thumb_func_start sub_80A3D08
-sub_80A3D08: @ 80A3D08
- push {r4,lr}
- movs r4, 0
-_080A3D0C:
- adds r0, r4, 0
- bl sub_80A3CA8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3D0C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3D08
-
- thumb_func_start sub_80A3D24
-sub_80A3D24: @ 80A3D24
- push {lr}
- lsls r0, 24
- ldr r1, _080A3D3C @ =gUnknown_03005D10
- lsrs r0, 22
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0x6
- bls _080A3D36
- movs r0, 0x7
-_080A3D36:
- strb r0, [r1, 0x3]
- pop {r0}
- bx r0
- .align 2, 0
-_080A3D3C: .4byte gUnknown_03005D10
- thumb_func_end sub_80A3D24
-
- thumb_func_start sub_80A3D40
-sub_80A3D40: @ 80A3D40
- push {r4,lr}
- movs r4, 0
-_080A3D44:
- adds r0, r4, 0
- bl sub_80A3D24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _080A3D44
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3D40
-
- thumb_func_start sub_80A3D5C
-sub_80A3D5C: @ 80A3D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A3DF4 @ =gUnknown_03005D10
- mov r9, r1
- ldr r2, _080A3DF8 @ =gUnknown_02038559
- mov r8, r2
- movs r1, 0
- ldrsb r1, [r2, r1]
- lsls r1, 2
- add r1, r9
- ldrb r2, [r1, 0x1]
- ldrb r1, [r1]
- adds r2, r1
- ldr r7, _080A3DFC @ =gUnknown_03005D24
- ldr r1, [r7]
- lsls r6, r2, 2
- adds r3, r6, r1
- ldr r2, _080A3E00 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r3, 0x2]
- ldrh r1, [r1, 0xA]
- subs r0, r1
- strh r0, [r3, 0x2]
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080A3DE0
- ldr r0, _080A3E04 @ =gSaveBlock1
- ldr r1, _080A3E08 @ =0x00000496
- adds r5, r0, r1
- ldrh r0, [r5]
- ldrh r3, [r3]
- cmp r0, r3
- bne _080A3DB4
- bl sub_80A40D0
- strh r4, [r5]
-_080A3DB4:
- ldr r0, [r7]
- adds r0, r6, r0
- strh r4, [r0]
- mov r2, r8
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- mov r3, r9
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- adds r0, r1, 0x7
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _080A3DD8
- cmp r1, 0
- beq _080A3DD8
- subs r0, r1, 0x1
- strb r0, [r2, 0x1]
-_080A3DD8:
- ldr r0, _080A3DF8 @ =gUnknown_02038559
- ldrb r0, [r0]
- bl sub_80A3CA8
-_080A3DE0:
- ldr r0, _080A3DF8 @ =gUnknown_02038559
- ldrb r0, [r0]
- bl sub_80A3D24
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3DF4: .4byte gUnknown_03005D10
-_080A3DF8: .4byte gUnknown_02038559
-_080A3DFC: .4byte gUnknown_03005D24
-_080A3E00: .4byte gTasks
-_080A3E04: .4byte gSaveBlock1
-_080A3E08: .4byte 0x00000496
- thumb_func_end sub_80A3D5C
-
- thumb_func_start sub_80A3E0C
-sub_80A3E0C: @ 80A3E0C
- push {lr}
- ldr r3, _080A3E60 @ =gUnknown_03005D10
- ldr r2, _080A3E64 @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A3E68 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A3E52
- strh r0, [r1]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- adds r0, r1, 0x7
- ldrb r3, [r2, 0x2]
- cmp r0, r3
- bne _080A3E4A
- cmp r1, 0
- beq _080A3E4A
- subs r0, r1, 0x1
- strb r0, [r2, 0x1]
-_080A3E4A:
- ldr r0, _080A3E64 @ =gUnknown_02038559
- ldrb r0, [r0]
- bl sub_80A3CA8
-_080A3E52:
- ldr r0, _080A3E64 @ =gUnknown_02038559
- ldrb r0, [r0]
- bl sub_80A3D24
- pop {r0}
- bx r0
- .align 2, 0
-_080A3E60: .4byte gUnknown_03005D10
-_080A3E64: .4byte gUnknown_02038559
-_080A3E68: .4byte gUnknown_03005D24
- thumb_func_end sub_80A3E0C
-
- thumb_func_start nullsub_16
-nullsub_16: @ 80A3E6C
- bx lr
- thumb_func_end nullsub_16
-
- thumb_func_start sub_80A3E70
-sub_80A3E70: @ 80A3E70
- lsls r0, 24
- lsls r1, 24
- ldr r2, _080A3E8C @ =gUnknown_03005D24
- ldr r2, [r2]
- lsrs r0, 22
- adds r0, r2
- ldr r3, [r0]
- lsrs r1, 22
- adds r1, r2
- ldr r2, [r1]
- str r2, [r0]
- str r3, [r1]
- bx lr
- .align 2, 0
-_080A3E8C: .4byte gUnknown_03005D24
- thumb_func_end sub_80A3E70
-
- thumb_func_start sub_80A3E90
-sub_80A3E90: @ 80A3E90
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- bl nullsub_16
- ldr r0, _080A3EE8 @ =gTasks
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- ldrb r0, [r5, 0x1C]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080A3EEC @ =gUnknown_03005D10
- ldr r1, _080A3EF0 @ =gUnknown_02038559
- movs r2, 0
- ldrsb r2, [r1, r2]
- lsls r2, 2
- adds r2, r3
- ldrb r1, [r2, 0x1]
- ldrb r2, [r2]
- adds r1, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_80A3E70
- movs r0, 0
- strh r0, [r5, 0x1C]
- bl sub_80A763C
- movs r0, 0
- bl sub_80A7528
- bl ItemListMenu_InitMenu
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3EE8: .4byte gTasks
-_080A3EEC: .4byte gUnknown_03005D10
-_080A3EF0: .4byte gUnknown_02038559
- thumb_func_end sub_80A3E90
-
- thumb_func_start sub_80A3EF4
-sub_80A3EF4: @ 80A3EF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- bl nullsub_16
- ldr r0, _080A3F44 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r2, _080A3F48 @ =gUnknown_03005D10
- ldr r0, _080A3F4C @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- mvns r0, r0
- ldrb r2, [r1, 0x1C]
- adds r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- movs r0, 0
- strh r0, [r1, 0x1C]
- cmp r2, 0x7
- bhi _080A3F38
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
-_080A3F38:
- movs r0, 0
- bl sub_80A7528
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3F44: .4byte gTasks
-_080A3F48: .4byte gUnknown_03005D10
-_080A3F4C: .4byte gUnknown_02038559
- thumb_func_end sub_80A3EF4
-
- thumb_func_start sub_80A3F50
-sub_80A3F50: @ 80A3F50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A3F94 @ =gTasks
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r1
- ldr r5, _080A3F98 @ =gUnknown_03005D10
- ldr r4, _080A3F9C @ =gUnknown_02038559
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- ldrb r1, [r1]
- adds r2, r1
- adds r2, 0x1
- strh r2, [r3, 0x1C]
- movs r1, 0
- ldrsb r1, [r4, r1]
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1]
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x1
- bl sub_80A7528
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A3F94: .4byte gTasks
-_080A3F98: .4byte gUnknown_03005D10
-_080A3F9C: .4byte gUnknown_02038559
- thumb_func_end sub_80A3F50
-
- thumb_func_start sub_80A3FA0
-sub_80A3FA0: @ 80A3FA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldr r0, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r6, r4, 16
- lsrs r2, 24
- adds r0, r2, r0
- cmp r2, r0
- bge _080A3FFC
- mov r8, r5
- adds r4, r5, r3
- mov r12, r0
-_080A3FCC:
- adds r0, r5, 0
- lsls r3, r2, 16
- cmp r8, r4
- bge _080A3FEE
- asrs r2, r3, 11
-_080A3FD6:
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r7
- strh r6, [r0]
- adds r1, 0x1
- lsls r1, 16
- lsrs r0, r1, 16
- asrs r1, 16
- cmp r1, r4
- blt _080A3FD6
-_080A3FEE:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r2, r0, 16
- asrs r0, 16
- cmp r0, r12
- blt _080A3FCC
-_080A3FFC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3FA0
-
- thumb_func_start sub_80A4008
-sub_80A4008: @ 80A4008
- push {r4,lr}
- sub sp, 0x8
- ldr r4, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_80A3FA0
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4008
-
- thumb_func_start sub_80A4030
-sub_80A4030: @ 80A4030
- ldr r1, _080A4058 @ =gBGTilemapBuffers + 0x1000 + 0xB4
- lsls r0, 7
- adds r1, r0, r1
- movs r0, 0x5A
- strh r0, [r1]
- movs r0, 0x5B
- strh r0, [r1, 0x2]
- movs r0, 0x5C
- strh r0, [r1, 0x4]
- adds r2, r1, 0
- adds r2, 0x40
- movs r0, 0x6A
- strh r0, [r2]
- adds r2, 0x2
- movs r0, 0x6B
- strh r0, [r2]
- adds r1, 0x44
- movs r0, 0x6C
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080A4058: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
- thumb_func_end sub_80A4030
-
- thumb_func_start sub_80A405C
-sub_80A405C: @ 80A405C
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080A40A8 @ =gBGTilemapBuffers + 0x1000 + 0xB4
- movs r0, 0
- adds r4, r2, 0
- movs r1, 0x4F
-_080A406A:
- strh r1, [r2]
- strh r1, [r2, 0x2]
- strh r1, [r2, 0x4]
- adds r2, 0x40
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF
- bls _080A406A
- lsls r0, r3, 7
- adds r2, r0, r4
- movs r0, 0x5A
- strh r0, [r2]
- movs r0, 0x5B
- strh r0, [r2, 0x2]
- movs r0, 0x5C
- strh r0, [r2, 0x4]
- adds r1, r2, 0
- adds r1, 0x40
- movs r0, 0x6A
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6B
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x6C
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A40A8: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
- thumb_func_end sub_80A405C
-
- thumb_func_start sub_80A40AC
-sub_80A40AC: @ 80A40AC
- lsls r0, 24
- ldr r1, _080A40CC @ =gBGTilemapBuffers + 0x1000 + 0xB4
- lsrs r0, 17
- adds r1, r0, r1
- movs r2, 0x4F
- strh r2, [r1]
- strh r2, [r1, 0x2]
- strh r2, [r1, 0x4]
- adds r0, r1, 0
- adds r0, 0x40
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r1, 0x44
- strh r2, [r1]
- bx lr
- .align 2, 0
-_080A40CC: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
- thumb_func_end sub_80A40AC
-
- thumb_func_start sub_80A40D0
-sub_80A40D0: @ 80A40D0
- push {r4-r7,lr}
- movs r4, 0
- ldr r2, _080A4114 @ =gUnknown_03005D10
- ldr r3, _080A4118 @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- adds r7, r2, 0
- adds r6, r3, 0
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- beq _080A4136
- ldr r5, _080A411C @ =gSaveBlock1 + 0x496
-_080A40EE:
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r3, r0, r7
- ldrb r2, [r3, 0x1]
- adds r1, r2, r4
- ldr r0, _080A4120 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080A4124
- adds r0, r4, 0
- bl sub_80A40AC
- b _080A4136
- .align 2, 0
-_080A4114: .4byte gUnknown_03005D10
-_080A4118: .4byte gUnknown_02038559
-_080A411C: .4byte gSaveBlock1 + 0x496
-_080A4120: .4byte gUnknown_03005D24
-_080A4124:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bhi _080A4136
- adds r0, r2, r4
- ldrb r3, [r3, 0x2]
- cmp r0, r3
- bne _080A40EE
-_080A4136:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A40D0
-
- thumb_func_start sub_80A413C
-sub_80A413C: @ 80A413C
- push {lr}
- bl sub_80A40D0
- ldr r1, _080A415C @ =gUnknown_03005D10
- ldr r0, _080A4160 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80A405C
- pop {r0}
- bx r0
- .align 2, 0
-_080A415C: .4byte gUnknown_03005D10
-_080A4160: .4byte gUnknown_02038559
- thumb_func_end sub_80A413C
-
- thumb_func_start sub_80A4164
-sub_80A4164: @ 80A4164
- push {r4,lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 24
- lsrs r3, 24
- movs r4, 0xB9
- strb r4, [r0]
- adds r0, 0x1
- movs r4, 0xFC
- strb r4, [r0]
- movs r4, 0x14
- strb r4, [r0, 0x1]
- movs r4, 0x6
- strb r4, [r0, 0x2]
- adds r0, 0x3
- bl ConvertIntToDecimalStringN
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4164
-
- thumb_func_start sub_80A418C
-sub_80A418C: @ 80A418C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r4, r0, 0
- mov r9, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080A41D0 @ =gStringVar1
- mov r8, r0
- adds r1, r4, 0
- mov r2, r9
- bl sub_80A4164
- mov r0, r8
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A41D0: .4byte gStringVar1
- thumb_func_end sub_80A418C
-
- thumb_func_start sub_80A41D4
-sub_80A41D4: @ 80A41D4
- push {lr}
- bl sub_80A763C
- pop {r0}
- bx r0
- thumb_func_end sub_80A41D4
-
- thumb_func_start sub_80A41E0
-sub_80A41E0: @ 80A41E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r9, r2
- adds r5, r3, 0
- ldr r4, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xFC
- mov r8, r0
- strb r0, [r7]
- movs r6, 0x13
- strb r6, [r7, 0x1]
- movs r0, 0x8
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r1, r8
- strb r1, [r0]
- strb r6, [r0, 0x1]
- movs r1, 0x18
- strb r1, [r0, 0x2]
- adds r7, r0, 0x3
- adds r4, 0x1
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 1
- movs r2, 0x78
- subs r2, r0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- mov r1, r9
- movs r3, 0
- bl sub_8072C74
- movs r1, 0xB9
- strb r1, [r0]
- adds r7, r0, 0x1
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0x1
- bl sub_8072C14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A41E0
-
- thumb_func_start sub_80A425C
-sub_80A425C: @ 80A425C
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _080A42A4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r0, 0x1C
- ldrsh r1, [r1, r0]
- ldr r3, _080A42A8 @ =gUnknown_03005D10
- ldr r0, _080A42AC @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- subs r1, r0
- subs r1, 0x1
- cmp r1, r2
- bne _080A429C
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- movs r0, 0x2
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_080A429C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A42A4: .4byte gTasks
-_080A42A8: .4byte gUnknown_03005D10
-_080A42AC: .4byte gUnknown_02038559
- thumb_func_end sub_80A425C
-
- thumb_func_start sub_80A42B0
-sub_80A42B0: @ 80A42B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r0, _080A4344 @ =gUnknown_02038540
- mov r8, r0
- ldr r1, _080A4348 @ =gUnknown_03005D10
- ldr r0, _080A434C @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- adds r1, r6
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bgt _080A4370
- cmp r1, r0
- bne _080A4374
- ldr r0, _080A4350 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A4370
- lsls r0, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r0, r1
- lsrs r5, r0, 24
- ldr r4, _080A4354 @ =gStringVar1
- ldr r1, _080A4358 @ =gOtherText_CloseBag
- adds r0, r4, 0
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- adds r0, r4, 0
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- lsls r0, r5, 6
- ldr r1, _080A435C @ =gBGTilemapBuffers + 0x1000 + 0x1C
- adds r0, r1
- movs r2, 0x4F
- strh r2, [r0]
- strh r2, [r0, 0x2]
- adds r1, r0, 0
- adds r1, 0x40
- strh r2, [r1]
- adds r0, 0x42
- strh r2, [r0]
- cmp r6, 0x7
- beq _080A4370
- cmp r7, 0x1
- bne _080A432E
- mov r1, r8
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _080A4332
-_080A432E:
- cmp r7, 0x2
- bne _080A4360
-_080A4332:
- adds r1, r5, 0x2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuFillWindowRectWithBlankTile
- b _080A4370
- .align 2, 0
-_080A4344: .4byte gUnknown_02038540
-_080A4348: .4byte gUnknown_03005D10
-_080A434C: .4byte gUnknown_02038559
-_080A4350: .4byte gUnknown_03000701
-_080A4354: .4byte gStringVar1
-_080A4358: .4byte gOtherText_CloseBag
-_080A435C: .4byte gBGTilemapBuffers + 0x1000 + 0x1C
-_080A4360:
- adds r1, r5, 0x2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xE
- movs r2, 0x1D
- movs r3, 0x11
- bl MenuFillWindowRectWithBlankTile
-_080A4370:
- movs r0, 0x1
- b _080A4376
-_080A4374:
- movs r0, 0
-_080A4376:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80A42B0
-
- thumb_func_start sub_80A4380
-sub_80A4380: @ 80A4380
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r2, [sp]
- mov r10, r3
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _080A43A0 @ =gUnknown_03005D24
- mov r8, r0
- b _080A441A
- .align 2, 0
-_080A43A0: .4byte gUnknown_03005D24
-_080A43A4:
- ldr r1, _080A4440 @ =gUnknown_03005D10
- ldr r0, _080A4444 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r7, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r7, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- ldr r6, _080A4448 @ =gStringVar1
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_80A425C
- adds r6, r0, 0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0x66
- movs r3, 0
- bl sub_8072C74
- adds r6, r0, 0
- movs r0, 0xB9
- strb r0, [r6]
- adds r6, 0x1
- mov r1, r8
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4, 0x2]
- adds r0, r6, 0
- movs r2, 0x78
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _080A4448 @ =gStringVar1
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_080A441A:
- ldr r0, [sp]
- cmp r7, r0
- bgt _080A4430
- adds r0, r7, 0
- mov r1, r10
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A43A4
-_080A4430:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4440: .4byte gUnknown_03005D10
-_080A4444: .4byte gUnknown_02038559
-_080A4448: .4byte gStringVar1
- thumb_func_end sub_80A4380
-
- thumb_func_start sub_80A444C
-sub_80A444C: @ 80A444C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r2, [sp]
- str r3, [sp, 0x4]
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _080A446C @ =gSaveBlock1 + 0x496
- mov r9, r0
- b _080A4520
- .align 2, 0
-_080A446C: .4byte gSaveBlock1 + 0x496
-_080A4470:
- ldr r1, _080A44E8 @ =gUnknown_03005D10
- ldr r0, _080A44EC @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r6, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- ldr r7, _080A44F0 @ =gStringVar1
- mov r2, r10
- lsls r0, r2, 24
- lsrs r0, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80A425C
- adds r7, r0, 0
- ldr r0, _080A44F4 @ =gUnknown_03005D24
- mov r8, r0
- ldr r0, [r0]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r7, 0
-.ifdef ENGLISH
- movs r2, 0x60
-.else
- movs r2, 0x63
-.endif
- movs r3, 0
- bl sub_8072C74
- ldr r0, _080A44F0 @ =gStringVar1
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- ldr r0, _080A44F8 @ =gUnknown_02038558
- ldrb r0, [r0]
- cmp r0, 0
- beq _080A44FC
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r2, r9
- ldrh r2, [r2]
- cmp r0, r2
- bne _080A451A
- adds r0, r6, 0
- bl sub_80A4030
- b _080A451A
- .align 2, 0
-_080A44E8: .4byte gUnknown_03005D10
-_080A44EC: .4byte gUnknown_02038559
-_080A44F0: .4byte gStringVar1
-_080A44F4: .4byte gUnknown_03005D24
-_080A44F8: .4byte gUnknown_02038558
-_080A44FC:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r2, r9
- ldrh r2, [r2]
- cmp r0, r2
- bne _080A4514
- adds r0, r6, 0
- bl sub_80A405C
- b _080A451A
-_080A4514:
- adds r0, r6, 0
- bl sub_80A40AC
-_080A451A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080A4520:
- ldr r0, [sp]
- cmp r6, r0
- bgt _080A4536
- adds r0, r6, 0
- ldr r1, [sp, 0x4]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4470
-_080A4536:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A444C
-
- thumb_func_start sub_80A4548
-sub_80A4548: @ 80A4548
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000
- mov r9, r0
- b _080A46C2
- .align 2, 0
-_080A456C: .4byte gBGTilemapBuffers + 0x1000
-_080A4570:
- ldr r1, _080A461C @ =gUnknown_03005D10
- ldr r0, _080A4620 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- add r4, r8
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r0, r1, 25
- movs r3, 0x80
- lsls r3, 18
- adds r0, r3
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r0, 5
- adds r0, 0xE
- adds r5, r0, 0
- ldr r6, _080A4624 @ =gStringVar1
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r6, 0
- mov r2, r8
- bl sub_80A425C
- adds r6, r0, 0
- ldr r3, _080A4628 @ =gUnknown_03005D24
- mov r10, r3
- ldr r0, [r3]
- lsls r7, r4, 2
- adds r3, r7, r0
- ldrh r1, [r3]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _080A4634
- lsls r0, r5, 1
- add r0, r9
- movs r1, 0x59
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- movs r2, 0x4F
- strh r2, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- add r0, r9
- movs r1, 0x69
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x21
- lsls r0, 1
- add r0, r9
- strh r2, [r0]
- ldrh r0, [r3]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- adds r2, r0, 0
- muls r2, r1
- ldr r0, _080A462C @ =gMoveNames
- adds r2, r0
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldr r3, _080A4630 @ =0xfffffee0
- adds r1, r3, 0
- ldrh r3, [r0]
- adds r1, r3
- lsls r1, 16
- lsrs r1, 16
- ldrh r3, [r0, 0x2]
- movs r0, 0x2
- str r0, [sp]
- adds r0, r6, 0
- bl sub_80A41E0
- b _080A46AE
- .align 2, 0
-_080A461C: .4byte gUnknown_03005D10
-_080A4620: .4byte gUnknown_02038559
-_080A4624: .4byte gStringVar1
-_080A4628: .4byte gUnknown_03005D24
-_080A462C: .4byte gMoveNames
-_080A4630: .4byte 0xfffffee0
-_080A4634:
- lsls r0, r5, 1
- add r0, r9
- ldr r1, _080A46EC @ =0x0000105d
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- adds r1, 0x1
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- add r0, r9
- adds r1, 0xF
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x21
- lsls r0, 1
- add r0, r9
- adds r1, 0x1
- strh r1, [r0]
- movs r0, 0xFC
- strb r0, [r6]
- movs r4, 0x13
- strb r4, [r6, 0x1]
- movs r0, 0x11
- strb r0, [r6, 0x2]
- adds r6, 0x3
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r1, [r0]
- ldr r3, _080A46F0 @ =0xfffffeae
- adds r1, r3
- adds r0, r6, 0
- bl ConvertIntToDecimalString
- adds r6, r0, 0
- movs r0, 0xFC
- strb r0, [r6]
- strb r4, [r6, 0x1]
- movs r0, 0x18
- strb r0, [r6, 0x2]
- adds r6, 0x3
- mov r1, r10
- ldr r0, [r1]
- adds r0, r7, r0
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080A46F4 @ =gMoveNames
- adds r1, r0
- adds r0, r6, 0
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
-_080A46AE:
- ldr r0, _080A46F8 @ =gStringVar1
- movs r1, 0xE
- ldr r2, [sp, 0x10]
- bl MenuPrint
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080A46C2:
- ldr r3, [sp, 0x8]
- cmp r8, r3
- bgt _080A46DA
- mov r0, r8
- ldr r1, [sp, 0xC]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A46DA
- b _080A4570
-_080A46DA:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A46EC: .4byte 0x0000105d
-_080A46F0: .4byte 0xfffffeae
-_080A46F4: .4byte gMoveNames
-_080A46F8: .4byte gStringVar1
- thumb_func_end sub_80A4548
-
- thumb_func_start sub_80A46FC
-sub_80A46FC: @ 80A46FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r0, _080A4724 @ =gBGTilemapBuffers + 0x1000
- mov r10, r0
- ldr r1, _080A4728 @ =gStringVar2
- mov r9, r1
- ldr r0, _080A472C @ =gUnknown_03005D24
- mov r8, r0
- b _080A47B4
- .align 2, 0
-_080A4724: .4byte gBGTilemapBuffers + 0x1000
-_080A4728: .4byte gStringVar2
-_080A472C: .4byte gUnknown_03005D24
-_080A4730:
- ldr r1, _080A47DC @ =gUnknown_03005D10
- ldr r0, _080A47E0 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- adds r4, r6, r4
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r1
- lsrs r5, 24
- lsls r0, r5, 5
- adds r0, 0xE
- lsls r1, r0, 1
- add r1, r10
- movs r2, 0x59
- strh r2, [r1]
- adds r0, 0x20
- lsls r0, 1
- add r0, r10
- movs r1, 0x69
- strh r1, [r0]
- ldr r7, _080A47E4 @ =gStringVar1
- ldr r1, [sp, 0x4]
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80A425C
- adds r7, r0, 0
- mov r1, r8
- ldr r0, [r1]
- lsls r4, 2
- adds r0, r4, r0
- ldrh r0, [r0]
- mov r1, r9
- bl CopyItemName
- mov r1, r8
- ldr r0, [r1]
- adds r4, r0
- ldrh r1, [r4]
- subs r1, 0x84
- lsls r1, 16
- lsrs r1, 16
- ldrh r3, [r4, 0x2]
- movs r0, 0x3
- str r0, [sp]
- adds r0, r7, 0
- mov r2, r9
- bl sub_80A41E0
- ldr r0, _080A47E4 @ =gStringVar1
- movs r1, 0xE
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080A47B4:
- ldr r0, [sp, 0x8]
- cmp r6, r0
- bgt _080A47CA
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- bl sub_80A42B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4730
-_080A47CA:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A47DC: .4byte gUnknown_03005D10
-_080A47E0: .4byte gUnknown_02038559
-_080A47E4: .4byte gStringVar1
- thumb_func_end sub_80A46FC
-
- thumb_func_start sub_80A47E8
-sub_80A47E8: @ 80A47E8
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080A4808 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bhi _080A4852
- lsls r0, 2
- ldr r1, _080A480C @ =_080A4810
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A4808: .4byte gUnknown_02038559
-_080A480C: .4byte _080A4810
- .align 2, 0
-_080A4810:
- .4byte _080A4824
- .4byte _080A4824
- .4byte _080A483C
- .4byte _080A4848
- .4byte _080A4830
-_080A4824:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4380
- b _080A4852
-_080A4830:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A444C
- b _080A4852
-_080A483C:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4548
- b _080A4852
-_080A4848:
- adds r0, r2, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A46FC
-_080A4852:
- ldr r1, _080A4870 @ =gUnknown_03005D10
- ldr r0, _080A4874 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080A4878
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _080A4880
- .align 2, 0
-_080A4870: .4byte gUnknown_03005D10
-_080A4874: .4byte gUnknown_02038559
-_080A4878:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_080A4880:
- ldr r0, _080A48A4 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A48B0
- ldr r1, _080A48A8 @ =gUnknown_03005D10
- ldr r0, _080A48AC @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- adds r1, 0x8
- ldrb r0, [r0, 0x2]
- adds r0, 0x1
- cmp r1, r0
- blt _080A48C6
- b _080A48D8
- .align 2, 0
-_080A48A4: .4byte gUnknown_03000701
-_080A48A8: .4byte gUnknown_03005D10
-_080A48AC: .4byte gUnknown_02038559
-_080A48B0:
- ldr r2, _080A48D0 @ =gUnknown_03005D10
- ldr r0, _080A48D4 @ =gUnknown_02038559
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- adds r0, 0x8
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- bge _080A48D8
-_080A48C6:
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _080A48E0
- .align 2, 0
-_080A48D0: .4byte gUnknown_03005D10
-_080A48D4: .4byte gUnknown_02038559
-_080A48D8:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_080A48E0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A47E8
-
- thumb_func_start sub_80A48E8
-sub_80A48E8: @ 80A48E8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r3, 0
- bl sub_80A47E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A48E8
-
- thumb_func_start sub_80A48F8
-sub_80A48F8: @ 80A48F8
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x5
- movs r3, 0x2
- bl sub_80A47E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A48F8
-
- thumb_func_start ItemListMenu_InitDescription
-ItemListMenu_InitDescription: @ 80A490C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _080A4960 @ =gUnknown_03005D10
- ldr r0, _080A4964 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A4974
- ldr r0, _080A4968 @ =gOtherText_ReturnTo
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072A18
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A496C @ =gUnknown_0840E740
- ldr r0, _080A4970 @ =gUnknown_03000701
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0x78
- movs r3, 0x68
- bl sub_8072A18
- adds r0, r5, r0
- b _080A4988
- .align 2, 0
-_080A4960: .4byte gUnknown_03005D10
-_080A4964: .4byte gUnknown_02038559
-_080A4968: .4byte gOtherText_ReturnTo
-_080A496C: .4byte gUnknown_0840E740
-_080A4970: .4byte gUnknown_03000701
-_080A4974:
- adds r0, r3, 0
- bl ItemId_GetDescription
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072A18
-_080A4988:
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bhi _080A49A4
- lsls r1, r5, 25
- movs r0, 0xD0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A49A4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ItemListMenu_InitDescription
-
- thumb_func_start ItemListMenu_ChangeDescription
-ItemListMenu_ChangeDescription: @ 80A49AC
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _080A49E8 @ =gUnknown_03005D10
- ldr r0, _080A49EC @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A4A18
- cmp r4, 0
- bne _080A49F4
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080A49F0 @ =gOtherText_ReturnTo
- movs r1, 0x4
- movs r2, 0x68
- b _080A4A08
- .align 2, 0
-_080A49E8: .4byte gUnknown_03005D10
-_080A49EC: .4byte gUnknown_02038559
-_080A49F0: .4byte gOtherText_ReturnTo
-_080A49F4:
- cmp r4, 0x1
- bne _080A4A4C
- ldr r1, _080A4A10 @ =gUnknown_0840E740
- ldr r0, _080A4A14 @ =gUnknown_03000701
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x4
- movs r2, 0x78
-_080A4A08:
- movs r3, 0
- bl MenuPrint_PixelCoords
- b _080A4A4C
- .align 2, 0
-_080A4A10: .4byte gUnknown_0840E740
-_080A4A14: .4byte gUnknown_03000701
-_080A4A18:
- cmp r4, 0
- bne _080A4A28
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A4A28:
- lsls r1, r5, 16
- asrs r1, 16
- mov r0, sp
- adds r2, r4, 0
- bl ItemId_CopyDescription
- cmp r0, 0
- beq _080A4A4C
- lsls r2, r4, 20
- movs r0, 0xD0
- lsls r0, 15
- adds r2, r0
- lsrs r2, 16
- mov r0, sp
- movs r1, 0x4
- movs r3, 0
- bl MenuPrint_PixelCoords
-_080A4A4C:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ItemListMenu_ChangeDescription
-
- thumb_func_start sub_80A4A54
-sub_80A4A54: @ 80A4A54
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r2, 0x1
- adds r2, r1, 0
- adds r1, r5, 0
-_080A4A5E:
- ldrb r3, [r2]
- adds r0, r3, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A4A8A
- subs r4, 0x1
- cmp r4, 0
- bne _080A4A78
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0x1
- b _080A4A92
-_080A4A78:
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080A4A84
- movs r0, 0
- b _080A4A92
-_080A4A84:
- adds r1, r5, 0
- adds r2, 0x1
- b _080A4A5E
-_080A4A8A:
- strb r3, [r1]
- adds r2, 0x1
- adds r1, 0x1
- b _080A4A5E
-_080A4A92:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4A54
-
- thumb_func_start sub_80A4A98
-sub_80A4A98: @ 80A4A98
- push {r4,r5,lr}
- sub sp, 0x64
- adds r5, r0, 0
- adds r4, r1, 0
- cmp r4, 0
- bne _080A4AB0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
-_080A4AB0:
- mov r0, sp
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80A4A54
- cmp r0, 0
- beq _080A4AD2
- lsls r2, r4, 20
- movs r0, 0xD0
- lsls r0, 15
- adds r2, r0
- lsrs r2, 16
- mov r0, sp
- movs r1, 0x4
- movs r3, 0
- bl MenuPrint_PixelCoords
-_080A4AD2:
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4A98
-
- thumb_func_start sub_80A4ADC
-sub_80A4ADC: @ 80A4ADC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A4B0C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _080A4AFA
- movs r0, 0
- bl sub_80A7528
-_080A4AFA:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080A4B10 @ =gUnknown_0203855C
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B0C: .4byte gTasks
-_080A4B10: .4byte gUnknown_0203855C
- thumb_func_end sub_80A4ADC
-
- thumb_func_start sub_80A4B14
-sub_80A4B14: @ 80A4B14
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _080A4B50 @ =gUnknown_03005D10
- ldr r1, _080A4B54 @ =gUnknown_02038559
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 2
- adds r1, r2
- lsrs r0, 24
- ldrb r2, [r1, 0x1]
- adds r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0
- bl MoveMenuCursor
- bl sub_80A73C0
- bl sub_80A763C
- adds r0, r4, 0
- bl sub_80A4ADC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B50: .4byte gUnknown_03005D10
-_080A4B54: .4byte gUnknown_02038559
- thumb_func_end sub_80A4B14
-
- thumb_func_start sub_80A4B58
-sub_80A4B58: @ 80A4B58
- push {r4,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 24
- asrs r0, 24
- bl MoveMenuCursor
- ldr r2, _080A4B88 @ =gUnknown_03005D10
- ldr r1, _080A4B8C @ =gUnknown_02038559
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 2
- adds r1, r2
- strb r0, [r1]
- bl sub_80A73C0
- adds r0, r4, 0
- bl sub_80A4ADC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4B88: .4byte gUnknown_03005D10
-_080A4B8C: .4byte gUnknown_02038559
- thumb_func_end sub_80A4B58
-
- thumb_func_start sub_80A4B90
-sub_80A4B90: @ 80A4B90
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080A4BBC
- ldr r0, _080A4BB4 @ =0x00000103
- cmp r4, r0
- beq _080A4BAE
- adds r0, 0xD
- cmp r4, r0
- bne _080A4BBC
-_080A4BAE:
- ldr r0, _080A4BB8 @ =gOtherText_Walk
- b _080A4BE6
- .align 2, 0
-_080A4BB4: .4byte 0x00000103
-_080A4BB8: .4byte gOtherText_Walk
-_080A4BBC:
- adds r0, r4, 0
- bl ItemIsMail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A4BE4
- ldr r1, _080A4BDC @ =gUnknown_083C1640
- ldr r0, _080A4BE0 @ =gUnknown_03000704
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- b _080A4BE6
- .align 2, 0
-_080A4BDC: .4byte gUnknown_083C1640
-_080A4BE0: .4byte gUnknown_03000704
-_080A4BE4:
- ldr r0, _080A4BEC @ =gOtherText_Check
-_080A4BE6:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A4BEC: .4byte gOtherText_Check
- thumb_func_end sub_80A4B90
-
- thumb_func_start sub_80A4BF0
-sub_80A4BF0: @ 80A4BF0
- push {r4-r7,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r7, _080A4C38 @ =gUnknown_02038564
- ldrb r4, [r7]
- cmp r4, 0x4
- beq _080A4C00
- b _080A4CF8
-_080A4C00:
- movs r0, 0
- movs r1, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80A4008
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4C40
- ldr r0, _080A4C3C @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A4C40
- movs r0, 0x1
- movs r1, 0
- bl sub_80A7834
- b _080A4CA0
- .align 2, 0
-_080A4C38: .4byte gUnknown_02038564
-_080A4C3C: .4byte gUnknown_03000701
-_080A4C40:
- movs r6, 0
- ldr r0, _080A4C5C @ =gUnknown_02038564
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080A4CA0
- ldr r4, _080A4C60 @ =gUnknown_083C1640
-_080A4C4C:
- cmp r6, 0
- bne _080A4C68
- ldr r0, _080A4C64 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_80A4B90
- adds r3, r0, 0
- b _080A4C76
- .align 2, 0
-_080A4C5C: .4byte gUnknown_02038564
-_080A4C60: .4byte gUnknown_083C1640
-_080A4C64: .4byte gScriptItemId
-_080A4C68:
- ldr r0, _080A4CC4 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r4
- ldr r3, [r0]
-_080A4C76:
- lsrs r0, r6, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x1
- ands r2, r6
- lsls r2, 1
- adds r2, 0x8
- adds r0, r3, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A4CC8 @ =gUnknown_02038564
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080A4C4C
-_080A4CA0:
- ldr r0, _080A4CCC @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A4CD4
- ldr r0, _080A4CC8 @ =gUnknown_02038564
- ldrb r3, [r0]
- ldr r0, _080A4CD0 @ =gUnknown_03000700
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x8
- bl InitMenu
- b _080A4CEA
- .align 2, 0
-_080A4CC4: .4byte gUnknown_03000704
-_080A4CC8: .4byte gUnknown_02038564
-_080A4CCC: .4byte gUnknown_03000701
-_080A4CD0: .4byte gUnknown_03000700
-_080A4CD4:
- ldr r0, _080A4CF4 @ =gUnknown_02038564
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x8
- bl InitMenu
-_080A4CEA:
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A4D8A
- .align 2, 0
-_080A4CF4: .4byte gUnknown_02038564
-_080A4CF8:
- movs r0, 0
- movs r1, 0x5
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- movs r0, 0x6
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x6
- movs r3, 0xC
- bl sub_80A4008
- movs r6, 0
- ldrb r7, [r7]
- cmp r6, r7
- bcs _080A4D6E
- ldr r7, _080A4D98 @ =gUnknown_083C1640
-_080A4D1E:
- ldr r0, _080A4D9C @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r7
- ldr r5, [r0]
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 1
- adds r4, r0
- lsls r4, 1
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r2, r0, 0
- lsls r2, 25
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080A4DA0 @ =gUnknown_02038564
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080A4D1E
-_080A4D6E:
- ldr r0, _080A4DA0 @ =gUnknown_02038564
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x6
- bl InitMenu
- movs r0, 0x2F
- bl sub_8072DCC
-_080A4D8A:
- movs r0, 0x2
- bl sub_80A7528
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4D98: .4byte gUnknown_083C1640
-_080A4D9C: .4byte gUnknown_03000704
-_080A4DA0: .4byte gUnknown_02038564
- thumb_func_end sub_80A4BF0
-
- thumb_func_start sub_80A4DA4
-sub_80A4DA4: @ 80A4DA4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_80A73FC
- movs r0, 0x6
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0xD
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0x5
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- bl sub_80A7590
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A4DA4
-
- thumb_func_start sub_80A4DD8
-sub_80A4DD8: @ 80A4DD8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- adds r4, r1, 0
- adds r1, r2, 0
- adds r6, r3, 0
- ldr r5, [sp, 0x20]
- ldr r2, [sp, 0x24]
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r3, _080A4E84 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r0, 0x1
- strh r0, [r2, 0xA]
- adds r0, r4, 0x2
- mov r9, r0
- strh r0, [r2, 0xC]
- adds r0, r1, 0x1
- mov r8, r0
- strh r0, [r2, 0xE]
- adds r2, r4, r6
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, r5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl MenuDrawTextWindow
- ldr r0, _080A4E88 @ =gBGTilemapBuffers + 0x800
- adds r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- subs r6, 0x1
- lsls r6, 24
- lsrs r6, 24
- subs r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- str r5, [sp]
- adds r1, r4, 0
- mov r2, r8
- adds r3, r6, 0
- bl sub_80A4008
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- mov r0, r10
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- mov r3, r8
- bl sub_80A418C
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4E84: .4byte gTasks
-_080A4E88: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A4DD8
-
- thumb_func_start sub_80A4E8C
-sub_80A4E8C: @ 80A4E8C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x2
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0x3
- movs r1, 0x1
- bl sub_80F979C
- movs r0, 0
- bl PauseVerticalScrollIndicator
- movs r0, 0x1
- bl PauseVerticalScrollIndicator
- movs r0, 0x2
- bl PauseVerticalScrollIndicator
- movs r0, 0x3
- bl PauseVerticalScrollIndicator
- ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
- lsls r4, 24
- asrs r4, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A3B04
- ldr r0, _080A4F08 @ =gUnknown_02038559
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_80A3AC0
- bl sub_80A3770
- bl sub_80A7C64
- adds r0, r6, 0
- bl CreateBagPokeballSprite
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A4F04: .4byte gBGTilemapBuffers + 0x1000
-_080A4F08: .4byte gUnknown_02038559
- thumb_func_end sub_80A4E8C
-
- thumb_func_start sub_80A4F0C
-sub_80A4F0C: @ 80A4F0C
- push {r4,lr}
- ldr r0, _080A4F38 @ =gUnknown_03000701
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4F60
- ldr r4, _080A4F3C @ =gMain
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x10
- beq _080A4F30
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080A4F40
-_080A4F30:
- movs r0, 0x1
- movs r1, 0x2
- b _080A4F58
- .align 2, 0
-_080A4F38: .4byte gUnknown_03000701
-_080A4F3C: .4byte gMain
-_080A4F40:
- ldrh r0, [r4, 0x2E]
- cmp r0, 0x20
- beq _080A4F52
- bl sub_80F9284
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A4F60
-_080A4F52:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x1
-_080A4F58:
- bl sub_80A4E8C
- movs r0, 0x1
- b _080A4F62
-_080A4F60:
- movs r0, 0
-_080A4F62:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4F0C
-
- thumb_func_start sub_80A4F68
-sub_80A4F68: @ 80A4F68
- push {lr}
- bl sub_80A4F0C
- pop {r0}
- bx r0
- thumb_func_end sub_80A4F68
-
- thumb_func_start sub_80A4F74
-sub_80A4F74: @ 80A4F74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r4, 0
- movs r5, 0
- ldr r0, _080A4FAC @ =gMain
- ldrh r0, [r0, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A4FE8
- ldr r1, _080A4FB0 @ =gUnknown_03005D10
- ldr r0, _080A4FB4 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A4FB8
- movs r0, 0x1
- negs r0, r0
- adds r1, r4, 0
- bl sub_80A4B58
- b _080A4FC8
- .align 2, 0
-_080A4FAC: .4byte gMain
-_080A4FB0: .4byte gUnknown_03005D10
-_080A4FB4: .4byte gUnknown_02038559
-_080A4FB8:
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _080A4FC8
- movs r0, 0x1
- negs r0, r0
- adds r1, r4, 0
- bl sub_80A4B14
-_080A4FC8:
- ldr r0, _080A4FE0 @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A50AE
- ldr r1, _080A4FE4 @ =gMain
- ldrh r0, [r1, 0x32]
- cmp r0, 0x5
- bne _080A50AE
- movs r0, 0xB
- strh r0, [r1, 0x32]
- b _080A50AE
- .align 2, 0
-_080A4FE0: .4byte gLinkOpen
-_080A4FE4: .4byte gMain
-_080A4FE8:
- cmp r1, 0x80
- bne _080A5088
- ldr r0, _080A5020 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _080A502C
- ldr r1, _080A5024 @ =gUnknown_03005D10
- ldr r0, _080A5028 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bne _080A504E
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _080A5068
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B14
- b _080A5068
- .align 2, 0
-_080A5020: .4byte gUnknown_03000701
-_080A5024: .4byte gUnknown_03005D10
-_080A5028: .4byte gUnknown_02038559
-_080A502C:
- ldr r1, _080A5058 @ =gUnknown_03005D10
- ldr r0, _080A505C @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r2, r0, r1
- ldrb r1, [r2, 0x1]
- ldrb r3, [r2]
- adds r1, r3
- ldrb r0, [r2, 0x2]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5068
- ldrb r2, [r2, 0x3]
- cmp r3, r2
- beq _080A5060
-_080A504E:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B58
- b _080A5068
- .align 2, 0
-_080A5058: .4byte gUnknown_03005D10
-_080A505C: .4byte gUnknown_02038559
-_080A5060:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_80A4B14
-_080A5068:
- movs r5, 0x1
- ldr r0, _080A5080 @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A50C0
- ldr r1, _080A5084 @ =gMain
- ldrh r0, [r1, 0x32]
- cmp r0, 0x5
- bne _080A50C0
- movs r0, 0xB
- strh r0, [r1, 0x32]
- b _080A50C0
- .align 2, 0
-_080A5080: .4byte gLinkOpen
-_080A5084: .4byte gMain
-_080A5088:
- ldr r0, _080A50B4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080A50BC
- bl sub_80A4F0C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A50BC
- bl sub_80A73F0
- ldr r0, _080A50B8 @ =sub_80A4F68
- str r0, [r4]
-_080A50AE:
- movs r5, 0x1
- b _080A50C0
- .align 2, 0
-_080A50B4: .4byte gTasks
-_080A50B8: .4byte sub_80A4F68
-_080A50BC:
- bl sub_80A73C0
-_080A50C0:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80A4F74
-
- thumb_func_start sub_80A50C8
-sub_80A50C8: @ 80A50C8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A5148 @ =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, _080A514C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080A50E6
- b _080A52BC
-_080A50E6:
- adds r0, r4, 0
- bl sub_80A4F74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A50F6
- b _080A526A
-_080A50F6:
- ldr r2, _080A5150 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080A5190
- ldr r3, _080A5154 @ =gUnknown_02038559
- ldrb r0, [r3]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A5190
- ldr r0, _080A5158 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _080A5190
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5160
- ldr r1, _080A515C @ =gUnknown_03005D10
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A5138
- b _080A526A
-_080A5138:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A3F50
- b _080A526A
- .align 2, 0
-_080A5148: .4byte gTasks + 0x8
-_080A514C: .4byte gPaletteFade
-_080A5150: .4byte gMain
-_080A5154: .4byte gUnknown_02038559
-_080A5158: .4byte gUnknown_03000701
-_080A515C: .4byte gUnknown_03005D10
-_080A5160:
- ldr r1, _080A5184 @ =gUnknown_03005D10
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- beq _080A5188
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A3E90
- b _080A526A
- .align 2, 0
-_080A5184: .4byte gUnknown_03005D10
-_080A5188:
- adds r0, r4, 0
- bl sub_80A3EF4
- b _080A526A
-_080A5190:
- ldrh r2, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _080A5272
- ldr r7, _080A51D4 @ =gUnknown_03005D10
- ldr r6, _080A51D8 @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _080A51F0
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- cmp r1, 0
- bne _080A51E8
- ldr r0, _080A51DC @ =gScriptItemId
- strh r1, [r0]
- ldr r1, _080A51E0 @ =gUnknown_083C16BC
- ldr r0, _080A51E4 @ =gUnknown_03000701
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A526A
- .align 2, 0
-_080A51D4: .4byte gUnknown_03005D10
-_080A51D8: .4byte gUnknown_02038559
-_080A51DC: .4byte gScriptItemId
-_080A51E0: .4byte gUnknown_083C16BC
-_080A51E4: .4byte gUnknown_03000701
-_080A51E8:
- adds r0, r4, 0
- bl sub_80A3EF4
- b _080A526A
-_080A51F0:
- movs r1, 0x14
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A5264
- movs r0, 0x5
- bl PlaySE
- ldr r2, _080A5250 @ =gUnknown_02038560
- movs r1, 0
- ldrsb r1, [r6, r1]
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strb r0, [r2]
- ldr r3, _080A5254 @ =gScriptItemId
- ldrb r0, [r2]
- ldr r1, _080A5258 @ =gUnknown_03005D24
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- ldr r1, _080A525C @ =gUnknown_083C16BC
- ldr r0, _080A5260 @ =gUnknown_03000701
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- movs r0, 0x2
- bl sub_80F98A4
- movs r0, 0x3
- bl sub_80F98A4
- bl sub_80A797C
- b _080A526A
- .align 2, 0
-_080A5250: .4byte gUnknown_02038560
-_080A5254: .4byte gScriptItemId
-_080A5258: .4byte gUnknown_03005D24
-_080A525C: .4byte gUnknown_083C16BC
-_080A5260: .4byte gUnknown_03000701
-_080A5264:
- adds r0, r4, 0
- bl sub_80A3E90
-_080A526A:
- adds r0, r4, 0
- bl sub_808B5B4
- b _080A52BC
-_080A5272:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080A52BC
- movs r0, 0x14
- ldrsh r1, [r5, r0]
- cmp r1, 0
- bne _080A52B0
- ldr r2, _080A52A4 @ =gUnknown_03000701
- ldrb r0, [r2]
- cmp r0, 0x5
- beq _080A52B6
- ldr r0, _080A52A8 @ =gScriptItemId
- strh r1, [r0]
- ldr r1, _080A52AC @ =gUnknown_083C16BC
- ldrb r0, [r2]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A52B6
- .align 2, 0
-_080A52A4: .4byte gUnknown_03000701
-_080A52A8: .4byte gScriptItemId
-_080A52AC: .4byte gUnknown_083C16BC
-_080A52B0:
- adds r0, r4, 0
- bl sub_80A3EF4
-_080A52B6:
- adds r0, r4, 0
- bl sub_808B5B4
-_080A52BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A50C8
-
- thumb_func_start sub_80A52C4
-sub_80A52C4: @ 80A52C4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r3, r1, 16
- adds r4, r3, 0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080A52F4 @ =gTasks + 0x8
- adds r1, r0
- ldr r0, _080A52F8 @ =gMain
- ldrh r0, [r0, 0x30]
- movs r2, 0xF0
- ands r2, r0
- cmp r2, 0x40
- bne _080A52FC
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- cmp r0, r3
- beq _080A533E
- ldrh r0, [r1, 0x2]
- adds r0, 0x1
- b _080A5340
- .align 2, 0
-_080A52F4: .4byte gTasks + 0x8
-_080A52F8: .4byte gMain
-_080A52FC:
- cmp r2, 0x80
- bne _080A5312
- ldrh r2, [r1, 0x2]
- movs r4, 0x2
- ldrsh r0, [r1, r4]
- cmp r0, 0x1
- beq _080A530E
- subs r0, r2, 0x1
- b _080A5340
-_080A530E:
- strh r3, [r1, 0x2]
- b _080A5342
-_080A5312:
- cmp r2, 0x10
- bne _080A532A
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- adds r0, 0xA
- cmp r0, r3
- bge _080A5326
- ldrh r0, [r1, 0x2]
- adds r0, 0xA
- b _080A5340
-_080A5326:
- strh r4, [r1, 0x2]
- b _080A5342
-_080A532A:
- cmp r2, 0x20
- bne _080A5346
- ldrh r2, [r1, 0x2]
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0xA
- ble _080A533E
- adds r0, r2, 0
- subs r0, 0xA
- b _080A5340
-_080A533E:
- movs r0, 0x1
-_080A5340:
- strh r0, [r1, 0x2]
-_080A5342:
- movs r0, 0x1
- b _080A5348
-_080A5346:
- movs r0, 0
-_080A5348:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A52C4
-
- thumb_func_start sub_80A5350
-sub_80A5350: @ 80A5350
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _080A539C @ =gTasks + 0x8
- adds r4, r1, r2
- ldr r1, _080A53A0 @ =gUnknown_02038560
- ldrb r1, [r1]
- ldr r2, _080A53A4 @ =gUnknown_03005D24
- ldr r2, [r2]
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_80A52C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A53C0
- ldr r0, _080A53A8 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A53AC
- ldrh r0, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- bl sub_80A418C
- b _080A53BC
- .align 2, 0
-_080A539C: .4byte gTasks + 0x8
-_080A53A0: .4byte gUnknown_02038560
-_080A53A4: .4byte gUnknown_03005D24
-_080A53A8: .4byte gUnknown_02038559
-_080A53AC:
- ldrh r0, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- ldrb r3, [r4, 0x6]
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x1
- bl sub_80A418C
-_080A53BC:
- movs r0, 0x1
- b _080A53C2
-_080A53C0:
- movs r0, 0
-_080A53C2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80A5350
-
- thumb_func_start sub_80A53CC
-sub_80A53CC: @ 80A53CC
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A53EA
- bl sub_80A3770
- ldr r0, _080A53F0 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A53F4 @ =gUnknown_02038563
- strb r0, [r1]
-_080A53EA:
- pop {r0}
- bx r0
- .align 2, 0
-_080A53F0: .4byte sub_80A50C8
-_080A53F4: .4byte gUnknown_02038563
- thumb_func_end sub_80A53CC
-
- thumb_func_start sub_80A53F8
-sub_80A53F8: @ 80A53F8
- push {lr}
- ldr r0, _080A540C @ =gUnknown_03000701
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080A5410 @ =sub_80A53CC
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A540C: .4byte gUnknown_03000701
-_080A5410: .4byte sub_80A53CC
- thumb_func_end sub_80A53F8
-
- thumb_func_start sub_80A5414
-sub_80A5414: @ 80A5414
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl sub_80A78A0
- cmp r0, 0
- bne _080A5426
- b _080A5552
-_080A5426:
- ldr r2, _080A5460 @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A546C
- ldr r4, _080A5464 @ =gUnknown_03000700
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5440
- b _080A5552
-_080A5440:
- ldrb r1, [r4]
- ldr r0, _080A5468 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0x8
- bne _080A5452
- b _080A5552
-_080A5452:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A54EE
- .align 2, 0
-_080A5460: .4byte gMain
-_080A5464: .4byte gUnknown_03000700
-_080A5468: .4byte gUnknown_03000704
-_080A546C:
- cmp r1, 0x80
- bne _080A549C
- ldr r4, _080A5494 @ =gUnknown_03000700
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5552
- ldrb r1, [r4]
- ldr r0, _080A5498 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080A54EE
- .align 2, 0
-_080A5494: .4byte gUnknown_03000700
-_080A5498: .4byte gUnknown_03000704
-_080A549C:
- cmp r1, 0x20
- bne _080A54CC
- ldr r4, _080A54C4 @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0x1
- bls _080A5552
- adds r1, r0, 0
- ldr r0, _080A54C8 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x2
- ldrb r0, [r1]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- negs r0, r0
- b _080A54EE
- .align 2, 0
-_080A54C4: .4byte gUnknown_03000700
-_080A54C8: .4byte gUnknown_03000704
-_080A54CC:
- cmp r1, 0x10
- bne _080A5500
- ldr r4, _080A54F8 @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0x1
- bhi _080A5552
- adds r1, r0, 0
- ldr r0, _080A54FC @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0x8
- beq _080A5552
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
-_080A54EE:
- bl MoveMenuCursor3
- strb r0, [r4]
- b _080A5552
- .align 2, 0
-_080A54F8: .4byte gUnknown_03000700
-_080A54FC: .4byte gUnknown_03000704
-_080A5500:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5590
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5552
- ldr r1, _080A5570 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r1, _080A5574 @ =gUnknown_03005D10
- ldr r0, _080A5578 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A5580 @ =gUnknown_083C1640
- ldr r0, _080A5584 @ =gUnknown_03000704
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
-_080A5552:
- cmp r5, 0
- bne _080A55FA
- ldr r0, _080A5588 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A55E0
- ldr r0, _080A558C @ =gUnknown_03000700
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A55D4
- movs r0, 0xC
- bl sub_8072DDC
- b _080A55FA
- .align 2, 0
-_080A5570: .4byte gTasks
-_080A5574: .4byte gUnknown_03005D10
-_080A5578: .4byte gUnknown_02038559
-_080A557C: .4byte gBGTilemapBuffers + 0x800
-_080A5580: .4byte gUnknown_083C1640
-_080A5584: .4byte gUnknown_03000704
-_080A5588: .4byte gUnknown_03000701
-_080A558C: .4byte gUnknown_03000700
-_080A5590:
- ldr r1, _080A55C0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A55C8 @ =gUnknown_083C1640
- ldr r0, _080A55CC @ =gUnknown_03000700
- ldrb r2, [r0]
- ldr r0, _080A55D0 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
- b _080A5552
- .align 2, 0
-_080A55C0: .4byte gTasks
-_080A55C4: .4byte gBGTilemapBuffers + 0x800
-_080A55C8: .4byte gUnknown_083C1640
-_080A55CC: .4byte gUnknown_03000700
-_080A55D0: .4byte gUnknown_03000704
-_080A55D4:
- cmp r0, 0x1
- bls _080A55E8
- movs r0, 0x30
- bl sub_8072DCC
- b _080A55FA
-_080A55E0:
- ldr r0, _080A55F0 @ =gUnknown_03000700
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _080A55F4
-_080A55E8:
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A55FA
- .align 2, 0
-_080A55F0: .4byte gUnknown_03000700
-_080A55F4:
- movs r0, 0x30
- bl sub_8072DCC
-_080A55FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5414
-
- thumb_func_start sub_80A5600
-sub_80A5600: @ 80A5600
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r2, _080A563C @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A5648
- ldr r4, _080A5640 @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0
- bne _080A561E
- b _080A5736
-_080A561E:
- adds r1, r0, 0
- ldr r0, _080A5644 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x1
- ldrb r0, [r1]
- cmp r0, 0x8
- bne _080A5630
- b _080A5736
-_080A5630:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A56D2
- .align 2, 0
-_080A563C: .4byte gMain
-_080A5640: .4byte gUnknown_03000700
-_080A5644: .4byte gUnknown_03000704
-_080A5648:
- cmp r1, 0x80
- bne _080A5680
- ldr r4, _080A5674 @ =gUnknown_03000700
- ldrb r1, [r4]
- ldr r0, _080A5678 @ =gUnknown_02038564
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5736
- cmp r1, 0x2
- beq _080A5736
- ldr r0, _080A567C @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r1, r0
- ldrb r0, [r0, 0x1]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- b _080A56D2
- .align 2, 0
-_080A5674: .4byte gUnknown_03000700
-_080A5678: .4byte gUnknown_02038564
-_080A567C: .4byte gUnknown_03000704
-_080A5680:
- cmp r1, 0x20
- bne _080A56B0
- ldr r4, _080A56A8 @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0x2
- bls _080A5736
- adds r1, r0, 0
- ldr r0, _080A56AC @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- subs r1, 0x3
- ldrb r0, [r1]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
- negs r0, r0
- b _080A56D2
- .align 2, 0
-_080A56A8: .4byte gUnknown_03000700
-_080A56AC: .4byte gUnknown_03000704
-_080A56B0:
- cmp r1, 0x10
- bne _080A56E4
- ldr r4, _080A56DC @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _080A5736
- adds r1, r0, 0
- ldr r0, _080A56E0 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0x8
- beq _080A5736
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x3
-_080A56D2:
- bl MoveMenuCursor3
- strb r0, [r4]
- b _080A5736
- .align 2, 0
-_080A56DC: .4byte gUnknown_03000700
-_080A56E0: .4byte gUnknown_03000704
-_080A56E4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5768
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5736
- ldr r1, _080A574C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r1, _080A5750 @ =gUnknown_03005D10
- ldr r0, _080A5754 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A575C @ =gUnknown_083C1640
- ldr r0, _080A5760 @ =gUnknown_03000704
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
-_080A5736:
- cmp r5, 0
- bne _080A57BE
- ldr r0, _080A5764 @ =gUnknown_03000700
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A57AC
- movs r0, 0xC
- bl sub_8072DDC
- b _080A57BE
- .align 2, 0
-_080A574C: .4byte gTasks
-_080A5750: .4byte gUnknown_03005D10
-_080A5754: .4byte gUnknown_02038559
-_080A5758: .4byte gBGTilemapBuffers + 0x800
-_080A575C: .4byte gUnknown_083C1640
-_080A5760: .4byte gUnknown_03000704
-_080A5764: .4byte gUnknown_03000700
-_080A5768:
- ldr r1, _080A5798 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x1C]
- ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A57A0 @ =gUnknown_083C1640
- ldr r0, _080A57A4 @ =gUnknown_03000700
- ldrb r2, [r0]
- ldr r0, _080A57A8 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r5, [r0]
- adds r0, r4, 0
- bl _call_via_r5
- b _080A5736
- .align 2, 0
-_080A5798: .4byte gTasks
-_080A579C: .4byte gBGTilemapBuffers + 0x800
-_080A57A0: .4byte gUnknown_083C1640
-_080A57A4: .4byte gUnknown_03000700
-_080A57A8: .4byte gUnknown_03000704
-_080A57AC:
- cmp r0, 0x2
- bhi _080A57B8
- movs r0, 0x2F
- bl sub_8072DCC
- b _080A57BE
-_080A57B8:
- movs r0, 0x30
- bl sub_8072DCC
-_080A57BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5600
-
- thumb_func_start sub_80A57C4
-sub_80A57C4: @ 80A57C4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r5, _080A57EC @ =gUnknown_03000704
- ldr r0, _080A57F0 @ =gUnknown_02038559
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 1
- ldr r4, _080A57F4 @ =gUnknown_083C16AE
- adds r1, r4
- str r1, [r5]
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x4
- bne _080A57FC
- ldr r1, _080A57F8 @ =gUnknown_02038564
- movs r0, 0x1
- strb r0, [r1]
- movs r5, 0x9
- b _080A582C
- .align 2, 0
-_080A57EC: .4byte gUnknown_03000704
-_080A57F0: .4byte gUnknown_02038559
-_080A57F4: .4byte gUnknown_083C16AE
-_080A57F8: .4byte gUnknown_02038564
-_080A57FC:
- ldr r0, _080A581C @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_80F92F4
- lsls r0, 24
- cmp r0, 0
- bne _080A5824
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
- ldr r1, _080A5820 @ =gUnknown_02038564
- movs r0, 0x1
- strb r0, [r1]
- movs r5, 0x9
- b _080A582C
- .align 2, 0
-_080A581C: .4byte gScriptItemId
-_080A5820: .4byte gUnknown_02038564
-_080A5824:
- ldr r1, _080A5880 @ =gUnknown_02038564
- movs r0, 0x2
- strb r0, [r1]
- movs r5, 0x7
-_080A582C:
- adds r6, r1, 0
- ldr r0, _080A5884 @ =gBGTilemapBuffers + 0x800
- adds r4, r5, 0x1
- ldrb r1, [r6]
- lsls r1, 25
- lsrs r1, 24
- str r1, [sp]
- movs r1, 0x7
- adds r2, r4, 0
- movs r3, 0x6
- bl sub_80A4008
- ldrb r3, [r6]
- lsls r3, 1
- adds r3, 0x1
- adds r3, r5, r3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x6
- adds r1, r5, 0
- movs r2, 0xD
- bl MenuDrawTextWindow
- movs r0, 0
- adds r1, r5, 0
- bl sub_80A7834
- ldrb r3, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl InitMenu
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5880: .4byte gUnknown_02038564
-_080A5884: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A57C4
-
- thumb_func_start sub_80A5888
-sub_80A5888: @ 80A5888
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80A78A0
- cmp r0, 0
- beq _080A5988
- ldr r2, _080A58B8 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080A58C0
- ldr r4, _080A58BC @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0
- beq _080A5988
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A58E2
- .align 2, 0
-_080A58B8: .4byte gMain
-_080A58BC: .4byte gUnknown_03000700
-_080A58C0:
- movs r0, 0x80
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080A58F4
- ldr r4, _080A58EC @ =gUnknown_03000700
- ldrb r1, [r4]
- ldr r0, _080A58F0 @ =gUnknown_02038564
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _080A5988
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080A58E2:
- bl MoveMenuCursor
- strb r0, [r4]
- b _080A5988
- .align 2, 0
-_080A58EC: .4byte gUnknown_03000700
-_080A58F0: .4byte gUnknown_02038564
-_080A58F4:
- ldrh r1, [r2, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A5964
- ldr r1, _080A5948 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x1C]
- ldr r1, _080A594C @ =gUnknown_03005D10
- ldr r0, _080A5950 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A5954 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A5958 @ =gUnknown_083C1640
- ldr r0, _080A595C @ =gUnknown_03000700
- ldrb r2, [r0]
- ldr r0, _080A5960 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A5988
- .align 2, 0
-_080A5948: .4byte gTasks
-_080A594C: .4byte gUnknown_03005D10
-_080A5950: .4byte gUnknown_02038559
-_080A5954: .4byte gBGTilemapBuffers + 0x800
-_080A5958: .4byte gUnknown_083C1640
-_080A595C: .4byte gUnknown_03000700
-_080A5960: .4byte gUnknown_03000704
-_080A5964:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5988
- ldr r1, _080A5990 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r0, _080A5994 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r0, _080A5998 @ =gUnknown_083C1640
- ldr r1, [r0, 0x14]
- adds r0, r5, 0
- bl _call_via_r1
-_080A5988:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5990: .4byte gTasks
-_080A5994: .4byte gBGTilemapBuffers + 0x800
-_080A5998: .4byte gUnknown_083C1640
- thumb_func_end sub_80A5888
-
- thumb_func_start sub_80A599C
-sub_80A599C: @ 80A599C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A59C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A59C8 @ =sub_805469C
- lsrs r2, r3, 16
- movs r4, 0
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- ldr r1, _080A59CC @ =gLastFieldPokeMenuOpened
- strb r4, [r1]
- bl sub_80A5AE4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A59C4: .4byte gTasks
-_080A59C8: .4byte sub_805469C
-_080A59CC: .4byte gLastFieldPokeMenuOpened
- thumb_func_end sub_80A599C
-
- thumb_func_start sub_80A59D0
-sub_80A59D0: @ 80A59D0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080A5A3C @ =gUnknown_03000700
- movs r0, 0
- strb r0, [r1]
- ldr r7, _080A5A40 @ =gUnknown_03000701
- ldrb r0, [r7]
- cmp r0, 0x5
- bne _080A59E8
- movs r0, 0x1
- strb r0, [r1]
-_080A59E8:
- ldr r1, _080A5A44 @ =gTasks
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r6, r0, r1
- ldr r3, _080A5A48 @ =gUnknown_03005D10
- ldr r2, _080A5A4C @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r6, 0x1C]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5A54
- ldrb r0, [r7]
- cmp r0, 0x5
- beq _080A5A54
- bl sub_80A57C4
- ldr r0, _080A5A50 @ =sub_80A5888
- str r0, [r6]
- b _080A5A9C
- .align 2, 0
-_080A5A3C: .4byte gUnknown_03000700
-_080A5A40: .4byte gUnknown_03000701
-_080A5A44: .4byte gTasks
-_080A5A48: .4byte gUnknown_03005D10
-_080A5A4C: .4byte gUnknown_02038559
-_080A5A50: .4byte sub_80A5888
-_080A5A54:
- ldr r0, _080A5A7C @ =gBGTilemapBuffers + 0x800
- bl sub_80A4BF0
- ldr r0, _080A5A80 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A5A6E
- ldr r0, _080A5A84 @ =gUnknown_03000701
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080A5A90
-_080A5A6E:
- ldr r0, _080A5A88 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A5A8C @ =sub_80A5414
- b _080A5A9A
- .align 2, 0
-_080A5A7C: .4byte gBGTilemapBuffers + 0x800
-_080A5A80: .4byte gUnknown_02038559
-_080A5A84: .4byte gUnknown_03000701
-_080A5A88: .4byte gTasks
-_080A5A8C: .4byte sub_80A5414
-_080A5A90:
- ldr r0, _080A5AA4 @ =gTasks
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080A5AA8 @ =sub_80A5600
-_080A5A9A:
- str r0, [r1]
-_080A5A9C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5AA4: .4byte gTasks
-_080A5AA8: .4byte sub_80A5600
- thumb_func_end sub_80A59D0
-
- thumb_func_start sub_80A5AAC
-sub_80A5AAC: @ 80A5AAC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080A5ADC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5ADC: .4byte gTasks
-_080A5AE0: .4byte HandleItemMenuPaletteFade
- thumb_func_end sub_80A5AAC
-
- thumb_func_start sub_80A5AE4
-sub_80A5AE4: @ 80A5AE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A5AAC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5AE4
-
- thumb_func_start HandleItemMenuPaletteFade
-HandleItemMenuPaletteFade: @ 80A5B00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080A5B38 @ =gTasks + 0x8
- adds r2, r0, r1
- ldr r0, _080A5B3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A5B32
- ldrh r0, [r2, 0x10]
- lsls r0, 16
- ldrh r1, [r2, 0x12]
- orrs r0, r1
- bl SetMainCallback2
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080A5B32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5B38: .4byte gTasks + 0x8
-_080A5B3C: .4byte gPaletteFade
- thumb_func_end HandleItemMenuPaletteFade
-
- thumb_func_start sub_80A5B40
-sub_80A5B40: @ 80A5B40
- push {lr}
-_080A5B42:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5B68
- bl ResetTasks
- ldr r0, _080A5B60 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A5B64 @ =gUnknown_02038563
- strb r0, [r1]
- b _080A5B74
- .align 2, 0
-_080A5B60: .4byte sub_80A50C8
-_080A5B64: .4byte gUnknown_02038563
-_080A5B68:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5B42
-_080A5B74:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B40
-
- thumb_func_start sub_80A5B78
-sub_80A5B78: @ 80A5B78
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080A5BB0 @ =gScriptItemId
- ldrh r0, [r5]
- bl ItemId_GetFieldFunc
- cmp r0, 0
- beq _080A5BF2
- movs r0, 0x5
- bl PlaySE
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _080A5BB4
- ldrh r0, [r5]
- bl ItemId_GetType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5BB4
- adds r0, r4, 0
- bl sub_80A5BF8
- b _080A5BF2
- .align 2, 0
-_080A5BB0: .4byte gScriptItemId
-_080A5BB4:
- ldr r1, _080A5BE0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r0, _080A5BE4 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- beq _080A5BEC
- ldr r0, _080A5BE8 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
- b _080A5BF2
- .align 2, 0
-_080A5BE0: .4byte gTasks
-_080A5BE4: .4byte gUnknown_02038559
-_080A5BE8: .4byte gScriptItemId
-_080A5BEC:
- adds r0, r4, 0
- bl sub_80C9C7C
-_080A5BF2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5B78
-
- thumb_func_start sub_80A5BF8
-sub_80A5BF8: @ 80A5BF8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A5C1C @ =gOtherText_NoPokemon
- ldr r2, _080A5C20 @ =CleanUpItemMenuMessage
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5C1C: .4byte gOtherText_NoPokemon
-_080A5C20: .4byte CleanUpItemMenuMessage
- thumb_func_end sub_80A5BF8
-
- thumb_func_start sub_80A5C24
-sub_80A5C24: @ 80A5C24
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5C24
-
- thumb_func_start CleanUpItemMenuMessage
-CleanUpItemMenuMessage: @ 80A5C48
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A5C90 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A5C94 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5C98 @ =sub_80A5C24
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5C90: .4byte gBGTilemapBuffers + 0x800
-_080A5C94: .4byte gTasks
-_080A5C98: .4byte sub_80A5C24
- thumb_func_end CleanUpItemMenuMessage
-
- thumb_func_start CleanUpOverworldMessage
-CleanUpOverworldMessage: @ 80A5C9C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl sub_8064E2C
- bl ScriptContext2_Disable
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CleanUpOverworldMessage
-
- thumb_func_start ExecuteItemUseFromBlackPalette
-ExecuteItemUseFromBlackPalette: @ 80A5CC4
- push {lr}
- bl pal_fill_black
- ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080A5CD8: .4byte Task_CallItemUseOnFieldCallback
- thumb_func_end ExecuteItemUseFromBlackPalette
-
- thumb_func_start Task_CallItemUseOnFieldCallback
-Task_CallItemUseOnFieldCallback: @ 80A5CDC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5CF8
- ldr r0, _080A5D00 @ =gUnknown_03005D00
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_080A5CF8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D00: .4byte gUnknown_03005D00
- thumb_func_end Task_CallItemUseOnFieldCallback
-
- thumb_func_start sub_80A5D04
-sub_80A5D04: @ 80A5D04
- push {lr}
-_080A5D06:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5D28
- ldr r0, _080A5D20 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A5D24 @ =gUnknown_02038563
- strb r0, [r1]
- b _080A5D34
- .align 2, 0
-_080A5D20: .4byte sub_80A50C8
-_080A5D24: .4byte gUnknown_02038563
-_080A5D28:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A5D06
-_080A5D34:
- pop {r0}
- bx r0
- thumb_func_end sub_80A5D04
-
- thumb_func_start sub_80A5D38
-sub_80A5D38: @ 80A5D38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A5D70 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r0, _080A5D74 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D70: .4byte gTasks
-_080A5D74: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A5D38
-
- thumb_func_start sub_80A5D78
-sub_80A5D78: @ 80A5D78
- push {lr}
- sub sp, 0x4
- ldr r0, _080A5D9C @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A4008
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A5D9C: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A5D78
-
- thumb_func_start sub_80A5DA0
-sub_80A5DA0: @ 80A5DA0
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _080A5DC4 @ =gStringVar1
- bl CopyItemName
- cmp r4, 0x63
- bls _080A5DCC
- ldr r0, _080A5DC8 @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- b _080A5DD8
- .align 2, 0
-_080A5DC4: .4byte gStringVar1
-_080A5DC8: .4byte gStringVar2
-_080A5DCC:
- ldr r0, _080A5DF0 @ =gStringVar2
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
-_080A5DD8:
- ldr r0, _080A5DF4 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- movs r0, 0x5
- bl sub_80A7528
- bl sub_80A5D78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5DF0: .4byte gStringVar2
-_080A5DF4: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A5DA0
-
- thumb_func_start sub_80A5DF8
-sub_80A5DF8: @ 80A5DF8
- push {lr}
- ldr r0, _080A5E18 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xB
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0x4
- bl sub_80A7528
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E18: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A5DF8
-
- thumb_func_start sub_80A5E1C
-sub_80A5E1C: @ 80A5E1C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A5E58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A5E36
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5E50
-_080A5E36:
- ldr r0, _080A5E5C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x1C]
- adds r0, r4, 0
- bl sub_80A41D4
- adds r0, r4, 0
- bl sub_80A5D38
-_080A5E50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E58: .4byte gMain
-_080A5E5C: .4byte gTasks
- thumb_func_end sub_80A5E1C
-
- thumb_func_start sub_80A5E60
-sub_80A5E60: @ 80A5E60
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A5DF8
- adds r0, r4, 0
- bl sub_80A3D5C
- ldr r1, _080A5E88 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5E8C @ =sub_80A5E1C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A5E88: .4byte gTasks
-_080A5E8C: .4byte sub_80A5E1C
- thumb_func_end sub_80A5E60
-
- thumb_func_start sub_80A5E90
-sub_80A5E90: @ 80A5E90
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80A5D38
- pop {r0}
- bx r0
- thumb_func_end sub_80A5E90
-
- thumb_func_start sub_80A5EA0
-sub_80A5EA0: @ 80A5EA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A5F0C
- ldr r0, _080A5EE8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A5EF8
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A5EEC @ =gScriptItemId
- ldrh r0, [r0]
- ldr r2, _080A5EF0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl sub_80A5DA0
- ldr r1, _080A5EF4 @ =gUnknown_083C16F4
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- b _080A5F0C
- .align 2, 0
-_080A5EE8: .4byte gMain
-_080A5EEC: .4byte gScriptItemId
-_080A5EF0: .4byte gTasks
-_080A5EF4: .4byte gUnknown_083C16F4
-_080A5EF8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A5F0C
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_80A5D38
-_080A5F0C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5EA0
-
- thumb_func_start sub_80A5F14
-sub_80A5F14: @ 80A5F14
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080A5F58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A5F5C @ =sub_80A5EA0
- str r1, [r0]
- movs r0, 0x3
- bl sub_80A7528
- ldr r0, _080A5F60 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A5F64
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x9
- movs r3, 0x7
- bl sub_80A4DD8
- b _080A5F78
- .align 2, 0
-_080A5F58: .4byte gTasks
-_080A5F5C: .4byte sub_80A5EA0
-_080A5F60: .4byte gUnknown_02038559
-_080A5F64:
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x9
- movs r3, 0x6
- bl sub_80A4DD8
-_080A5F78:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F14
-
- thumb_func_start sub_80A5F80
-sub_80A5F80: @ 80A5F80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5F80
-
- thumb_func_start sub_80A5FAC
-sub_80A5FAC: @ 80A5FAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A5FD0 @ =gSaveBlock1
- ldr r1, _080A5FD4 @ =0x00000496
- adds r4, r0, r1
- ldr r5, _080A5FD8 @ =gScriptItemId
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080A5FDC
- bl sub_80A40D0
- movs r0, 0
- b _080A5FE2
- .align 2, 0
-_080A5FD0: .4byte gSaveBlock1
-_080A5FD4: .4byte 0x00000496
-_080A5FD8: .4byte gScriptItemId
-_080A5FDC:
- bl sub_80A413C
- ldrh r0, [r5]
-_080A5FE2:
- strh r0, [r4]
- movs r0, 0
- bl sub_80A7528
- adds r0, r6, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r6, 0
- bl sub_80A37C0
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5FAC
-
- thumb_func_start sub_80A6000
-sub_80A6000: @ 80A6000
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6000
-
- thumb_func_start sub_80A6024
-sub_80A6024: @ 80A6024
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A606C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A6062
- ldr r0, _080A6070 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A6074 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6078 @ =sub_80A6000
- str r1, [r0]
-_080A6062:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A606C: .4byte gMain
-_080A6070: .4byte gBGTilemapBuffers + 0x800
-_080A6074: .4byte gTasks
-_080A6078: .4byte sub_80A6000
- thumb_func_end sub_80A6024
-
- thumb_func_start DisplayCannotBeHeldMessage
-DisplayCannotBeHeldMessage: @ 80A607C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A73FC
- ldr r0, _080A60B4 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080A60B8 @ =gStringVar1
- bl CopyItemName
- ldr r5, _080A60BC @ =gStringVar4
- ldr r1, _080A60C0 @ =gOtherText_CantBeHeld
- adds r0, r5, 0
- bl StringExpandPlaceholders
- bl sub_80A7590
- ldr r2, _080A60C4 @ =sub_80A6024
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A60B4: .4byte gScriptItemId
-_080A60B8: .4byte gStringVar1
-_080A60BC: .4byte gStringVar4
-_080A60C0: .4byte gOtherText_CantBeHeld
-_080A60C4: .4byte sub_80A6024
- thumb_func_end DisplayCannotBeHeldMessage
-
- thumb_func_start ItemMenu_Give
-ItemMenu_Give: @ 80A60C8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- movs r0, 0x5
- bl PlaySE
- ldr r5, _080A60FC @ =gScriptItemId
- ldrh r0, [r5]
- bl sub_80F931C
- lsls r0, 24
- cmp r0, 0
- bne _080A6108
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A6100 @ =gOtherText_CantWriteMail
- ldr r2, _080A6104 @ =sub_80A6024
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A616E
- .align 2, 0
-_080A60FC: .4byte gScriptItemId
-_080A6100: .4byte gOtherText_CantWriteMail
-_080A6104: .4byte sub_80A6024
-_080A6108:
- ldrh r0, [r5]
- bl ItemId_GetImportance
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _080A6168
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _080A6128
- adds r0, r4, 0
- bl sub_80A5BF8
- b _080A616E
-_080A6128:
- ldr r1, _080A6158 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A615C @ =sub_808B020
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080A6160 @ =HandleItemMenuPaletteFade
- str r1, [r0]
- ldr r1, _080A6164 @ =gUnknown_02038561
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080A616E
- .align 2, 0
-_080A6158: .4byte gTasks
-_080A615C: .4byte sub_808B020
-_080A6160: .4byte HandleItemMenuPaletteFade
-_080A6164: .4byte gUnknown_02038561
-_080A6168:
- adds r0, r6, 0
- bl DisplayCannotBeHeldMessage
-_080A616E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ItemMenu_Give
-
- thumb_func_start sub_80A6178
-sub_80A6178: @ 80A6178
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A5AE4
- ldr r1, _080A61A0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A61A4 @ =BerryTagScreen_814625C
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A61A0: .4byte gTasks
-_080A61A4: .4byte BerryTagScreen_814625C
- thumb_func_end sub_80A6178
-
- thumb_func_start sub_80A61A8
-sub_80A61A8: @ 80A61A8
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A61C2
- ldr r0, _080A61C8 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A61CC @ =gUnknown_02038563
- strb r0, [r1]
-_080A61C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080A61C8: .4byte sub_80A50C8
-_080A61CC: .4byte gUnknown_02038563
- thumb_func_end sub_80A61A8
-
- thumb_func_start sub_80A61D0
-sub_80A61D0: @ 80A61D0
- push {lr}
- ldr r0, _080A61E4 @ =gUnknown_03000701
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _080A61E8 @ =sub_80A61A8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A61E4: .4byte gUnknown_03000701
-_080A61E8: .4byte sub_80A61A8
- thumb_func_end sub_80A61D0
-
- thumb_func_start sub_80A61EC
-sub_80A61EC: @ 80A61EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A620C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6210 @ =sub_808A3F8
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A620C: .4byte gTasks
-_080A6210: .4byte sub_808A3F8
- thumb_func_end sub_80A61EC
-
- thumb_func_start sub_80A6214
-sub_80A6214: @ 80A6214
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080A6244 @ =gUnknown_02038559
- ldrb r0, [r0]
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _080A6248 @ =gScriptItemId
- ldrh r0, [r4]
- bl sub_80F931C
- lsls r0, 24
- cmp r0, 0
- bne _080A6254
- bl sub_80A73FC
- bl sub_80A7590
- ldr r1, _080A624C @ =gOtherText_CantWriteMail
- ldr r2, _080A6250 @ =sub_80A6024
- adds r0, r5, 0
- b _080A6280
- .align 2, 0
-_080A6244: .4byte gUnknown_02038559
-_080A6248: .4byte gScriptItemId
-_080A624C: .4byte gOtherText_CantWriteMail
-_080A6250: .4byte sub_80A6024
-_080A6254:
- ldrh r0, [r4]
- bl sub_80F92F4
- lsls r0, 24
- cmp r0, 0
- bne _080A6298
- bl sub_80A73FC
- ldrh r0, [r4]
- ldr r1, _080A6288 @ =gStringVar1
- bl CopyItemName
- ldr r4, _080A628C @ =gStringVar4
- ldr r1, _080A6290 @ =gOtherText_CantBeHeldHere
- adds r0, r4, 0
- bl StringExpandPlaceholders
- bl sub_80A7590
- ldr r2, _080A6294 @ =sub_80A6024
- adds r0, r5, 0
- adds r1, r4, 0
-_080A6280:
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A62D2
- .align 2, 0
-_080A6288: .4byte gStringVar1
-_080A628C: .4byte gStringVar4
-_080A6290: .4byte gOtherText_CantBeHeldHere
-_080A6294: .4byte sub_80A6024
-_080A6298:
- cmp r6, 0x5
- beq _080A62CC
- ldrh r0, [r4]
- bl ItemId_GetImportance
- lsls r0, 24
- cmp r0, 0
- bne _080A62CC
- ldr r1, _080A62C4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r2, _080A62C8 @ =sub_808A3F8
- lsrs r1, r2, 16
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r5, 0
- bl sub_80A5AAC
- b _080A62D2
- .align 2, 0
-_080A62C4: .4byte gTasks
-_080A62C8: .4byte sub_808A3F8
-_080A62CC:
- adds r0, r5, 0
- bl DisplayCannotBeHeldMessage
-_080A62D2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6214
-
- thumb_func_start sub_80A62D8
-sub_80A62D8: @ 80A62D8
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A62F2
- ldr r0, _080A62F8 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A62FC @ =gUnknown_02038563
- strb r0, [r1]
-_080A62F2:
- pop {r0}
- bx r0
- .align 2, 0
-_080A62F8: .4byte sub_80A50C8
-_080A62FC: .4byte gUnknown_02038563
- thumb_func_end sub_80A62D8
-
- thumb_func_start sub_80A6300
-sub_80A6300: @ 80A6300
- push {lr}
- ldr r0, _080A6314 @ =gUnknown_03000701
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, _080A6318 @ =sub_80A62D8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6314: .4byte gUnknown_03000701
-_080A6318: .4byte sub_80A62D8
- thumb_func_end sub_80A6300
-
- thumb_func_start sub_80A631C
-sub_80A631C: @ 80A631C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6344 @ =gFieldCallback
- ldr r1, _080A6348 @ =sub_80B3050
- str r1, [r2]
- ldr r2, _080A634C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6350 @ =c2_exit_to_overworld_2_switch
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6344: .4byte gFieldCallback
-_080A6348: .4byte sub_80B3050
-_080A634C: .4byte gTasks
-_080A6350: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A631C
-
- thumb_func_start sub_80A6354
-sub_80A6354: @ 80A6354
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80A7590
- ldr r0, _080A63C4 @ =gTasks
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r0
- ldr r4, _080A63C8 @ =gUnknown_03005D10
- ldr r3, _080A63CC @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r2, 0x1C]
- movs r0, 0
- ldrsb r0, [r3, r0]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r4, _080A63D0 @ =gScriptItemId
- ldrh r0, [r4]
- ldr r1, _080A63D4 @ =gStringVar2
- bl CopyItemName
- ldrh r0, [r4]
- bl ItemId_GetPrice
- lsls r0, 16
- cmp r0, 0
- bne _080A63E4
- ldr r4, _080A63D8 @ =gStringVar4
- ldr r1, _080A63DC @ =gOtherText_CantBuyThat
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A63E0 @ =sub_80A6444
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A63FA
- .align 2, 0
-_080A63C4: .4byte gTasks
-_080A63C8: .4byte gUnknown_03005D10
-_080A63CC: .4byte gUnknown_02038559
-_080A63D0: .4byte gScriptItemId
-_080A63D4: .4byte gStringVar2
-_080A63D8: .4byte gStringVar4
-_080A63DC: .4byte gOtherText_CantBuyThat
-_080A63E0: .4byte sub_80A6444
-_080A63E4:
- ldr r4, _080A6400 @ =gStringVar4
- ldr r1, _080A6404 @ =gOtherText_HowManyToSell
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6408 @ =sub_80A648C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
-_080A63FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6400: .4byte gStringVar4
-_080A6404: .4byte gOtherText_HowManyToSell
-_080A6408: .4byte sub_80A648C
- thumb_func_end sub_80A6354
-
- thumb_func_start sub_80A640C
-sub_80A640C: @ 80A640C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A6440 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6440: .4byte gTasks
- thumb_func_end sub_80A640C
-
- thumb_func_start sub_80A6444
-sub_80A6444: @ 80A6444
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A6480 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A6484 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6488 @ =sub_80A640C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6480: .4byte gBGTilemapBuffers + 0x800
-_080A6484: .4byte gTasks
-_080A6488: .4byte sub_80A640C
- thumb_func_end sub_80A6444
-
- thumb_func_start sub_80A648C
-sub_80A648C: @ 80A648C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080A64E8 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput
- str r0, [r4]
- ldr r0, _080A64F0 @ =gBGTilemapBuffers + 0x800
- movs r5, 0x2
- str r5, [sp]
- movs r1, 0x1
- movs r2, 0xB
- movs r3, 0xC
- bl sub_80A4008
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuDrawTextWindow
- movs r0, 0x1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0xB
- strh r0, [r4, 0xE]
- ldr r0, _080A64F4 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x3
- bne _080A64F8
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xB
- bl sub_80A418C
- b _080A6506
- .align 2, 0
-_080A64E8: .4byte gTasks
-_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
-_080A64F0: .4byte gBGTilemapBuffers + 0x800
-_080A64F4: .4byte gUnknown_02038559
-_080A64F8:
- str r5, [sp]
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xB
- bl sub_80A418C
-_080A6506:
- ldr r0, _080A651C @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl BuyMenuDisplayMessage
- bl sub_80A683C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A651C: .4byte gScriptItemId
- thumb_func_end sub_80A648C
-
- thumb_func_start sub_80A6520
-sub_80A6520: @ 80A6520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A6544 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A653E
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
-_080A653E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6544: .4byte gMain
- thumb_func_end sub_80A6520
-
- thumb_func_start sub_80A6548
-sub_80A6548: @ 80A6548
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_80A48F8
- ldr r1, _080A656C @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A6570 @ =sub_80A6520
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A656C: .4byte gTasks
-_080A6570: .4byte sub_80A6520
- thumb_func_end sub_80A6548
-
- thumb_func_start sub_80A6574
-sub_80A6574: @ 80A6574
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x5F
- bl PlaySE
- ldr r0, _080A65A0 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080A65A4 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r1
- ldrb r1, [r4, 0xA]
- bl sub_80A6870
- ldr r0, _080A65A8 @ =sub_80A6548
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A65A0: .4byte gScriptItemId
-_080A65A4: .4byte gTasks
-_080A65A8: .4byte sub_80A6548
- thumb_func_end sub_80A6574
-
- thumb_func_start sub_80A65AC
-sub_80A65AC: @ 80A65AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _080A6600 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x7
- movs r2, 0x6
- movs r3, 0x6
- bl sub_80A36B8
- ldr r0, _080A6604 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080A6608 @ =gStringVar2
- bl CopyItemName
- ldr r4, _080A660C @ =gStringVar4
- ldr r1, _080A6610 @ =gOtherText_SoldItem
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6614 @ =sub_80A6574
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- adds r0, r5, 0
- bl sub_80A3D5C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6600: .4byte gBGTilemapBuffers + 0x800
-_080A6604: .4byte gScriptItemId
-_080A6608: .4byte gStringVar2
-_080A660C: .4byte gStringVar4
-_080A6610: .4byte gOtherText_SoldItem
-_080A6614: .4byte sub_80A6574
- thumb_func_end sub_80A65AC
-
- thumb_func_start sub_80A6618
-sub_80A6618: @ 80A6618
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _080A664C @ =gBGTilemapBuffers + 0x800
- movs r1, 0x6
- str r1, [sp]
- movs r1, 0x7
- movs r2, 0x6
- movs r3, 0x6
- bl sub_80A36B8
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A664C: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A6618
-
- thumb_func_start sub_80A6650
-sub_80A6650: @ 80A6650
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80A5D78
- ldr r1, _080A666C @ =gUnknown_083C16FC
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A666C: .4byte gUnknown_083C16FC
- thumb_func_end sub_80A6650
-
- thumb_func_start Task_BuyHowManyDialogueHandleInput
-Task_BuyHowManyDialogueHandleInput: @ 80A6670
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- adds r0, r5, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A66B4
- movs r0, 0x6
- movs r1, 0xB
- movs r2, 0xC
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _080A66AC @ =gScriptItemId
- ldrh r0, [r0]
- ldr r2, _080A66B0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- ldrh r1, [r1, 0xA]
- bl BuyMenuDisplayMessage
- b _080A6758
- .align 2, 0
-_080A66AC: .4byte gScriptItemId
-_080A66B0: .4byte gTasks
-_080A66B4:
- ldr r0, _080A6724 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A6744
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldr r0, _080A6728 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xD
- bl sub_80A36B8
- ldr r4, _080A672C @ =gStringVar1
- ldr r0, _080A6730 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetPrice
- lsls r0, 16
- lsrs r0, 17
- ldr r2, _080A6734 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- muls r1, r0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- ldr r4, _080A6738 @ =gStringVar4
- ldr r1, _080A673C @ =gOtherText_CanPay
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080A6740 @ =sub_80A6650
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayCannotUseItemMessage
- b _080A6758
- .align 2, 0
-_080A6724: .4byte gMain
-_080A6728: .4byte gBGTilemapBuffers + 0x800
-_080A672C: .4byte gStringVar1
-_080A6730: .4byte gScriptItemId
-_080A6734: .4byte gTasks
-_080A6738: .4byte gStringVar4
-_080A673C: .4byte gOtherText_CanPay
-_080A6740: .4byte sub_80A6650
-_080A6744:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6758
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl BuyMenuPrintItemQuantityAndPrice
-_080A6758:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end Task_BuyHowManyDialogueHandleInput
-
- thumb_func_start sub_80A6760
-sub_80A6760: @ 80A6760
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080A6794 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6794: .4byte gTasks
- thumb_func_end sub_80A6760
-
- thumb_func_start BuyMenuPrintItemQuantityAndPrice
-BuyMenuPrintItemQuantityAndPrice: @ 80A6798
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A67E8 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl sub_80A36B8
- movs r0, 0
- movs r1, 0
- bl RemoveMoneyLabelObject
- movs r0, 0
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080A67EC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080A67F0 @ =sub_80A6760
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A67E8: .4byte gBGTilemapBuffers + 0x800
-_080A67EC: .4byte gTasks
-_080A67F0: .4byte sub_80A6760
- thumb_func_end BuyMenuPrintItemQuantityAndPrice
-
- thumb_func_start BuyMenuDisplayMessage
-BuyMenuDisplayMessage: @ 80A67F4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl ItemId_GetPrice
- lsls r0, 16
- lsrs r0, 17
- muls r0, r5
- movs r1, 0x6
- movs r2, 0x6
- movs r3, 0xB
- bl sub_80B7A94
- ldr r6, _080A6838 @ =gStringVar1
- adds r0, r4, 0
- bl ItemId_GetPrice
- lsls r0, 16
- lsrs r0, 17
- adds r1, r0, 0
- muls r1, r5
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6838: .4byte gStringVar1
- thumb_func_end BuyMenuDisplayMessage
-
- thumb_func_start sub_80A683C
-sub_80A683C: @ 80A683C
- push {lr}
- sub sp, 0x4
- ldr r0, _080A6868 @ =gSaveBlock1
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80B7C14
- ldr r0, _080A686C @ =gBGTilemapBuffers + 0x800
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0xC
- bl sub_80A4008
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6868: .4byte gSaveBlock1
-_080A686C: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80A683C
-
- thumb_func_start sub_80A6870
-sub_80A6870: @ 80A6870
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _080A68A0 @ =gSaveBlock1 + 0x490
- bl ItemId_GetPrice
- lsls r0, 16
- lsrs r0, 17
- adds r1, r0, 0
- muls r1, r4
- adds r0, r5, 0
- bl sub_80B79B8
- ldr r0, [r5]
- movs r1, 0
- movs r2, 0
- bl sub_80B7BEC
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A68A0: .4byte gSaveBlock1 + 0x490
- thumb_func_end sub_80A6870
-
- thumb_func_start sub_80A68A4
-sub_80A68A4: @ 80A68A4
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A68BE
- ldr r0, _080A68C4 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A68C8 @ =gUnknown_02038563
- strb r0, [r1]
-_080A68BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080A68C4: .4byte sub_80A50C8
-_080A68C8: .4byte gUnknown_02038563
- thumb_func_end sub_80A68A4
-
- thumb_func_start sub_80A68CC
-sub_80A68CC: @ 80A68CC
- push {lr}
- ldr r1, _080A68E4 @ =gUnknown_02038559
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _080A68E8 @ =gUnknown_03000701
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080A68EC @ =sub_80A68A4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A68E4: .4byte gUnknown_02038559
-_080A68E8: .4byte gUnknown_03000701
-_080A68EC: .4byte sub_80A68A4
- thumb_func_end sub_80A68CC
-
- thumb_func_start sub_80A68F0
-sub_80A68F0: @ 80A68F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6910 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6914 @ =sub_80546B8
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6910: .4byte gTasks
-_080A6914: .4byte sub_80546B8
- thumb_func_end sub_80A68F0
-
- thumb_func_start sub_80A6918
-sub_80A6918: @ 80A6918
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6938 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A693C @ =sub_80546B8
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AAC
- pop {r0}
- bx r0
- .align 2, 0
-_080A6938: .4byte gTasks
-_080A693C: .4byte sub_80546B8
- thumb_func_end sub_80A6918
-
- thumb_func_start sub_80A6940
-sub_80A6940: @ 80A6940
- push {lr}
-_080A6942:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6968
- ldr r0, _080A6960 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6964 @ =gUnknown_02038563
- strb r0, [r1]
- bl sub_80A699C
- b _080A6974
- .align 2, 0
-_080A6960: .4byte sub_80A50C8
-_080A6964: .4byte gUnknown_02038563
-_080A6968:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6942
-_080A6974:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6940
-
- thumb_func_start sub_80A6978
-sub_80A6978: @ 80A6978
- push {lr}
- ldr r1, _080A6990 @ =gUnknown_02038559
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _080A6994 @ =gUnknown_03000701
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080A6998 @ =sub_80A6940
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6990: .4byte gUnknown_02038559
-_080A6994: .4byte gUnknown_03000701
-_080A6998: .4byte sub_80A6940
- thumb_func_end sub_80A6978
-
- thumb_func_start sub_80A699C
-sub_80A699C: @ 80A699C
- ldr r1, _080A69AC @ =gUnknown_03000704
- ldr r0, _080A69B0 @ =gUnknown_083C16B8
- str r0, [r1]
- ldr r1, _080A69B4 @ =gUnknown_02038564
- movs r0, 0x4
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A69AC: .4byte gUnknown_03000704
-_080A69B0: .4byte gUnknown_083C16B8
-_080A69B4: .4byte gUnknown_02038564
- thumb_func_end sub_80A699C
-
- thumb_func_start sub_80A69B8
-sub_80A69B8: @ 80A69B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A69D8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A69DC @ =sub_804E990
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A69D8: .4byte gTasks
-_080A69DC: .4byte sub_804E990
- thumb_func_end sub_80A69B8
-
- thumb_func_start sub_80A69E0
-sub_80A69E0: @ 80A69E0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6A00 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6A04 @ =sub_804E990
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AAC
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A00: .4byte gTasks
-_080A6A04: .4byte sub_804E990
- thumb_func_end sub_80A69E0
-
- thumb_func_start sub_80A6A08
-sub_80A6A08: @ 80A6A08
- push {lr}
- bl sub_80A34B4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6A22
- ldr r0, _080A6A28 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6A2C @ =gUnknown_02038563
- strb r0, [r1]
-_080A6A22:
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A28: .4byte sub_80A50C8
-_080A6A2C: .4byte gUnknown_02038563
- thumb_func_end sub_80A6A08
-
- thumb_func_start sub_80A6A30
-sub_80A6A30: @ 80A6A30
- push {lr}
- ldr r0, _080A6A44 @ =gUnknown_03000701
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _080A6A48 @ =sub_80A6A08
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A44: .4byte gUnknown_03000701
-_080A6A48: .4byte sub_80A6A08
- thumb_func_end sub_80A6A30
-
- thumb_func_start sub_80A6A4C
-sub_80A6A4C: @ 80A6A4C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6A74 @ =gFieldCallback
- ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit
- str r1, [r2]
- ldr r2, _080A6A7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r3, _080A6A80 @ =c2_exit_to_overworld_2_switch
- lsrs r2, r3, 16
- strh r2, [r1, 0x18]
- strh r3, [r1, 0x1A]
- bl sub_80A5AE4
- pop {r0}
- bx r0
- .align 2, 0
-_080A6A74: .4byte gFieldCallback
-_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit
-_080A6A7C: .4byte gTasks
-_080A6A80: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_80A6A4C
-
- thumb_func_start sub_80A6A84
-sub_80A6A84: @ 80A6A84
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r6, _080A6AE8 @ =gTasks + 0x8
- adds r0, r4, r6
- mov r8, r0
- ldr r0, _080A6AEC @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r0, _080A6AF0 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080A6AF4 @ =gStringVar1
- bl CopyItemName
- ldr r0, _080A6AF8 @ =gStringVar2
- mov r2, r8
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xB
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0x7
- bl sub_80A7528
- adds r0, r5, 0
- bl sub_80A3D5C
- subs r6, 0x8
- adds r4, r6
- ldr r0, _080A6AFC @ =sub_80A5E1C
- str r0, [r4]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6AE8: .4byte gTasks + 0x8
-_080A6AEC: .4byte gBGTilemapBuffers + 0x800
-_080A6AF0: .4byte gScriptItemId
-_080A6AF4: .4byte gStringVar1
-_080A6AF8: .4byte gStringVar2
-_080A6AFC: .4byte sub_80A5E1C
- thumb_func_end sub_80A6A84
-
- thumb_func_start sub_80A6B00
-sub_80A6B00: @ 80A6B00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080A6B54 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080A6B1A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6B4C
-_080A6B1A:
- ldr r1, _080A6B58 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r1, _080A6B5C @ =gUnknown_03005D10
- ldr r0, _080A6B60 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A5D38
-_080A6B4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6B54: .4byte gMain
-_080A6B58: .4byte gTasks
-_080A6B5C: .4byte gUnknown_03005D10
-_080A6B60: .4byte gUnknown_02038559
- thumb_func_end sub_80A6B00
-
- thumb_func_start sub_80A6B64
-sub_80A6B64: @ 80A6B64
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r5, r0, 3
- ldr r6, _080A6B9C @ =gTasks + 0x8
- adds r7, r5, r6
- ldr r0, _080A6BA0 @ =gScriptItemId
- mov r8, r0
- ldrh r0, [r0]
- bl ItemId_GetImportance
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080A6BA8
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080A6BA4 @ =sub_80A6B00
- str r1, [r0]
- movs r0, 0x9
- bl sub_80A7528
- b _080A6BD2
- .align 2, 0
-_080A6B9C: .4byte gTasks + 0x8
-_080A6BA0: .4byte gScriptItemId
-_080A6BA4: .4byte sub_80A6B00
-_080A6BA8:
- mov r1, r8
- ldrh r0, [r1]
- ldrh r1, [r7, 0x2]
- bl AddPCItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6BC2
- adds r0, r4, 0
- bl sub_80A6A84
- b _080A6BD2
-_080A6BC2:
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080A6BDC @ =sub_80A6B00
- str r1, [r0]
- movs r0, 0x8
- bl sub_80A7528
-_080A6BD2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6BDC: .4byte sub_80A6B00
- thumb_func_end sub_80A6B64
-
- thumb_func_start sub_80A6BE0
-sub_80A6BE0: @ 80A6BE0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- adds r0, r4, 0
- bl sub_80A5350
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A6C58
- ldr r0, _080A6C18 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A6C20
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A6C1C @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- adds r0, r4, 0
- bl sub_80A6B64
- b _080A6C58
- .align 2, 0
-_080A6C18: .4byte gMain
-_080A6C1C: .4byte gBGTilemapBuffers + 0x800
-_080A6C20:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6C58
- ldr r1, _080A6C60 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _080A6C64 @ =gUnknown_03005D10
- ldr r0, _080A6C68 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_80A5D38
-_080A6C58:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6C60: .4byte gTasks
-_080A6C64: .4byte gUnknown_03005D10
-_080A6C68: .4byte gUnknown_02038559
- thumb_func_end sub_80A6BE0
-
- thumb_func_start sub_80A6C6C
-sub_80A6C6C: @ 80A6C6C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080A6CE4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldr r2, _080A6CE8 @ =gUnknown_03005D10
- ldr r6, _080A6CEC @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r5, 0x1C]
- movs r0, 0
- ldrsb r0, [r6, r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- movs r0, 0x5
- bl PlaySE
- bl sub_80A7590
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x4
- beq _080A6D0A
- ldr r0, _080A6CF0 @ =sub_80A6BE0
- str r0, [r5]
- movs r0, 0x6
- bl sub_80A7528
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x3
- bne _080A6CF4
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x6
- movs r2, 0x9
- movs r3, 0x7
- bl sub_80A4DD8
- b _080A6D14
- .align 2, 0
-_080A6CE4: .4byte gTasks
-_080A6CE8: .4byte gUnknown_03005D10
-_080A6CEC: .4byte gUnknown_02038559
-_080A6CF0: .4byte sub_80A6BE0
-_080A6CF4:
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x7
- movs r2, 0x9
- movs r3, 0x6
- bl sub_80A4DD8
- b _080A6D14
-_080A6D0A:
- movs r0, 0x1
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- bl sub_80A6B64
-_080A6D14:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A6C6C
-
- thumb_func_start sub_80A6D1C
-sub_80A6D1C: @ 80A6D1C
- push {r4,r5,lr}
- bl HideMapNamePopup
- ldr r0, _080A6D70 @ =gSaveBlock1
- ldr r1, _080A6D74 @ =0x00000496
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0
- beq _080A6D84
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bne _080A6D80
- bl ScriptContext2_Enable
- bl FreezeMapObjects
- bl sub_80594C0
- bl sub_80597F4
- ldr r1, _080A6D78 @ =gScriptItemId
- ldrh r0, [r4]
- strh r0, [r1]
- ldrh r0, [r4]
- bl ItemId_GetFieldFunc
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A6D7C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0xC]
- b _080A6D8A
- .align 2, 0
-_080A6D70: .4byte gSaveBlock1
-_080A6D74: .4byte 0x00000496
-_080A6D78: .4byte gScriptItemId
-_080A6D7C: .4byte gTasks
-_080A6D80:
- movs r0, 0
- strh r0, [r4]
-_080A6D84:
- ldr r0, _080A6D94 @ =Event_NoRegisteredItem
- bl ScriptContext1_SetupScript
-_080A6D8A:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A6D94: .4byte Event_NoRegisteredItem
- thumb_func_end sub_80A6D1C
-
- thumb_func_start sub_80A6D98
-sub_80A6D98: @ 80A6D98
- push {lr}
-_080A6D9A:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6DBC
- ldr r0, _080A6DB4 @ =sub_80A50C8
- movs r1, 0
- bl CreateTask
- ldr r1, _080A6DB8 @ =gUnknown_02038563
- strb r0, [r1]
- b _080A6DC8
- .align 2, 0
-_080A6DB4: .4byte sub_80A50C8
-_080A6DB8: .4byte gUnknown_02038563
-_080A6DBC:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A6D9A
-_080A6DC8:
- pop {r0}
- bx r0
- thumb_func_end sub_80A6D98
-
- thumb_func_start sub_80A6DCC
-sub_80A6DCC: @ 80A6DCC
- push {lr}
- ldr r1, _080A6DE4 @ =gUnknown_03000700
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080A6DE8 @ =gUnknown_03000701
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080A6DEC @ =sub_80A6D98
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_080A6DE4: .4byte gUnknown_03000700
-_080A6DE8: .4byte gUnknown_03000701
-_080A6DEC: .4byte sub_80A6D98
- thumb_func_end sub_80A6DCC
-
- thumb_func_start sub_80A6DF0
-sub_80A6DF0: @ 80A6DF0
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r4, _080A6E4C @ =gUnknown_02038564
- ldrb r0, [r4]
- subs r0, 0x1
- lsls r0, 25
- lsrs r6, r0, 24
- movs r1, 0x9
- subs r1, r6
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xC
- bl MenuDrawTextWindow
- movs r2, 0xA
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x8
- movs r3, 0x5
- bl sub_80A4008
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A6E58
- ldr r1, _080A6E50 @ =gUnknown_083C1640
- ldr r0, _080A6E54 @ =gUnknown_03000704
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0xA
- bl MenuPrint
- b _080A6E80
- .align 2, 0
-_080A6E4C: .4byte gUnknown_02038564
-_080A6E50: .4byte gUnknown_083C1640
-_080A6E54: .4byte gUnknown_03000704
-_080A6E58:
- ldr r5, _080A6EAC @ =gUnknown_083C1640
- ldr r4, _080A6EB0 @ =gUnknown_03000704
- ldr r0, [r4]
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0x8
- bl MenuPrint
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- lsls r0, 3
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x8
- movs r2, 0xA
- bl MenuPrint
-_080A6E80:
- movs r2, 0xA
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _080A6EB4 @ =gUnknown_02038564
- ldrb r3, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- bl InitMenu
- movs r0, 0x2
- bl sub_80A7528
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6EAC: .4byte gUnknown_083C1640
-_080A6EB0: .4byte gUnknown_03000704
-_080A6EB4: .4byte gUnknown_02038564
- thumb_func_end sub_80A6DF0
-
- thumb_func_start sub_80A6EB8
-sub_80A6EB8: @ 80A6EB8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r2, _080A6EE0 @ =gMain
- ldrh r0, [r2, 0x30]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- bne _080A6EE8
- ldr r4, _080A6EE4 @ =gUnknown_03000700
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A6FC0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _080A6F02
- .align 2, 0
-_080A6EE0: .4byte gMain
-_080A6EE4: .4byte gUnknown_03000700
-_080A6EE8:
- cmp r1, 0x80
- bne _080A6F14
- ldr r4, _080A6F0C @ =gUnknown_03000700
- ldrb r0, [r4]
- adds r0, 0x1
- ldr r1, _080A6F10 @ =gUnknown_02038564
- ldrb r1, [r1]
- cmp r0, r1
- bge _080A6FC0
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_080A6F02:
- bl MoveMenuCursor
- strb r0, [r4]
- b _080A6FC0
- .align 2, 0
-_080A6F0C: .4byte gUnknown_03000700
-_080A6F10: .4byte gUnknown_02038564
-_080A6F14:
- ldrh r1, [r2, 0x2E]
- movs r2, 0x1
- ands r2, r1
- cmp r2, 0
- beq _080A6F84
- ldr r1, _080A6F68 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r1, _080A6F6C @ =gUnknown_03005D10
- ldr r0, _080A6F70 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A6F74 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r1, _080A6F78 @ =gUnknown_083C1640
- ldr r0, _080A6F7C @ =gUnknown_03000700
- ldrb r2, [r0]
- ldr r0, _080A6F80 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _080A6FC0
- .align 2, 0
-_080A6F68: .4byte gTasks
-_080A6F6C: .4byte gUnknown_03005D10
-_080A6F70: .4byte gUnknown_02038559
-_080A6F74: .4byte gBGTilemapBuffers + 0x800
-_080A6F78: .4byte gUnknown_083C1640
-_080A6F7C: .4byte gUnknown_03000700
-_080A6F80: .4byte gUnknown_03000704
-_080A6F84:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A6FC0
- ldr r1, _080A6FC8 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, _080A6FCC @ =gUnknown_03005D10
- ldr r0, _080A6FD0 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- ldr r0, _080A6FD4 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r0, _080A6FD8 @ =gUnknown_083C1640
- ldr r1, [r0, 0x2C]
- adds r0, r5, 0
- bl _call_via_r1
-_080A6FC0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A6FC8: .4byte gTasks
-_080A6FCC: .4byte gUnknown_03005D10
-_080A6FD0: .4byte gUnknown_02038559
-_080A6FD4: .4byte gBGTilemapBuffers + 0x800
-_080A6FD8: .4byte gUnknown_083C1640
- thumb_func_end sub_80A6EB8
-
- thumb_func_start sub_80A6FDC
-sub_80A6FDC: @ 80A6FDC
- push {lr}
- ldr r0, _080A6FF8 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetBattleUsage
- lsls r0, 24
- cmp r0, 0
- beq _080A7008
- ldr r1, _080A6FFC @ =gUnknown_03000704
- ldr r0, _080A7000 @ =gUnknown_083C1708
- str r0, [r1]
- ldr r1, _080A7004 @ =gUnknown_02038564
- movs r0, 0x2
- b _080A7012
- .align 2, 0
-_080A6FF8: .4byte gScriptItemId
-_080A6FFC: .4byte gUnknown_03000704
-_080A7000: .4byte gUnknown_083C1708
-_080A7004: .4byte gUnknown_02038564
-_080A7008:
- ldr r1, _080A7018 @ =gUnknown_03000704
- ldr r0, _080A701C @ =gUnknown_083C170A
- str r0, [r1]
- ldr r1, _080A7020 @ =gUnknown_02038564
- movs r0, 0x1
-_080A7012:
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080A7018: .4byte gUnknown_03000704
-_080A701C: .4byte gUnknown_083C170A
-_080A7020: .4byte gUnknown_02038564
- thumb_func_end sub_80A6FDC
-
- thumb_func_start sub_80A7024
-sub_80A7024: @ 80A7024
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080A707C @ =gUnknown_03000700
- movs r0, 0
- strb r0, [r1]
- bl sub_80A6FDC
- ldr r0, _080A7080 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldr r3, _080A7084 @ =gUnknown_03005D10
- ldr r2, _080A7088 @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r4, 0x1C]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r0, _080A708C @ =gBGTilemapBuffers + 0x800
- bl sub_80A6DF0
- ldr r0, _080A7090 @ =sub_80A6EB8
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A707C: .4byte gUnknown_03000700
-_080A7080: .4byte gTasks
-_080A7084: .4byte gUnknown_03005D10
-_080A7088: .4byte gUnknown_02038559
-_080A708C: .4byte gBGTilemapBuffers + 0x800
-_080A7090: .4byte sub_80A6EB8
- thumb_func_end sub_80A7024
-
- thumb_func_start sub_80A7094
-sub_80A7094: @ 80A7094
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080A70CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _080A70D0 @ =sub_802E424
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080A70CC: .4byte gTasks
-_080A70D0: .4byte sub_802E424
-_080A70D4: .4byte HandleItemMenuPaletteFade
- thumb_func_end sub_80A7094
-
- thumb_func_start sub_80A70D8
-sub_80A70D8: @ 80A70D8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_80A7094
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A70D8
-
- thumb_func_start ItemMenu_UseInBattle
-ItemMenu_UseInBattle: @ 80A70F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080A7120 @ =gScriptItemId
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- cmp r0, 0
- beq _080A711A
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4]
- bl ItemId_GetBattleFunc
- adds r1, r0, 0
- adds r0, r5, 0
- bl _call_via_r1
-_080A711A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7120: .4byte gScriptItemId
- thumb_func_end ItemMenu_UseInBattle
-
- thumb_func_start sub_80A7124
-sub_80A7124: @ 80A7124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80A7528
- adds r0, r4, 0
- bl sub_80A41D4
- bl ItemListMenu_InitMenu
- adds r0, r4, 0
- bl sub_80A37C0
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7124
-
- thumb_func_start sub_80A7150
-sub_80A7150: @ 80A7150
- push {r4,r5,lr}
- ldr r4, _080A7158 @ =gUnknown_02038563
- ldr r5, _080A715C @ =gTasks
- b _080A716C
- .align 2, 0
-_080A7158: .4byte gUnknown_02038563
-_080A715C: .4byte gTasks
-_080A7160:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080A7190
-_080A716C:
- bl sub_80A317C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A7160
- ldr r0, _080A7198 @ =sub_80A7230
- movs r1, 0
- bl CreateTask
- strb r0, [r4]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0
- strh r1, [r0, 0x26]
-_080A7190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7198: .4byte sub_80A7230
- thumb_func_end sub_80A7150
-
- thumb_func_start PrepareBagForWallyTutorial
-PrepareBagForWallyTutorial: @ 80A719C
- push {r4,r5,lr}
- ldr r0, _080A7214 @ =gUnknown_03000700
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080A7218 @ =gUnknown_02038559
- strb r1, [r0]
- movs r1, 0
- ldr r4, _080A721C @ =0x0201e000
- ldr r5, _080A7220 @ =gSaveBlock1 + 0x560
- ldr r3, _080A7224 @ =gUnknown_03005D10
- movs r2, 0
-_080A71B2:
- lsls r0, r1, 2
- adds r0, r3
- strb r2, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x4
- bls _080A71B2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x50
- bl memcpy
- movs r1, 0x80
- lsls r1, 5
- adds r0, r4, r1
- adds r4, r5, 0
- adds r4, 0xA0
- adds r1, r4, 0
- movs r2, 0x40
- bl memcpy
- adds r0, r5, 0
- movs r1, 0x14
- bl ClearItemSlots
- adds r0, r4, 0
- movs r1, 0x10
- bl ClearItemSlots
- movs r0, 0xD
- movs r1, 0x1
- bl AddBagItem
- movs r0, 0x4
- movs r1, 0x1
- bl AddBagItem
- ldr r1, _080A7228 @ =gUnknown_03000701
- movs r0, 0x7
- strb r0, [r1]
- ldr r0, _080A722C @ =sub_80A7150
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7214: .4byte gUnknown_03000700
-_080A7218: .4byte gUnknown_02038559
-_080A721C: .4byte 0x0201e000
-_080A7220: .4byte gSaveBlock1 + 0x560
-_080A7224: .4byte gUnknown_03005D10
-_080A7228: .4byte gUnknown_03000701
-_080A722C: .4byte sub_80A7150
- thumb_func_end PrepareBagForWallyTutorial
-
- thumb_func_start sub_80A7230
-sub_80A7230: @ 80A7230
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r0, _080A725C @ =gTasks + 0x8
- mov r8, r0
- adds r7, r6, r0
- movs r0, 0x1E
- ldrsh r1, [r7, r0]
- cmp r1, 0xCC
- beq _080A727A
- cmp r1, 0xCC
- bgt _080A7260
- cmp r1, 0x66
- beq _080A726A
- b _080A7358
- .align 2, 0
-_080A725C: .4byte gTasks + 0x8
-_080A7260:
- movs r0, 0x99
- lsls r0, 1
- cmp r1, r0
- beq _080A72F4
- b _080A7358
-_080A726A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0x2
- bl sub_80A4E8C
- b _080A7358
-_080A727A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- bl sub_80F98A4
- movs r0, 0x3
- bl sub_80F98A4
- ldr r1, _080A72D8 @ =gScriptItemId
- movs r0, 0x4
- strh r0, [r1]
- ldr r1, _080A72DC @ =gUnknown_03000704
- ldr r0, _080A72E0 @ =gUnknown_083C1708
- str r0, [r1]
- ldr r1, _080A72E4 @ =gUnknown_02038564
- movs r0, 0x2
- strb r0, [r1]
- mov r0, r8
- adds r4, r0, r6
- ldr r3, _080A72E8 @ =gUnknown_03005D10
- ldr r2, _080A72EC @ =gUnknown_02038559
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- adds r1, 0x1
- strh r1, [r4, 0x14]
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0]
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_80A48E8
- bl sub_80A73FC
- ldr r0, _080A72F0 @ =gBGTilemapBuffers + 0x800
- bl sub_80A6DF0
- b _080A7358
- .align 2, 0
-_080A72D8: .4byte gScriptItemId
-_080A72DC: .4byte gUnknown_03000704
-_080A72E0: .4byte gUnknown_083C1708
-_080A72E4: .4byte gUnknown_02038564
-_080A72E8: .4byte gUnknown_03005D10
-_080A72EC: .4byte gUnknown_02038559
-_080A72F0: .4byte gBGTilemapBuffers + 0x800
-_080A72F4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080A7344 @ =gBGTilemapBuffers + 0x800
- bl sub_80A4DA4
- ldr r4, _080A7348 @ =gSaveBlock1 + 0x560
- ldr r5, _080A734C @ =0x0201e000
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x50
- bl memcpy
- adds r4, 0xA0
- movs r0, 0x80
- lsls r0, 5
- adds r5, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x40
- bl memcpy
- ldr r1, _080A7350 @ =sub_802E424
- lsrs r0, r1, 16
- strh r0, [r7, 0x10]
- strh r1, [r7, 0x12]
- mov r0, r8
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _080A7354 @ =HandleItemMenuPaletteFade
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080A735E
- .align 2, 0
-_080A7344: .4byte gBGTilemapBuffers + 0x800
-_080A7348: .4byte gSaveBlock1 + 0x560
-_080A734C: .4byte 0x0201e000
-_080A7350: .4byte sub_802E424
-_080A7354: .4byte HandleItemMenuPaletteFade
-_080A7358:
- ldrh r0, [r7, 0x1E]
- adds r0, 0x1
- strh r0, [r7, 0x1E]
-_080A735E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7230
-
- thumb_func_start ItemListMenu_InitMenu
-ItemListMenu_InitMenu: @ 80A736C
- push {lr}
- sub sp, 0x8
- ldr r1, _080A73B0 @ =gUnknown_03005D10
- ldr r0, _080A73B4 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0xE
- movs r2, 0x2
- bl InitMenu
- ldr r1, _080A73B8 @ =0x0000ffff
- ldr r3, _080A73BC @ =0x00002d9f
- movs r0, 0xF
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl CreateBlendedOutlineCursor
- bl sub_80A73C0
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080A73B0: .4byte gUnknown_03005D10
-_080A73B4: .4byte gUnknown_02038559
-_080A73B8: .4byte 0x0000ffff
-_080A73BC: .4byte 0x00002d9f
- thumb_func_end ItemListMenu_InitMenu
-
- thumb_func_start sub_80A73C0
-sub_80A73C0: @ 80A73C0
- push {lr}
- ldr r1, _080A73E8 @ =gUnknown_03005D10
- ldr r0, _080A73EC @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 28
- movs r0, 0x80
- lsls r0, 21
- adds r1, r0
- lsrs r1, 24
- movs r0, 0x70
- bl sub_814AD7C
- pop {r0}
- bx r0
- .align 2, 0
-_080A73E8: .4byte gUnknown_03005D10
-_080A73EC: .4byte gUnknown_02038559
- thumb_func_end sub_80A73C0
-
- thumb_func_start sub_80A73F0
-sub_80A73F0: @ 80A73F0
- push {lr}
- bl sub_814ADC8
- pop {r0}
- bx r0
- thumb_func_end sub_80A73F0
-
- thumb_func_start sub_80A73FC
-sub_80A73FC: @ 80A73FC
- push {lr}
- bl HandleDestroyMenuCursors
- bl sub_814AD44
- pop {r0}
- bx r0
- thumb_func_end sub_80A73FC
-
- thumb_func_start sub_80A740C
-sub_80A740C: @ 80A740C
- push {lr}
- bl sub_80A75E4
- bl sub_80A7768
- bl sub_80A7420
- pop {r0}
- bx r0
- thumb_func_end sub_80A740C
-
- thumb_func_start sub_80A7420
-sub_80A7420: @ 80A7420
- push {r4,lr}
- ldr r4, _080A7438 @ =gUnknown_0203853C
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080A743C
- cmp r0, 0x3
- beq _080A7430
- b _080A7512
-_080A7430:
- movs r0, 0x2
- strb r0, [r4]
- b _080A7512
- .align 2, 0
-_080A7438: .4byte gUnknown_0203853C
-_080A743C:
- ldrb r0, [r4, 0x2]
- cmp r0, 0x9
- bhi _080A74FC
- lsls r0, 2
- ldr r1, _080A744C @ =_080A7450
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080A744C: .4byte _080A7450
- .align 2, 0
-_080A7450:
- .4byte _080A7478
- .4byte _080A74AC
- .4byte _080A74B4
- .4byte _080A74BC
- .4byte _080A74C4
- .4byte _080A74CC
- .4byte _080A74D4
- .4byte _080A74DC
- .4byte _080A74E4
- .4byte _080A74F4
-_080A7478:
- ldr r1, _080A74A0 @ =gUnknown_03005D10
- ldr r0, _080A74A4 @ =gUnknown_02038559
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _080A74A8 @ =gUnknown_03005D24
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- ldrb r1, [r4, 0x1]
- bl ItemListMenu_ChangeDescription
- b _080A74FC
- .align 2, 0
-_080A74A0: .4byte gUnknown_03005D10
-_080A74A4: .4byte gUnknown_02038559
-_080A74A8: .4byte gUnknown_03005D24
-_080A74AC:
- ldr r0, _080A74B0 @ =gOtherText_SwitchWhichItem
- b _080A74E6
- .align 2, 0
-_080A74B0: .4byte gOtherText_SwitchWhichItem
-_080A74B4:
- ldr r0, _080A74B8 @ =gOtherText_WhatWillYouDo2
- b _080A74E6
- .align 2, 0
-_080A74B8: .4byte gOtherText_WhatWillYouDo2
-_080A74BC:
- ldr r0, _080A74C0 @ =gOtherText_HowManyToToss
- b _080A74E6
- .align 2, 0
-_080A74C0: .4byte gOtherText_HowManyToToss
-_080A74C4:
- ldr r0, _080A74C8 @ =gOtherText_ThrewAwayItem
- b _080A74E6
- .align 2, 0
-_080A74C8: .4byte gOtherText_ThrewAwayItem
-_080A74CC:
- ldr r0, _080A74D0 @ =gOtherText_OkayToThrowAwayPrompt
- b _080A74E6
- .align 2, 0
-_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt
-_080A74D4:
- ldr r0, _080A74D8 @ =gOtherText_HowManyToDeposit
- b _080A74E6
- .align 2, 0
-_080A74D8: .4byte gOtherText_HowManyToDeposit
-_080A74DC:
- ldr r0, _080A74E0 @ =gOtherText_DepositedItems
- b _080A74E6
- .align 2, 0
-_080A74E0: .4byte gOtherText_DepositedItems
-_080A74E4:
- ldr r0, _080A74F0 @ =gOtherText_NoRoomForItems
-_080A74E6:
- ldrb r1, [r4, 0x1]
- bl sub_80A4A98
- b _080A74FC
- .align 2, 0
-_080A74F0: .4byte gOtherText_NoRoomForItems
-_080A74F4:
- ldr r0, _080A7518 @ =gOtherText_CantStoreSomeoneItem
- ldrb r1, [r4, 0x1]
- bl sub_80A4A98
-_080A74FC:
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080A7512
- movs r0, 0
- strb r0, [r4]
- bl sub_80A7918
-_080A7512:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7518: .4byte gOtherText_CantStoreSomeoneItem
- thumb_func_end sub_80A7420
-
- thumb_func_start sub_80A751C
-sub_80A751C: @ 80A751C
- ldr r1, _080A7524 @ =gUnknown_0203853C
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7524: .4byte gUnknown_0203853C
- thumb_func_end sub_80A751C
-
- thumb_func_start sub_80A7528
-sub_80A7528: @ 80A7528
- push {r4,lr}
- ldr r4, _080A7544 @ =gUnknown_0203853C
- movs r1, 0
- strb r1, [r4, 0x1]
- strb r0, [r4, 0x2]
- bl sub_80A78F4
- cmp r0, 0x1
- beq _080A755E
- cmp r0, 0x1
- bgt _080A7548
- cmp r0, 0
- beq _080A754E
- b _080A7566
- .align 2, 0
-_080A7544: .4byte gUnknown_0203853C
-_080A7548:
- cmp r0, 0x2
- beq _080A7562
- b _080A7566
-_080A754E:
- movs r0, 0x2
- strb r0, [r4]
-_080A7552:
- bl sub_80A7420
- ldrb r0, [r4]
- cmp r0, 0
- bne _080A7552
- b _080A7566
-_080A755E:
- movs r0, 0x3
- b _080A7564
-_080A7562:
- movs r0, 0x1
-_080A7564:
- strb r0, [r4]
-_080A7566:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7528
-
- thumb_func_start sub_80A756C
-sub_80A756C: @ 80A756C
- push {r4,lr}
- ldr r4, _080A758C @ =gUnknown_0203853C
- ldrb r0, [r4]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A7580
- bl sub_80A7918
-_080A7580:
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A758C: .4byte gUnknown_0203853C
- thumb_func_end sub_80A756C
-
- thumb_func_start sub_80A7590
-sub_80A7590: @ 80A7590
- push {lr}
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- bl sub_80A756C
- pop {r0}
- bx r0
- thumb_func_end sub_80A7590
-
- thumb_func_start sub_80A75A8
-sub_80A75A8: @ 80A75A8
- push {lr}
- ldr r1, _080A75C0 @ =gUnknown_0203853C
- ldrb r0, [r1]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A75BC
- movs r0, 0x1
- strb r0, [r1]
-_080A75BC:
- pop {r0}
- bx r0
- .align 2, 0
-_080A75C0: .4byte gUnknown_0203853C
- thumb_func_end sub_80A75A8
-
- thumb_func_start sub_80A75C4
-sub_80A75C4: @ 80A75C4
- push {lr}
- ldr r1, _080A75D8 @ =gUnknown_0203853C
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A75DC
- cmp r0, 0x1
- bne _080A75E0
- movs r0, 0x3
- strb r0, [r1]
- b _080A75E0
- .align 2, 0
-_080A75D8: .4byte gUnknown_0203853C
-_080A75DC:
- bl sub_80A7918
-_080A75E0:
- pop {r0}
- bx r0
- thumb_func_end sub_80A75C4
-
- thumb_func_start sub_80A75E4
-sub_80A75E4: @ 80A75E4
- push {r4,r5,lr}
- ldr r4, _080A7628 @ =gUnknown_02038540
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7622
- bl sub_80A7988
- adds r5, r0, 0
- cmp r5, 0
- bne _080A7622
- ldr r0, _080A762C @ =gUnknown_02038563
- ldrb r0, [r0]
- ldrb r2, [r4, 0x1]
- adds r1, r2, 0
- movs r3, 0x1
- bl sub_80A47E8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- movs r1, 0x7
- cmp r0, 0
- beq _080A7616
- movs r1, 0x5
-_080A7616:
- ldrb r0, [r4, 0x1]
- cmp r1, r0
- bge _080A7622
- strb r5, [r4]
- bl sub_80A78E8
-_080A7622:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7628: .4byte gUnknown_02038540
-_080A762C: .4byte gUnknown_02038563
- thumb_func_end sub_80A75E4
-
- thumb_func_start sub_80A7630
-sub_80A7630: @ 80A7630
- ldr r1, _080A7638 @ =gUnknown_02038540
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7638: .4byte gUnknown_02038540
- thumb_func_end sub_80A7630
-
- thumb_func_start sub_80A763C
-sub_80A763C: @ 80A763C
- push {r4,lr}
- ldr r4, _080A7650 @ =gUnknown_02038540
- bl sub_80A78C4
- adds r1, r0, 0
- cmp r1, 0
- beq _080A7654
- cmp r1, 0x1
- beq _080A7668
- b _080A7670
- .align 2, 0
-_080A7650: .4byte gUnknown_02038540
-_080A7654:
- ldr r0, _080A7664 @ =gUnknown_02038563
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0x7
- bl sub_80A48E8
- b _080A7670
- .align 2, 0
-_080A7664: .4byte gUnknown_02038563
-_080A7668:
- movs r0, 0
- strb r1, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
-_080A7670:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A763C
-
- thumb_func_start sub_80A7678
-sub_80A7678: @ 80A7678
- push {r4,lr}
- ldr r4, _080A7690 @ =gUnknown_02038540
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7686
- bl sub_80A78E8
-_080A7686:
- movs r0, 0
- strb r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7690: .4byte gUnknown_02038540
- thumb_func_end sub_80A7678
-
- thumb_func_start sub_80A7694
-sub_80A7694: @ 80A7694
- ldr r1, _080A769C @ =gUnknown_02038540
- movs r0, 0x1
- strb r0, [r1, 0x2]
- bx lr
- .align 2, 0
-_080A769C: .4byte gUnknown_02038540
- thumb_func_end sub_80A7694
-
- thumb_func_start sub_80A76A0
-sub_80A76A0: @ 80A76A0
- push {lr}
- movs r0, 0xE
- movs r1, 0x2
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- bl sub_80A7678
- pop {r0}
- bx r0
- thumb_func_end sub_80A76A0
-
- thumb_func_start sub_80A76B8
-sub_80A76B8: @ 80A76B8
- push {lr}
- ldr r0, _080A76CC @ =gUnknown_02038540
- movs r1, 0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A76C6
- movs r1, 0x1
-_080A76C6:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A76CC: .4byte gUnknown_02038540
- thumb_func_end sub_80A76B8
-
- thumb_func_start sub_80A76D0
-sub_80A76D0: @ 80A76D0
- push {lr}
- ldr r0, _080A76E4 @ =gUnknown_02038540
- movs r1, 0
- ldrb r0, [r0, 0x1]
- cmp r0, 0x5
- bls _080A76DE
- movs r1, 0x1
-_080A76DE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A76E4: .4byte gUnknown_02038540
- thumb_func_end sub_80A76D0
-
- thumb_func_start sub_80A76E8
-sub_80A76E8: @ 80A76E8
- push {r4,lr}
- ldr r4, _080A7708 @ =gUnknown_02038544
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080A7702
- ldrb r0, [r4, 0x1]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- ldrh r3, [r4, 0x2]
- bl DisplayItemMessageOnField
- movs r0, 0
- strb r0, [r4]
-_080A7702:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7708: .4byte gUnknown_02038544
- thumb_func_end sub_80A76E8
-
- thumb_func_start sub_80A770C
-sub_80A770C: @ 80A770C
- ldr r1, _080A7714 @ =gUnknown_02038544
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7714: .4byte gUnknown_02038544
- thumb_func_end sub_80A770C
-
- thumb_func_start DisplayCannotUseItemMessage
-DisplayCannotUseItemMessage: @ 80A7718
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r7, r1, 0
- mov r8, r2
- adds r6, r3, 0
- ldr r4, _080A7738 @ =gUnknown_02038544
- bl sub_80A7924
- cmp r0, 0
- beq _080A773C
- cmp r0, 0x2
- beq _080A774E
- b _080A775C
- .align 2, 0
-_080A7738: .4byte gUnknown_02038544
-_080A773C:
- lsls r0, r5, 24
- lsrs r0, 24
- lsls r3, r6, 16
- lsrs r3, 16
- adds r1, r7, 0
- mov r2, r8
- bl DisplayItemMessageOnField
- b _080A775C
-_080A774E:
- movs r0, 0x1
- strb r0, [r4]
- strb r5, [r4, 0x1]
- str r7, [r4, 0x4]
- mov r0, r8
- str r0, [r4, 0x8]
- strh r6, [r4, 0x2]
-_080A775C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end DisplayCannotUseItemMessage
-
- thumb_func_start sub_80A7768
-sub_80A7768: @ 80A7768
- push {r4,lr}
- ldr r4, _080A77A8 @ =gUnknown_02038550
- ldrb r0, [r4]
- cmp r0, 0x2
- bne _080A7814
- ldrb r1, [r4, 0x1]
- cmp r1, 0
- beq _080A780E
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- beq _080A77B4
- ldr r2, _080A77AC @ =gUnknown_083C1640
- ldr r0, _080A77B0 @ =gUnknown_03000704
- ldr r0, [r0]
- adds r0, r1, r0
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0]
- subs r1, 0x1
- lsls r1, 1
- adds r1, 0x1
- ldrb r2, [r4, 0x3]
- adds r2, r1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x7
- bl MenuPrint
- b _080A77FC
- .align 2, 0
-_080A77A8: .4byte gUnknown_02038550
-_080A77AC: .4byte gUnknown_083C1640
-_080A77B0: .4byte gUnknown_03000704
-_080A77B4:
- cmp r1, 0x1
- bne _080A77C8
- ldr r0, _080A77C4 @ =gScriptItemId
- ldrh r0, [r0]
- bl sub_80A4B90
- adds r3, r0, 0
- b _080A77DC
- .align 2, 0
-_080A77C4: .4byte gScriptItemId
-_080A77C8:
- ldr r2, _080A781C @ =gUnknown_083C1640
- ldrb r0, [r4, 0x1]
- ldr r1, _080A7820 @ =gUnknown_03000704
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r3, [r0]
-_080A77DC:
- ldrb r2, [r4, 0x1]
- subs r2, 0x1
- asrs r0, r2, 1
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- ands r2, r0
- lsls r2, 1
- adds r2, 0x8
- adds r0, r3, 0
- bl MenuPrint
-_080A77FC:
- ldr r1, _080A7824 @ =gUnknown_02038564
- ldrb r0, [r4, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080A780E
- movs r0, 0
- strb r0, [r4]
- bl sub_80A7970
-_080A780E:
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
-_080A7814:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A781C: .4byte gUnknown_083C1640
-_080A7820: .4byte gUnknown_03000704
-_080A7824: .4byte gUnknown_02038564
- thumb_func_end sub_80A7768
-
- thumb_func_start sub_80A7828
-sub_80A7828: @ 80A7828
- ldr r1, _080A7830 @ =gUnknown_02038550
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7830: .4byte gUnknown_02038550
- thumb_func_end sub_80A7828
-
- thumb_func_start sub_80A7834
-sub_80A7834: @ 80A7834
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldr r4, _080A784C @ =gUnknown_02038550
- bl sub_80A7958
- cmp r0, 0x1
- beq _080A7850
- cmp r0, 0x2
- beq _080A7856
- b _080A7862
- .align 2, 0
-_080A784C: .4byte gUnknown_02038550
-_080A7850:
- movs r1, 0
- movs r0, 0x2
- b _080A785A
-_080A7856:
- movs r1, 0
- movs r0, 0x1
-_080A785A:
- strb r0, [r4]
- strb r1, [r4, 0x1]
- strb r5, [r4, 0x2]
- strb r6, [r4, 0x3]
-_080A7862:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7834
-
- thumb_func_start sub_80A7868
-sub_80A7868: @ 80A7868
- push {lr}
- ldr r1, _080A787C @ =gUnknown_02038550
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _080A7876
- movs r0, 0x1
- strb r0, [r1]
-_080A7876:
- pop {r0}
- bx r0
- .align 2, 0
-_080A787C: .4byte gUnknown_02038550
- thumb_func_end sub_80A7868
-
- thumb_func_start sub_80A7880
-sub_80A7880: @ 80A7880
- push {lr}
- ldr r1, _080A7894 @ =gUnknown_02038550
- ldrb r0, [r1]
- cmp r0, 0
- beq _080A7898
- cmp r0, 0x1
- bne _080A789C
- movs r0, 0x2
- strb r0, [r1]
- b _080A789C
- .align 2, 0
-_080A7894: .4byte gUnknown_02038550
-_080A7898:
- bl sub_80A7970
-_080A789C:
- pop {r0}
- bx r0
- thumb_func_end sub_80A7880
-
- thumb_func_start sub_80A78A0
-sub_80A78A0: @ 80A78A0
- push {lr}
- ldr r0, _080A78B4 @ =gUnknown_02038550
- movs r1, 0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A78AE
- movs r1, 0x1
-_080A78AE:
- adds r0, r1, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080A78B4: .4byte gUnknown_02038550
- thumb_func_end sub_80A78A0
-
- thumb_func_start sub_80A78B8
-sub_80A78B8: @ 80A78B8
- ldr r1, _080A78C0 @ =gUnknown_02038554
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A78C0: .4byte gUnknown_02038554
- thumb_func_end sub_80A78B8
-
- thumb_func_start sub_80A78C4
-sub_80A78C4: @ 80A78C4
- push {lr}
- ldr r0, _080A78DC @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A78E0
- bl sub_80A7868
- bl sub_80A75A8
- movs r0, 0x1
- b _080A78E2
- .align 2, 0
-_080A78DC: .4byte gLinkOpen
-_080A78E0:
- movs r0, 0
-_080A78E2:
- pop {r1}
- bx r1
- thumb_func_end sub_80A78C4
-
- thumb_func_start sub_80A78E8
-sub_80A78E8: @ 80A78E8
- push {lr}
- bl sub_80A7880
- pop {r0}
- bx r0
- thumb_func_end sub_80A78E8
-
- thumb_func_start sub_80A78F4
-sub_80A78F4: @ 80A78F4
- push {lr}
- ldr r0, _080A790C @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A7910
- bl sub_80A76B8
- movs r1, 0x2
- cmp r0, 0
- beq _080A7912
- movs r1, 0x1
- b _080A7912
- .align 2, 0
-_080A790C: .4byte gLinkOpen
-_080A7910:
- movs r1, 0
-_080A7912:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80A78F4
-
- thumb_func_start sub_80A7918
-sub_80A7918: @ 80A7918
- push {lr}
- bl sub_80A76E8
- pop {r0}
- bx r0
- thumb_func_end sub_80A7918
-
- thumb_func_start sub_80A7924
-sub_80A7924: @ 80A7924
- push {lr}
- ldr r0, _080A7948 @ =gLinkOpen
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080A7942
- bl sub_80A76B8
- cmp r0, 0
- bne _080A7942
- bl sub_80A76D0
- cmp r0, 0
- beq _080A794C
- bl sub_80A7678
-_080A7942:
- movs r0, 0
- b _080A7952
- .align 2, 0
-_080A7948: .4byte gLinkOpen
-_080A794C:
- bl sub_80A7694
- movs r0, 0x2
-_080A7952:
- pop {r1}
- bx r1
- thumb_func_end sub_80A7924
-
- thumb_func_start sub_80A7958
-sub_80A7958: @ 80A7958
- push {lr}
- bl sub_80A76B8
- cmp r0, 0
- beq _080A796A
- bl sub_80A75A8
- movs r0, 0x1
- b _080A796C
-_080A796A:
- movs r0, 0x2
-_080A796C:
- pop {r1}
- bx r1
- thumb_func_end sub_80A7958
-
- thumb_func_start sub_80A7970
-sub_80A7970: @ 80A7970
- push {lr}
- bl sub_80A75C4
- pop {r0}
- bx r0
- thumb_func_end sub_80A7970
-
- thumb_func_start sub_80A797C
-sub_80A797C: @ 80A797C
- ldr r1, _080A7984 @ =gUnknown_02038554
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080A7984: .4byte gUnknown_02038554
- thumb_func_end sub_80A797C
-
- thumb_func_start sub_80A7988
-sub_80A7988: @ 80A7988
- ldr r1, _080A7994 @ =gUnknown_02038554
- ldrb r0, [r1]
- movs r2, 0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_080A7994: .4byte gUnknown_02038554
- thumb_func_end sub_80A7988
-
- thumb_func_start sub_80A7998
-sub_80A7998: @ 80A7998
- adds r2, r0, 0
- adds r2, 0x2A
- movs r1, 0
- strb r1, [r2]
- strh r1, [r0, 0x2E]
- strh r1, [r0, 0x30]
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- ldr r1, _080A79B0 @ =sub_80A79B4
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080A79B0: .4byte sub_80A79B4
- thumb_func_end sub_80A7998
-
- thumb_func_start sub_80A79B4
-sub_80A79B4: @ 80A79B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080A79E4 @ =gUnknown_0203855B
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080A79CC
- adds r0, r4, 0
- bl sub_80A79EC
-_080A79CC:
- ldr r0, _080A79E8 @ =gUnknown_0203855C
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _080A79DE
- adds r0, r4, 0
- bl sub_80A7A94
-_080A79DE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A79E4: .4byte gUnknown_0203855B
-_080A79E8: .4byte gUnknown_0203855C
- thumb_func_end sub_80A79B4
-
- thumb_func_start sub_80A79EC
-sub_80A79EC: @ 80A79EC
- push {r4-r6,lr}
- adds r2, r0, 0
- movs r0, 0x34
- ldrsh r4, [r2, r0]
- cmp r4, 0
- beq _080A79FE
- cmp r4, 0x1
- beq _080A7A54
- b _080A7A8A
-_080A79FE:
- ldr r5, _080A7A28 @ =gUnknown_0203855B
- ldrb r6, [r5]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0x6
- beq _080A7A2C
- adds r3, r2, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x2A
- strb r6, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r1, 0
- strb r0, [r5]
- b _080A7A8A
- .align 2, 0
-_080A7A28: .4byte gUnknown_0203855B
-_080A7A2C:
- adds r3, r2, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x2A
- strb r4, [r0]
- ldrh r0, [r2, 0x22]
- subs r0, 0x4
- strh r0, [r2, 0x22]
- movs r0, 0x4
- strh r0, [r2, 0x2E]
- movs r0, 0x1
- strh r0, [r2, 0x34]
- adds r0, r2, 0
- bl sub_80A7AE4
- b _080A7A8A
-_080A7A54:
- ldrh r4, [r2, 0x2E]
- movs r0, 0x2E
- ldrsh r3, [r2, r0]
- cmp r3, 0
- beq _080A7A7C
- ldrh r1, [r2, 0x30]
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _080A7A72
- ldrh r0, [r2, 0x22]
- adds r0, 0x1
- strh r0, [r2, 0x22]
- subs r0, r4, 0x1
- strh r0, [r2, 0x2E]
-_080A7A72:
- adds r0, r1, 0x1
- movs r1, 0x1
- ands r0, r1
- strh r0, [r2, 0x30]
- b _080A7A8A
-_080A7A7C:
- ldr r1, _080A7A90 @ =gUnknown_0203855B
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r1]
- strh r3, [r2, 0x30]
- strh r3, [r2, 0x34]
-_080A7A8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7A90: .4byte gUnknown_0203855B
- thumb_func_end sub_80A79EC
-
- thumb_func_start sub_80A7A94
-sub_80A7A94: @ 80A7A94
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7AA6
- cmp r0, 0x1
- beq _080A7AC8
- b _080A7ADC
-_080A7AA6:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080A7AC4 @ =gSpriteAffineAnimTable_83C1CC4
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x36]
- b _080A7ADC
- .align 2, 0
-_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4
-_080A7AC8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _080A7ADC
- adds r0, r4, 0
- bl sub_80A7AE4
-_080A7ADC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7A94
-
- thumb_func_start sub_80A7AE4
-sub_80A7AE4: @ 80A7AE4
- push {lr}
- ldr r2, _080A7B0C @ =gUnknown_0203855C
- movs r1, 0
- strb r1, [r2]
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x36]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B0C: .4byte gUnknown_0203855C
- thumb_func_end sub_80A7AE4
-
- thumb_func_start CreateBagSprite
-CreateBagSprite: @ 80A7B10
- push {lr}
- ldr r0, _080A7B24 @ =gSpriteTemplate_83C1CE0
- movs r1, 0x3A
- movs r2, 0x28
- movs r3, 0
- bl CreateSprite
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B24: .4byte gSpriteTemplate_83C1CE0
- thumb_func_end CreateBagSprite
-
- thumb_func_start sub_80A7B28
-sub_80A7B28: @ 80A7B28
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r4, 0x34]
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A7B6C
- ldr r0, _080A7B44 @ =sub_80A7B6C
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7B44: .4byte sub_80A7B6C
- thumb_func_end sub_80A7B28
-
- thumb_func_start sub_80A7B48
-sub_80A7B48: @ 80A7B48
- ldrh r2, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- movs r3, 0x1
- ands r1, r3
- subs r2, r1
- adds r1, r0, 0
- adds r1, 0x28
- strb r2, [r1]
- ldrh r2, [r0, 0x3A]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- ands r1, r3
- subs r2, r1
- adds r0, 0x29
- strb r2, [r0]
- bx lr
- thumb_func_end sub_80A7B48
-
- thumb_func_start sub_80A7B6C
-sub_80A7B6C: @ 80A7B6C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- cmp r2, 0
- beq _080A7C16
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _080A7B86
- cmp r0, 0x1
- beq _080A7BD4
- b _080A7C16
-_080A7B86:
- ldrb r0, [r4, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r4, 0x1]
- cmp r2, 0x1
- bne _080A7BA0
- ldr r0, _080A7B9C @ =gSpriteAffineAnimTable_83C1D20
- b _080A7BA2
- .align 2, 0
-_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20
-_080A7BA0:
- ldr r0, _080A7BD0 @ =gSpriteAffineAnimTable_83C1D20 + 0x4
-_080A7BA2:
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x3A]
- adds r0, r4, 0
- bl sub_80A7B48
- b _080A7C16
- .align 2, 0
-_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4
-_080A7BD4:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- bl sub_80A7B48
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _080A7C16
- strh r5, [r4, 0x2E]
- strh r5, [r4, 0x34]
- ldrh r1, [r4, 0x38]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- ldrh r0, [r4, 0x3A]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _080A7C1C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_080A7C16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C1C: .4byte SpriteCallbackDummy
- thumb_func_end sub_80A7B6C
-
- thumb_func_start CreateBagPokeballSprite
-CreateBagPokeballSprite: @ 80A7C20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080A7C54 @ =gUnknown_083C1D30
- bl LoadSpritePalette
- ldr r0, _080A7C58 @ =gSpriteTemplate_83C1D38
- movs r1, 0x10
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, _080A7C5C @ =gUnknown_02038568
- strb r0, [r1]
- ldr r2, _080A7C60 @ =gSprites
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x3C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C54: .4byte gUnknown_083C1D30
-_080A7C58: .4byte gSpriteTemplate_83C1D38
-_080A7C5C: .4byte gUnknown_02038568
-_080A7C60: .4byte gSprites
- thumb_func_end CreateBagPokeballSprite
-
- thumb_func_start sub_80A7C64
-sub_80A7C64: @ 80A7C64
- push {r4,r5,lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- ldr r5, _080A7C98 @ =gSprites
- ldr r4, _080A7C9C @ =gUnknown_02038568
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7C98: .4byte gSprites
-_080A7C9C: .4byte gUnknown_02038568
- thumb_func_end sub_80A7C64
-
- thumb_func_start sub_80A7CA0
-sub_80A7CA0: @ 80A7CA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r2, 0x80
- lsls r2, 4
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x80
- lsls r0, 1
- adds r4, r0
- movs r7, 0
-_080A7CBE:
- adds r4, 0x20
- movs r5, 0
- adds r1, r7, 0x1
- mov r8, r1
-_080A7CC6:
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x20
- bl memcpy
- adds r4, 0x20
- adds r6, 0x20
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080A7CC6
- cmp r7, 0x5
- beq _080A7CE4
- adds r4, 0x20
-_080A7CE4:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _080A7CBE
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A7CA0
-
- thumb_func_start sub_80A7CF8
-sub_80A7CF8: @ 80A7CF8
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2A
- bne _080A7D44
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _080A7D44
- ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C
- ldr r1, _080A7D38 @ =0x02000000
- adds r0, r4, 0
- bl sub_80A7CA0
- movs r0, 0x90
- lsls r0, 3
- adds r4, r0
- str r4, [sp]
- ldr r1, _080A7D3C @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- ldr r1, _080A7D40 @ =0x00007544
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- b _080A7D72
- .align 2, 0
-_080A7D34: .4byte gSaveBlock1 + 0x317C
-_080A7D38: .4byte 0x02000000
-_080A7D3C: .4byte 0xffff0000
-_080A7D40: .4byte 0x00007544
-_080A7D44:
- ldr r5, _080A7D7C @ =gBerryGraphicsTable
- lsls r4, 3
- adds r0, r5, 0x4
- adds r0, r4, r0
- ldr r0, [r0]
- str r0, [sp]
- mov r1, sp
- ldr r0, _080A7D80 @ =0x00007544
- strh r0, [r1, 0x4]
- mov r0, sp
- bl LoadCompressedObjectPalette
- adds r4, r5
- ldr r0, [r4]
- ldr r4, _080A7D84 @ =0x02001000
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _080A7D88 @ =0xfffff000
- adds r1, r4, r0
- adds r0, r4, 0
- bl sub_80A7CA0
-_080A7D72:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080A7D7C: .4byte gBerryGraphicsTable
-_080A7D80: .4byte 0x00007544
-_080A7D84: .4byte 0x02001000
-_080A7D88: .4byte 0xfffff000
- thumb_func_end sub_80A7CF8
-
- thumb_func_start sub_80A7D8C
-sub_80A7D8C: @ 80A7D8C
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- bl sub_80A7CF8
- ldr r0, _080A7DC0 @ =gSpriteTemplate_83C1D74
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080A7DC0: .4byte gSpriteTemplate_83C1D74
- thumb_func_end sub_80A7D8C
-
- thumb_func_start sub_80A7DC4
-sub_80A7DC4: @ 80A7DC4
- ldr r1, _080A7DD0 @ =gUnknown_030041B4
- ldrh r1, [r1]
- negs r1, r1
- strh r1, [r0, 0x26]
- bx lr
- .align 2, 0
-_080A7DD0: .4byte gUnknown_030041B4
- thumb_func_end sub_80A7DC4
-
- thumb_func_start sub_80A7DD4
-sub_80A7DD4: @ 80A7DD4
- push {lr}
- ldr r0, _080A7DE8 @ =0x00007544
- bl FreeSpritePaletteByTag
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_080A7DE8: .4byte 0x00007544
- thumb_func_end sub_80A7DD4
-
- thumb_func_start sub_80A7DEC
-sub_80A7DEC: @ 80A7DEC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- mov r8, r3
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080A7E50 @ =0x00007544
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl sub_80A7CF8
- ldr r0, _080A7E54 @ =gSpriteTemplate_83C1E04
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- adds r4, r1, 0
- mov r0, r8
- cmp r0, 0x1
- bne _080A7E42
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080A7E58 @ =gSprites
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_080A7E42:
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080A7E50: .4byte 0x00007544
-_080A7E54: .4byte gSpriteTemplate_83C1E04
-_080A7E58: .4byte gSprites
- thumb_func_end sub_80A7DEC
-
- thumb_func_start sub_80A7E5C
-sub_80A7E5C: @ 80A7E5C
- push {lr}
- adds r1, r0, 0
- ldr r0, _080A7E78 @ =gSpriteTemplate_83C1F98
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x63
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080A7E78: .4byte gSpriteTemplate_83C1F98
- thumb_func_end sub_80A7E5C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
deleted file mode 100644
index 5b6522144..000000000
--- a/asm/pokeblock.s
+++ /dev/null
@@ -1,2675 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_810B674
-sub_810B674: @ 810B674
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810B674
-
- thumb_func_start sub_810B68C
-sub_810B68C: @ 810B68C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
- ldr r2, _0810B6B4 @ =0x06007800
- ldr r0, _0810B6B8 @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0810B6BC @ =0x80000400
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
-_0810B6B4: .4byte 0x06007800
-_0810B6B8: .4byte 0x040000d4
-_0810B6BC: .4byte 0x80000400
- thumb_func_end sub_810B68C
-
- thumb_func_start sub_810B6C0
-sub_810B6C0: @ 810B6C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810B6DC @ =gMain
- ldr r1, _0810B6E0 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _0810B6D2
- b _0810B960
-_0810B6D2:
- lsls r0, 2
- ldr r1, _0810B6E4 @ =_0810B6E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B6DC: .4byte gMain
-_0810B6E0: .4byte 0x0000043c
-_0810B6E4: .4byte _0810B6E8
- .align 2, 0
-_0810B6E8:
- .4byte _0810B734
- .4byte _0810B764
- .4byte _0810B76A
- .4byte _0810B78C
- .4byte _0810B792
- .4byte _0810B7B4
- .4byte _0810B7C0
- .4byte _0810B7DC
- .4byte _0810B7E8
- .4byte _0810B804
- .4byte _0810B810
- .4byte _0810B830
- .4byte _0810B84C
- .4byte _0810B86A
- .4byte _0810B894
- .4byte _0810B89E
- .4byte _0810B8C4
- .4byte _0810B914
- .4byte _0810B934
-_0810B734:
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _0810B754 @ =REG_BG2CNT
- ldr r2, _0810B758 @ =0x00000f0a
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0810B75C @ =gMain
- ldr r0, _0810B760 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B754: .4byte REG_BG2CNT
-_0810B758: .4byte 0x00000f0a
-_0810B75C: .4byte gMain
-_0810B760: .4byte 0x0000043c
-_0810B764:
- bl remove_some_task
- b _0810B91C
-_0810B76A:
- bl ResetPaletteFade
- ldr r2, _0810B780 @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0810B784 @ =gMain
- ldr r0, _0810B788 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B780: .4byte gPaletteFade
-_0810B784: .4byte gMain
-_0810B788: .4byte 0x0000043c
-_0810B78C:
- bl ResetSpriteData
- b _0810B91C
-_0810B792:
- ldr r0, _0810B7A8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0810B79E
- bl ResetTasks
-_0810B79E:
- ldr r1, _0810B7AC @ =gMain
- ldr r0, _0810B7B0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7A8: .4byte gUnknown_02039244
-_0810B7AC: .4byte gMain
-_0810B7B0: .4byte 0x0000043c
-_0810B7B4:
- ldr r0, _0810B7BC @ =gWindowConfig_81E6E34
- bl SetUpWindowConfig
- b _0810B91C
- .align 2, 0
-_0810B7BC: .4byte gWindowConfig_81E6E34
-_0810B7C0:
- ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50
- bl SetUpWindowConfig
- ldr r1, _0810B7D4 @ =gMain
- ldr r0, _0810B7D8 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7D0: .4byte gWindowConfig_81E6E50
-_0810B7D4: .4byte gMain
-_0810B7D8: .4byte 0x0000043c
-_0810B7DC:
- ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B7E4: .4byte gWindowConfig_81E6E34
-_0810B7E8:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B7F2
- b _0810B960
-_0810B7F2:
- ldr r1, _0810B7FC @ =gMain
- ldr r0, _0810B800 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7FC: .4byte gMain
-_0810B800: .4byte 0x0000043c
-_0810B804:
- ldr r0, _0810B80C @ =gWindowConfig_81E6E50
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B80C: .4byte gWindowConfig_81E6E50
-_0810B810:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B81A
- b _0810B960
-_0810B81A:
- ldr r0, _0810B828 @ =0x02000000
- ldr r1, _0810B82C @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0810B91C
- .align 2, 0
-_0810B828: .4byte 0x02000000
-_0810B82C: .4byte 0x0001ffff
-_0810B830:
- bl sub_810B998
- lsls r0, 24
- cmp r0, 0
- bne _0810B83C
- b _0810B960
-_0810B83C:
- ldr r1, _0810B844 @ =gMain
- ldr r0, _0810B848 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B844: .4byte gMain
-_0810B848: .4byte 0x0000043c
-_0810B84C:
- bl sub_80F944C
- bl LoadScrollIndicatorPalette
- movs r0, 0
- movs r1, 0xB0
- movs r2, 0x8
- bl CreateVerticalScrollIndicators
- movs r0, 0x1
- movs r1, 0xB0
- movs r2, 0x98
- bl CreateVerticalScrollIndicators
- b _0810B91C
-_0810B86A:
- movs r0, 0x38
- movs r1, 0x40
- movs r2, 0
- bl sub_810BA50
- ldr r1, _0810B884 @ =0x02000000
- ldr r2, _0810B888 @ =0x0001fffe
- adds r1, r2
- strb r0, [r1]
- ldr r1, _0810B88C @ =gMain
- ldr r0, _0810B890 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B884: .4byte 0x02000000
-_0810B888: .4byte 0x0001fffe
-_0810B88C: .4byte gMain
-_0810B890: .4byte 0x0000043c
-_0810B894:
- bl sub_810BC98
- bl sub_810BD08
- b _0810B91C
-_0810B89E:
- bl sub_810BB0C
- bl sub_810BB30
- ldr r0, _0810B8B8 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- ldr r1, _0810B8BC @ =gMain
- ldr r0, _0810B8C0 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8B8: .4byte gUnknown_02039248
-_0810B8BC: .4byte gMain
-_0810B8C0: .4byte 0x0000043c
-_0810B8C4:
- ldr r3, _0810B8FC @ =0x04000208
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0810B900 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810B904 @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810B908 @ =sub_810B68C
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0810B90C @ =gMain
- ldr r0, _0810B910 @ =0x0000043c
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8FC: .4byte 0x04000208
-_0810B900: .4byte 0x04000200
-_0810B904: .4byte REG_DISPSTAT
-_0810B908: .4byte sub_810B68C
-_0810B90C: .4byte gMain
-_0810B910: .4byte 0x0000043c
-_0810B914:
- bl sub_8055870
- cmp r0, 0x1
- beq _0810B960
-_0810B91C:
- ldr r1, _0810B92C @ =gMain
- ldr r2, _0810B930 @ =0x0000043c
- adds r1, r2
-_0810B922:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810B960
- .align 2, 0
-_0810B92C: .4byte gMain
-_0810B930: .4byte 0x0000043c
-_0810B934:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0810B958 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0810B95C @ =sub_810B674
- bl SetMainCallback2
- movs r0, 0x1
- b _0810B962
- .align 2, 0
-_0810B958: .4byte gPaletteFade
-_0810B95C: .4byte sub_810B674
-_0810B960:
- movs r0, 0
-_0810B962:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810B6C0
-
- thumb_func_start sub_810B96C
-sub_810B96C: @ 810B96C
- push {lr}
-_0810B96E:
- bl sub_810B6C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B988
- ldr r0, _0810B984 @ =sub_810BF7C
- movs r1, 0
- bl CreateTask
- b _0810B994
- .align 2, 0
-_0810B984: .4byte sub_810BF7C
-_0810B988:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B96E
-_0810B994:
- pop {r0}
- bx r0
- thumb_func_end sub_810B96C
-
- thumb_func_start sub_810B998
-sub_810B998: @ 810B998
- push {lr}
- ldr r0, _0810B9B0 @ =0x02000000
- ldr r1, _0810B9B4 @ =0x0001ffff
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810BA48
- lsls r0, 2
- ldr r1, _0810B9B8 @ =_0810B9BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B9B0: .4byte 0x02000000
-_0810B9B4: .4byte 0x0001ffff
-_0810B9B8: .4byte _0810B9BC
- .align 2, 0
-_0810B9BC:
- .4byte _0810B9D0
- .4byte _0810B9E4
- .4byte _0810B9F8
- .4byte _0810BA08
- .4byte _0810BA28
-_0810B9D0:
- ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx
- ldr r1, _0810B9E0 @ =0x06008000
- bl LZDecompressVram
- b _0810BA0E
- .align 2, 0
-_0810B9DC: .4byte gMenuPokeblock_Gfx
-_0810B9E0: .4byte 0x06008000
-_0810B9E4:
- ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
- bl sub_800D238
- b _0810BA0E
- .align 2, 0
-_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
-_0810B9F8:
- ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- b _0810BA0E
- .align 2, 0
-_0810BA04: .4byte gMenuPokeblock_Pal
-_0810BA08:
- ldr r0, _0810BA1C @ =gUnknown_083F7F74
- bl LoadCompressedObjectPic
-_0810BA0E:
- ldr r1, _0810BA20 @ =0x02000000
- ldr r0, _0810BA24 @ =0x0001ffff
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810BA48
- .align 2, 0
-_0810BA1C: .4byte gUnknown_083F7F74
-_0810BA20: .4byte 0x02000000
-_0810BA24: .4byte 0x0001ffff
-_0810BA28:
- ldr r0, _0810BA3C @ =gUnknown_083F7F7C
- bl LoadCompressedObjectPalette
- ldr r0, _0810BA40 @ =0x02000000
- ldr r1, _0810BA44 @ =0x0001ffff
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0810BA4A
- .align 2, 0
-_0810BA3C: .4byte gUnknown_083F7F7C
-_0810BA40: .4byte 0x02000000
-_0810BA44: .4byte 0x0001ffff
-_0810BA48:
- movs r0, 0
-_0810BA4A:
- pop {r1}
- bx r1
- thumb_func_end sub_810B998
-
- thumb_func_start sub_810BA50
-sub_810BA50: @ 810BA50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA78: .4byte gSpriteTemplate_83F7F84
- thumb_func_end sub_810BA50
-
- thumb_func_start sub_810BA7C
-sub_810BA7C: @ 810BA7C
- push {lr}
- ldr r1, _0810BA98 @ =gUnknown_02039244
- strb r0, [r1]
- ldrb r2, [r1]
- cmp r2, 0x2
- beq _0810BAA8
- cmp r2, 0x3
- beq _0810BAC0
- ldr r1, _0810BA9C @ =gUnknown_03000758
- ldr r0, _0810BAA0 @ =gUnknown_083F7F1C
- str r0, [r1]
- ldr r1, _0810BAA4 @ =gUnknown_0203924C
- movs r0, 0x3
- b _0810BACA
- .align 2, 0
-_0810BA98: .4byte gUnknown_02039244
-_0810BA9C: .4byte gUnknown_03000758
-_0810BAA0: .4byte gUnknown_083F7F1C
-_0810BAA4: .4byte gUnknown_0203924C
-_0810BAA8:
- ldr r0, _0810BAB4 @ =gUnknown_03000758
- ldr r1, _0810BAB8 @ =gUnknown_083F7F1F
- str r1, [r0]
- ldr r0, _0810BABC @ =gUnknown_0203924C
- strb r2, [r0]
- b _0810BACC
- .align 2, 0
-_0810BAB4: .4byte gUnknown_03000758
-_0810BAB8: .4byte gUnknown_083F7F1F
-_0810BABC: .4byte gUnknown_0203924C
-_0810BAC0:
- ldr r1, _0810BAD0 @ =gUnknown_03000758
- ldr r0, _0810BAD4 @ =gUnknown_083F7F21
- str r0, [r1]
- ldr r1, _0810BAD8 @ =gUnknown_0203924C
- movs r0, 0x2
-_0810BACA:
- strb r0, [r1]
-_0810BACC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD0: .4byte gUnknown_03000758
-_0810BAD4: .4byte gUnknown_083F7F21
-_0810BAD8: .4byte gUnknown_0203924C
- thumb_func_end sub_810BA7C
-
- thumb_func_start sub_810BADC
-sub_810BADC: @ 810BADC
- push {lr}
- movs r0, 0x2
- bl sub_810BA7C
- ldr r0, _0810BAF0 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAF0: .4byte sub_810B96C
- thumb_func_end sub_810BADC
-
- thumb_func_start sub_810BAF4
-sub_810BAF4: @ 810BAF4
- push {lr}
- movs r0, 0x3
- bl sub_810BA7C
- ldr r0, _0810BB08 @ =sub_810B96C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB08: .4byte sub_810B96C
- thumb_func_end sub_810BAF4
-
- thumb_func_start sub_810BB0C
-sub_810BB0C: @ 810BB0C
- push {lr}
- ldr r0, _0810BB28 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB2C @ =0x00000111
- bl ItemId_GetItem
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB28: .4byte gWindowConfig_81E6E34
-_0810BB2C: .4byte 0x00000111
- thumb_func_end sub_810BB0C
-
- thumb_func_start sub_810BB30
-sub_810BB30: @ 810BB30
- push {lr}
- ldr r0, _0810BB70 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BB74 @ =gContestStatsText_Spicy
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB78 @ =gContestStatsText_Dry
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0810BB7C @ =gContestStatsText_Sweet
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- ldr r0, _0810BB80 @ =gContestStatsText_Bitter
- movs r1, 0x8
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB84 @ =gContestStatsText_Sour
- movs r1, 0x8
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gWindowConfig_81E6E34
-_0810BB74: .4byte gContestStatsText_Spicy
-_0810BB78: .4byte gContestStatsText_Dry
-_0810BB7C: .4byte gContestStatsText_Sweet
-_0810BB80: .4byte gContestStatsText_Bitter
-_0810BB84: .4byte gContestStatsText_Sour
- thumb_func_end sub_810BB30
-
- thumb_func_start sub_810BB88
-sub_810BB88: @ 810BB88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- mov r6, r8
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bgt _0810BC6C
- ldr r0, _0810BBF8 @ =gStringVar1
- mov r9, r0
- ldr r1, _0810BBFC @ =gSaveBlock1
- mov r10, r1
-_0810BBB0:
- mov r1, r8
- subs r0, r6, r1
- lsls r0, 25
- lsrs r7, r0, 24
- ldr r0, _0810BC00 @ =gUnknown_02039248
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bne _0810BC08
- mov r0, r9
- ldr r1, _0810BC04 @ =gContestStatsText_StowCase
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- beq _0810BC6C
- adds r1, r7, 0x3
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xF
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0810BC6C
- .align 2, 0
-_0810BBF4: .4byte gWindowConfig_81E6E34
-_0810BBF8: .4byte gStringVar1
-_0810BBFC: .4byte gSaveBlock1
-_0810BC00: .4byte gUnknown_02039248
-_0810BC04: .4byte gContestStatsText_StowCase
-_0810BC08:
- lsls r5, r6, 3
- mov r1, r10
- adds r0, r5, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0810BC7C @ =gPokeblockNames
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- movs r2, 0x5E
- movs r3, 0
- bl sub_8072C74
- adds r4, r0, 0
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8
- adds r5, r0
- adds r0, r5, 0
- bl sub_810C9B0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- ble _0810BBB0
-_0810BC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BC7C: .4byte gPokeblockNames
-_0810BC80: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BB88
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
- pop {r0}
- bx r0
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BC98
-sub_810BC98: @ 810BC98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _0810BD00 @ =gSaveBlock1
- mov r9, r0
-_0810BCA6:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, 0x27
- bhi _0810BCE8
- lsls r1, r2, 3
- mov r2, r9
- adds r0, r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r7, r0, r2
- ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8
- mov r12, r0
- adds r6, r1, r0
-_0810BCC4:
- ldrb r0, [r7]
- cmp r0, 0
- bne _0810BCDE
- ldr r3, [r6]
- ldr r4, [r6, 0x4]
- lsls r2, r5, 3
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
- str r3, [r2]
- str r4, [r2, 0x4]
-_0810BCDE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x27
- bls _0810BCC4
-_0810BCE8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0x26
- bls _0810BCA6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD00: .4byte gSaveBlock1
-_0810BD04: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BC98
-
- thumb_func_start sub_810BD08
-sub_810BD08: @ 810BD08
- push {r4,r5,lr}
- ldr r1, _0810BD5C @ =gUnknown_02039248
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r2, 0
- ldr r5, _0810BD60 @ =gSaveBlock1
- movs r4, 0xFF
- lsls r4, 3
- adds r3, r1, 0
-_0810BD1A:
- lsls r0, r2, 3
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810BD2C
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
-_0810BD2C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x27
- bls _0810BD1A
- ldrb r0, [r1, 0x2]
- cmp r0, 0x7
- bls _0810BD3E
- movs r0, 0x8
-_0810BD3E:
- strb r0, [r1, 0x3]
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- adds r0, 0x8
- ldrb r3, [r1, 0x2]
- cmp r0, r3
- ble _0810BD54
- cmp r2, 0
- beq _0810BD54
- subs r0, r2, 0x1
- strb r0, [r1, 0x1]
-_0810BD54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD5C: .4byte gUnknown_02039248
-_0810BD60: .4byte gSaveBlock1
- thumb_func_end sub_810BD08
-
- thumb_func_start sub_810BD64
-sub_810BD64: @ 810BD64
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
-_0810BD70:
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 5
- adds r1, r2, 0
- adds r1, 0xF
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, 0x40
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810BD70
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810BD64
-
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4 @ =0x00001005
- ldr r1, _0810BDC8 @ =0x00001014
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8 @ =0x00002005
- ldr r1, _0810BDEC @ =0x00002014
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0 @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98 @ =0x000001a1
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C @ =gUnknown_02039248
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBGTilemapBuffers + 0x1000
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810BF14 @ =gUnknown_02039248
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18 @ =gStringVar1
- lsls r0, r2, 3
- ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
- thumb_func_start sub_810BF38
-sub_810BF38: @ 810BF38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0810BF6C @ =gSprites
- ldr r0, _0810BF70 @ =0x02000000
- ldr r1, _0810BF74 @ =0x0001fffe
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0810BF78 @ =sub_810C8D4
- str r1, [r0]
- adds r0, r4, 0
- bl sub_810BDAC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BF6C: .4byte gSprites
-_0810BF70: .4byte 0x02000000
-_0810BF74: .4byte 0x0001fffe
-_0810BF78: .4byte sub_810C8D4
- thumb_func_end sub_810BF38
-
- thumb_func_start sub_810BF7C
-sub_810BF7C: @ 810BF7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0810BFB8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810BF94
- b _0810C0B8
-_0810BF94:
- ldr r2, _0810BFBC @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810BFCE
- ldr r4, _0810BFC0 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810BFC4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFB8: .4byte gPaletteFade
-_0810BFBC: .4byte gMain
-_0810BFC0: .4byte gUnknown_02039248
-_0810BFC4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C0B8
- subs r0, 0x1
- b _0810C002
-_0810BFCE:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810C012
- ldr r4, _0810BFF0 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810BFF4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFF0: .4byte gUnknown_02039248
-_0810BFF4:
- ldrb r1, [r4, 0x1]
- ldrb r0, [r4]
- adds r0, r1, r0
- ldrb r2, [r4, 0x2]
- cmp r0, r2
- beq _0810C0B8
- adds r0, r1, 0x1
-_0810C002:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C00A:
- movs r0, 0
- bl sub_810BF38
- b _0810C0B8
-_0810C012:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C05C
- ldr r4, _0810C050 @ =gUnknown_02039248
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810BDAC
- ldr r1, _0810C054 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldrb r2, [r4]
- adds r1, r2
- strh r1, [r0, 0x8]
- ldr r1, _0810C058 @ =sub_810C0C8
- str r1, [r0]
- b _0810C0B8
- .align 2, 0
-_0810C050: .4byte gUnknown_02039248
-_0810C054: .4byte gTasks
-_0810C058: .4byte sub_810C0C8
-_0810C05C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C09C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810C088 @ =gUnknown_02039248
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _0810C094
- ldr r1, _0810C08C @ =gScriptResult
- ldr r2, _0810C090 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_810C31C
- b _0810C0B8
- .align 2, 0
-_0810C088: .4byte gUnknown_02039248
-_0810C08C: .4byte gScriptResult
-_0810C090: .4byte 0x0000ffff
-_0810C094:
- adds r0, r5, 0
- bl sub_810C368
- b _0810C0B8
-_0810C09C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0810C0C0 @ =gScriptResult
- ldr r2, _0810C0C4 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_810C31C
-_0810C0B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C0C0: .4byte gScriptResult
-_0810C0C4: .4byte 0x0000ffff
- thumb_func_end sub_810BF7C
-
- thumb_func_start sub_810C0C8
-sub_810C0C8: @ 810C0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0810C0F4 @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C110
- ldr r4, _0810C0F8 @ =gUnknown_02039248
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810C0FC
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C0F4: .4byte gMain
-_0810C0F8: .4byte gUnknown_02039248
-_0810C0FC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- b _0810C150
-_0810C110:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C168
- ldr r4, _0810C134 @ =gUnknown_02039248
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810C138
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C134: .4byte gUnknown_02039248
-_0810C138:
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
-_0810C150:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C158:
- movs r0, 0x1
- bl sub_810BF38
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_810C1C8
- b _0810C1BA
-_0810C168:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C17A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C190
-_0810C17A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- adds r0, r5, 0
- bl sub_810C23C
- b _0810C1AC
-_0810C190:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C1BA
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- movs r0, 0
- bl sub_810BDAC
-_0810C1AC:
- ldr r0, _0810C1C0 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C1C4 @ =sub_810BF7C
- str r0, [r1]
-_0810C1BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C1C0: .4byte gTasks
-_0810C1C4: .4byte sub_810BF7C
- thumb_func_end sub_810C0C8
-
- thumb_func_start sub_810C1C8
-sub_810C1C8: @ 810C1C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- ldr r6, _0810C22C @ =0x00001005
- cmp r1, 0
- bne _0810C1D8
- movs r6, 0x5
-_0810C1D8:
- ldr r1, _0810C230 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r2, _0810C234 @ =gUnknown_02039248
- ldrb r1, [r2, 0x1]
- ldrh r0, [r0, 0x8]
- subs r0, r1
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0x8
- bhi _0810C226
- asrs r0, r1, 16
- ldrb r2, [r2]
- cmp r0, r2
- beq _0810C226
- movs r2, 0
- lsls r0, 1
- adds r1, r0, 0x1
- lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
- adds r0, 0x2
- lsls r4, r0, 5
-_0810C208:
- adds r0, r2, 0
- adds r0, 0xF
- adds r1, r5, r0
- lsls r1, 1
- adds r1, r3
- strh r6, [r1]
- adds r0, r4, r0
- lsls r0, 1
- adds r0, r3
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810C208
-_0810C226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C22C: .4byte 0x00001005
-_0810C230: .4byte gTasks
-_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBGTilemapBuffers + 0x1000
- thumb_func_end sub_810C1C8
-
- thumb_func_start sub_810C23C
-sub_810C23C: @ 810C23C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r7, _0810C25C @ =gUnknown_02039248
- ldrb r0, [r7]
- ldrb r2, [r7, 0x1]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r7, 0x2]
- cmp r0, r2
- bne _0810C260
- movs r0, 0
- bl sub_810BDAC
- b _0810C2A2
- .align 2, 0
-_0810C25C: .4byte gUnknown_02039248
-_0810C260:
- ldr r4, _0810C2A8 @ =gSaveBlock1
- lsls r3, r0, 3
- movs r0, 0xFF
- lsls r0, 3
- adds r4, r0
- adds r3, r4
- ldr r5, [r3]
- ldr r6, [r3, 0x4]
- ldr r0, _0810C2AC @ =gTasks
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 3
- adds r2, r0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r3]
- str r1, [r3, 0x4]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
- str r6, [r0, 0x4]
- ldrb r0, [r7, 0x1]
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
-_0810C2A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C2A8: .4byte gSaveBlock1
-_0810C2AC: .4byte gTasks
- thumb_func_end sub_810C23C
-
- thumb_func_start sub_810C2B0
-sub_810C2B0: @ 810C2B0
- push {lr}
- movs r0, 0
- bl DestroyVerticalScrollIndicator
- movs r0, 0x1
- bl DestroyVerticalScrollIndicator
- bl BuyMenuFreeMemory
- pop {r0}
- bx r0
- thumb_func_end sub_810C2B0
-
- thumb_func_start sub_810C2C8
-sub_810C2C8: @ 810C2C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810C308 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C300
- ldr r4, _0810C30C @ =gUnknown_02039244
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _0810C2E8
- ldr r1, _0810C310 @ =gFieldCallback
- ldr r0, _0810C314 @ =sub_8080990
- str r0, [r1]
-_0810C2E8:
- bl sub_810C2B0
- ldr r0, _0810C318 @ =gUnknown_083F7EA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0810C300:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C308: .4byte gPaletteFade
-_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gFieldCallback
-_0810C314: .4byte sub_8080990
-_0810C318: .4byte gUnknown_083F7EA8
- thumb_func_end sub_810C2C8
-
- thumb_func_start sub_810C31C
-sub_810C31C: @ 810C31C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810C358 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C342
- ldr r0, _0810C35C @ =gScriptItemId
- strh r5, [r0]
-_0810C342:
- ldr r0, _0810C360 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C364 @ =sub_810C2C8
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte gScriptItemId
-_0810C360: .4byte gTasks
-_0810C364: .4byte sub_810C2C8
- thumb_func_end sub_810C31C
-
- thumb_func_start sub_810C368
-sub_810C368: @ 810C368
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _0810C3E8 @ =gUnknown_02039244
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C37C
- movs r4, 0x2
-_0810C37C:
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- ldr r0, _0810C3EC @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- adds r1, r4, 0x4
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- adds r4, 0x5
- ldr r5, _0810C3F0 @ =gUnknown_0203924C
- ldrb r2, [r5]
- ldr r3, _0810C3F4 @ =gUnknown_083F7EF4
- ldr r0, _0810C3F8 @ =gUnknown_03000758
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl InitMenu
- ldr r2, _0810C3FC @ =gScriptItemId
- ldr r1, _0810C400 @ =gUnknown_02039248
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strh r0, [r2]
- ldr r1, _0810C404 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C408 @ =sub_810C40C
- str r1, [r0]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3E8: .4byte gUnknown_02039244
-_0810C3EC: .4byte gWindowConfig_81E6E50
-_0810C3F0: .4byte gUnknown_0203924C
-_0810C3F4: .4byte gUnknown_083F7EF4
-_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte gScriptItemId
-_0810C400: .4byte gUnknown_02039248
-_0810C404: .4byte gTasks
-_0810C408: .4byte sub_810C40C
- thumb_func_end sub_810C368
-
- thumb_func_start sub_810C40C
-sub_810C40C: @ 810C40C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0810C43C @ =gMain
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C440
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C43C: .4byte gMain
-_0810C440:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C46C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C468 @ =gUnknown_0203924C
- ldrb r1, [r1]
- subs r1, 0x1
- cmp r0, r1
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C468: .4byte gUnknown_0203924C
-_0810C46C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C4A8
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0810C4A0 @ =gUnknown_083F7EF4
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C4A4 @ =gUnknown_03000758
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810C4BC
- .align 2, 0
-_0810C4A0: .4byte gUnknown_083F7EF4
-_0810C4A4: .4byte gUnknown_03000758
-_0810C4A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810C748
-_0810C4BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C40C
-
- thumb_func_start sub_810C4C4
-sub_810C4C4: @ 810C4C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810C4F8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C4F0
- bl sub_810C2B0
- ldr r0, _0810C4FC @ =gScriptItemId
- ldrh r0, [r0]
- lsls r0, 3
- ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
- adds r0, r1
- ldr r1, _0810C504 @ =sub_810B96C
- bl sub_8136130
- adds r0, r4, 0
- bl DestroyTask
-_0810C4F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte gScriptItemId
-_0810C500: .4byte gSaveBlock1 + 0x7F8
-_0810C504: .4byte sub_810B96C
- thumb_func_end sub_810C4C4
-
- thumb_func_start sub_810C508
-sub_810C508: @ 810C508
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C538 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C53C @ =sub_810C4C4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C538: .4byte gTasks
-_0810C53C: .4byte sub_810C4C4
- thumb_func_end sub_810C508
-
- thumb_func_start sub_810C540
-sub_810C540: @ 810C540
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- bl HandleDestroyMenuCursors
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0810C5A4 @ =gStringVar1
- ldr r4, _0810C5A8 @ =gPokeblockNames
- ldr r3, _0810C5AC @ =gSaveBlock1
- ldr r2, _0810C5B0 @ =gUnknown_02039248
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r4, _0810C5B4 @ =gStringVar4
- ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C5BC @ =sub_810C5EC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5A0: .4byte gWindowConfig_81E6E50
-_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gPokeblockNames
-_0810C5AC: .4byte gSaveBlock1
-_0810C5B0: .4byte gUnknown_02039248
-_0810C5B4: .4byte gStringVar4
-_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
-_0810C5BC: .4byte sub_810C5EC
- thumb_func_end sub_810C540
-
- thumb_func_start sub_810C5C0
-sub_810C5C0: @ 810C5C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C5E4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C5E8 @ =sub_810C540
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5E4: .4byte gTasks
-_0810C5E8: .4byte sub_810C540
- thumb_func_end sub_810C5C0
-
- thumb_func_start sub_810C5EC
-sub_810C5EC: @ 810C5EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810C60C @ =gUnknown_083F7F24
- adds r0, r4, 0
- bl DoYesNoFuncWithChoice
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C60C: .4byte gUnknown_083F7F24
- thumb_func_end sub_810C5EC
-
- thumb_func_start sub_810C610
-sub_810C610: @ 810C610
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C658 @ =gUnknown_02039248
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- ldr r5, _0810C65C @ =gStringVar4
- ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C664 @ =sub_810C704
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- bl sub_810BC98
- bl sub_810BD08
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C658: .4byte gUnknown_02039248
-_0810C65C: .4byte gStringVar4
-_0810C660: .4byte gContestStatsText_WasThrownAway
-_0810C664: .4byte sub_810C704
- thumb_func_end sub_810C610
-
- thumb_func_start sub_810C668
-sub_810C668: @ 810C668
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- ldr r2, _0810C6CC @ =gUnknown_02039248
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810C698
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810C698
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_0810C698:
- ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50
- bl BasicInitMenuWindow
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0810C6D4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C6D8 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C6CC: .4byte gUnknown_02039248
-_0810C6D0: .4byte gWindowConfig_81E6E50
-_0810C6D4: .4byte gTasks
-_0810C6D8: .4byte sub_810BF7C
- thumb_func_end sub_810C668
-
- thumb_func_start sub_810C6DC
-sub_810C6DC: @ 810C6DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810C700 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C6F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C6FC
-_0810C6F6:
- adds r0, r2, 0
- bl sub_810C668
-_0810C6FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810C700: .4byte gMain
- thumb_func_end sub_810C6DC
-
- thumb_func_start sub_810C704
-sub_810C704: @ 810C704
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810C738 @ =gWindowConfig_81E6E34
- bl BasicInitMenuWindow
- ldr r0, _0810C73C @ =gUnknown_02039248
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C740 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C744 @ =sub_810C6DC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C738: .4byte gWindowConfig_81E6E34
-_0810C73C: .4byte gUnknown_02039248
-_0810C740: .4byte gTasks
-_0810C744: .4byte sub_810C6DC
- thumb_func_end sub_810C704
-
- thumb_func_start sub_810C748
-sub_810C748: @ 810C748
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl StartVerticalScrollIndicators
- movs r0, 0x1
- bl StartVerticalScrollIndicators
- bl HandleDestroyMenuCursors
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C780 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C784 @ =sub_810BF7C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C780: .4byte gTasks
-_0810C784: .4byte sub_810BF7C
- thumb_func_end sub_810C748
-
- thumb_func_start sub_810C788
-sub_810C788: @ 810C788
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810C834 @ =gEnemyParty
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _0810C838 @ =gScriptItemId
- ldrh r1, [r7]
- lsls r1, 3
- ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
- adds r1, r5
- bl sub_810CAE4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810C840 @ =gBattleTextBuff1
- ldr r2, _0810C844 @ =gPokeblockNames
- ldr r1, _0810C848 @ =0xfffff808
- adds r5, r1
- ldrh r1, [r7]
- lsls r1, 3
- adds r1, r5
- movs r6, 0xFF
- lsls r6, 3
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldrb r0, [r7]
- bl sub_810CA6C
- ldrh r0, [r7]
- lsls r0, 3
- adds r0, r5
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 8
- strh r0, [r7]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- bne _0810C7F4
- adds r0, 0x1
- strh r0, [r7]
-_0810C7F4:
- cmp r4, 0
- ble _0810C7FE
- ldrh r0, [r7]
- adds r0, 0x2
- strh r0, [r7]
-_0810C7FE:
- cmp r4, 0
- bge _0810C808
- ldrh r0, [r7]
- adds r0, 0x3
- strh r0, [r7]
-_0810C808:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C84C @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C850 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C834: .4byte gEnemyParty
-_0810C838: .4byte gScriptItemId
-_0810C83C: .4byte gSaveBlock1 + 0x7F8
-_0810C840: .4byte gBattleTextBuff1
-_0810C844: .4byte gPokeblockNames
-_0810C848: .4byte 0xfffff808
-_0810C84C: .4byte gTasks
-_0810C850: .4byte sub_810C2C8
- thumb_func_end sub_810C788
-
- thumb_func_start sub_810C854
-sub_810C854: @ 810C854
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810C8B8 @ =gScriptItemId
- ldrb r0, [r4]
- bl SafariZoneActivatePokeblockFeeder
- ldr r0, _0810C8BC @ =gStringVar1
- ldr r3, _0810C8C0 @ =gPokeblockNames
- ldr r2, _0810C8C4 @ =gSaveBlock1
- ldrh r1, [r4]
- lsls r1, 3
- adds r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _0810C8C8 @ =gScriptResult
- ldrh r0, [r4]
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C8CC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C8D0 @ =sub_810C2C8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C8B8: .4byte gScriptItemId
-_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gPokeblockNames
-_0810C8C4: .4byte gSaveBlock1
-_0810C8C8: .4byte gScriptResult
-_0810C8CC: .4byte gTasks
-_0810C8D0: .4byte sub_810C2C8
- thumb_func_end sub_810C854
-
- thumb_func_start sub_810C8D4
-sub_810C8D4: @ 810C8D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _0810C8E4
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810C8E4:
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _0810C8F2
- cmp r5, 0x1
- beq _0810C918
- b _0810C944
-_0810C8F2:
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r0, _0810C914 @ =gSpriteAffineAnimTable_83F7F70
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- b _0810C944
- .align 2, 0
-_0810C914: .4byte gSpriteAffineAnimTable_83F7F70
-_0810C918:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _0810C944
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- strh r2, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, _0810C94C @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0810C944:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C94C: .4byte SpriteCallbackDummy
- thumb_func_end sub_810C8D4
-
- thumb_func_start ClearPokeblock
-ClearPokeblock: @ 810C950
- lsls r0, 24
- ldr r1, _0810C988 @ =gSaveBlock1
- lsrs r0, 21
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _0810C98C @ =0x000007f9
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0810C990 @ =0x000007fe
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0810C988: .4byte gSaveBlock1
-_0810C98C: .4byte 0x000007f9
-_0810C990: .4byte 0x000007fe
- thumb_func_end ClearPokeblock
-
- thumb_func_start ClearPokeblocks
-ClearPokeblocks: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl ClearPokeblock
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x27
- bls _0810C998
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearPokeblocks
-
- thumb_func_start sub_810C9B0
-sub_810C9B0: @ 810C9B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_810CA9C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x1
-_0810C9C0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcs _0810C9D8
- adds r5, r0, 0
-_0810C9D8:
- adds r1, r4, 0
- cmp r1, 0x4
- bls _0810C9C0
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9B0
-
- thumb_func_start sub_810C9E8
-sub_810C9E8: @ 810C9E8
- push {lr}
- movs r1, 0x6
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- bls _0810C9FA
- movs r0, 0x63
-_0810C9FA:
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E8
-
- thumb_func_start sub_810CA00
-sub_810CA00: @ 810CA00
- push {lr}
- movs r1, 0
- ldr r3, _0810CA1C @ =gSaveBlock1
- movs r2, 0xFF
- lsls r2, 3
-_0810CA0A:
- lsls r0, r1, 3
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CA20
- lsls r0, r1, 24
- asrs r0, 24
- b _0810CA2E
- .align 2, 0
-_0810CA1C: .4byte gSaveBlock1
-_0810CA20:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x27
- bls _0810CA0A
- movs r0, 0x1
- negs r0, r0
-_0810CA2E:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA00
-
- thumb_func_start sub_810CA34
-sub_810CA34: @ 810CA34
- push {r4,lr}
- adds r4, r0, 0
- bl sub_810CA00
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0810CA64
- ldr r0, _0810CA60 @ =gSaveBlock1
- lsls r2, 3
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- adds r2, r0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x1
- b _0810CA66
- .align 2, 0
-_0810CA60: .4byte gSaveBlock1
-_0810CA64:
- movs r0, 0
-_0810CA66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810CA34
-
- thumb_func_start sub_810CA6C
-sub_810CA6C: @ 810CA6C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0810CA90 @ =gSaveBlock1
- lsls r0, r2, 3
- adds r0, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810CA94
- adds r0, r2, 0
- bl ClearPokeblock
- movs r0, 0x1
- b _0810CA96
- .align 2, 0
-_0810CA90: .4byte gSaveBlock1
-_0810CA94:
- movs r0, 0
-_0810CA96:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA6C
-
- thumb_func_start sub_810CA9C
-sub_810CA9C: @ 810CA9C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _0810CAAC
- ldrb r0, [r0]
- b _0810CADE
-_0810CAAC:
- cmp r1, 0x1
- bne _0810CAB4
- ldrb r0, [r0, 0x1]
- b _0810CADE
-_0810CAB4:
- cmp r1, 0x2
- bne _0810CABC
- ldrb r0, [r0, 0x2]
- b _0810CADE
-_0810CABC:
- cmp r1, 0x3
- bne _0810CAC4
- ldrb r0, [r0, 0x3]
- b _0810CADE
-_0810CAC4:
- cmp r1, 0x4
- bne _0810CACC
- ldrb r0, [r0, 0x4]
- b _0810CADE
-_0810CACC:
- cmp r1, 0x5
- bne _0810CAD4
- ldrb r0, [r0, 0x5]
- b _0810CADE
-_0810CAD4:
- cmp r2, 0x6
- beq _0810CADC
- movs r0, 0
- b _0810CADE
-_0810CADC:
- ldrb r0, [r0, 0x6]
-_0810CADE:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA9C
-
- thumb_func_start sub_810CAE4
-sub_810CAE4: @ 810CAE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- movs r4, 0
- ldr r1, _0810CB40 @ =gUnknown_083F7E28
- mov r9, r1
- lsls r1, r0, 2
- adds r7, r1, r0
-_0810CAFE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- adds r1, r5, 0
- bl sub_810CA9C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0810CB2A
- adds r0, r7, r4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r1, r0
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CB2A:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _0810CAFE
- lsls r0, r6, 16
- asrs r0, 16
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810CB40: .4byte gUnknown_083F7E28
- thumb_func_end sub_810CAE4
-
- thumb_func_start sub_810CB44
-sub_810CB44: @ 810CB44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r1, _0810CB64 @ =gPokeblockNames
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CB64: .4byte gPokeblockNames
- thumb_func_end sub_810CB44
-
- thumb_func_start sub_810CB68
-sub_810CB68: @ 810CB68
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _0810CB98 @ =gPokeblockNames
-_0810CB74:
- lsls r1, r4, 3
- ldr r0, _0810CB9C @ =gUnknown_083F7F9C
- adds r1, r0
- adds r0, r5, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _0810CBA0
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0x1
- b _0810CBAC
- .align 2, 0
-_0810CB98: .4byte gPokeblockNames
-_0810CB9C: .4byte gUnknown_083F7F9C
-_0810CBA0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810CB74
- movs r0, 0
-_0810CBAC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CB68
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s
deleted file mode 100644
index a553802e8..000000000
--- a/asm/rotating_gate.s
+++ /dev/null
@@ -1,1085 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetCurrentMapRotatingGatePuzzleType
-GetCurrentMapRotatingGatePuzzleType: @ 80C799C
- push {lr}
- ldr r0, _080C79B0 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0x86
- lsls r0, 1
- cmp r1, r0
- bne _080C79B4
- movs r0, 0x1
- b _080C79C6
- .align 2, 0
-_080C79B0: .4byte gSaveBlock1
-_080C79B4:
- ldr r0, _080C79C0 @ =0x0000081d
- cmp r1, r0
- beq _080C79C4
- movs r0, 0
- b _080C79C6
- .align 2, 0
-_080C79C0: .4byte 0x0000081d
-_080C79C4:
- movs r0, 0x2
-_080C79C6:
- pop {r1}
- bx r1
- thumb_func_end GetCurrentMapRotatingGatePuzzleType
-
- thumb_func_start sub_80C79CC
-sub_80C79CC: @ 80C79CC
- push {r4-r6,lr}
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r5, r0, 0
- movs r3, 0
- ldr r4, _080C7A00 @ =gUnknown_02038804
- ldrb r0, [r4]
- cmp r3, r0
- bge _080C79F8
- ldr r6, _080C7A04 @ =gUnknown_02038800
-_080C79E4:
- adds r2, r5, r3
- ldr r1, [r6]
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _080C79E4
-_080C79F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7A00: .4byte gUnknown_02038804
-_080C7A04: .4byte gUnknown_02038800
- thumb_func_end sub_80C79CC
-
- thumb_func_start sub_80C7A08
-sub_80C7A08: @ 80C7A08
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7A08
-
- thumb_func_start sub_80C7A24
-sub_80C7A24: @ 80C7A24
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x80
- lsls r0, 7
- bl GetVarPointer
- adds r0, r4
- strb r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A24
-
- thumb_func_start sub_80C7A44
-sub_80C7A44: @ 80C7A44
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r4, 0x1
- bne _080C7A68
- cmp r1, 0
- beq _080C7A64
- subs r0, r1, 0x1
- lsls r0, 24
- b _080C7A72
-_080C7A64:
- movs r1, 0x3
- b _080C7A74
-_080C7A68:
- adds r1, 0x1
- lsls r1, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
-_080C7A72:
- lsrs r1, r0, 24
-_080C7A74:
- adds r0, r5, 0
- bl sub_80C7A24
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7A44
-
- thumb_func_start sub_80C7A80
-sub_80C7A80: @ 80C7A80
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0x1
- beq _080C7A94
- cmp r0, 0x1
- ble _080C7AC8
- cmp r0, 0x2
- beq _080C7AAC
- b _080C7AC8
-_080C7A94:
- ldr r1, _080C7AA0 @ =gUnknown_02038800
- ldr r0, _080C7AA4 @ =gUnknown_083D2964
- str r0, [r1]
- ldr r1, _080C7AA8 @ =gUnknown_02038804
- movs r0, 0x7
- b _080C7AB6
- .align 2, 0
-_080C7AA0: .4byte gUnknown_02038800
-_080C7AA4: .4byte gUnknown_083D2964
-_080C7AA8: .4byte gUnknown_02038804
-_080C7AAC:
- ldr r1, _080C7ACC @ =gUnknown_02038800
- ldr r0, _080C7AD0 @ =gUnknown_083D299C
- str r0, [r1]
- ldr r1, _080C7AD4 @ =gUnknown_02038804
- movs r0, 0xE
-_080C7AB6:
- strb r0, [r1]
- movs r1, 0
- ldr r3, _080C7AD8 @ =gUnknown_020387F0
- movs r2, 0x40
-_080C7ABE:
- adds r0, r1, r3
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0xD
- bls _080C7ABE
-_080C7AC8:
- pop {r0}
- bx r0
- .align 2, 0
-_080C7ACC: .4byte gUnknown_02038800
-_080C7AD0: .4byte gUnknown_083D299C
-_080C7AD4: .4byte gUnknown_02038804
-_080C7AD8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7A80
-
- thumb_func_start sub_80C7ADC
-sub_80C7ADC: @ 80C7ADC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- ldr r2, _080C7B9C @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r2, r0, 16
- adds r1, 0xE
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- movs r5, 0
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080C7B8C
- lsls r0, r2, 16
- asrs r7, r0, 16
- lsls r0, r3, 16
- asrs r6, r0, 16
-_080C7B28:
- ldr r0, _080C7BA4 @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r5, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080C7B7E
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- lsls r0, r2, 16
- asrs r1, r0, 16
- cmp r6, r1
- bgt _080C7B7E
- mov r2, r9
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, r1
- blt _080C7B7E
- ldr r0, _080C7BA8 @ =gUnknown_020387F0
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0x40
- bne _080C7B7E
- ldr r3, [sp]
- lsls r1, r3, 16
- mov r0, r10
- lsls r2, r0, 16
- adds r0, r5, 0
- asrs r1, 16
- asrs r2, 16
- bl sub_80C7BAC
- strb r0, [r4]
-_080C7B7E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C7BA0 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r5, r0
- bcc _080C7B28
-_080C7B8C:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7B9C: .4byte gSaveBlock1
-_080C7BA0: .4byte gUnknown_02038804
-_080C7BA4: .4byte gUnknown_02038800
-_080C7BA8: .4byte gUnknown_020387F0
- thumb_func_end sub_80C7ADC
-
- thumb_func_start sub_80C7BAC
-sub_80C7BAC: @ 80C7BAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _080C7BDC @ =gUnknown_02038800
- lsls r1, r6, 3
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _080C7BD4
- cmp r0, 0x4
- bne _080C7BE4
-_080C7BD4:
- mov r1, sp
- ldr r0, _080C7BE0 @ =gSpriteTemplate_83D60A4
- b _080C7BE8
- .align 2, 0
-_080C7BDC: .4byte gUnknown_02038800
-_080C7BE0: .4byte gSpriteTemplate_83D60A4
-_080C7BE4:
- mov r1, sp
- ldr r0, _080C7C7C @ =gSpriteTemplate_83D608C
-_080C7BE8:
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r2, sp
- ldrb r0, [r4, 0x4]
- movs r3, 0x98
- lsls r3, 5
- adds r1, r3, 0
- adds r0, r1
- strh r0, [r2]
- mov r0, sp
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _080C7C84
- ldrh r0, [r4]
- adds r0, 0x7
- ldrh r1, [r4, 0x2]
- adds r1, 0x7
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r2, _080C7C80 @ =gSprites
- adds r4, r2
- strh r6, [r4, 0x2E]
- movs r2, 0x3E
- adds r2, r4
- mov r12, r2
- ldrb r2, [r2]
- movs r3, 0x2
- orrs r2, r3
- mov r3, r12
- strb r2, [r3]
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 16
- asrs r2, 16
- adds r0, r2
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- mov r3, r8
- lsls r2, r3, 16
- asrs r2, 16
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- adds r2, r4, 0
- adds r2, 0x20
- adds r3, r4, 0
- adds r3, 0x22
- bl sub_8060388
- adds r0, r4, 0
- bl sub_80C7D14
- adds r0, r6, 0
- bl sub_80C7A08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- adds r0, r5, 0
- b _080C7C86
- .align 2, 0
-_080C7C7C: .4byte gSpriteTemplate_83D608C
-_080C7C80: .4byte gSprites
-_080C7C84:
- movs r0, 0x40
-_080C7C86:
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80C7BAC
-
- thumb_func_start sub_80C7C94
-sub_80C7C94: @ 80C7C94
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r6, 0x32]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r6, 0
- bl sub_80C7D14
- cmp r5, 0x1
- bne _080C7CDA
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CCA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CCA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
- b _080C7D08
-_080C7CDA:
- cmp r5, 0x2
- bne _080C7D08
- adds r0, r7, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080C7CFA
- adds r0, r4, 0
- adds r0, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
-_080C7CFA:
- movs r0, 0x30
- bl PlaySE
- adds r0, r6, 0
- adds r1, r4, 0
- bl StartSpriteAffineAnim
-_080C7D08:
- movs r0, 0
- strh r0, [r6, 0x30]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C7C94
-
- thumb_func_start sub_80C7D14
-sub_80C7D14: @ 80C7D14
- push {r4-r6,lr}
- mov r12, r0
- mov r4, r12
- adds r4, 0x3E
- ldrb r0, [r4]
- movs r5, 0x5
- negs r5, r5
- ands r5, r0
- strb r5, [r4]
- mov r0, r12
- ldrh r1, [r0, 0x24]
- ldrh r2, [r0, 0x20]
- adds r1, r2
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldr r0, _080C7DA8 @ =gSpriteCoordOffsetX
- adds r2, r1
- ldrh r0, [r0]
- adds r2, r0
- lsls r2, 16
- mov r3, r12
- ldrh r1, [r3, 0x26]
- ldrh r0, [r3, 0x22]
- adds r1, r0
- mov r0, r12
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldr r3, _080C7DAC @ =gSpriteCoordOffsetY
- adds r0, r1
- ldrh r3, [r3]
- adds r0, r3
- lsls r0, 16
- movs r3, 0x80
- lsls r3, 15
- adds r1, r2, r3
- lsrs r1, 16
- lsrs r6, r0, 16
- adds r0, r3
- lsrs r3, r0, 16
- asrs r2, 16
- cmp r2, 0xFF
- bgt _080C7D7A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7D82
-_080C7D7A:
- movs r1, 0x4
- adds r0, r5, 0
- orrs r0, r1
- strb r0, [r4]
-_080C7D82:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xAF
- bgt _080C7D96
- lsls r0, r3, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _080C7DA2
-_080C7D96:
- mov r0, r12
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080C7DA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DA8: .4byte gSpriteCoordOffsetX
-_080C7DAC: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_80C7D14
-
- thumb_func_start LoadRotatingGatePics
-LoadRotatingGatePics: @ 80C7DB0
- push {lr}
- ldr r0, _080C7DBC @ =gRotatingGatesGraphicsTable
- bl LoadSpriteSheets
- pop {r0}
- bx r0
- .align 2, 0
-_080C7DBC: .4byte gRotatingGatesGraphicsTable
- thumb_func_end LoadRotatingGatePics
-
- thumb_func_start sub_80C7DC0
-sub_80C7DC0: @ 80C7DC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _080C7DF4 @ =gSaveBlock1
- ldrh r1, [r2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r1, 0x11
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- ldrh r1, [r2, 0x2]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r1, 0xE
- lsls r1, 16
- lsrs r7, r1, 16
- movs r6, 0
- b _080C7E66
- .align 2, 0
-_080C7DF4: .4byte gSaveBlock1
-_080C7DF8:
- ldr r0, _080C7E7C @ =gUnknown_02038800
- ldr r0, [r0]
- lsls r1, r6, 3
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r1, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r0, r6, r0
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _080C7E64
- lsls r0, r2, 16
- mov r2, r10
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r2, r0
- bgt _080C7E44
- lsls r0, r3, 16
- mov r2, r8
- lsls r1, r2, 16
- asrs r2, r0, 16
- cmp r0, r1
- blt _080C7E44
- lsls r0, r7, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C7E64
-_080C7E44:
- ldr r0, _080C7E80 @ =gUnknown_020387F0
- adds r5, r6, r0
- ldrb r0, [r5]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7E84 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
-_080C7E64:
- adds r6, 0x1
-_080C7E66:
- ldr r0, _080C7E88 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C7DF8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7E7C: .4byte gUnknown_02038800
-_080C7E80: .4byte gUnknown_020387F0
-_080C7E84: .4byte gSprites
-_080C7E88: .4byte gUnknown_02038804
- thumb_func_end sub_80C7DC0
-
- thumb_func_start sub_80C7E8C
-sub_80C7E8C: @ 80C7E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r1, 0x1
- bne _080C7EAC
- ldr r0, _080C7EA8 @ =gUnknown_083D611C
- mov r10, r0
- b _080C7EB8
- .align 2, 0
-_080C7EA8: .4byte gUnknown_083D611C
-_080C7EAC:
- cmp r1, 0x2
- beq _080C7EB4
-_080C7EB0:
- movs r0, 0
- b _080C7F48
-_080C7EB4:
- ldr r1, _080C7F58 @ =gUnknown_083D60FC
- mov r10, r1
-_080C7EB8:
- adds r0, r4, 0
- bl sub_80C7A08
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r0, _080C7F5C @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r4, 3
- adds r0, r1
- ldrb r2, [r0, 0x4]
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- movs r3, 0
- lsls r2, 3
- str r2, [sp, 0x4]
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
-_080C7EE8:
- movs r6, 0
- ldr r2, [sp]
- adds r7, r2, r3
- lsls r0, r3, 1
- adds r5, r7, 0
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldr r2, _080C7F60 @ =gUnknown_083D613C
- adds r4, r0, r2
-_080C7EFA:
- adds r0, r5, 0
- cmp r5, 0
- bge _080C7F02
- adds r0, r7, 0x3
-_080C7F02:
- asrs r0, 2
- lsls r0, 2
- subs r0, r5, r0
- lsls r0, 1
- adds r0, r6
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r4]
- cmp r0, 0
- beq _080C7F38
- lsls r1, 2
- add r1, r10
- movs r0, 0
- ldrsb r0, [r1, r0]
- add r0, r9
- ldrb r1, [r1, 0x1]
- lsls r1, 24
- asrs r1, 24
- add r1, r8
- str r3, [sp, 0x8]
- bl MapGridIsImpassableAt
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x8]
- cmp r0, 0x1
- beq _080C7EB0
-_080C7F38:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1
- ble _080C7EFA
- adds r3, 0x1
- cmp r3, 0x3
- ble _080C7EE8
- movs r0, 0x1
-_080C7F48:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7F58: .4byte gUnknown_083D60FC
-_080C7F5C: .4byte gUnknown_02038800
-_080C7F60: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7E8C
-
- thumb_func_start sub_80C7F64
-sub_80C7F64: @ 80C7F64
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- lsls r4, 24
- lsrs r5, r4, 24
- lsrs r4, 25
- movs r0, 0x1
- ands r5, r0
- adds r0, r6, 0
- bl sub_80C7A08
- subs r4, r0
- adds r1, r4, 0x4
- adds r0, r1, 0
- cmp r1, 0
- bge _080C7F8A
- adds r0, r4, 0x7
-_080C7F8A:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- ldr r1, _080C7FB0 @ =gUnknown_02038800
- ldr r2, [r1]
- lsls r1, r6, 3
- adds r1, r2
- ldrb r1, [r1, 0x4]
- ldr r2, _080C7FB4 @ =gUnknown_083D613C
- lsls r0, 24
- asrs r0, 23
- adds r0, r5
- lsls r1, 3
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080C7FB0: .4byte gUnknown_02038800
-_080C7FB4: .4byte gUnknown_083D613C
- thumb_func_end sub_80C7F64
-
- thumb_func_start sub_80C7FB8
-sub_80C7FB8: @ 80C7FB8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080C7FE4 @ =gUnknown_020387F0
- adds r2, r3, r0
- ldrb r0, [r2]
- cmp r0, 0x40
- beq _080C7FDC
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _080C7FE8 @ =gSprites
- adds r4, r0
- strh r1, [r4, 0x30]
- adds r0, r3, 0
- bl sub_80C7A08
- strh r0, [r4, 0x32]
-_080C7FDC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7FE4: .4byte gUnknown_020387F0
-_080C7FE8: .4byte gSprites
- thumb_func_end sub_80C7FB8
-
- thumb_func_start sub_80C7FEC
-sub_80C7FEC: @ 80C7FEC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0x2
- bne _080C8008
- ldr r3, _080C8004 @ =gUnknown_083D60BC
- b _080C802A
- .align 2, 0
-_080C8004: .4byte gUnknown_083D60BC
-_080C8008:
- cmp r0, 0x1
- bne _080C8014
- ldr r3, _080C8010 @ =gUnknown_083D60CC
- b _080C802A
- .align 2, 0
-_080C8010: .4byte gUnknown_083D60CC
-_080C8014:
- cmp r0, 0x3
- bne _080C8020
- ldr r3, _080C801C @ =gUnknown_083D60DC
- b _080C802A
- .align 2, 0
-_080C801C: .4byte gUnknown_083D60DC
-_080C8020:
- cmp r3, 0x4
- beq _080C8028
- movs r0, 0xFF
- b _080C8038
-_080C8028:
- ldr r3, _080C803C @ =gUnknown_083D60EC
-_080C802A:
- lsls r0, r2, 16
- lsls r1, 16
- asrs r1, 16
- asrs r0, 14
- adds r0, r1
- adds r0, r3, r0
- ldrb r0, [r0]
-_080C8038:
- pop {r1}
- bx r1
- .align 2, 0
-_080C803C: .4byte gUnknown_083D60EC
- thumb_func_end sub_80C7FEC
-
- thumb_func_start sub_80C8040
-sub_80C8040: @ 80C8040
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C8052
- bl sub_80C7A80
- bl sub_80C79CC
-_080C8052:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8040
-
- thumb_func_start RotatingGatePuzzleCameraUpdate
-RotatingGatePuzzleCameraUpdate: @ 80C8058
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C807A
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl sub_80C7ADC
- bl sub_80C7DC0
-_080C807A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end RotatingGatePuzzleCameraUpdate
-
- thumb_func_start sub_80C8080
-sub_80C8080: @ 80C8080
- push {lr}
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- beq _080C809A
- bl LoadRotatingGatePics
- bl sub_80C7A80
- movs r0, 0
- movs r1, 0
- bl sub_80C7ADC
-_080C809A:
- pop {r0}
- bx r0
- thumb_func_end sub_80C8080
-
- thumb_func_start CheckForRotatingGatePuzzleCollision
-CheckForRotatingGatePuzzleCollision: @ 80C80A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- bl GetCurrentMapRotatingGatePuzzleType
- cmp r0, 0
- bne _080C80D4
- b _080C8172
-_080C80C2:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7FB8
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7A44
- b _080C8172
-_080C80D4:
- movs r6, 0
- ldr r0, _080C8160 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- bge _080C8172
- lsls r0, r4, 16
- asrs r7, r0, 16
-_080C80E2:
- ldr r0, _080C8164 @ =gUnknown_02038800
- ldr r1, [r0]
- lsls r0, r6, 3
- adds r0, r1
- ldrh r1, [r0]
- adds r1, 0x7
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- subs r0, r4, 0x2
- cmp r0, r7
- bgt _080C8168
- adds r0, r4, 0x1
- cmp r7, r0
- bgt _080C8168
- lsls r0, r2, 16
- asrs r3, r0, 16
- subs r1, r3, 0x2
- mov r2, r8
- lsls r0, r2, 16
- asrs r2, r0, 16
- cmp r1, r2
- bgt _080C8168
- adds r0, r3, 0x1
- cmp r2, r0
- bgt _080C8168
- subs r1, r7, r4
- adds r1, 0x2
- subs r2, r3
- adds r2, 0x2
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- mov r0, r9
- bl sub_80C7FEC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080C8168
- lsrs r5, r0, 4
- movs r1, 0xF
- ands r1, r0
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80C7F64
- cmp r0, 0
- beq _080C8168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80C7E8C
- cmp r0, 0
- bne _080C80C2
- movs r0, 0x1
- b _080C8174
- .align 2, 0
-_080C8160: .4byte gUnknown_02038804
-_080C8164: .4byte gUnknown_02038800
-_080C8168:
- adds r6, 0x1
- ldr r0, _080C8180 @ =gUnknown_02038804
- ldrb r0, [r0]
- cmp r6, r0
- blt _080C80E2
-_080C8172:
- movs r0, 0
-_080C8174:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C8180: .4byte gUnknown_02038804
- thumb_func_end CheckForRotatingGatePuzzleCollision
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
deleted file mode 100644
index b47229d2b..000000000
--- a/asm/sound_check_menu.s
+++ /dev/null
@@ -1,2444 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BA0A8
-sub_80BA0A8: @ 80BA0A8
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_80BA0A8
-
- thumb_func_start sub_80BA0C0
-sub_80BA0C0: @ 80BA0C0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _080BA0E8 @ =gUnknown_020387B0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BA0E2
- bl m4aSoundMain
- bl m4aSoundMain
- bl m4aSoundMain
-_080BA0E2:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA0E8: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA0C0
-
- thumb_func_start unref_sub_80BA0EC
-unref_sub_80BA0EC: @ 80BA0EC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _080BA20C @ =REG_BG2CNT
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x10
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r0, 0x6
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- add r0, sp, 0x4
- strh r5, [r0]
- ldr r1, _080BA210 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA214 @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA218 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _080BA21C @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _080BA220 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BA224 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BA228 @ =REG_WIN0H
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- ldr r1, _080BA22C @ =REG_WININ
- ldr r2, _080BA230 @ =0x00001111
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x31
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0xE1
- strh r0, [r1]
- ldr r0, _080BA234 @ =REG_BLDALPHA
- strh r4, [r0]
- adds r1, 0x4
- movs r0, 0x7
- strh r0, [r1]
- ldr r1, _080BA238 @ =0x04000200
- movs r2, 0x1
- strh r2, [r1]
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- ldr r2, _080BA23C @ =REG_DISPSTAT
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _080BA240 @ =sub_80BA0C0
- bl SetVBlankCallback
- ldr r0, _080BA244 @ =sub_80BA0A8
- bl SetMainCallback2
- ldr r1, _080BA248 @ =0x00007140
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _080BA24C @ =sub_80BA258
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080BA250 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r4, [r1, 0xE]
- ldr r0, _080BA254 @ =gUnknown_020387B0
- strb r5, [r0]
- strh r4, [r1, 0xE]
- bl m4aSoundInit
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA20C: .4byte REG_BG2CNT
-_080BA210: .4byte 0x040000d4
-_080BA214: .4byte 0x8100c000
-_080BA218: .4byte 0x85000100
-_080BA21C: .4byte 0x81000200
-_080BA220: .4byte gWindowConfig_81E6C3C
-_080BA224: .4byte gWindowConfig_81E6CE4
-_080BA228: .4byte REG_WIN0H
-_080BA22C: .4byte REG_WININ
-_080BA230: .4byte 0x00001111
-_080BA234: .4byte REG_BLDALPHA
-_080BA238: .4byte 0x04000200
-_080BA23C: .4byte REG_DISPSTAT
-_080BA240: .4byte sub_80BA0C0
-_080BA244: .4byte sub_80BA0A8
-_080BA248: .4byte 0x00007140
-_080BA24C: .4byte sub_80BA258
-_080BA250: .4byte gTasks
-_080BA254: .4byte gUnknown_020387B0
- thumb_func_end unref_sub_80BA0EC
-
- thumb_func_start sub_80BA258
-sub_80BA258: @ 80BA258
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x40
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080BA354 @ =gDebugText_SoundCheckJap
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- add r7, sp, 0xC
- ldr r1, _080BA358 @ =gDebugText_BGM
- adds r0, r7, 0
- movs r2, 0x4
- bl memcpy
- add r0, sp, 0x10
- mov r8, r0
- ldr r1, _080BA35C @ =gDebugText_SE
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x14
- ldr r1, _080BA360 @ =gUnknown_083D02D9
- adds r0, r5, 0
- movs r2, 0xD
- bl memcpy
- add r4, sp, 0x24
- ldr r1, _080BA364 @ =gDebugText_UpDown
- adds r0, r4, 0
- movs r2, 0xC
- bl memcpy
- add r6, sp, 0x30
- ldr r1, _080BA368 @ =gDebugText_DriverTest
- adds r0, r6, 0
- movs r2, 0xE
- bl memcpy
- ldr r0, _080BA36C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA344
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1B
- movs r3, 0x3
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0x5
- movs r2, 0x1B
- movs r3, 0xA
- bl MenuDrawTextWindow
- movs r0, 0x2
- movs r1, 0xC
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x4
- movs r2, 0x1
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x1
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x4
- movs r2, 0x6
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0x6
- bl MenuPrint
- mov r0, r8
- movs r1, 0x4
- movs r2, 0xD
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0xE
- movs r2, 0xD
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0xE
- movs r2, 0x12
- bl MenuPrint
- ldr r1, _080BA370 @ =gTasks
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA374 @ =sub_80BA384
- str r1, [r0]
- ldr r1, _080BA378 @ =REG_WIN0H
- ldr r2, _080BA37C @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA380 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
-_080BA344:
- add sp, 0x40
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA354: .4byte gDebugText_SoundCheckJap
-_080BA358: .4byte gDebugText_BGM
-_080BA35C: .4byte gDebugText_SE
-_080BA360: .4byte gUnknown_083D02D9
-_080BA364: .4byte gDebugText_UpDown
-_080BA368: .4byte gDebugText_DriverTest
-_080BA36C: .4byte gPaletteFade
-_080BA370: .4byte gTasks
-_080BA374: .4byte sub_80BA384
-_080BA378: .4byte REG_WIN0H
-_080BA37C: .4byte 0x000011df
-_080BA380: .4byte 0x0000011f
- thumb_func_end sub_80BA258
-
- thumb_func_start sub_80BA384
-sub_80BA384: @ 80BA384
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080BA3EC @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x8]
- bl sub_80BA6B8
- ldr r1, _080BA3F0 @ =0x0000015d
- adds r0, r1, 0
- ldrh r2, [r4, 0xA]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- movs r2, 0x8
- bl sub_80BA700
- ldr r1, _080BA3F4 @ =gBGMNames
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0x8
- bl sub_80BA79C
- ldrh r0, [r4, 0xC]
- movs r1, 0x7
- movs r2, 0xF
- bl sub_80BA700
- ldr r1, _080BA3F8 @ =gSENames
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xB
- movs r2, 0xF
- bl sub_80BA79C
- ldr r0, _080BA3FC @ =sub_80BA65C
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA3EC: .4byte gTasks
-_080BA3F0: .4byte 0x0000015d
-_080BA3F4: .4byte gBGMNames
-_080BA3F8: .4byte gSENames
-_080BA3FC: .4byte sub_80BA65C
- thumb_func_end sub_80BA384
-
- thumb_func_start sub_80BA400
-sub_80BA400: @ 80BA400
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080BA428 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BA434
- ldr r0, _080BA42C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA430 @ =sub_80BA800
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA428: .4byte gMain
-_080BA42C: .4byte gTasks
-_080BA430: .4byte sub_80BA800
-_080BA434:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BA458
- ldr r0, _080BA450 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA454 @ =sub_80BAF84
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA450: .4byte gTasks
-_080BA454: .4byte sub_80BAF84
-_080BA458:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080BA478
- ldr r0, _080BA470 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA474 @ =sub_80BB25C
- str r0, [r1]
- b _080BA64C
- .align 2, 0
-_080BA470: .4byte gTasks
-_080BA474: .4byte sub_80BB25C
-_080BA478:
- movs r6, 0x1
- movs r5, 0x1
- ands r5, r1
- cmp r5, 0
- beq _080BA538
- ldr r0, _080BA4AC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r5, r1, r0
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080BA4D0
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA4BA
- movs r3, 0xC
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA4B0
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- b _080BA4C4
- .align 2, 0
-_080BA4AC: .4byte gTasks
-_080BA4B0:
- ldrh r0, [r5, 0x10]
- bl m4aSongNumStop
- strh r4, [r5, 0x10]
- b _080BA64C
-_080BA4BA:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- cmp r0, 0
- bne _080BA4C4
- b _080BA64C
-_080BA4C4:
- ldrh r0, [r5, 0xC]
- bl m4aSongNumStart
- ldrh r0, [r5, 0xC]
- strh r0, [r5, 0x10]
- b _080BA64C
-_080BA4D0:
- ldrh r1, [r5, 0xE]
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _080BA514
- movs r3, 0xA
- ldrsh r4, [r5, r3]
- cmp r4, 0
- beq _080BA500
- ldr r0, _080BA4FC @ =0x0000015d
- adds r4, r0, 0
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- ldrh r1, [r5, 0xA]
- adds r4, r1
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- b _080BA528
- .align 2, 0
-_080BA4FC: .4byte 0x0000015d
-_080BA500:
- ldr r2, _080BA510 @ =0x0000015d
- adds r0, r1, r2
- lsls r0, 16
- lsrs r0, 16
- bl m4aSongNumStop
- strh r4, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA510: .4byte 0x0000015d
-_080BA514:
- ldrh r1, [r5, 0xA]
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _080BA520
- b _080BA64C
-_080BA520:
- ldr r4, _080BA534 @ =0x0000015d
- adds r0, r1, r4
- lsls r0, 16
- lsrs r0, 16
-_080BA528:
- bl m4aSongNumStart
- ldrh r0, [r5, 0xA]
- strh r0, [r5, 0xE]
- b _080BA64C
- .align 2, 0
-_080BA534: .4byte 0x0000015d
-_080BA538:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BA570
- movs r0, 0x5
- bl m4aSongNumStart
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080BA568 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BA56C @ =sub_80BA68C
- str r1, [r0]
- b _080BA64C
- .align 2, 0
-_080BA568: .4byte gTasks
-_080BA56C: .4byte sub_80BA68C
-_080BA570:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080BA582
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BA59C
-_080BA582:
- ldr r0, _080BA598 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- eors r0, r6
- strh r0, [r1, 0x8]
-_080BA592:
- movs r0, 0x1
- b _080BA64E
- .align 2, 0
-_080BA598: .4byte gTasks
-_080BA59C:
- movs r0, 0x10
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BA5EA
- ldr r0, _080BA5CC @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080BA5D6
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- ble _080BA5D0
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA5CC: .4byte gTasks
-_080BA5D0:
- movs r0, 0xF7
- strh r0, [r1, 0xC]
- b _080BA592
-_080BA5D6:
- ldrh r2, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0
- ble _080BA5E4
- subs r0, r2, 0x1
- b _080BA5E6
-_080BA5E4:
- movs r0, 0x75
-_080BA5E6:
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA5EA:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BA630
- ldr r1, _080BA614 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x8
- ldrsh r2, [r1, r0]
- cmp r2, 0
- beq _080BA61C
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0xF6
- bgt _080BA618
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080BA592
- .align 2, 0
-_080BA614: .4byte gTasks
-_080BA618:
- strh r3, [r1, 0xC]
- b _080BA592
-_080BA61C:
- ldrh r3, [r1, 0xA]
- movs r4, 0xA
- ldrsh r0, [r1, r4]
- cmp r0, 0x74
- bgt _080BA62C
- adds r0, r3, 0x1
- strh r0, [r1, 0xA]
- b _080BA592
-_080BA62C:
- strh r2, [r1, 0xA]
- b _080BA592
-_080BA630:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x4
- ands r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080BA648
- ldr r0, _080BA644 @ =gUnknown_020387B0
- strb r6, [r0]
- b _080BA64C
- .align 2, 0
-_080BA644: .4byte gUnknown_020387B0
-_080BA648:
- ldr r0, _080BA658 @ =gUnknown_020387B0
- strb r1, [r0]
-_080BA64C:
- movs r0, 0
-_080BA64E:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BA658: .4byte gUnknown_020387B0
- thumb_func_end sub_80BA400
-
- thumb_func_start sub_80BA65C
-sub_80BA65C: @ 80BA65C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80BA400
- lsls r0, 24
- cmp r0, 0
- beq _080BA67C
- ldr r0, _080BA684 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080BA688 @ =sub_80BA384
- str r0, [r1]
-_080BA67C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA684: .4byte gTasks
-_080BA688: .4byte sub_80BA384
- thumb_func_end sub_80BA65C
-
- thumb_func_start sub_80BA68C
-sub_80BA68C: @ 80BA68C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080BA6B0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080BA6AA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _080BA6B4 @ =CB2_InitTitleScreen
- bl SetMainCallback2
-_080BA6AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6B0: .4byte gPaletteFade
-_080BA6B4: .4byte CB2_InitTitleScreen
- thumb_func_end sub_80BA68C
-
- thumb_func_start sub_80BA6B8
-sub_80BA6B8: @ 80BA6B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA6C6
- cmp r0, 0x1
- beq _080BA6E0
-_080BA6C6:
- ldr r1, _080BA6D4 @ =REG_WIN1H
- ldr r2, _080BA6D8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6DC @ =0x00002957
- b _080BA6EC
- .align 2, 0
-_080BA6D4: .4byte REG_WIN1H
-_080BA6D8: .4byte 0x000011df
-_080BA6DC: .4byte 0x00002957
-_080BA6E0:
- ldr r1, _080BA6F4 @ =REG_WIN1H
- ldr r2, _080BA6F8 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BA6FC @ =0x0000618f
-_080BA6EC:
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080BA6F4: .4byte REG_WIN1H
-_080BA6F8: .4byte 0x000011df
-_080BA6FC: .4byte 0x0000618f
- thumb_func_end sub_80BA6B8
-
- thumb_func_start sub_80BA700
-sub_80BA700: @ 80BA700
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r7, r2, 16
- movs r1, 0
- movs r2, 0
-_080BA714:
- mov r3, sp
- adds r0, r3, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080BA714
- mov r1, sp
- movs r0, 0xB0
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- movs r4, 0
- adds r0, r5, 0
- movs r1, 0x64
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080BA748
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1]
- movs r4, 0x1
-_080BA748:
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080BA766
- cmp r4, 0
- beq _080BA76C
-_080BA766:
- mov r1, sp
- adds r0, 0xA1
- strb r0, [r1, 0x1]
-_080BA76C:
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r0, 0xA1
- strb r0, [r4, 0x2]
- lsls r1, r6, 24
- lsrs r1, 24
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA700
-
- thumb_func_start sub_80BA79C
-sub_80BA79C: @ 80BA79C
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r3, 0
- movs r1, 0
-_080BA7AE:
- mov r2, sp
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bls _080BA7AE
- mov r0, sp
- movs r1, 0xFF
- strb r1, [r0, 0xA]
- movs r3, 0
- ldrb r0, [r4]
- lsls r2, r6, 24
- lsls r5, 24
- cmp r0, 0xFF
- beq _080BA7EC
-_080BA7D0:
- mov r0, sp
- adds r1, r0, r3
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r4, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080BA7EC
- cmp r3, 0x9
- bls _080BA7D0
-_080BA7EC:
- lsrs r1, r2, 24
- lsrs r2, r5, 24
- mov r0, sp
- bl MenuPrint
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80BA79C
-
- thumb_func_start sub_80BA800
-sub_80BA800: @ 80BA800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xCC
- lsls r0, 24
- str r0, [sp, 0xB0]
- lsrs r2, r0, 24
- str r2, [sp, 0xAC]
- ldr r1, _080BA9E8 @ =gUnknown_083D0312
- mov r0, sp
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0xB4]
- ldr r1, _080BA9EC @ =gUnknown_083D031C
- movs r2, 0xB
- bl memcpy
- mov r2, sp
- adds r2, 0x18
- str r2, [sp, 0xB8]
- ldr r1, _080BA9F0 @ =gDebugText_Voice
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x24
- str r0, [sp, 0xBC]
- ldr r1, _080BA9F4 @ =gDebugText_Volume
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x30
- str r2, [sp, 0xC0]
- ldr r1, _080BA9F8 @ =gDebugText_Panpot
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- mov r0, sp
- adds r0, 0x3C
- str r0, [sp, 0xC4]
- ldr r1, _080BA9FC @ =gDebugText_Pitch
- movs r2, 0xA
- bl memcpy
- mov r2, sp
- adds r2, 0x48
- str r2, [sp, 0xC8]
- ldr r1, _080BAA00 @ =gDebugText_Length
- adds r0, r2, 0
- movs r2, 0xA
- bl memcpy
- add r4, sp, 0x54
- ldr r1, _080BAA04 @ =gDebugText_Release
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- add r7, sp, 0x60
- ldr r1, _080BAA08 @ =gDebugText_Progress
- adds r0, r7, 0
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x6C
- mov r10, r0
- ldr r1, _080BAA0C @ =gDebugText_Chorus
- movs r2, 0xA
- bl memcpy
- add r2, sp, 0x78
- mov r9, r2
- ldr r1, _080BAA10 @ =gDebugText_Priority
- mov r0, r9
- movs r2, 0xA
- bl memcpy
- add r0, sp, 0x84
- mov r8, r0
- ldr r1, _080BAA14 @ =gUnknown_083D0381
- movs r2, 0x9
- bl memcpy
- add r6, sp, 0x90
- ldr r1, _080BAA18 @ =gUnknown_083D038A
- adds r0, r6, 0
- movs r2, 0x9
- bl memcpy
- add r5, sp, 0x9C
- ldr r1, _080BAA1C @ =gUnknown_083D0393
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x13
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [sp, 0xB4]
- movs r1, 0x13
- movs r2, 0x2
- bl MenuPrint
- ldr r0, [sp, 0xB8]
- movs r1, 0x2
- movs r2, 0x1
- bl MenuPrint
- ldr r0, [sp, 0xBC]
- movs r1, 0x2
- movs r2, 0x3
- bl MenuPrint
- ldr r0, [sp, 0xC0]
- movs r1, 0x2
- movs r2, 0x5
- bl MenuPrint
- ldr r0, [sp, 0xC4]
- movs r1, 0x2
- movs r2, 0x7
- bl MenuPrint
- ldr r0, [sp, 0xC8]
- movs r1, 0x2
- movs r2, 0x9
- bl MenuPrint
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xB
- bl MenuPrint
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- mov r0, r10
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- mov r0, r9
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- mov r0, r8
- movs r1, 0x13
- movs r2, 0x10
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x13
- movs r2, 0xE
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x13
- movs r2, 0xC
- bl MenuPrint
- ldr r1, _080BAA20 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080BAA24 @ =gUnknown_020387B3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080BAA28 @ =gUnknown_020387B1
- strb r1, [r0]
- ldr r0, _080BAA2C @ =gUnknown_020387B2
- strb r1, [r0]
- ldr r0, _080BAA30 @ =gUnknown_03005D30
- movs r2, 0
- str r2, [r0]
- ldr r0, _080BAA34 @ =gUnknown_020387D8
- strb r2, [r0]
- ldr r1, _080BAA38 @ =gUnknown_020387D9
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080BAA3C @ =gUnknown_020387B4
- str r2, [r0]
- movs r1, 0x78
- str r1, [r0, 0x4]
- str r2, [r0, 0x8]
- movs r1, 0xF0
- lsls r1, 6
- str r1, [r0, 0xC]
- movs r1, 0xB4
- str r1, [r0, 0x10]
- str r2, [r0, 0x18]
- str r2, [r0, 0x14]
- str r2, [r0, 0x1C]
- movs r1, 0x2
- str r1, [r0, 0x20]
- bl sub_80BAD5C
- movs r0, 0
- movs r1, 0
- bl sub_80BAE10
- ldr r1, _080BAA40 @ =gTasks
- ldr r2, [sp, 0xAC]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAA44 @ =sub_80BAA48
- str r1, [r0]
- add sp, 0xCC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BA9E8: .4byte gUnknown_083D0312
-_080BA9EC: .4byte gUnknown_083D031C
-_080BA9F0: .4byte gDebugText_Voice
-_080BA9F4: .4byte gDebugText_Volume
-_080BA9F8: .4byte gDebugText_Panpot
-_080BA9FC: .4byte gDebugText_Pitch
-_080BAA00: .4byte gDebugText_Length
-_080BAA04: .4byte gDebugText_Release
-_080BAA08: .4byte gDebugText_Progress
-_080BAA0C: .4byte gDebugText_Chorus
-_080BAA10: .4byte gDebugText_Priority
-_080BAA14: .4byte gUnknown_083D0381
-_080BAA18: .4byte gUnknown_083D038A
-_080BAA1C: .4byte gUnknown_083D0393
-_080BAA20: .4byte REG_WIN0H
-_080BAA24: .4byte gUnknown_020387B3
-_080BAA28: .4byte gUnknown_020387B1
-_080BAA2C: .4byte gUnknown_020387B2
-_080BAA30: .4byte gUnknown_03005D30
-_080BAA34: .4byte gUnknown_020387D8
-_080BAA38: .4byte gUnknown_020387D9
-_080BAA3C: .4byte gUnknown_020387B4
-_080BAA40: .4byte gTasks
-_080BAA44: .4byte sub_80BAA48
- thumb_func_end sub_80BA800
-
- thumb_func_start sub_80BAA48
-sub_80BAA48: @ 80BAA48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _080BAA90 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _080BAAA8
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BAA94 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BAA98 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BAA9C @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BAAA0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BAAA4 @ =sub_80BA258
- str r1, [r0]
- b _080BACC6
- .align 2, 0
-_080BAA90: .4byte gMain
-_080BAA94: .4byte 0x00007140
-_080BAA98: .4byte 0x000011df
-_080BAA9C: .4byte 0x0000011f
-_080BAAA0: .4byte gTasks
-_080BAAA4: .4byte sub_80BA258
-_080BAAA8:
- ldrh r1, [r1, 0x30]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080BAAD0
- ldr r1, _080BAACC @ =gUnknown_020387B3
- ldrb r2, [r1]
- subs r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bge _080BAAEA
- movs r0, 0x8
- strb r0, [r1]
- b _080BAAEA
- .align 2, 0
-_080BAACC: .4byte gUnknown_020387B3
-_080BAAD0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BAAF8
- ldr r1, _080BAAF4 @ =gUnknown_020387B3
- ldrb r2, [r1]
- adds r0, r2, 0x1
- strb r0, [r1]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x8
- ble _080BAAEA
- strb r3, [r1]
-_080BAAEA:
- ldrb r1, [r1]
- adds r0, r2, 0
- bl sub_80BAE10
- b _080BACC6
- .align 2, 0
-_080BAAF4: .4byte gUnknown_020387B3
-_080BAAF8:
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _080BAB14
- ldr r0, _080BAB10 @ =gUnknown_020387D8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- bl sub_80BAD5C
- b _080BACC6
- .align 2, 0
-_080BAB10: .4byte gUnknown_020387D8
-_080BAB14:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- beq _080BAB38
- ldr r4, _080BAB34 @ =gUnknown_020387D9
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- bl sub_80BAD5C
- ldrb r0, [r4]
- bl SetPokemonCryStereo
- b _080BACC6
- .align 2, 0
-_080BAB34: .4byte gUnknown_020387D9
-_080BAB38:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BAB46
- movs r0, 0xA
- b _080BAB6E
-_080BAB46:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _080BAB56
- movs r0, 0xA
- negs r0, r0
- b _080BAB6E
-_080BAB56:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BAB64
- movs r0, 0x1
- negs r0, r0
- b _080BAB6E
-_080BAB64:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BAB78
- movs r0, 0x1
-_080BAB6E:
- bl sub_80BACDC
- bl sub_80BAD5C
- b _080BACC6
-_080BAB78:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _080BAB82
- b _080BACA2
-_080BAB82:
- ldr r4, _080BABE4 @ =gUnknown_020387B4
- ldrb r0, [r4, 0x4]
- bl SetPokemonCryVolume
- movs r0, 0x8
- ldrsb r0, [r4, r0]
- bl SetPokemonCryPanpot
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- bl SetPokemonCryPitch
- ldrh r0, [r4, 0x10]
- bl SetPokemonCryLength
- ldr r0, [r4, 0x18]
- bl SetPokemonCryProgress
- ldrb r0, [r4, 0x14]
- bl SetPokemonCryRelease
- movs r0, 0x1C
- ldrsb r0, [r4, r0]
- bl SetPokemonCryChorus
- ldr r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl SetPokemonCryPriority
- ldr r4, [r4]
- adds r0, r4, 0
- cmp r4, 0
- bge _080BABC8
- adds r0, 0x7F
-_080BABC8:
- asrs r2, r0, 7
- lsls r0, r2, 7
- subs r0, r4, r0
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080BAC1C
- cmp r0, 0x1
- bgt _080BABE8
- cmp r0, 0
- beq _080BABF2
- b _080BACA2
- .align 2, 0
-_080BABE4: .4byte gUnknown_020387B4
-_080BABE8:
- cmp r0, 0x2
- beq _080BAC48
- cmp r0, 0x3
- beq _080BAC74
- b _080BACA2
-_080BABF2:
- ldr r0, _080BAC04 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC0C
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC08 @ =voicegroup_84537C0
- b _080BAC98
- .align 2, 0
-_080BAC04: .4byte gUnknown_020387D8
-_080BAC08: .4byte voicegroup_84537C0
-_080BAC0C:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC18 @ =voicegroup_8452590
- b _080BAC98
- .align 2, 0
-_080BAC18: .4byte voicegroup_8452590
-_080BAC1C:
- ldr r0, _080BAC30 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC38
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC34 @ =voicegroup_8453DC0
- b _080BAC98
- .align 2, 0
-_080BAC30: .4byte gUnknown_020387D8
-_080BAC34: .4byte voicegroup_8453DC0
-_080BAC38:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC44 @ =voicegroup_8452B90
- b _080BAC98
- .align 2, 0
-_080BAC44: .4byte voicegroup_8452B90
-_080BAC48:
- ldr r0, _080BAC5C @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC64
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC60 @ =voicegroup_84543C0
- b _080BAC98
- .align 2, 0
-_080BAC5C: .4byte gUnknown_020387D8
-_080BAC60: .4byte voicegroup_84543C0
-_080BAC64:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC70 @ =voicegroup_8453190
- b _080BAC98
- .align 2, 0
-_080BAC70: .4byte voicegroup_8453190
-_080BAC74:
- ldr r0, _080BAC88 @ =gUnknown_020387D8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BAC90
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BAC8C @ =voicegroup_84549C0
- b _080BAC98
- .align 2, 0
-_080BAC88: .4byte gUnknown_020387D8
-_080BAC8C: .4byte voicegroup_84549C0
-_080BAC90:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BACCC @ =voicegroup_8453790
-_080BAC98:
- adds r0, r1
- bl SetPokemonCryTone
- ldr r1, _080BACD0 @ =gUnknown_03005D30
- str r0, [r1]
-_080BACA2:
- ldr r0, _080BACD0 @ =gUnknown_03005D30
- ldr r0, [r0]
- cmp r0, 0
- beq _080BACC6
- ldr r5, _080BACD4 @ =gUnknown_020387B1
- bl IsPokemonCryPlaying
- strb r0, [r5]
- ldr r4, _080BACD8 @ =gUnknown_020387B2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r4]
- cmp r0, r2
- beq _080BACC2
- bl sub_80BAD5C
-_080BACC2:
- ldrb r0, [r5]
- strb r0, [r4]
-_080BACC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BACCC: .4byte voicegroup_8453790
-_080BACD0: .4byte gUnknown_03005D30
-_080BACD4: .4byte gUnknown_020387B1
-_080BACD8: .4byte gUnknown_020387B2
- thumb_func_end sub_80BAA48
-
- thumb_func_start sub_80BACDC
-sub_80BACDC: @ 80BACDC
- push {r4-r6,lr}
- sub sp, 0x40
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BAD50 @ =gUnknown_083D039C
- mov r0, sp
- movs r2, 0x40
- bl memcpy
- ldr r6, _080BAD54 @ =gUnknown_020387B4
- ldr r5, _080BAD58 @ =gUnknown_020387B3
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 2
- adds r1, r6
- lsls r4, 24
- asrs r4, 24
- ldr r0, [r1]
- adds r0, r4
- str r0, [r1]
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- ble _080BAD26
- lsls r0, r2, 3
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD26:
- movs r2, 0
- ldrsb r2, [r5, r2]
- lsls r0, r2, 2
- adds r3, r0, r6
- lsls r0, r2, 3
- add r0, sp
- ldr r1, [r3]
- ldr r0, [r0]
- cmp r1, r0
- bge _080BAD46
- lsls r0, r2, 1
- adds r0, 0x1
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- str r0, [r3]
-_080BAD46:
- add sp, 0x40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAD50: .4byte gUnknown_083D039C
-_080BAD54: .4byte gUnknown_020387B4
-_080BAD58: .4byte gUnknown_020387B3
- thumb_func_end sub_80BACDC
-
- thumb_func_start sub_80BAD5C
-sub_80BAD5C: @ 80BAD5C
- push {r4,lr}
- ldr r4, _080BAE00 @ =gUnknown_020387B4
- ldr r0, [r4]
- adds r0, 0x1
- movs r1, 0xB
- movs r2, 0x1
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x4]
- movs r1, 0xB
- movs r2, 0x3
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x8]
- movs r1, 0xB
- movs r2, 0x5
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0xC]
- movs r1, 0xB
- movs r2, 0x7
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x10]
- movs r1, 0xB
- movs r2, 0x9
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x14]
- movs r1, 0xB
- movs r2, 0xB
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x18]
- movs r1, 0xB
- movs r2, 0xD
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x1C]
- movs r1, 0xB
- movs r2, 0xF
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, [r4, 0x20]
- movs r1, 0xB
- movs r2, 0x11
- movs r3, 0x5
- bl sub_80BAE78
- ldr r0, _080BAE04 @ =gUnknown_020387B1
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0x10
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE08 @ =gUnknown_020387D8
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xE
- movs r3, 0x1
- bl sub_80BAE78
- ldr r0, _080BAE0C @ =gUnknown_020387D9
- ldrb r0, [r0]
- movs r1, 0x1B
- movs r2, 0xC
- movs r3, 0x1
- bl sub_80BAE78
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE00: .4byte gUnknown_020387B4
-_080BAE04: .4byte gUnknown_020387B1
-_080BAE08: .4byte gUnknown_020387D8
-_080BAE0C: .4byte gUnknown_020387D9
- thumb_func_end sub_80BAD5C
-
- thumb_func_start sub_80BAE10
-sub_80BAE10: @ 80BAE10
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _080BAE6C @ =gUnknown_083D03DC
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r0, sp, 0x4
- mov r8, r0
- ldr r1, _080BAE70 @ =gUnknown_083D03DE
- movs r2, 0x2
- bl memcpy
- ldr r6, _080BAE74 @ =gUnknown_083D0300
- lsls r4, 1
- adds r0, r4, r6
- ldrb r1, [r0]
- adds r4, 0x1
- adds r4, r6
- ldrb r2, [r4]
- mov r0, r8
- bl MenuPrint
- lsls r5, 1
- adds r0, r5, r6
- ldrb r1, [r0]
- adds r5, 0x1
- adds r5, r6
- ldrb r2, [r5]
- mov r0, sp
- bl MenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAE6C: .4byte gUnknown_083D03DC
-_080BAE70: .4byte gUnknown_083D03DE
-_080BAE74: .4byte gUnknown_083D0300
- thumb_func_end sub_80BAE10
-
- thumb_func_start sub_80BAE78
-sub_80BAE78: @ 80BAE78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 24
- lsrs r7, r3, 24
- mov r1, sp
- ldr r0, _080BAF80 @ =gUnknown_083D03E0
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- movs r5, 0
- add r0, sp, 0x18
- mov r9, r0
- cmp r5, r7
- bgt _080BAEC0
- mov r4, r9
- movs r3, 0
-_080BAEAC:
- lsls r0, r5, 24
- asrs r0, 24
- adds r1, r4, r0
- strb r3, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r0, 24
- cmp r0, r7
- ble _080BAEAC
-_080BAEC0:
- adds r0, r7, 0x1
- add r0, r9
- movs r1, 0xFF
- strb r1, [r0]
- movs r1, 0
- mov r3, r8
- cmp r3, 0
- bge _080BAED6
- negs r3, r3
- mov r8, r3
- movs r1, 0x1
-_080BAED6:
- movs r4, 0
- mov r10, r4
- cmp r7, 0x1
- bne _080BAEE2
- movs r5, 0x1
- mov r10, r5
-_080BAEE2:
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 24
- lsls r6, 24
- str r6, [sp, 0x24]
- lsls r2, 24
- str r2, [sp, 0x28]
- cmp r0, 0
- blt _080BAF62
- str r1, [sp, 0x20]
-_080BAEF8:
- asrs r6, r0, 24
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __divsi3
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r0, 0
- bne _080BAF1A
- mov r0, r10
- cmp r0, 0
- bne _080BAF1A
- lsls r4, r5, 24
- cmp r6, 0
- bne _080BAF46
-_080BAF1A:
- lsls r4, r5, 24
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _080BAF34
- mov r5, r10
- cmp r5, 0
- bne _080BAF34
- asrs r0, r4, 24
- subs r0, r7, r0
- subs r0, 0x1
- add r0, r9
- movs r1, 0xAE
- strb r1, [r0]
-_080BAF34:
- asrs r1, r4, 24
- subs r1, r7, r1
- add r1, r9
- lsls r0, r2, 24
- asrs r0, 24
- subs r0, 0x5F
- strb r0, [r1]
- movs r0, 0x1
- mov r10, r0
-_080BAF46:
- asrs r4, 24
- lsls r0, r4, 2
- add r0, sp
- ldr r1, [r0]
- mov r0, r8
- bl __modsi3
- mov r8, r0
- subs r4, 0x1
- lsls r4, 24
- lsrs r5, r4, 24
- lsls r0, r5, 24
- cmp r0, 0
- bge _080BAEF8
-_080BAF62:
- ldr r3, [sp, 0x24]
- lsrs r1, r3, 24
- ldr r4, [sp, 0x28]
- lsrs r2, r4, 24
- mov r0, r9
- bl MenuPrint
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BAF80: .4byte gUnknown_083D03E0
- thumb_func_end sub_80BAE78
-
- thumb_func_start sub_80BAF84
-sub_80BAF84: @ 80BAF84
- push {r4-r6,lr}
- sub sp, 0x14
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _080BB01C @ =gOtherText_SE
- mov r0, sp
- movs r2, 0x3
- bl memcpy
- add r6, sp, 0x4
- ldr r1, _080BB020 @ =gOtherText_Pan
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB024 @ =gUnknown_083D0381
- adds r0, r5, 0
- movs r2, 0x9
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x3
- movs r2, 0x2
- bl MenuPrint
- adds r0, r6, 0
- movs r1, 0x3
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0x3
- movs r2, 0x8
- bl MenuPrint
- ldr r1, _080BB028 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _080BB02C @ =gUnknown_020387B4
- movs r0, 0x1
- str r0, [r1]
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0x1C]
- str r0, [r1, 0x18]
- str r0, [r1, 0x14]
- bl sub_80BB1D4
- ldr r1, _080BB030 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB034 @ =sub_80BB038
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB01C: .4byte gOtherText_SE
-_080BB020: .4byte gOtherText_Pan
-_080BB024: .4byte gUnknown_083D0381
-_080BB028: .4byte REG_WIN0H
-_080BB02C: .4byte gUnknown_020387B4
-_080BB030: .4byte gTasks
-_080BB034: .4byte sub_80BB038
- thumb_func_end sub_80BAF84
-
- thumb_func_start sub_80BB038
-sub_80BB038: @ 80BB038
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_80BB1D4
- ldr r2, _080BB058 @ =gUnknown_020387B4
- ldr r0, [r2, 0x18]
- cmp r0, 0
- beq _080BB0A2
- ldr r0, [r2, 0x14]
- cmp r0, 0
- beq _080BB05C
- subs r0, 0x1
- str r0, [r2, 0x14]
- b _080BB0A2
- .align 2, 0
-_080BB058: .4byte gUnknown_020387B4
-_080BB05C:
- ldr r0, _080BB088 @ =gUnknown_083D03F8
- ldr r1, [r2, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB08C
- cmp r1, 0x7F
- bne _080BB0A2
- ldr r0, [r2, 0x1C]
- adds r0, 0x2
- str r0, [r2, 0x1C]
- cmp r0, 0x3E
- bgt _080BB0A2
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- b _080BB0A2
- .align 2, 0
-_080BB088: .4byte gUnknown_083D03F8
-_080BB08C:
- ldr r0, [r2, 0x1C]
- subs r1, r0, 0x2
- str r1, [r2, 0x1C]
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- ble _080BB0A2
- lsls r0, r1, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080BB0A2:
- ldr r1, _080BB0EC @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r1, 0
- cmp r4, 0
- beq _080BB104
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB0F0 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB0F4 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB0F8 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB0FC @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB100 @ =sub_80BA258
- str r1, [r0]
- b _080BB1C8
- .align 2, 0
-_080BB0EC: .4byte gMain
-_080BB0F0: .4byte 0x00007140
-_080BB0F4: .4byte 0x000011df
-_080BB0F8: .4byte 0x0000011f
-_080BB0FC: .4byte gTasks
-_080BB100: .4byte sub_80BA258
-_080BB104:
- movs r6, 0x1
- adds r2, r6, 0
- ands r2, r3
- cmp r2, 0
- beq _080BB15E
- ldr r0, _080BB138 @ =gUnknown_083D03F8
- ldr r5, _080BB13C @ =gUnknown_020387B4
- ldr r1, [r5, 0x8]
- adds r1, r0
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB140
- cmp r1, 0x7F
- bne _080BB154
- ldrh r0, [r5]
- movs r4, 0x40
- negs r4, r4
- adds r1, r4, 0
- bl PlaySE12WithPanning
- str r4, [r5, 0x1C]
- b _080BB14C
- .align 2, 0
-_080BB138: .4byte gUnknown_083D03F8
-_080BB13C: .4byte gUnknown_020387B4
-_080BB140:
- ldrh r0, [r5]
- movs r1, 0x3F
- bl PlaySE12WithPanning
- movs r0, 0x3F
- str r0, [r5, 0x1C]
-_080BB14C:
- str r6, [r5, 0x18]
- movs r0, 0x1E
- str r0, [r5, 0x14]
- b _080BB1C8
-_080BB154:
- ldrh r0, [r5]
- bl PlaySE12WithPanning
- str r4, [r5, 0x18]
- b _080BB1C8
-_080BB15E:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r3
- cmp r0, 0
- beq _080BB176
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- adds r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0x4
- ble _080BB176
- str r2, [r1, 0x8]
-_080BB176:
- ldrh r1, [r7, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB192
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1, 0x8]
- subs r0, 0x1
- str r0, [r1, 0x8]
- cmp r0, 0
- bge _080BB192
- movs r0, 0x4
- str r0, [r1, 0x8]
-_080BB192:
- ldrh r1, [r7, 0x30]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080BB1B0
- ldr r1, _080BB1AC @ =gUnknown_020387B4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- cmp r0, 0xF7
- ble _080BB1C8
- movs r0, 0
- b _080BB1C6
- .align 2, 0
-_080BB1AC: .4byte gUnknown_020387B4
-_080BB1B0:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080BB1C8
- ldr r1, _080BB1D0 @ =gUnknown_020387B4
- ldr r0, [r1]
- subs r0, 0x1
- str r0, [r1]
- cmp r0, 0
- bge _080BB1C8
- movs r0, 0xF7
-_080BB1C6:
- str r0, [r1]
-_080BB1C8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB1D0: .4byte gUnknown_020387B4
- thumb_func_end sub_80BB038
-
- thumb_func_start sub_80BB1D4
-sub_80BB1D4: @ 80BB1D4
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r1, _080BB218 @ =gOtherText_LR
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- add r5, sp, 0x8
- ldr r1, _080BB21C @ =gOtherText_RL
- adds r0, r5, 0
- movs r2, 0x5
- bl memcpy
- ldr r4, _080BB220 @ =gUnknown_020387B4
- ldr r0, [r4]
- movs r1, 0x7
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80BAE78
- ldr r1, _080BB224 @ =gUnknown_083D03F8
- ldr r0, [r4, 0x8]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- movs r0, 0x80
- negs r0, r0
- cmp r1, r0
- beq _080BB228
- cmp r1, 0x7F
- bne _080BB234
- mov r0, sp
- b _080BB22A
- .align 2, 0
-_080BB218: .4byte gOtherText_LR
-_080BB21C: .4byte gOtherText_RL
-_080BB220: .4byte gUnknown_020387B4
-_080BB224: .4byte gUnknown_083D03F8
-_080BB228:
- adds r0, r5, 0
-_080BB22A:
- movs r1, 0x7
- movs r2, 0x4
- bl MenuPrint
- b _080BB240
-_080BB234:
- adds r0, r1, 0
- movs r1, 0x7
- movs r2, 0x4
- movs r3, 0x3
- bl sub_80BAE78
-_080BB240:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xC
- movs r2, 0x8
- movs r3, 0x1
- bl sub_80BAE78
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80BB1D4
-
- thumb_func_start sub_80BB25C
-sub_80BB25C: @ 80BB25C
- push {r4-r6,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080BB374 @ =gWindowConfig_81E6C3C
- bl SetUpWindowConfig
- ldr r0, _080BB378 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r1, _080BB37C @ =gUnknown_03005D34
- movs r0, 0x1
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r1, _080BB38C @ =0xffff00ff
- ldr r0, [sp, 0x8]
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 5
- orrs r0, r1
- ldr r1, _080BB390 @ =0xffffff00
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- add r4, sp, 0xC
-_080BB2BE:
- add r0, sp, 0x4
- movs r1, 0x3
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- beq _080BB2BE
- ldr r1, _080BB380 @ =0xffff0000
- ldr r0, [sp, 0xC]
- ands r0, r1
- ldr r1, _080BB384 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _080BB388 @ =0x00ffffff
- ands r0, r1
- movs r1, 0xD0
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0xC]
- ldr r1, _080BB390 @ =0xffffff00
- ldr r0, [r4, 0x4]
- ands r0, r1
- movs r1, 0xC
- orrs r0, r1
- ldr r1, _080BB38C @ =0xffff00ff
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 4
- orrs r0, r1
- str r0, [r4, 0x4]
- movs r1, 0
- ldr r0, _080BB394 @ =gUnknown_03005E98
- strb r1, [r0]
- lsls r5, r6, 2
-_080BB306:
- adds r0, r4, 0
- movs r1, 0x2
- bl ShowPokedexCryScreen
- lsls r0, 24
- cmp r0, 0
- beq _080BB306
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x5
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_80BB494
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _080BB398 @ =REG_BG2HOFS
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _080BB39C @ =REG_BG2CNT
- ldr r2, _080BB3A0 @ =0x00000f01
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _080BB3A4 @ =0x00001d03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- adds r2, 0x3D
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _080BB3A8 @ =gMPlay_BGM
- movs r1, 0x2
- bl m4aMPlayFadeOutTemporarily
- ldr r1, _080BB3AC @ =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB3B0 @ =sub_80BB3B4
- str r1, [r0]
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB374: .4byte gWindowConfig_81E6C3C
-_080BB378: .4byte gWindowConfig_81E6CE4
-_080BB37C: .4byte gUnknown_03005D34
-_080BB380: .4byte 0xffff0000
-_080BB384: .4byte 0xff00ffff
-_080BB388: .4byte 0x00ffffff
-_080BB38C: .4byte 0xffff00ff
-_080BB390: .4byte 0xffffff00
-_080BB394: .4byte gUnknown_03005E98
-_080BB398: .4byte REG_BG2HOFS
-_080BB39C: .4byte REG_BG2CNT
-_080BB3A0: .4byte 0x00000f01
-_080BB3A4: .4byte 0x00001d03
-_080BB3A8: .4byte gMPlay_BGM
-_080BB3AC: .4byte gTasks
-_080BB3B0: .4byte sub_80BB3B4
- thumb_func_end sub_80BB25C
-
- thumb_func_start sub_80BB3B4
-sub_80BB3B4: @ 80BB3B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8119F88
- ldr r4, _080BB478 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080BB3D4
- ldr r0, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r0]
- bl sub_811A050
-_080BB3D4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _080BB3E4
- bl StopCryAndClearCrySongs
-_080BB3E4:
- ldrh r1, [r4, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080BB408
- ldr r1, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080BB404
- movs r2, 0xC0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
-_080BB404:
- bl sub_80BB494
-_080BB408:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x30]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080BB42E
- ldr r2, _080BB47C @ =gUnknown_03005D34
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 17
- cmp r0, r1
- bls _080BB42A
- movs r0, 0x1
- strh r0, [r2]
-_080BB42A:
- bl sub_80BB494
-_080BB42E:
- ldr r0, _080BB478 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080BB472
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _080BB480 @ =0x00007140
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x40
- ldr r2, _080BB484 @ =0x000011df
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- ldr r2, _080BB488 @ =0x0000011f
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _080BB48C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080BB490 @ =sub_80BA258
- str r1, [r0]
- bl DestroyCryMeterNeedleSprite
-_080BB472:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080BB478: .4byte gMain
-_080BB47C: .4byte gUnknown_03005D34
-_080BB480: .4byte 0x00007140
-_080BB484: .4byte 0x000011df
-_080BB488: .4byte 0x0000011f
-_080BB48C: .4byte gTasks
-_080BB490: .4byte sub_80BA258
- thumb_func_end sub_80BB3B4
-
- thumb_func_start sub_80BB494
-sub_80BB494: @ 80BB494
- push {lr}
- ldr r0, _080BB4A8 @ =gUnknown_03005D34
- ldrh r0, [r0]
- movs r1, 0x1
- movs r2, 0x11
- movs r3, 0x3
- bl sub_80BAE78
- pop {r0}
- bx r0
- .align 2, 0
-_080BB4A8: .4byte gUnknown_03005D34
- thumb_func_end sub_80BB494
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
deleted file mode 100644
index a9913b6d0..000000000
--- a/asm/use_pokeblock.s
+++ /dev/null
@@ -1,2113 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8136130
-sub_8136130: @ 8136130
- push {r4,r5,lr}
- ldr r4, _0813615C @ =gUnknown_02039304
- ldr r2, _08136160 @ =gUnknown_083DFEC4
- ldr r3, [r2]
- ldr r5, _08136164 @ =0x0000d164
- adds r2, r3, r5
- str r2, [r4]
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- ldr r0, _08136168 @ =0x0000d162
- adds r3, r0
- movs r0, 0x2
- strb r0, [r3]
- ldr r0, _0813616C @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _08136170 @ =sub_8136244
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813615C: .4byte gUnknown_02039304
-_08136160: .4byte gUnknown_083DFEC4
-_08136164: .4byte 0x0000d164
-_08136168: .4byte 0x0000d162
-_0813616C: .4byte sub_8136294
-_08136170: .4byte sub_8136244
- thumb_func_end sub_8136130
-
- thumb_func_start sub_8136174
-sub_8136174: @ 8136174
- push {r4,r5,lr}
- ldr r5, _081361C4 @ =gUnknown_02039304
- ldr r1, [r5]
- ldr r0, _081361C8 @ =gUnknown_0203930C
- ldr r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, _081361CC @ =gUnknown_02039308
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r4, _081361D0 @ =gUnknown_02039310
- ldrb r0, [r4]
- bl sub_81370E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0813619E
- movs r1, 0x1
-_0813619E:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, _081361D4 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _081361D8 @ =0x0000d162
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _081361DC @ =sub_8136294
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081361E0 @ =sub_81361E4
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081361C4: .4byte gUnknown_02039304
-_081361C8: .4byte gUnknown_0203930C
-_081361CC: .4byte gUnknown_02039308
-_081361D0: .4byte gUnknown_02039310
-_081361D4: .4byte gUnknown_083DFEC4
-_081361D8: .4byte 0x0000d162
-_081361DC: .4byte sub_8136294
-_081361E0: .4byte sub_81361E4
- thumb_func_end sub_8136174
-
- thumb_func_start sub_81361E4
-sub_81361E4: @ 81361E4
- push {r4,lr}
- ldr r4, _08136220 @ =gUnknown_02039304
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, _08136224 @ =sub_81365C8
- cmp r1, r0
- bne _0813621A
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x50
- strb r1, [r0]
- ldr r0, _08136228 @ =sub_813622C
- bl SetMainCallback2
-_0813621A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136220: .4byte gUnknown_02039304
-_08136224: .4byte sub_81365C8
-_08136228: .4byte sub_813622C
- thumb_func_end sub_81361E4
-
- thumb_func_start sub_813622C
-sub_813622C: @ 813622C
- push {lr}
- bl sub_81368A4
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813622C
-
- thumb_func_start sub_8136244
-sub_8136244: @ 8136244
- push {lr}
- ldr r0, _08136260 @ =gUnknown_02039304
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08136260: .4byte gUnknown_02039304
- thumb_func_end sub_8136244
-
- thumb_func_start sub_8136264
-sub_8136264: @ 8136264
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- movs r0, 0x6
- bl sub_80F5CDC
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_8136264
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 8136280
- ldr r1, _08136290 @ =gUnknown_02039304
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08136290: .4byte gUnknown_02039304
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8136294
-sub_8136294: @ 8136294
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _081362B4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x16
- bls _081362A8
- b _0813657A
-_081362A8:
- lsls r0, 2
- ldr r1, _081362B8 @ =_081362BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081362B4: .4byte gUnknown_02039304
-_081362B8: .4byte _081362BC
- .align 2, 0
-_081362BC:
- .4byte _08136318
- .4byte _08136354
- .4byte _0813635E
- .4byte _08136366
- .4byte _08136374
- .4byte _08136380
- .4byte _0813638C
- .4byte _081363B8
- .4byte _081363C8
- .4byte _081363DC
- .4byte _081363EE
- .4byte _08136404
- .4byte _08136448
- .4byte _08136464
- .4byte _08136488
- .4byte _08136494
- .4byte _0813649A
- .4byte _081364D8
- .4byte _081364FC
- .4byte _08136508
- .4byte _08136520
- .4byte _08136538
- .4byte _0813656C
-_08136318:
- bl is_c1_link_related_active
- ldr r1, _08136344 @ =gUnknown_083DFEC4
- ldr r1, [r1]
- ldr r2, _08136348 @ =0x00006dac
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08136330
- b _0813657A
-_08136330:
- ldr r4, _0813634C @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x55
- strb r1, [r0]
- ldr r0, _08136350 @ =sub_81365A0
- bl launch_c3_walk_stairs_and_run_once
- ldr r1, [r4]
- b _08136528
- .align 2, 0
-_08136344: .4byte gUnknown_083DFEC4
-_08136348: .4byte 0x00006dac
-_0813634C: .4byte gUnknown_02039304
-_08136350: .4byte sub_81365A0
-_08136354:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08136524
-_0813635E:
- movs r0, 0
- bl SetVBlankCallback
- b _08136524
-_08136366:
- ldr r0, _08136370 @ =gWindowConfig_81E7080
- bl SetUpWindowConfig
- b _08136524
- .align 2, 0
-_08136370: .4byte gWindowConfig_81E7080
-_08136374:
- ldr r0, _0813637C @ =gWindowConfig_81E7080
- bl MultistepInitMenuWindowBegin
- b _08136524
- .align 2, 0
-_0813637C: .4byte gWindowConfig_81E7080
-_08136380:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0813638A
- b _0813657A
-_0813638A:
- b _08136524
-_0813638C:
- ldr r0, _081363AC @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081363B0 @ =0x000076aa
- adds r0, r1, r4
- movs r2, 0
- strb r2, [r0]
- ldr r4, _081363B4 @ =0x000087e0
- adds r0, r1, r4
- str r2, [r0]
- movs r0, 0xC3
- lsls r0, 2
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081363AC: .4byte gUnknown_083DFEC4
-_081363B0: .4byte 0x000076aa
-_081363B4: .4byte 0x000087e0
-_081363B8:
- bl sub_80F2688
- ldr r0, _081363D8 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363C8:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- beq _081363D4
- b _0813657A
-_081363D4:
- b _08136524
- .align 2, 0
-_081363D8: .4byte gUnknown_02039304
-_081363DC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r0, _08136400 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363EE:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _081363FC
- b _0813657A
-_081363FC:
- b _08136524
- .align 2, 0
-_08136400: .4byte gUnknown_02039304
-_08136404:
- ldr r1, _08136434 @ =gKeyRepeatStartDelay
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r1, _08136438 @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r2, _0813643C @ =0x00008828
- adds r1, r4, r2
- movs r5, 0
- strb r0, [r1]
- ldr r1, _08136440 @ =0x00009344
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0xC0
- adds r0, r4, r2
- str r5, [r0]
- bl sub_80F4BD0
- ldr r0, _08136444 @ =0x0000d160
- adds r4, r0
- strh r5, [r4]
- b _08136524
- .align 2, 0
-_08136434: .4byte gKeyRepeatStartDelay
-_08136438: .4byte gUnknown_083DFEC4
-_0813643C: .4byte 0x00008828
-_08136440: .4byte 0x00009344
-_08136444: .4byte 0x0000d160
-_08136448:
- bl sub_80F1778
- lsls r0, 24
- cmp r0, 0
- beq _08136454
- b _0813657A
-_08136454:
- ldr r0, _08136460 @ =REG_BG2VOFS
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- b _08136524
- .align 2, 0
-_08136460: .4byte REG_BG2VOFS
-_08136464:
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _0813647C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136480 @ =0x00008768
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08136484 @ =0x0000ffd8
- strh r0, [r1, 0x26]
- b _08136524
- .align 2, 0
-_0813647C: .4byte gUnknown_083DFEC4
-_08136480: .4byte 0x00008768
-_08136484: .4byte 0x0000ffd8
-_08136488:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136494:
- bl sub_80F33A8
- b _08136524
-_0813649A:
- ldr r1, _081364C4 @ =0x0600f800
- movs r2, 0
- str r2, [sp]
- ldr r0, _081364C8 @ =0x040000d4
- mov r4, sp
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081364CC @ =0x85000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _081364D0 @ =REG_BG1VOFS
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- ldr r1, _081364D4 @ =REG_BG1CNT
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081364C4: .4byte 0x0600f800
-_081364C8: .4byte 0x040000d4
-_081364CC: .4byte 0x85000200
-_081364D0: .4byte REG_BG1VOFS
-_081364D4: .4byte REG_BG1CNT
-_081364D8:
- ldr r0, _081364F0 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r4, _081364F4 @ =0x00008ff0
- adds r0, r1, r4
- ldr r2, _081364F8 @ =0x00009004
- adds r1, r2
- bl sub_80F567C
- bl sub_80F5B38
- b _08136524
- .align 2, 0
-_081364F0: .4byte gUnknown_083DFEC4
-_081364F4: .4byte 0x00008ff0
-_081364F8: .4byte 0x00009004
-_081364FC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136508:
- ldr r0, _08136518 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r4, _0813651C @ =0x00009004
- adds r0, r4
- bl sub_80F556C
- b _08136524
- .align 2, 0
-_08136518: .4byte gUnknown_083DFEC4
-_0813651C: .4byte 0x00009004
-_08136520:
- bl sub_80F1934
-_08136524:
- ldr r0, _08136534 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136528:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813657A
- .align 2, 0
-_08136534: .4byte gUnknown_02039304
-_08136538:
- ldr r1, _08136584 @ =REG_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _08136588 @ =REG_WIN0V
- ldr r2, _0813658C @ =0x00003273
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08136590 @ =REG_WININ
- ldr r4, _08136594 @ =0x00003f3f
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- subs r1, 0x38
- movs r0, 0x28
- strh r0, [r1]
- subs r1, 0x12
- ldr r2, _08136598 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
-_0813656C:
- ldr r0, [r3]
- adds r0, 0x55
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0813659C @ =sub_81365C8
- bl launch_c3_walk_stairs_and_run_once
-_0813657A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136584: .4byte REG_WIN0H
-_08136588: .4byte REG_WIN0V
-_0813658C: .4byte 0x00003273
-_08136590: .4byte REG_WININ
-_08136594: .4byte 0x00003f3f
-_08136598: .4byte 0x00007f40
-_0813659C: .4byte sub_81365C8
- thumb_func_end sub_8136294
-
- thumb_func_start sub_81365A0
-sub_81365A0: @ 81365A0
- push {r4,lr}
- ldr r1, _081365C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- bne _081365BE
- adds r4, r1, 0
-_081365B0:
- bl sub_8136294
- ldr r0, [r4]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- beq _081365B0
-_081365BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081365C4: .4byte gUnknown_02039304
- thumb_func_end sub_81365A0
-
- thumb_func_start sub_81365C8
-sub_81365C8: @ 81365C8
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _081365E0 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _081365E4
- cmp r1, 0x1
- beq _0813660C
- b _08136626
- .align 2, 0
-_081365E0: .4byte gUnknown_02039304
-_081365E4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08136608 @ =sub_8136264
- bl SetVBlankCallback
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136626
- .align 2, 0
-_08136608: .4byte sub_8136264
-_0813660C:
- ldr r0, _08136630 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136626
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _08136634 @ =sub_8136638
- bl launch_c3_walk_stairs_and_run_once
-_08136626:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136630: .4byte gPaletteFade
-_08136634: .4byte sub_8136638
- thumb_func_end sub_81365C8
-
- thumb_func_start sub_8136638
-sub_8136638: @ 8136638
- push {r4,lr}
- ldr r0, _08136654 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08136648
- b _081367FA
-_08136648:
- lsls r0, 2
- ldr r1, _08136658 @ =_0813665C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136654: .4byte gUnknown_02039304
-_08136658: .4byte _0813665C
- .align 2, 0
-_0813665C:
- .4byte _0813667C
- .4byte _08136748
- .4byte _08136754
- .4byte _08136774
- .4byte _081367FA
- .4byte _08136780
- .4byte _08136798
- .4byte _081367E0
-_0813667C:
- ldr r2, _081366A4 @ =gMain
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081366AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366A8 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366A4: .4byte gMain
-_081366A8: .4byte gUnknown_02039304
-_081366AC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081366D4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366D0: .4byte gUnknown_02039304
-_081366D4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081366F4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081366F0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_081366F0: .4byte gUnknown_02039304
-_081366F4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081366FE
- b _081367FA
-_081366FE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08136728 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r2, _0813672C @ =0x000087dc
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _08136730 @ =0x000087da
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08136738
- ldr r0, _08136734 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_08136728: .4byte gUnknown_083DFEC4
-_0813672C: .4byte 0x000087dc
-_08136730: .4byte 0x000087da
-_08136734: .4byte gUnknown_02039304
-_08136738:
- ldr r0, _08136744 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _081367F8
- .align 2, 0
-_08136744: .4byte gUnknown_02039304
-_08136748:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081367FA
- b _08136784
-_08136754:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081367FA
- bl sub_80F1934
- bl sub_80F3D00
- ldr r0, _08136770 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081367FA
- .align 2, 0
-_08136770: .4byte gUnknown_02039304
-_08136774:
- ldr r0, _0813677C @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_0813677C: .4byte sub_8136B44
-_08136780:
- bl sub_8136BB8
-_08136784:
- ldr r0, _08136794 @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081367FA
- .align 2, 0
-_08136794: .4byte gUnknown_02039304
-_08136798:
- bl sub_8136C40
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081367B8
- cmp r1, 0
- bgt _081367B2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081367F0
- b _081367FA
-_081367B2:
- cmp r1, 0x1
- bne _081367FA
- b _081367F0
-_081367B8:
- bl sub_8137058
- lsls r0, 24
- cmp r0, 0
- beq _081367D4
- bl sub_8136D60
- ldr r0, _081367D0 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _081367F8
- .align 2, 0
-_081367D0: .4byte gUnknown_02039304
-_081367D4:
- ldr r0, _081367DC @ =sub_8136808
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_081367DC: .4byte sub_8136808
-_081367E0:
- ldr r0, _08136800 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081367FA
- bl sub_8136D8C
-_081367F0:
- ldr r0, _08136804 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_081367F8:
- strb r1, [r0]
-_081367FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136800: .4byte gMain
-_08136804: .4byte gUnknown_02039304
- thumb_func_end sub_8136638
-
- thumb_func_start sub_8136808
-sub_8136808: @ 8136808
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08136820 @ =gUnknown_02039304
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08136824
- cmp r4, 0x1
- beq _08136874
- b _0813688C
- .align 2, 0
-_08136820: .4byte gUnknown_02039304
-_08136824:
- ldr r0, _08136860 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136864 @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- ldr r1, _08136868 @ =gUnknown_02039310
- strb r0, [r1]
- ldr r1, _0813686C @ =gUnknown_02039308
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08136870 @ =gUnknown_0203930C
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813688C
- .align 2, 0
-_08136860: .4byte gUnknown_083DFEC4
-_08136864: .4byte 0x000087dc
-_08136868: .4byte gUnknown_02039310
-_0813686C: .4byte gUnknown_02039308
-_08136870: .4byte gUnknown_0203930C
-_08136874:
- ldr r0, _08136894 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813688C
- ldr r0, _08136898 @ =gMain
- ldr r1, _0813689C @ =sub_8136174
- str r1, [r0, 0x8]
- ldr r0, _081368A0 @ =sub_8147ADC
- bl SetMainCallback2
-_0813688C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136894: .4byte gPaletteFade
-_08136898: .4byte gMain
-_0813689C: .4byte sub_8136174
-_081368A0: .4byte sub_8147ADC
- thumb_func_end sub_8136808
-
- thumb_func_start sub_81368A4
-sub_81368A4: @ 81368A4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081368C4 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _081368B8
- b _081369B8
-_081368B8:
- lsls r0, 2
- ldr r1, _081368C8 @ =_081368CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081368C4: .4byte gUnknown_02039304
-_081368C8: .4byte _081368CC
- .align 2, 0
-_081368CC:
- .4byte _081368E8
- .4byte _08136922
- .4byte _0813692E
- .4byte _0813694C
- .4byte _0813695A
- .4byte _0813696C
- .4byte _08136998
-_081368E8:
- ldr r0, _0813690C @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136910 @ =0x000087dc
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _08136914 @ =gUnknown_02039310
- ldrb r0, [r0]
- cmp r1, r0
- beq _08136918
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_80F5060
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_0813690C: .4byte gUnknown_083DFEC4
-_08136910: .4byte 0x000087dc
-_08136914: .4byte gUnknown_02039310
-_08136918:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _081369B8
-_08136922:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081369B8
- b _08136982
-_0813692E:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081369B8
- bl sub_80F1934
- ldr r0, _08136948 @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081369B8
- .align 2, 0
-_08136948: .4byte gUnknown_02039304
-_0813694C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08136982
-_0813695A:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _08136968 @ =0x00007f40
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_08136968: .4byte 0x00007f40
-_0813696C:
- ldr r0, _08136990 @ =sub_8136264
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08136982:
- ldr r0, _08136994 @ =gUnknown_02039304
- ldr r1, [r0]
-_08136986:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081369B8
- .align 2, 0
-_08136990: .4byte sub_8136264
-_08136994: .4byte gUnknown_02039304
-_08136998:
- ldr r0, _081369C0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081369B8
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _081369C4 @ =sub_81369CC
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081369C8 @ =sub_8136244
- bl SetMainCallback2
-_081369B8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081369C0: .4byte gPaletteFade
-_081369C4: .4byte sub_81369CC
-_081369C8: .4byte sub_8136244
- thumb_func_end sub_81368A4
-
- thumb_func_start sub_81369CC
-sub_81369CC: @ 81369CC
- push {r4-r6,lr}
- ldr r1, _081369E8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _081369DE
- b _08136B32
-_081369DE:
- lsls r0, 2
- ldr r1, _081369EC @ =_081369F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081369E8: .4byte gUnknown_02039304
-_081369EC: .4byte _081369F0
- .align 2, 0
-_081369F0:
- .4byte _08136A08
- .4byte _08136A48
- .4byte _08136A5C
- .4byte _08136AAC
- .4byte _08136AEC
- .4byte _08136B0E
-_08136A08:
- ldr r3, [r4]
- ldr r2, _08136A38 @ =gPlayerParty
- str r2, [r3, 0xC]
- ldr r0, _08136A3C @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r5, _08136A40 @ =0x000087dc
- adds r0, r1, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136A44 @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r0, r2
- str r0, [r3, 0xC]
- bl move_anim_execute
- b _08136B02
- .align 2, 0
-_08136A38: .4byte gPlayerParty
-_08136A3C: .4byte gUnknown_083DFEC4
-_08136A40: .4byte 0x000087dc
-_08136A44: .4byte 0x0000893e
-_08136A48:
- ldr r0, _08136A58 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- b _08136B02
- .align 2, 0
-_08136A58: .4byte gMain
-_08136A5C:
- bl sub_8136EF0
- ldr r6, _08136A98 @ =gUnknown_02039304
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r1, _08136A9C @ =gUnknown_083DFEC4
- ldr r4, [r1]
- ldr r1, _08136AA0 @ =0x00009040
- adds r5, r4, r1
- adds r1, r5, 0
- bl sub_80F567C
- ldr r1, _08136AA4 @ =0x00008fe9
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08136AA8 @ =0x00009004
- adds r0, r1
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F5550
- bl sub_8137138
- ldr r1, [r6]
- b _08136B04
- .align 2, 0
-_08136A98: .4byte gUnknown_02039304
-_08136A9C: .4byte gUnknown_083DFEC4
-_08136AA0: .4byte 0x00009040
-_08136AA4: .4byte 0x00008fe9
-_08136AA8: .4byte 0x00009004
-_08136AAC:
- bl sub_80F555C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08136B32
- ldr r0, _08136AE0 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r5, _08136AE4 @ =0x000087dc
- adds r0, r5
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F7224
- bl sub_80F3D00
- ldr r1, _08136AE8 @ =gUnknown_02039304
- ldr r0, [r1]
- adds r0, 0x52
- strb r4, [r0]
- ldr r1, [r1]
- b _08136B04
- .align 2, 0
-_08136AE0: .4byte gUnknown_083DFEC4
-_08136AE4: .4byte 0x000087dc
-_08136AE8: .4byte gUnknown_02039304
-_08136AEC:
- ldr r1, [r4]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08136B32
- bl sub_8136C6C
-_08136B02:
- ldr r1, [r4]
-_08136B04:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136B32
-_08136B0E:
- ldr r0, _08136B38 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- bl sub_8136D00
- lsls r0, 24
- cmp r0, 0
- bne _08136B32
- ldr r0, _08136B3C @ =gScriptItemId
- ldrb r0, [r0]
- bl sub_810CA6C
- ldr r0, _08136B40 @ =sub_8136B44
- bl launch_c3_walk_stairs_and_run_once
-_08136B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136B38: .4byte gMain
-_08136B3C: .4byte gScriptItemId
-_08136B40: .4byte sub_8136B44
- thumb_func_end sub_81369CC
-
- thumb_func_start sub_8136B44
-sub_8136B44: @ 8136B44
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08136B60 @ =gUnknown_02039304
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08136B80
- cmp r1, 0x1
- bgt _08136B64
- cmp r1, 0
- beq _08136B6E
- b _08136BAE
- .align 2, 0
-_08136B60: .4byte gUnknown_02039304
-_08136B64:
- cmp r1, 0x2
- beq _08136B98
- cmp r1, 0x3
- beq _08136BA8
- b _08136BAE
-_08136B6E:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08136B9C
-_08136B80:
- ldr r0, _08136B94 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136BAE
- movs r0, 0x2
- strb r0, [r2]
- b _08136BAE
- .align 2, 0
-_08136B94: .4byte gPaletteFade
-_08136B98:
- bl sub_80F5BDC
-_08136B9C:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136BAE
-_08136BA8:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
-_08136BAE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136B44
-
- thumb_func_start sub_8136BB8
-sub_8136BB8: @ 8136BB8
- push {r4,lr}
- ldr r0, _08136C28 @ =gUnknown_083DFEC4
- ldr r0, [r0]
- ldr r1, _08136C2C @ =0x000087dc
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08136C30 @ =gPlayerParty
- adds r0, r1
- ldr r4, _08136C34 @ =gUnknown_02039304
- ldr r2, [r4]
- adds r2, 0x10
- movs r1, 0x2
- bl GetMonData
- ldr r0, [r4]
- adds r0, 0x10
- bl StringGetEnd10
- ldr r0, [r4]
- adds r0, 0x10
- ldr r1, _08136C38 @ =gOtherText_GetsAPokeBlock
- bl StringAppend
- ldr r0, _08136C3C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136C28: .4byte gUnknown_083DFEC4
-_08136C2C: .4byte 0x000087dc
-_08136C30: .4byte gPlayerParty
-_08136C34: .4byte gUnknown_02039304
-_08136C38: .4byte gOtherText_GetsAPokeBlock
-_08136C3C: .4byte gWindowConfig_81E709C
- thumb_func_end sub_8136BB8
-
- thumb_func_start sub_8136C40
-sub_8136C40: @ 8136C40
- push {r4,lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08136C60
- bl MenuZeroFillScreen
- ldr r0, _08136C68 @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
-_08136C60:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08136C68: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136C40
-
- thumb_func_start sub_8136C6C
-sub_8136C6C: @ 8136C6C
- push {lr}
- ldr r0, _08136C8C @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08136C90 @ =gUnknown_02039304
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- b _08136C9C
- .align 2, 0
-_08136C8C: .4byte gWindowConfig_81E709C
-_08136C90: .4byte gUnknown_02039304
-_08136C94:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
-_08136C9C:
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136C94
- ldr r0, _08136CD8 @ =gUnknown_02039304
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x10
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- b _08136CEE
- .align 2, 0
-_08136CD8: .4byte gUnknown_02039304
-_08136CDC:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8136DC0
-_08136CEE:
- ldr r0, _08136CFC @ =gUnknown_02039304
- ldr r0, [r0]
- adds r0, 0x10
- bl sub_8136DA0
- pop {r0}
- bx r0
- .align 2, 0
-_08136CFC: .4byte gUnknown_02039304
- thumb_func_end sub_8136C6C
-
- thumb_func_start sub_8136D00
-sub_8136D00: @ 8136D00
- push {r4,r5,lr}
- ldr r4, _08136D30 @ =gUnknown_02039304
- adds r3, r4, 0
- movs r5, 0x5
-_08136D08:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136D34
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08136D3A
- b _08136D08
- .align 2, 0
-_08136D30: .4byte gUnknown_02039304
-_08136D34:
- strb r5, [r1]
- movs r0, 0
- b _08136D5A
-_08136D3A:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8136DA0
- movs r0, 0x1
-_08136D5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8136D00
-
- thumb_func_start sub_8136D60
-sub_8136D60: @ 8136D60
- push {lr}
- ldr r0, _08136D84 @ =gWindowConfig_81E709C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08136D88 @ =gOtherText_WontEat
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08136D84: .4byte gWindowConfig_81E709C
-_08136D88: .4byte gOtherText_WontEat
- thumb_func_end sub_8136D60
-
- thumb_func_start sub_8136D8C
-sub_8136D8C: @ 8136D8C
- push {lr}
- bl MenuZeroFillScreen
- ldr r0, _08136D9C @ =gWindowConfig_81E7080
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_08136D9C: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136D8C
-
- thumb_func_start sub_8136DA0
-sub_8136DA0: @ 8136DA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136DA0
-
- thumb_func_start sub_8136DC0
-sub_8136DC0: @ 8136DC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08136DFC
- cmp r2, 0
- ble _08136DD8
- movs r0, 0
-_08136DD8:
- lsls r0, 16
- ldr r1, _08136DF4 @ =gUnknown_08406134
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08136DF8 @ =gOtherText_WasEnhanced
- adds r0, r4, 0
- bl StringAppend
- b _08136E04
- .align 2, 0
-_08136DF4: .4byte gUnknown_08406134
-_08136DF8: .4byte gOtherText_WasEnhanced
-_08136DFC:
- ldr r1, _08136E0C @ =gOtherText_NothingChanged
- adds r0, r4, 0
- bl StringCopy
-_08136E04:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E0C: .4byte gOtherText_NothingChanged
- thumb_func_end sub_8136DC0
-
- thumb_func_start sub_8136E10
-sub_8136E10: @ 8136E10
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, _08136E3C @ =gUnknown_08406118
-_08136E1A:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E1A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E3C: .4byte gUnknown_08406118
- thumb_func_end sub_8136E10
-
- thumb_func_start sub_8136E40
-sub_8136E40: @ 8136E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _08136EDC
- mov r0, r8
- adds r1, r5, 0
- bl sub_8136F74
- movs r4, 0
- mov r7, sp
-_08136E64:
- ldr r1, _08136EE8 @ =gUnknown_08406118
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, _08136EEC @ =gUnknown_02039304
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _08136E92
- movs r1, 0
-_08136E92:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136E9C
- movs r1, 0xFF
-_08136E9C:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E64
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136ECE
- movs r1, 0xFF
-_08136ECE:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_08136EDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136EE8: .4byte gUnknown_08406118
-_08136EEC: .4byte gUnknown_02039304
- thumb_func_end sub_8136E40
-
- thumb_func_start sub_8136EF0
-sub_8136EF0: @ 8136EF0
- push {r4,r5,lr}
- ldr r5, _08136F60 @ =gPlayerParty
- ldr r0, _08136F64 @ =gUnknown_083DFEC4
- ldr r1, [r0]
- ldr r2, _08136F68 @ =0x000087dc
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136F6C @ =0x0000893e
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, _08136F70 @ =gUnknown_02039304
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8136E10
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8136E40
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8136E10
- movs r3, 0
-_08136F36:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08136F36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F60: .4byte gPlayerParty
-_08136F64: .4byte gUnknown_083DFEC4
-_08136F68: .4byte 0x000087dc
-_08136F6C: .4byte 0x0000893e
-_08136F70: .4byte gUnknown_02039304
- thumb_func_end sub_8136EF0
-
- thumb_func_start sub_8136F74
-sub_8136F74: @ 8136F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, _08136FBC @ =gUnknown_02039304
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, _08136FC0 @ =gUnknown_02039312
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _08136FC4
- movs r0, 0x1
- b _08136FCA
- .align 2, 0
-_08136FBC: .4byte gUnknown_02039304
-_08136FC0: .4byte gUnknown_02039312
-_08136FC4:
- cmp r0, 0
- bge _08137040
- movs r0, 0xFF
-_08136FCA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, _08137050 @ =gUnknown_02039304
- mov r8, r0
-_08136FD4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0813700C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0813700C:
- ldr r0, _08137054 @ =gUnknown_0840612C
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_8040A54
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08137034
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08137034:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _08136FD4
-_08137040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137050: .4byte gUnknown_02039304
-_08137054: .4byte gUnknown_0840612C
- thumb_func_end sub_8136F74
-
- thumb_func_start sub_8137058
-sub_8137058: @ 8137058
- push {lr}
- ldr r0, _0813708C @ =gPlayerParty
- ldr r1, _08137090 @ =gUnknown_083DFEC4
- ldr r2, [r1]
- ldr r3, _08137094 @ =0x000087dc
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r2, r1
- ldr r1, _08137098 @ =0x0000893e
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x64
- muls r1, r2
- adds r0, r1, r0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _0813709C
- movs r0, 0
- b _0813709E
- .align 2, 0
-_0813708C: .4byte gPlayerParty
-_08137090: .4byte gUnknown_083DFEC4
-_08137094: .4byte 0x000087dc
-_08137098: .4byte 0x0000893e
-_0813709C:
- movs r0, 0x1
-_0813709E:
- pop {r1}
- bx r1
- thumb_func_end sub_8137058
-
- thumb_func_start sub_81370A4
-sub_81370A4: @ 81370A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081370AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _081370C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081370D2
- cmp r5, 0
- bne _081370CC
- adds r0, r4, 0
- b _081370DE
- .align 2, 0
-_081370C8: .4byte gPlayerParty
-_081370CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081370D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081370AC
- movs r0, 0
-_081370DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81370A4
-
- thumb_func_start sub_81370E4
-sub_81370E4: @ 81370E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08137114
-_081370F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08137120 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0813710A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0813710A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081370F2
-_08137114:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08137120: .4byte gPlayerParty
- thumb_func_end sub_81370E4
-
- thumb_func_start sub_8137124
-sub_8137124: @ 8137124
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8137124
-
- thumb_func_start sub_8137138
-sub_8137138: @ 8137138
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081371C0 @ =gSpriteSheet_ConditionUpDown
- bl LoadSpriteSheet
- ldr r0, _081371C4 @ =gSpritePalette_ConditionUpDown
- bl LoadSpritePalette
- ldr r2, _081371C8 @ =gUnknown_02039304
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, _081371CC @ =gUnknown_08406158
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, _081371D0 @ =gSprites + 0x1C
-_08137160:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, _081371D4 @ =gSpriteTemplate_840618C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081371AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _081371D8 @ =sub_81371DC
- str r1, [r0]
-_081371A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081371AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08137160
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081371C0: .4byte gSpriteSheet_ConditionUpDown
-_081371C4: .4byte gSpritePalette_ConditionUpDown
-_081371C8: .4byte gUnknown_02039304
-_081371CC: .4byte gUnknown_08406158
-_081371D0: .4byte gSprites + 0x1C
-_081371D4: .4byte gSpriteTemplate_840618C
-_081371D8: .4byte sub_81371DC
- thumb_func_end sub_8137138
-
- thumb_func_start sub_81371DC
-sub_81371DC: @ 81371DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081371EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081371F6
-_081371EE:
- cmp r0, 0xB
- bgt _081371F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081371F6:
- strh r0, [r1, 0x26]
-_081371F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08137218
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, _0813721C @ =gUnknown_02039304
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08137218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813721C: .4byte gUnknown_02039304
- thumb_func_end sub_81371DC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/data2.s b/data/data2.s
deleted file mode 100644
index 00ef5c26e..000000000
--- a/data/data2.s
+++ /dev/null
@@ -1,1804 +0,0 @@
-@ the second big chunk of data
-
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gSpriteImageTable_81E7A10:: @ 81E7A10
- obj_frame_tiles 0x2008000, 0x800
- obj_frame_tiles 0x2008800, 0x800
- obj_frame_tiles 0x2009000, 0x800
- obj_frame_tiles 0x2009800, 0x800
-
- .align 2
-gSpriteImageTable_81E7A30:: @ 81E7A30
- obj_frame_tiles 0x200A000, 0x800
- obj_frame_tiles 0x200A800, 0x800
- obj_frame_tiles 0x200B000, 0x800
- obj_frame_tiles 0x200B800, 0x800
-
- .align 2
-gSpriteImageTable_81E7A50:: @ 81E7A50
- obj_frame_tiles 0x200C000, 0x800
- obj_frame_tiles 0x200C800, 0x800
- obj_frame_tiles 0x200D000, 0x800
- obj_frame_tiles 0x200D800, 0x800
-
- .align 2
-gSpriteImageTable_81E7A70:: @ 81E7A70
- obj_frame_tiles 0x200E000, 0x800
- obj_frame_tiles 0x200E800, 0x800
- obj_frame_tiles 0x200F000, 0x800
- obj_frame_tiles 0x200F800, 0x800
-
- .align 2
-gSpriteAnim_81E7A90:: @ 81E7A90
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81E7A98:: @ 81E7A98
- obj_image_anim_frame 3, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7AA0:: @ 81E7AA0
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7AB0:: @ 81E7AB0
- obj_rot_scal_anim_frame 0xFF00, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7AC0:: @ 81E7AC0
- obj_rot_scal_anim_frame 0x28, 0x28, 0, 0
- obj_rot_scal_anim_frame 0x12, 0x12, 0, 12
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7AD8:: @ 81E7AD8
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 18
- obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 15
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7AF0:: @ 81E7AF0
- obj_rot_scal_anim_frame 0xA0, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x4, 0x0, 0, 8
- obj_rot_scal_anim_frame 0xFFFC, 0x0, 0, 8
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnim_81E7B10:: @ 81E7B10
- obj_rot_scal_anim_frame 0x2, 0x2, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7B20:: @ 81E7B20
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7B30:: @ 81E7B30
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 9
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7B48:: @ 81E7B48
- obj_rot_scal_anim_frame 0x4, 0x4, 0, 63
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7B58:: @ 81E7B58
- obj_rot_scal_anim_frame 0x0, 0x0, -3, 5
- obj_rot_scal_anim_frame 0x0, 0x0, 3, 5
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81E7B70:: @ 81E7B70
- .4byte gSpriteAffineAnim_81E7AA0
- .4byte gSpriteAffineAnim_81E7AC0
- .4byte gSpriteAffineAnim_81E7AD8
- .4byte gSpriteAffineAnim_81E7AF0
- .4byte gSpriteAffineAnim_81E7B10
- .4byte gSpriteAffineAnim_81E7B20
- .4byte gSpriteAffineAnim_81E7B48
- .4byte gSpriteAffineAnim_81E7B58
- .4byte gSpriteAffineAnim_81E7B30
-
- .align 2
-gSpriteAffineAnim_81E7B94:: @ 81E7B94
- obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 4, 63
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7BA4:: @ 81E7BA4
- obj_rot_scal_anim_frame 0x0, 0x0, 3, 5
- obj_rot_scal_anim_frame 0x0, 0x0, -3, 5
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7BBC:: @ 81E7BBC
- obj_rot_scal_anim_frame 0x0, 0x0, -5, 20
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 20
- obj_rot_scal_anim_frame 0x0, 0x0, 5, 20
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81E7BDC:: @ 81E7BDC
- obj_rot_scal_anim_frame 0x0, 0x0, 9, 110
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81E7BEC:: @ 81E7BEC
- .4byte gSpriteAffineAnim_81E7AA0
- .4byte gSpriteAffineAnim_81E7AC0
- .4byte gSpriteAffineAnim_81E7AD8
- .4byte gSpriteAffineAnim_81E7AF0
- .4byte gSpriteAffineAnim_81E7B10
- .4byte gSpriteAffineAnim_81E7B20
- .4byte gSpriteAffineAnim_81E7B94
- .4byte gSpriteAffineAnim_81E7BA4
- .4byte gSpriteAffineAnim_81E7BBC
- .4byte gSpriteAffineAnim_81E7B30
- .4byte gSpriteAffineAnim_81E7BDC
-
- .align 2
-gSpriteAffineAnimTable_81E7C18:: @ 81E7C18
- .4byte gSpriteAffineAnim_81E7AB0
- .4byte gSpriteAffineAnim_81E7AC0
- .4byte gSpriteAffineAnim_81E7AD8
- .4byte gSpriteAffineAnim_81E7AF0
- .4byte gSpriteAffineAnim_81E7B10
- .4byte gSpriteAffineAnim_81E7B20
- .4byte gSpriteAffineAnim_81E7B94
- .4byte gSpriteAffineAnim_81E7BA4
- .4byte gSpriteAffineAnim_81E7BBC
- .4byte gSpriteAffineAnim_81E7B30
- .4byte gSpriteAffineAnim_81E7BDC
-
- .align 2
-gSpriteAnim_81E7C44:: @ 81E7C44
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81E7C4C:: @ 81E7C4C
- obj_image_anim_frame 1, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81E7C54:: @ 81E7C54
- obj_image_anim_frame 2, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81E7C5C:: @ 81E7C5C
- obj_image_anim_frame 3, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_81E7C64:: @ 81E7C64
- .4byte gSpriteAnim_81E7C44
- .4byte gSpriteAnim_81E7C4C
- .4byte gSpriteAnim_81E7C54
- .4byte gSpriteAnim_81E7C5C
-
-@ 81E7C74
- .include "data/graphics/pokemon/front_pic_coords.inc"
-
-@ 81E8354
- .include "data/graphics/pokemon/front_pic_table.inc"
-
-@ 81E9114
- .include "data/graphics/pokemon/back_pic_coords.inc"
-
-@ 81E97F4
- .include "data/graphics/pokemon/back_pic_table.inc"
-
-@ 81EA5B4
- .include "data/graphics/pokemon/palette_table.inc"
-
-@ 81EB374
- .include "data/graphics/pokemon/shiny_palette_table.inc"
-
- .align 2
-gSpriteAnim_81EC134:: @ 81EC134
- obj_image_anim_frame 0, 7
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81EC13C:: @ 81EC13C
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81EC144:: @ 81EC144
- obj_image_anim_frame 0, 2
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_81EC14C:: @ 81EC14C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC150:: @ 81EC150
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC154:: @ 81EC154
- .4byte gSpriteAnim_81E7A90
- .4byte gSpriteAnim_81EC134
-
- .align 2
-gSpriteAnimTable_81EC15C:: @ 81EC15C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC160:: @ 81EC160
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC164:: @ 81EC164
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC168:: @ 81EC168
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC16C:: @ 81EC16C
- .4byte gSpriteAnim_81E7A90
- .4byte gSpriteAnim_81EC13C
-
- .align 2
-gSpriteAnimTable_81EC174:: @ 81EC174
- .4byte gSpriteAnim_81E7A90
- .4byte gSpriteAnim_81EC144
-
- .align 2
-gSpriteAnimTable_81EC17C:: @ 81EC17C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC180:: @ 81EC180
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC184:: @ 81EC184
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC188:: @ 81EC188
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC18C:: @ 81EC18C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC190:: @ 81EC190
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC194:: @ 81EC194
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC198:: @ 81EC198
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC19C:: @ 81EC19C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1A0:: @ 81EC1A0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1A4:: @ 81EC1A4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1A8:: @ 81EC1A8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1AC:: @ 81EC1AC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1B0:: @ 81EC1B0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1B4:: @ 81EC1B4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1B8:: @ 81EC1B8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1BC:: @ 81EC1BC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1C0:: @ 81EC1C0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1C4:: @ 81EC1C4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1C8:: @ 81EC1C8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1CC:: @ 81EC1CC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1D0:: @ 81EC1D0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1D4:: @ 81EC1D4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1D8:: @ 81EC1D8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1DC:: @ 81EC1DC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1E0:: @ 81EC1E0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1E4:: @ 81EC1E4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1E8:: @ 81EC1E8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1EC:: @ 81EC1EC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1F0:: @ 81EC1F0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1F4:: @ 81EC1F4
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1F8:: @ 81EC1F8
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC1FC:: @ 81EC1FC
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC200:: @ 81EC200
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC204:: @ 81EC204
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC208:: @ 81EC208
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC20C:: @ 81EC20C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC210:: @ 81EC210
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC214:: @ 81EC214
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC218:: @ 81EC218
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC21C:: @ 81EC21C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC220:: @ 81EC220
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC224:: @ 81EC224
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC228:: @ 81EC228
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC22C:: @ 81EC22C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC230:: @ 81EC230
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC234:: @ 81EC234
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC238:: @ 81EC238
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC23C:: @ 81EC23C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC240:: @ 81EC240
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC244:: @ 81EC244
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC248:: @ 81EC248
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC24C:: @ 81EC24C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC250:: @ 81EC250
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC254:: @ 81EC254
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC258:: @ 81EC258
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC25C:: @ 81EC25C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC260:: @ 81EC260
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC264:: @ 81EC264
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC268:: @ 81EC268
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC26C:: @ 81EC26C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC270:: @ 81EC270
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC274:: @ 81EC274
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC278:: @ 81EC278
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC27C:: @ 81EC27C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC280:: @ 81EC280
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC284:: @ 81EC284
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC288:: @ 81EC288
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC28C:: @ 81EC28C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC290:: @ 81EC290
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC294:: @ 81EC294
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC298:: @ 81EC298
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC29C:: @ 81EC29C
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gSpriteAnimTable_81EC2A0:: @ 81EC2A0
- .4byte gSpriteAnim_81E7A90
-
- .align 2
-gUnknown_081EC2A4:: @ 81EC2A4
- .4byte gSpriteAnimTable_81EC14C
- .4byte gSpriteAnimTable_81EC150
- .4byte gSpriteAnimTable_81EC154
- .4byte gSpriteAnimTable_81EC15C
- .4byte gSpriteAnimTable_81EC160
- .4byte gSpriteAnimTable_81EC164
- .4byte gSpriteAnimTable_81EC168
- .4byte gSpriteAnimTable_81EC16C
- .4byte gSpriteAnimTable_81EC174
- .4byte gSpriteAnimTable_81EC17C
- .4byte gSpriteAnimTable_81EC180
- .4byte gSpriteAnimTable_81EC184
- .4byte gSpriteAnimTable_81EC188
- .4byte gSpriteAnimTable_81EC18C
- .4byte gSpriteAnimTable_81EC190
- .4byte gSpriteAnimTable_81EC194
- .4byte gSpriteAnimTable_81EC198
- .4byte gSpriteAnimTable_81EC19C
- .4byte gSpriteAnimTable_81EC1A0
- .4byte gSpriteAnimTable_81EC1A4
- .4byte gSpriteAnimTable_81EC1A8
- .4byte gSpriteAnimTable_81EC1AC
- .4byte gSpriteAnimTable_81EC1B0
- .4byte gSpriteAnimTable_81EC1B4
- .4byte gSpriteAnimTable_81EC1B8
- .4byte gSpriteAnimTable_81EC1BC
- .4byte gSpriteAnimTable_81EC1C0
- .4byte gSpriteAnimTable_81EC1C4
- .4byte gSpriteAnimTable_81EC1C8
- .4byte gSpriteAnimTable_81EC1CC
- .4byte gSpriteAnimTable_81EC1D0
- .4byte gSpriteAnimTable_81EC1D4
- .4byte gSpriteAnimTable_81EC1D8
- .4byte gSpriteAnimTable_81EC1DC
- .4byte gSpriteAnimTable_81EC1E0
- .4byte gSpriteAnimTable_81EC1E4
- .4byte gSpriteAnimTable_81EC1E8
- .4byte gSpriteAnimTable_81EC1EC
- .4byte gSpriteAnimTable_81EC1F0
- .4byte gSpriteAnimTable_81EC1F4
- .4byte gSpriteAnimTable_81EC1F8
- .4byte gSpriteAnimTable_81EC1FC
- .4byte gSpriteAnimTable_81EC200
- .4byte gSpriteAnimTable_81EC204
- .4byte gSpriteAnimTable_81EC208
- .4byte gSpriteAnimTable_81EC20C
- .4byte gSpriteAnimTable_81EC210
- .4byte gSpriteAnimTable_81EC214
- .4byte gSpriteAnimTable_81EC218
- .4byte gSpriteAnimTable_81EC21C
- .4byte gSpriteAnimTable_81EC220
- .4byte gSpriteAnimTable_81EC224
- .4byte gSpriteAnimTable_81EC228
- .4byte gSpriteAnimTable_81EC22C
- .4byte gSpriteAnimTable_81EC230
- .4byte gSpriteAnimTable_81EC234
- .4byte gSpriteAnimTable_81EC238
- .4byte gSpriteAnimTable_81EC23C
- .4byte gSpriteAnimTable_81EC240
- .4byte gSpriteAnimTable_81EC244
- .4byte gSpriteAnimTable_81EC248
- .4byte gSpriteAnimTable_81EC24C
- .4byte gSpriteAnimTable_81EC250
- .4byte gSpriteAnimTable_81EC254
- .4byte gSpriteAnimTable_81EC258
- .4byte gSpriteAnimTable_81EC25C
- .4byte gSpriteAnimTable_81EC260
- .4byte gSpriteAnimTable_81EC264
- .4byte gSpriteAnimTable_81EC268
- .4byte gSpriteAnimTable_81EC26C
- .4byte gSpriteAnimTable_81EC270
- .4byte gSpriteAnimTable_81EC274
- .4byte gSpriteAnimTable_81EC278
- .4byte gSpriteAnimTable_81EC27C
- .4byte gSpriteAnimTable_81EC280
- .4byte gSpriteAnimTable_81EC284
- .4byte gSpriteAnimTable_81EC288
- .4byte gSpriteAnimTable_81EC28C
- .4byte gSpriteAnimTable_81EC290
- .4byte gSpriteAnimTable_81EC294
- .4byte gSpriteAnimTable_81EC298
- .4byte gSpriteAnimTable_81EC29C
- .4byte gSpriteAnimTable_81EC2A0
-
-@ 81EC3F0
- .include "data/graphics/trainers/front_pic_coords.inc"
-
-@ 81EC53C
- .include "data/graphics/trainers/front_pic_table.inc"
-
-@ 81EC7D4
- .include "data/graphics/trainers/front_pic_palette_table.inc"
-
- .align 2
-gSpriteAnim_81ECA6C:: @ 81ECA6C
- obj_image_anim_frame 0, 24
- obj_image_anim_frame 1, 9
- obj_image_anim_frame 2, 24
- obj_image_anim_frame 0, 9
- obj_image_anim_frame 3, 50
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81ECA84:: @ 81ECA84
- obj_image_anim_frame 0, 24
- obj_image_anim_frame 1, 9
- obj_image_anim_frame 2, 24
- obj_image_anim_frame 0, 9
- obj_image_anim_frame 3, 50
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81ECA9C:: @ 81ECA9C
- obj_image_anim_frame 0, 24
- obj_image_anim_frame 1, 9
- obj_image_anim_frame 2, 24
- obj_image_anim_frame 0, 9
- obj_image_anim_frame 3, 50
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_81ECAB4:: @ 81ECAB4
- .4byte gSpriteAnim_81E7A98
- .4byte gSpriteAnim_81ECA6C
-
- .align 2
-gSpriteAnimTable_81ECABC:: @ 81ECABC
- .4byte gSpriteAnim_81E7A98
- .4byte gSpriteAnim_81ECA84
-
- .align 2
-gSpriteAnimTable_81ECAC4:: @ 81ECAC4
- .4byte gSpriteAnim_81E7A98
- .4byte gSpriteAnim_81ECA9C
-
- .align 2
-gUnknown_081ECACC:: @ 81ECACC
- .4byte gSpriteAnimTable_81ECAB4
- .4byte gSpriteAnimTable_81ECABC
- .4byte gSpriteAnimTable_81ECAC4
-
-@ 81ECAD8
- .include "data/graphics/trainers/back_pic_coords.inc"
-
-@ 81ECAE4
- .include "data/graphics/trainers/back_pic_table.inc"
-
-@ 81ECAFC
- .include "data/graphics/trainers/back_pic_palette_table.inc"
-
-@ 81ECB14
- .include "data/enemy_mon_elevation.inc"
-
-@ 81ECCB0
- .include "data/trainer_parties.inc"
-
-@ 81F0208
- .include "data/text/trainer_class_names.inc"
-
-@ 81F04FC
- .include "data/trainers.inc"
-
-@ 81F716C
- .include "data/text/species_names.inc"
-
-@ 81F8320
- .include "data/text/move_names.inc"
-
- .align 2
-@ 81F9528
- .4byte 0x101 @ unknown data
-
- .align 2
-gOamData_81F952C:: @ 81F952C
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0000
-
- .align 2
-gOamData_81F9534:: @ 81F9534
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x0040
-
- .align 2
-gSpriteAffineAnim_81F953C:: @ 81F953C
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_81F954C:: @ 81F954C
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
- obj_rot_scal_anim_frame 0x18, 0x18, 0, -128
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_81F956C:: @ 81F956C
- .4byte gSpriteAffineAnim_81F953C
- .4byte gSpriteAffineAnim_81F954C
-
- .align 2
-gSpriteTemplate_81F9574:: @ 81F9574
- spr_template 10000, 10000, gOamData_81F952C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
-
- .align 2
-gSpriteTemplate_81F958C:: @ 81F958C
- spr_template 10000, 10000, gOamData_81F9534, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_81F956C, nullsub_36
-
- .align 2
-gUnknown_081F95A4:: @ 81F95A4
- obj_tiles gUnknown_08E5DC2C, 4096, 0x2710
-
- .align 2
-gBattleTerrainTable:: @ 81F95AC
- @ tall_grass
- .4byte gBattleTerrainTiles_TallGrass
- .4byte gBattleTerrainTilemap_TallGrass
- .4byte gBattleTerrainAnimTiles_TallGrass
- .4byte gBattleTerrainAnimTilemap_TallGrass
- .4byte gBattleTerrainPalette_TallGrass
-
- @ long_grass
- .4byte gBattleTerrainTiles_LongGrass
- .4byte gBattleTerrainTilemap_LongGrass
- .4byte gBattleTerrainAnimTiles_LongGrass
- .4byte gBattleTerrainAnimTilemap_LongGrass
- .4byte gBattleTerrainPalette_LongGrass
-
- @ sand
- .4byte gBattleTerrainTiles_Sand
- .4byte gBattleTerrainTilemap_Sand
- .4byte gBattleTerrainAnimTiles_Sand
- .4byte gBattleTerrainAnimTilemap_Sand
- .4byte gBattleTerrainPalette_Sand
-
- @ underwater
- .4byte gBattleTerrainTiles_Underwater
- .4byte gBattleTerrainTilemap_Underwater
- .4byte gBattleTerrainAnimTiles_Underwater
- .4byte gBattleTerrainAnimTilemap_Underwater
- .4byte gBattleTerrainPalette_Underwater
-
- @ water
- .4byte gBattleTerrainTiles_Water
- .4byte gBattleTerrainTilemap_Water
- .4byte gBattleTerrainAnimTiles_Water
- .4byte gBattleTerrainAnimTilemap_Water
- .4byte gBattleTerrainPalette_Water
-
- @ pond_water
- .4byte gBattleTerrainTiles_PondWater
- .4byte gBattleTerrainTilemap_PondWater
- .4byte gBattleTerrainAnimTiles_PondWater
- .4byte gBattleTerrainAnimTilemap_PondWater
- .4byte gBattleTerrainPalette_PondWater
-
- @ rock
- .4byte gBattleTerrainTiles_Rock
- .4byte gBattleTerrainTilemap_Rock
- .4byte gBattleTerrainAnimTiles_Rock
- .4byte gBattleTerrainAnimTilemap_Rock
- .4byte gBattleTerrainPalette_Rock
-
- @ cave
- .4byte gBattleTerrainTiles_Cave
- .4byte gBattleTerrainTilemap_Cave
- .4byte gBattleTerrainAnimTiles_Cave
- .4byte gBattleTerrainAnimTilemap_Cave
- .4byte gBattleTerrainPalette_Cave
-
- @ building
- .4byte gBattleTerrainTiles_Building
- .4byte gBattleTerrainTilemap_Building
- .4byte gBattleTerrainAnimTiles_Building
- .4byte gBattleTerrainAnimTilemap_Building
- .4byte gBattleTerrainPalette_Building
-
- @ plain
- .4byte gBattleTerrainTiles_Building
- .4byte gBattleTerrainTilemap_Building
- .4byte gBattleTerrainAnimTiles_Building
- .4byte gBattleTerrainAnimTilemap_Building
- .4byte gBattleTerrainPalette_Plain
-
- .align 2
-gUnknown_081F9674:: @ 81F9674
- .4byte REG_BG3HOFS
- .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1
- .4byte 1
-
- .align 2
-gUnknown_081F9680:: @ 81F9680
- .4byte gUnknown_030041D0
- .2byte 0x20
- .byte 0x13
- .byte 0x10
- .4byte BG_VRAM + 0xE104
-
- .4byte gUnknown_03004250
- .2byte 0x40
- .byte 0x13
- .byte 0x10
- .4byte BG_VRAM + 0xF104
-
- .4byte gUnknown_030041D0
- .2byte 0x60
- .byte 0x13
- .byte 0x30
- .4byte BG_VRAM + 0xE204
-
- .4byte gUnknown_03004250
- .2byte 0x80
- .byte 0x13
- .byte 0x30
- .4byte BG_VRAM + 0xF204
-
- .4byte gUnknown_030041D0
- .2byte 0x20
- .byte 0x13
- .byte 0x18
- .4byte BG_VRAM + 0xE1C4
-
- .4byte gUnknown_03004250
- .2byte 0x40
- .byte 0x13
- .byte 0x18
- .4byte BG_VRAM + 0xF1C4
-
-gUnknown_081F96C8:: @ 81F96C8
- .string "ヌケニン$" @ "Nukenin" (Shedinja)
-
- .align 2
-gSpriteTemplate_81F96D0:: @ 81F96D0
- spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_800F828
-
- .align 2
-gOamData_81F96E8:: @ 81F96E8
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gOamData_81F96F0:: @ 81F96F0
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x2800
-
- .align 2
-gSpriteAnim_81F96F8:: @ 81F96F8
- obj_image_anim_frame 0, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_81F9700:: @ 81F9700
- .4byte gSpriteAnim_81F96F8
-
- .align 2
-gSpriteAffineAnim_81F9704:: @ 81F9704
- obj_rot_scal_anim_frame 0xFFF0, 0x0, 0, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 60
- obj_rot_scal_anim_jump 1
-
- .align 2
-gSpriteAffineAnimTable_81F971C:: @ 81F971C
- .4byte gSpriteAffineAnim_81F9704
-
-@ 81F9720
- .include "data/type_effectiveness.inc"
-
-@ 81F9870
- .include "data/text/type_names.inc"
-
-@ 81F98F0
- .include "data/trainer_money.inc"
-
-@ 81F99CC
- .include "data/text/ability_descriptions.inc"
-
-@ 81FA248
- .include "data/text/ability_names.inc"
-
- .align 2
-gUnknown_081FA640:: @ 81FA640
- .4byte sub_8013FE8
- .4byte sub_80147A0
- .4byte sub_80146F4
- .4byte sub_8014BF4
- .4byte sub_8014D50
- .4byte sub_8014D98
- .4byte sub_8014DF8
- .4byte sub_8014EBC
- .4byte bs8_exit_by_flight
- .4byte sub_8014FBC
- .4byte sub_801B594
- .4byte bsB_exit_by_move
- .4byte bsC_8016D70
- .4byte sub_8015060
-
- .align 2
-gUnknown_081FA678:: @ 81FA678
- .4byte bc_8013B1C
- .4byte sub_8013998
- .4byte sub_8013B64
- .4byte sub_8013B64
- .4byte sub_8013BDC
- .4byte sub_8013C9C
- .4byte sub_8013C48
- .4byte sub_8013C9C
- .4byte sub_8013C9C
-
-gStatusConditionString_PoisonJpn:: @ 81FA69C
- .string "どく$$$$$$"
-
-gStatusConditionString_SleepJpn:: @ 81FA6A4
- .string "ねむり$$$$$"
-
-gStatusConditionString_ParalysisJpn:: @ 81FA6AC
- .string "まひ$$$$$$"
-
-gStatusConditionString_BurnJpn:: @ 81FA6B4
- .string "やけど$$$$$"
-
-gStatusConditionString_IceJpn:: @ 81FA6BC
- .string "こおり$$$$$"
-
-gStatusConditionString_ConfusionJpn:: @ 81FA6C4
- .string "こんらん$$$$"
-
-gStatusConditionString_LoveJpn:: @ 81FA6CC
- .string "メロメロ$$$$"
-
- .align 2
-gUnknown_081FA6D4:: @ 81FA6D4
- .4byte gStatusConditionString_PoisonJpn, BattleText_PoisonStatus
- .4byte gStatusConditionString_SleepJpn, BattleText_Sleep
- .4byte gStatusConditionString_ParalysisJpn, BattleText_Paralysis
- .4byte gStatusConditionString_BurnJpn, BattleText_Burn
- .4byte gStatusConditionString_IceJpn, BattleText_IceStatus
- .4byte gStatusConditionString_ConfusionJpn, BattleText_Confusion
- .4byte gStatusConditionString_LoveJpn, BattleText_Love
-
-gUnknown_081FA70C:: @ 81FA70C
- .byte 0, 0, 0
- .byte 3, 5, 0
- .byte 2, 3, 0
- .byte 1, 2, 0
- .byte 1, 1, 0
-
-gUnknown_081FA71B:: @ 81FA71B
- .byte 4, 3, 2, 1
-
-gUnknown_081FA71F:: @ 81FA71F
- .byte 4, 4, 4, 4
-
- .align 1
-gUnknown_081FA724:: @ 81FA724
- .2byte 0x2D
- .2byte 0x2E
- .2byte 0x2F
- .2byte 0x30
- .2byte 0x67
- .2byte 0xAD
- .2byte 0xFD
- .2byte 0x13F
- .2byte 0x140
- .2byte 0x130
- .2byte 0xFFFF
-
- .align 2
-gBattleScriptingCommandsTable:: @ 81FA73C
- .4byte atk00_attackcanceler
- .4byte atk01_accuracycheck
- .4byte atk02_attackstring
- .4byte atk03_ppreduce
- .4byte atk04_critcalc
- .4byte atk05_damagecalc1
- .4byte atk06_typecalc
- .4byte atk07_dmg_adjustment
- .4byte atk08_dmg_adjustment2
- .4byte atk09_attackanimation
- .4byte atk0A_waitanimation
- .4byte atk0B_healthbarupdate
- .4byte atk0C_datahpupdate
- .4byte atk0D_critmessage
- .4byte atk0E_effectiveness_sound
- .4byte atk0F_resultmessage
- .4byte atk10_printstring
- .4byte atk11_printstring_playeronly
- .4byte atk12_waitmessage
- .4byte atk13_printfromtable
- .4byte atk14_printfromtable_playeronly
- .4byte atk15_seteffectwithchancetarget
- .4byte atk16_seteffectprimary
- .4byte atk17_seteffectsecondary
- .4byte atk18_status_effect_clear
- .4byte atk19_faint_pokemon
- .4byte atk1A_faint_animation
- .4byte atk1B_faint_effects_clear
- .4byte atk1C_jumpifstatus
- .4byte atk1D_jumpifstatus2
- .4byte atk1E_jumpifability
- .4byte atk1F_jumpifsideaffecting
- .4byte atk20_jumpifstat
- .4byte atk21_jumpifstatus3
- .4byte atk22_jumpiftype
- .4byte atk23_getexp
- .4byte atk24
- .4byte atk25_move_values_cleanup
- .4byte atk26_set_multihit
- .4byte atk27_decrement_multihit
- .4byte atk28_goto
- .4byte atk29_jumpifbyte
- .4byte atk2A_jumpifhalfword
- .4byte atk2B_jumpifword
- .4byte atk2C_jumpifarrayequal
- .4byte atk2D_jumpifarraynotequal
- .4byte atk2E_setbyte
- .4byte atk2F_addbyte
- .4byte atk30_subbyte
- .4byte atk31_copyarray
- .4byte atk32_copyarray_withindex
- .4byte atk33_orbyte
- .4byte atk34_orhalfword
- .4byte atk35_orword
- .4byte atk36_bicbyte
- .4byte atk37_bichalfword
- .4byte atk38_bicword
- .4byte atk39_pause
- .4byte atk3A_waitstate
- .4byte atk3B_healthbar_update
- .4byte atk3C_return
- .4byte atk3D_end
- .4byte atk3E_end2
- .4byte atk3F_end3
- .4byte atk40_jump_if_move_affected_by_protect
- .4byte atk41_call
- .4byte atk42_jumpiftype2
- .4byte atk43_jumpifabilitypresent
- .4byte atk44
- .4byte atk45_playanimation
- .4byte atk46_playanimation2
- .4byte atk47_setgraphicalstatchangevalues_setgraphicalstatchangevalues_setgraphicalstatchangevalues
- .4byte atk48_playstatchangeanimation
- .4byte sub_80217F8
- .4byte atk4A_damageflags
- .4byte atk4B_cmd4b
- .4byte atk4C_switch1
- .4byte sub_80225F0
- .4byte sub_8022784
- .4byte sub_8022830
- .4byte atk50_openpartyscreen
- .4byte sub_802331C
- .4byte sub_8023524
- .4byte sub_80237CC
- .4byte atk54_802511C
- .4byte sub_8023848
- .4byte atk56_8025194
- .4byte atk57_80251C4_flee
- .4byte atk58_cmd58
- .4byte atk59_8025230
- .4byte sub_8023AF8
- .4byte atk5B_80256E0
- .4byte atk5C_cmd5c
- .4byte sub_8024014
- .4byte atk5E_8025A70
- .4byte atk5F_8025B24
- .4byte atk60_cmd60
- .4byte atk61_8025BA4
- .4byte atk62_08025C6C
- .4byte atk63_jumptoattack
- .4byte atk64_statusanimation
- .4byte atk65_8025D90
- .4byte atk66_8025E38
- .4byte atk67_8025ECC
- .4byte sub_80246A0
- .4byte atk69_8025FE0
- .4byte atk6A_stash_item_for_side
- .4byte sub_80248C0
- .4byte sub_80248FC
- .4byte sub_8024C4C
- .4byte atk6E_state0_side_becomes_attacker
- .4byte atk6F_8026810
- .4byte atk70_record_ability_usage_of_side
- .4byte atk71_80268A0
- .4byte atk72_flee
- .4byte atk73_cmd73
- .4byte atk74_hp_tresholds_2
- .4byte atk75_8026A58
- .4byte sub_8024F40
- .4byte atk77_setprotect
- .4byte atk78_faintifabilitynotdamp
- .4byte atk79_setuserhptozero
- .4byte sub_80253E8
- .4byte sub_802548C
- .4byte sub_8025508
- .4byte sub_80256D0
- .4byte atk7E_setreflect
- .4byte sub_80257DC
- .4byte atk80_manipulatedamage
- .4byte atk81_setrest
- .4byte atk82_jumpifnotfirstturn
- .4byte sub_8025A34
- .4byte sub_8025AE0
- .4byte sub_8025B5C
- .4byte atk86_stockpiletobasedamage
- .4byte sub_8025D00
- .4byte atk88_negativedamage
- .4byte atk89_statbuffchange
- .4byte atk8A_normalisebuffs
- .4byte atk8B_setbide
- .4byte atk8C_confuseifrepeatingattackends
- .4byte atk8D_setloopcounter
- .4byte sub_8026468
- .4byte sub_8026590
- .4byte sub_802688C
- .4byte atk91_givemoney
- .4byte atk92_setlightscreen
- .4byte sub_8026B78
- .4byte atk94_gethalfcurrentenemyhp
- .4byte sub_8026E94
- .4byte sub_8026EEC
- .4byte sub_8027064
- .4byte sub_8027238
- .4byte sub_8027348
- .4byte atk9A_setincreasedcriticalchance
- .4byte atk9B_transformdataexecution
- .4byte sub_80275D8
- .4byte atk9D_copyattack
- .4byte sub_80278B8
- .4byte sub_8027960
- .4byte atkA0_psywavedamageeffect
- .4byte atkA1_counterdamagecalculator
- .4byte atkA2_mirrorcoatdamagecalculator
- .4byte atkA3_disablelastusedattack
- .4byte atkA4_setencore
- .4byte sub_8027E4C
- .4byte sub_8027F44
- .4byte atkA7_setalwayshitflag
- .4byte atkA8_copymovepermanently
- .4byte sub_8028420
- .4byte sub_8028558
- .4byte atkAB_802A458
- .4byte atkAC_remaininghptopower
- .4byte sub_8028668
- .4byte sub_8028858
- .4byte sub_8028AD4
- .4byte sub_8028B70
- .4byte sub_8028BFC
- .4byte atkB2_setperishsong
- .4byte atkB3_rolloutdamagecalculation
- .4byte atkB4_jumpifconfusedandattackmaxed
- .4byte sub_8028EC8
- .4byte atkB6_happinesstodamagecalculation
- .4byte atkB7_presentdamagecalculation
- .4byte sub_80290BC
- .4byte atkB9_magnitudedamagecalculation
- .4byte sub_8029270
- .4byte sub_80293E8
- .4byte atkBC_maxattackhalvehp
- .4byte atkBD_copyfoestats
- .4byte atkBE_breakfree
- .4byte sub_802964C
- .4byte atkC0_recoverbasedonsunlight
- .4byte sub_8029784
- .4byte atkC2_selectnexttarget
- .4byte atkC3_setfutureattack
- .4byte atkC4_802B910
- .4byte atkC5_hidepreattack
- .4byte atkC6_unhidepostattack
- .4byte atkC7_setminimize
- .4byte sub_8029DAC
- .4byte atkC9_jumpifattackandspecialattackcannotfall
- .4byte atkCA_setforcedtarget
- .4byte atkCB_setcharge
- .4byte atkCC_callterrainattack
- .4byte atkCD_cureifburnedparalysedorpoisoned
- .4byte atkCE_settorment
- .4byte atkCF_jumpifnodamage
- .4byte atkD0_settaunt
- .4byte sub_802A170
- .4byte sub_802A218
- .4byte sub_802A4B0
- .4byte atkD4_802C408
- .4byte sub_802A5FC
- .4byte atkD6_doubledamagedealtifdamaged
- .4byte sub_802A6BC
- .4byte atkD8_setdamagetohealthdifference
- .4byte atkD9_scaledamagebyhealthratio
- .4byte atkDA_abilityswap
- .4byte atkDB_imprisoneffect
- .4byte atkDC_setgrudge
- .4byte atkDD_weightdamagecalculation
- .4byte atkDE_asistattackselect
- .4byte atkDF_setmagiccoat
- .4byte atkE0_setstealstatchange
- .4byte atkE1_802CBE4
- .4byte sub_802ADD8
- .4byte atkE3_jumpiffainted
- .4byte sub_802AEB0
- .4byte sub_802AF68
- .4byte atkE6_castform_transform
- .4byte atkE7_castform_switch
- .4byte atkE8_settypebasedhalvers
- .4byte sub_802B1C0
- .4byte atkEA_recycleitem
- .4byte atkEB_settypetoterrain
- .4byte sub_802B3E0
- .4byte sub_802B4B4
- .4byte sub_802B51C
- .4byte sub_802B5B8
- .4byte sub_802B960
- .4byte sub_802B9E0
- .4byte sub_802BA90
- .4byte atkF3_receive_new_pokemon_maybe
- .4byte sub_802BEF0
- .4byte sub_802BF20
- .4byte sub_802BF48
- .4byte sub_802BF54
-
- .align 2
-gAccuracyStageRatios:: @ 81FAB1C
- .byte 33, 100, 0, 0 @ -6
- .byte 36, 100, 0, 0 @ -5
- .byte 43, 100, 0, 0 @ -4
- .byte 50, 100, 0, 0 @ -3
- .byte 60, 100, 0, 0 @ -2
- .byte 75, 100, 0, 0 @ -1
- .byte 1, 1, 0, 0 @ 0
- .byte 133, 100, 0, 0 @ +1
- .byte 166, 100, 0, 0 @ +2
- .byte 2, 1, 0, 0 @ +3
- .byte 233, 100, 0, 0 @ +4
- .byte 133, 50, 0, 0 @ +5
- .byte 3, 1, 0, 0 @ +6
-
-@ The chance is 1/N for each stage.
- .align 1
-gCriticalHitChance:: @ 81FAB50
- .2byte 16 @ +0
- .2byte 8 @ +1
- .2byte 4 @ +2
- .2byte 3 @ +3
- .2byte 2 @ +4
-
- .align 2
-gStatusFlagsForMoveEffects:: @ 81FAB5C
- .4byte 0x00000000
- .4byte 0x00000007
- .4byte 0x00000008
- .4byte 0x00000010
- .4byte 0x00000020
- .4byte 0x00000040
- .4byte 0x00000080
- .4byte 0x00000007
- .4byte 0x00000008
- .4byte 0x00000000
- .4byte 0x00000070
- .4byte 0x00000000
- .4byte 0x00001000
- .4byte 0x0000E000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00400000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x04000000
- .4byte 0x08000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000C00
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
- .4byte 0x00000000
-
- .align 2
-gMoveEffectBS_Ptrs:: @ 81FAC4C
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D965A
- .4byte BattleScript_1D9669
- .4byte BattleScript_1D9678
- .4byte BattleScript_1D9687
- .4byte BattleScript_1D969D
- .4byte BattleScript_1D96BA
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D9696
- .4byte BattleScript_1D96AA
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D96B1
- .4byte BattleScript_1D96C8
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D963E
- .4byte BattleScript_1D96C8
-
-@ unreferenced bit masks
- .byte 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F
-
-gLevelUpStatBoxStats:: @ 81FACEF
- .byte 0x3A @ HP
- .byte 0x3E @ Sp. Attack
- .byte 0x3B @ Attack
- .byte 0x3F @ Sp. Defense
- .byte 0x3C @ Defense
- .byte 0x3D @ Speed
-
- .align 1
-gProtectSuccessRates:: @ 81FACF6
- .2byte 0xFFFF, 0x7FFF, 0x3FFF, 0x1FFF
-
- .align 1
-gUnknown_081FACFE:: @ 81FACFE
- .2byte MOVE_METRONOME
- .2byte MOVE_STRUGGLE
- .2byte MOVE_SKETCH
- .2byte MOVE_MIMIC
- .2byte 0xFFFE
- .2byte MOVE_COUNTER
- .2byte MOVE_MIRROR_COAT
- .2byte MOVE_PROTECT
- .2byte MOVE_DETECT
- .2byte MOVE_ENDURE
- .2byte MOVE_DESTINY_BOND
- .2byte MOVE_SLEEP_TALK
- .2byte MOVE_THIEF
- .2byte MOVE_FOLLOW_ME
- .2byte MOVE_SNATCH
- .2byte MOVE_HELPING_HAND
- .2byte MOVE_COVET
- .2byte MOVE_TRICK
- .2byte MOVE_FOCUS_PUNCH
- .2byte 0xFFFF
-
-gUnknown_081FAD26:: @ 81FAD26
- .byte 1, 200
- .byte 4, 150
- .byte 9, 100
- .byte 16, 80
- .byte 32, 40
- .byte 48, 20
-
- .align 1
-gNaturePowerMoves:: @ 81FAD32
- .2byte MOVE_STUN_SPORE
- .2byte MOVE_RAZOR_LEAF
- .2byte MOVE_EARTHQUAKE
- .2byte MOVE_HYDRO_PUMP
- .2byte MOVE_SURF
- .2byte MOVE_BUBBLE_BEAM
- .2byte MOVE_ROCK_SLIDE
- .2byte MOVE_SHADOW_BALL
- .2byte MOVE_SWIFT
- .2byte MOVE_SWIFT
-
-@ weight-based damage table for Low Kick
-@ format: min. weight (hectograms), base power
-
- .align 1
-gWeightDamage:: @ 81FAD46
- .2byte 100, 20
- .2byte 250, 40
- .2byte 500, 60
- .2byte 1000, 80
- .2byte 2000, 100
- .2byte -1, -1
-
- .align 1
-gPickupItems:: @ 81FAD5E
- .2byte ITEM_SUPER_POTION, 30
- .2byte ITEM_FULL_HEAL, 40
- .2byte ITEM_ULTRA_BALL, 50
- .2byte ITEM_RARE_CANDY, 60
- .2byte ITEM_FULL_RESTORE, 70
- .2byte ITEM_REVIVE, 80
- .2byte ITEM_NUGGET, 90
- .2byte ITEM_PROTEIN, 95
- .2byte ITEM_PP_UP, 99
- .2byte ITEM_KINGS_ROCK, 1
-
-gTerrainToType:: @ 81FAD86
- .byte TYPE_GRASS @ tall grass
- .byte TYPE_GRASS @ long grass
- .byte TYPE_GROUND @ sand
- .byte TYPE_WATER @ underwater
- .byte TYPE_WATER @ water
- .byte TYPE_WATER @ pond water
- .byte TYPE_ROCK @ rock
- .byte TYPE_ROCK @ cave
- .byte TYPE_NORMAL @ building
- .byte TYPE_NORMAL @ plain
-
-gBallCatchBonuses:: @ 81FAD90
- .byte 20 @ Ultra Ball
- .byte 15 @ Great Ball
- .byte 10 @ Poké Ball
- .byte 15 @ Safari Ball
-
- .string "ターン$" @ "turn"
-
- .align 2
-gPlayerBufferCommands:: @ 81FAD98
- .4byte PlayerHandleGetAttributes
- .4byte sub_802ECF0
- .4byte PlayerHandleSetAttributes
- .4byte sub_802F7CC
- .4byte PlayerHandleLoadPokeSprite
- .4byte PlayerHandleSendOutPoke
- .4byte PlayerHandleReturnPokeToBall
- .4byte PlayerHandleTrainerThrow
- .4byte PlayerHandleTrainerSlide
- .4byte PlayerHandleTrainerSlideBack
- .4byte sub_802FE7C
- .4byte sub_802FF60
- .4byte sub_802FF80
- .4byte PlayerHandleBallThrow
- .4byte PlayerHandlePuase
- .4byte PlayerHandleMoveAnimation
- .4byte PlayerHandlePrintString
- .4byte PlayerHandlePrintStringPlayerOnly
- .4byte sub_803037C
- .4byte nullsub_42
- .4byte sub_8030468
- .4byte PlayerHandleOpenBag
- .4byte sub_8030594
- .4byte sub_8030674
- .4byte PlayerHandleHealthBarUpdate
- .4byte PlayerHandleExpBarUpdate
- .4byte PlayerHandleStatusIconUpdate
- .4byte PlayerHandleStatusAnimation
- .4byte PlayerHandleStatusXor
- .4byte sub_803097C
- .4byte PlayerHandleDMATransfer
- .4byte sub_8030A3C
- .4byte sub_8030A6C
- .4byte sub_8030A78
- .4byte sub_8030A8C
- .4byte sub_8030AA0
- .4byte sub_8030AB4
- .4byte sub_8030AC8
- .4byte sub_8030AE4
- .4byte sub_8030B1C
- .4byte sub_8030B34
- .4byte PlayerHandleHitAnimation
- .4byte sub_8030BCC
- .4byte PlayerHandleEffectivenessSound
- .4byte sub_8030C1C
- .4byte PlayerHandleFaintingCry
- .4byte PlayerHandleIntroSlide
- .4byte PlayerHandleTrainerBallThrow
- .4byte sub_8030FAC
- .4byte sub_80310A4
- .4byte sub_80310F0
- .4byte PlayerHandleSpriteInvisibility
- .4byte PlayerHandleBattleAnimation
- .4byte PlayerHandleLinkStandbyMsg
- .4byte PlayerHandleResetActionMoveSelection
- .4byte sub_80312A0
- .4byte nullsub_43
-
-gUnknown_081FAE7C:: @ 81FAE7C
- .byte 0, 2, 3, 1
-
-gUnknown_081FAE80:: @ 81FAE80
- .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}$"
-
-gUnknown_081FAE89:: @ 81FAE89
- .byte 8, 120
- .byte 88, 120
- .byte 8, 136
- .byte 88, 136
-
-gUnknown_081FAE91:: @ 81FAE91
- .byte 144, 120
- .byte 190, 120
- .byte 144, 136
- .byte 190, 136
- .byte 72, 72
- .byte 32, 90
- .byte 80, 80
- .byte 80, 88
-
- .align 2
-gUnknown_081FAEA4:: @ 81FAEA4
- obj_tiles gSmokescreenImpactTiles, 0x180, 55019
-
- .align 2
-gUnknown_081FAEAC:: @ 81FAEAC
- obj_pal gSmokescreenImpactPalette, 55019
-
- .align 2
-gOamData_81FAEB4:: @ 81FAEB4
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_81FAEBC:: @ 81FAEBC
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81FAECC:: @ 81FAECC
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81FAEDC:: @ 81FAEDC
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_81FAEEC:: @ 81FAEEC
- obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_81FAEFC:: @ 81FAEFC
- .4byte gSpriteAnim_81FAEBC
- .4byte gSpriteAnim_81FAECC
- .4byte gSpriteAnim_81FAEDC
- .4byte gSpriteAnim_81FAEEC
-
- .align 2
-gSpriteTemplate_81FAF0C:: @ 81FAF0C
- spr_template 55019, 55019, gOamData_81FAEB4, gSpriteAnimTable_81FAEFC, NULL, gDummySpriteAffineAnimTable, sub_80463CC
-
- .align 2
-gUnknown_081FAF24:: @ 81FAF24
- obj_tiles gEnemyMonShadow_Gfx, 128, 0xD759
-
- .align 2
-gOamData_81FAF2C:: @ 81FAF2C
- .2byte 0x4000
- .2byte 0x4000
- .2byte 0x0C00
-
- .align 2
-gSpriteTemplate_81FAF34:: @ 81FAF34
- spr_template 55129, 55039, gOamData_81FAF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8032978
-
- .align 2
-gUnknown_081FAF4C:: @ 81FAF4C
- .4byte 0x02008000
- .4byte 0x0200a000
- .4byte 0x0200c000
- .4byte 0x0200e000
-
- .align 2
-gOpponentBufferCommands:: @ 81FAF5C
- .4byte OpponentHandleGetAttributes
- .4byte dp01t_01_2_read_pokmon_data_slice
- .4byte OpponentHandleSetAttributes
- .4byte sub_8034744
- .4byte OpponentHandleLoadPokeSprite
- .4byte OpponentHandleSendOutPoke
- .4byte OpponentHandleReturnPokeToBall
- .4byte OpponentHandleTrainerThrow
- .4byte OpponentHandleTrainerSlide
- .4byte OpponentHandleTrainerSlideBack
- .4byte sub_8035030
- .4byte sub_80350D4
- .4byte sub_80350E0
- .4byte OpponentHandleBallThrow
- .4byte OpponentHandlePause
- .4byte OpponentHandleMoveAnimation
- .4byte OpponentHandlePrintString
- .4byte OpponentHandlePrintStringPlayerOnly
- .4byte sub_803540C
- .4byte sub_803541C
- .4byte sub_8035428
- .4byte sub_8035590
- .4byte sub_80355C0
- .4byte sub_80356C0
- .4byte OpponentHandleHealthBarUpdate
- .4byte OpponentHandleExpBarUpdate
- .4byte OpponentHandleStatusIconUpdate
- .4byte OpponentHandleStatusAnimation
- .4byte OpponentHandleStatusXor
- .4byte sub_80358B0
- .4byte OpponentHandleDMATransfer
- .4byte sub_80358C8
- .4byte sub_80358D4
- .4byte sub_80358E0
- .4byte sub_80358EC
- .4byte sub_80358F8
- .4byte sub_8035904
- .4byte sub_8035910
- .4byte sub_803592C
- .4byte sub_8035964
- .4byte sub_803597C
- .4byte OpponentHandleHitAnimation
- .4byte sub_8035A14
- .4byte OpponentHandleEffectivenessSound
- .4byte sub_8035A64
- .4byte OpponentHandleFaintingCry
- .4byte dp01t_2E_7_battle_intro
- .4byte sub_8035B04
- .4byte dp01t_30_7_0803D67C
- .4byte sub_8035E6C
- .4byte sub_8035EB8
- .4byte OpponentHandleSpriteInvisibility
- .4byte OpponentHandleBattleAnimation
- .4byte OpponentHandleLinkStandbyMsg
- .4byte OpponentHandleResetActionMoveSelection
- .4byte sub_8035FA4
- .4byte nullsub_46
-
-@ unreferenced unknown values
- .byte 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20
-
- .align 2
-gLinkOpponentBufferCommands:: @ 81FB048
- .4byte LinkOpponentHandleGetAttributes
- .4byte sub_803889C
- .4byte sub_80388A8
- .4byte sub_8039220
- .4byte sub_8039294
- .4byte sub_80393E4
- .4byte sub_80395B4
- .4byte sub_80396D0
- .4byte sub_80398A4
- .4byte sub_80398B0
- .4byte sub_803995C
- .4byte sub_8039A00
- .4byte sub_8039A0C
- .4byte sub_8039A18
- .4byte sub_8039A24
- .4byte sub_8039A30
- .4byte sub_8039CC8
- .4byte sub_8039D2C
- .4byte sub_8039D38
- .4byte sub_8039D44
- .4byte sub_8039D50
- .4byte sub_8039D5C
- .4byte sub_8039D68
- .4byte sub_8039D74
- .4byte sub_8039D80
- .4byte sub_8039E70
- .4byte sub_8039E7C
- .4byte sub_8039EF0
- .4byte sub_8039F58
- .4byte sub_8039F64
- .4byte sub_8039F70
- .4byte sub_8039F7C
- .4byte sub_8039F88
- .4byte sub_8039F94
- .4byte sub_8039FA0
- .4byte sub_8039FAC
- .4byte sub_8039FB8
- .4byte sub_8039FC4
- .4byte sub_8039FE0
- .4byte sub_803A018
- .4byte sub_803A030
- .4byte dp01t_29_4_blink
- .4byte sub_803A0C8
- .4byte sub_803A0D4
- .4byte sub_803A118
- .4byte sub_803A148
- .4byte dp01t_2E_4_battle_intro
- .4byte sub_803A1B8
- .4byte sub_803A3DC
- .4byte sub_803A520
- .4byte sub_803A56C
- .4byte sub_803A578
- .4byte bx_exec_buffer_A_ch0_tbl4
- .4byte sub_803A640
- .4byte sub_803A64C
- .4byte sub_803A658
- .4byte nullsub_48
-
-@ 81FB12C
- .include "data/battle_moves.inc"
-
- .align 2
-gUnknown_081FC1D0:: @ 81FC1D0
- .2byte 0x34, 0x10, 0x101
- .space 2
-
- .2byte -1, -1, -1
- .space 2
diff --git a/data/field_tasks.s b/data/field_tasks.s
deleted file mode 100644
index 122e089e6..000000000
--- a/data/field_tasks.s
+++ /dev/null
@@ -1,66 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_08376364:: @ 8376364
- .4byte DummyPerStepCallback
- .4byte PerStepCallback_8069F64
- .4byte PerStepCallback_8069AA0
- .4byte PerStepCallback_8069864
- .4byte PerStepCallback_8069DD4
- .4byte EndTruckSequence
- .4byte sub_80BCF1C
- .4byte PerStepCallback_806A07C
-
-gUnknown_08376384:: @ 8376384
- .byte 0, 0,0x59, 2, 0, 1,0x61, 2
- .byte 0, -1,0x59, 2, 0, 0,0x61, 2
- .byte 0, 0,0x52, 2, 1, 0,0x53, 2
- .byte -1, 0,0x52, 2, 0, 0,0x53, 2
-
-gUnknown_083763A4:: @ 83763A4
- .byte 0, 0,0x5A, 2, 0, 1,0x62, 2
- .byte 0, -1,0x5A, 2, 0, 0,0x62, 2
- .byte 0, 0,0x54, 2, 1, 0,0x55, 2
- .byte -1, 0,0x54, 2, 0, 0,0x55, 2
-
-gUnknown_083763C4:: @ 83763C4
- .byte 0, 0,0x58, 2, 0, 1,0x60, 2
- .byte 0, -1,0x58, 2, 0, 0,0x60, 2
- .byte 0, 0,0x50, 2, 1, 0,0x51, 2
- .byte -1, 0,0x50, 2, 0, 0,0x51, 2
-
- .align 1
-gUnknown_083763E4:: @ 83763E4
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0x4001
- .2byte 0x4002
- .2byte 0x4003
- .2byte 0x4004
- .2byte 0
- .2byte 0
- .2byte 0x4005
- .2byte 0x4006
- .2byte 0x4007
- .2byte 0
- .2byte 0
- .2byte 0x4008
- .2byte 0x4009
- .2byte 0x400A
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
- .2byte 0
-
- .align 1
-gUnknown_08376418:: @ 8376418
- .2byte 0xE8, 0xEB, 0xEA, 0xE9
diff --git a/data/graphics/berries/graphics_table.inc b/data/graphics/berries/graphics_table.inc
deleted file mode 100644
index 78af1c48b..000000000
--- a/data/graphics/berries/graphics_table.inc
+++ /dev/null
@@ -1,45 +0,0 @@
- .align 2
-gBerryGraphicsTable:: @ 83C1E1C
- .4byte gBerryPic_Cheri, gBerryPalette_Cheri
- .4byte gBerryPic_Chesto, gBerryPalette_Chesto
- .4byte gBerryPic_Pecha, gBerryPalette_Pecha
- .4byte gBerryPic_Rawst, gBerryPalette_Rawst
- .4byte gBerryPic_Aspear, gBerryPalette_Aspear
- .4byte gBerryPic_Leppa, gBerryPalette_Leppa
- .4byte gBerryPic_Oran, gBerryPalette_Oran
- .4byte gBerryPic_Persim, gBerryPalette_Persim
- .4byte gBerryPic_Lum, gBerryPalette_Lum
- .4byte gBerryPic_Sitrus, gBerryPalette_Sitrus
- .4byte gBerryPic_Figy, gBerryPalette_Figy
- .4byte gBerryPic_Wiki, gBerryPalette_Wiki
- .4byte gBerryPic_Mago, gBerryPalette_Mago
- .4byte gBerryPic_Aguav, gBerryPalette_Aguav
- .4byte gBerryPic_Iapapa, gBerryPalette_Iapapa
- .4byte gBerryPic_Razz, gBerryPalette_Razz
- .4byte gBerryPic_Bluk, gBerryPalette_Bluk
- .4byte gBerryPic_Nanab, gBerryPalette_Nanab
- .4byte gBerryPic_Wepear, gBerryPalette_Wepear
- .4byte gBerryPic_Pinap, gBerryPalette_Pinap
- .4byte gBerryPic_Pomeg, gBerryPalette_Pomeg
- .4byte gBerryPic_Kelpsy, gBerryPalette_Kelpsy
- .4byte gBerryPic_Qualot, gBerryPalette_Qualot
- .4byte gBerryPic_Hondew, gBerryPalette_Hondew
- .4byte gBerryPic_Grepa, gBerryPalette_Grepa
- .4byte gBerryPic_Tamato, gBerryPalette_Tamato
- .4byte gBerryPic_Cornn, gBerryPalette_Cornn
- .4byte gBerryPic_Magost, gBerryPalette_Magost
- .4byte gBerryPic_Rabuta, gBerryPalette_Rabuta
- .4byte gBerryPic_Nomel, gBerryPalette_Nomel
- .4byte gBerryPic_Spelon, gBerryPalette_Spelon
- .4byte gBerryPic_Pamtre, gBerryPalette_Pamtre
- .4byte gBerryPic_Watmel, gBerryPalette_Watmel
- .4byte gBerryPic_Durin, gBerryPalette_Durin
- .4byte gBerryPic_Belue, gBerryPalette_Belue
- .4byte gBerryPic_Liechi, gBerryPalette_Liechi
- .4byte gBerryPic_Ganlon, gBerryPalette_Ganlon
- .4byte gBerryPic_Salac, gBerryPalette_Salac
- .4byte gBerryPic_Petaya, gBerryPalette_Petaya
- .4byte gBerryPic_Apicot, gBerryPalette_Apicot
- .4byte gBerryPic_Lansat, gBerryPalette_Lansat
- .4byte gBerryPic_Starf, gBerryPalette_Starf
- .4byte gBerryPic_Enigma, gBerryPalette_Enigma
diff --git a/data/item_menu.s b/data/item_menu.s
deleted file mode 100644
index f66961b46..000000000
--- a/data/item_menu.s
+++ /dev/null
@@ -1,289 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-@ pointer to items, capacity
- .align 2
-gBagPockets:: @ 83C1618
- .4byte gSaveBlock1 + 0x560, 20 @ Items
- .4byte gSaveBlock1 + 0x600, 16 @ Poké Balls
- .4byte gSaveBlock1 + 0x640, 64 @ TMs & HMs
- .4byte gSaveBlock1 + 0x740, 46 @ Berries
- .4byte gSaveBlock1 + 0x5B0, 20 @ Key Items
-
- .align 2
-gUnknown_083C1640:: @ 83C1640
- .4byte OtherText_Use, sub_80A5B78
- .4byte OtherText_Toss, sub_80A5F14
- .4byte gOtherText_CancelNoTerminator, sub_80A5F80
- .4byte OtherText_Register, sub_80A5FAC
- .4byte OtherText_Use, ItemMenu_UseInBattle
- .4byte gOtherText_CancelNoTerminator, sub_80A7124
- .4byte OtherText_Give2, ItemMenu_Give
- .4byte OtherText_CheckTag, sub_80A6178
- .4byte gOtherText_CancelWithTerminator, 0x0
- .4byte OtherText_Confirm, sub_80A69E0
-
-@ 6-byte entries; format of entry is unknown
-gUnknown_083C1690:: @ 83C1690
- .byte 0, 1, 6, 2, 0, 0
- .byte 6, 1, 8, 2, 0, 0
- .byte 0, 8, 6, 2, 0, 0
- .byte 7, 0, 1, 8, 6, 2
- .byte 0, 8, 3, 2, 0, 0
-
-gUnknown_083C16AE:: @ 83C16AE
- .byte 6, 2
- .byte 6, 2
- .byte 6, 2
- .byte 6, 2
- .byte 2, 0
-
-gUnknown_083C16B8:: @ 83C16B8
- .byte 7, 9, 8, 2
-
- .align 2
-gUnknown_083C16BC:: @ 83C16BC
- .4byte sub_80A59D0
- .4byte sub_80A599C
- .4byte sub_80A7024
- .4byte sub_80A70D8
- .4byte sub_80A6214
- .4byte sub_80A61EC
- .4byte sub_80A6354
- .4byte sub_80A631C
- .4byte sub_80A6918
- .4byte sub_80A68F0
- .4byte sub_80A59D0
- .4byte sub_80A69B8
- .4byte sub_80A6C6C
- .4byte sub_80A6A4C
-
- .align 2
-gUnknown_083C16F4:: @ 83C16F4
- .4byte sub_80A5E60
- .4byte sub_80A5E90
-
- .align 2
-gUnknown_083C16FC:: @ 83C16FC
- .4byte sub_80A65AC
- .4byte sub_80A6618
-
- .align 1
-gUnknown_083C1704:: @ 83C1704
- .2byte 0x41EE, 0x7FFF
-
-gUnknown_083C1708:: @ 83C1708
- .byte 4, 5
-
-gUnknown_083C170A:: @ 83C170A
- .byte 5, 0
-
- .align 2
-gPalette_83C170C:: @ 83C170C
- .incbin "graphics/unknown/83C170C.gbapal"
-
- .align 2
-gSpriteImage_83C172C:: @ 83C172C
- .incbin "graphics/unknown_sprites/83C172C.4bpp"
-
- .align 2
- .incbin "graphics/unused/cherry.4bpp"
-
- .align 2
- .incbin "graphics/unused/cherry.gbapal"
-
- .align 2
-gOamData_83C1C4C:: @ 83C1C4C
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x7800
-
- .align 2
-gSpriteAnim_83C1C54:: @ 83C1C54
- obj_image_anim_frame 0, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C5C:: @ 83C1C5C
- obj_image_anim_frame 64, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C64:: @ 83C1C64
- obj_image_anim_frame 128, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C6C:: @ 83C1C6C
- obj_image_anim_frame 192, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C74:: @ 83C1C74
- obj_image_anim_frame 256, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83C1C7C:: @ 83C1C7C
- obj_image_anim_frame 320, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1C84:: @ 83C1C84
- .4byte gSpriteAnim_83C1C54
- .4byte gSpriteAnim_83C1C5C
- .4byte gSpriteAnim_83C1C6C
- .4byte gSpriteAnim_83C1C74
- .4byte gSpriteAnim_83C1C7C
- .4byte gSpriteAnim_83C1C64
-
- .align 2
-gSpriteAffineAnim_83C1C9C:: @ 83C1C9C
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83C1CC4:: @ 83C1CC4
- .4byte gSpriteAffineAnim_83C1C9C
-
- .align 2
-gUnknown_083C1CC8:: @ 83C1CC8
- obj_tiles gBagMaleTiles, 0x3000, 30000
-
- .align 2
-gUnknown_083C1CD0:: @ 83C1CD0
- obj_tiles gBagFemaleTiles, 0x3000, 30000
-
- .align 2
-gUnknown_083C1CD8:: @ 83C1CD8
- obj_pal gBagPalette, 30000
-
- .align 2
-gSpriteTemplate_83C1CE0:: @ 83C1CE0
- spr_template 30000, 30000, gOamData_83C1C4C, gSpriteAnimTable_83C1C84, NULL, gSpriteAffineAnimTable_83C1CC4, sub_80A7998
-
- .align 2
-gOamData_83C1CF8:: @ 83C1CF8
- .2byte 0x0000
- .2byte 0x4800
- .2byte 0x8800
-
- .align 2
-gSpriteAffineAnim_83C1D00:: @ 83C1D00
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 32
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83C1D10:: @ 83C1D10
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 32
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83C1D20:: @ 83C1D20
- .4byte gSpriteAffineAnim_83C1D00
- .4byte gSpriteAffineAnim_83C1D10
-
- .align 2
-gSpriteImageTable_83C1D28:: @ 83C1D28
- obj_frame_tiles gSpriteImage_83C172C, 0x80
-
- .align 2
-gUnknown_083C1D30:: @ 83C1D30
- obj_pal gPalette_83C170C, 8
-
- .align 2
-gSpriteTemplate_83C1D38:: @ 83C1D38
- spr_template 0xFFFF, 8, gOamData_83C1CF8, gSpriteAnimTable_83C1C84, gSpriteImageTable_83C1D28, gSpriteAffineAnimTable_83C1D20, sub_80A7B28
-
- .align 2
-gOamData_83C1D50:: @ 83C1D50
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x7400
-
- .align 2
-gOamData_83C1D58:: @ 83C1D58
- .2byte 0x0300
- .2byte 0xC000
- .2byte 0x7000
-
- .align 2
-gSpriteAnim_83C1D60:: @ 83C1D60
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1D68:: @ 83C1D68
- .4byte gSpriteAnim_83C1D60
-
- .align 2
-gSpriteImageTable_83C1D6C:: @ 83C1D6C
- obj_frame_tiles 0x02000000, 0x800
-
- .align 2
-gSpriteTemplate_83C1D74:: @ 83C1D74
- spr_template 0xFFFF, 30020, gOamData_83C1D50, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gDummySpriteAffineAnimTable, sub_80A7DC4
-
- .align 2
-gSpriteAffineAnim_83C1D8C:: @ 83C1D8C
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, -3, 96
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -1, 64
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83C1DC4:: @ 83C1DC4
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, 3, 96
- obj_rot_scal_anim_frame 0x0, 0x0, 0, 16
- obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 1, 64
- obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16
- obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnimTable_83C1DFC:: @ 83C1DFC
- .4byte gSpriteAffineAnim_83C1D8C
- .4byte gSpriteAffineAnim_83C1DC4
-
- .align 2
-gSpriteTemplate_83C1E04:: @ 83C1E04
- spr_template 0xFFFF, 30020, gOamData_83C1D58, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gSpriteAffineAnimTable_83C1DFC, SpriteCallbackDummy
-
-@ 83C1E1C
- .include "data/graphics/berries/graphics_table.inc"
-
- .align 2
-gUnknown_083C1F74:: @ 83C1F74
- obj_tiles gBerryCheckCircle_Gfx, 2048, 0x2710
-
- .align 2
-gUnknown_083C1F7C:: @ 83C1F7C
- obj_pal gBerryCheck_Pal, 0x2710
-
- .align 2
-gOamData_83C1F84:: @ 83C1F84
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_83C1F8C:: @ 83C1F8C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83C1F94:: @ 83C1F94
- .4byte gSpriteAnim_83C1F8C
-
- .align 2
-gSpriteTemplate_83C1F98:: @ 83C1F98
- spr_template 10000, 10000, gOamData_83C1F84, gSpriteAnimTable_83C1F94, NULL, gDummySpriteAffineAnimTable, sub_80A7DC4
diff --git a/data/pokeblock.s b/data/pokeblock.s
deleted file mode 100644
index 6d0b1890d..000000000
--- a/data/pokeblock.s
+++ /dev/null
@@ -1,125 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_083F7E28:: @ 83F7E28
- .byte 0, 0, 0, 0, 0
- .byte 1, 0, 0, 0, -1
- .byte 1, 0, -1, 0, 0
- .byte 1, -1, 0, 0, 0
- .byte 1, 0, 0, -1, 0
- .byte -1, 0, 0, 0, 1
- .byte 0, 0, 0, 0, 0
- .byte 0, 0, -1, 0, 1
- .byte 0, -1, 0, 0, 1
- .byte 0, 0, 0, -1, 1
- .byte -1, 0, 1, 0, 0
- .byte 0, 0, 1, 0, -1
- .byte 0, 0, 0, 0, 0
- .byte 0, -1, 1, 0, 0
- .byte 0, 0, 1, -1, 0
- .byte -1, 1, 0, 0, 0
- .byte 0, 1, 0, 0, -1
- .byte 0, 1, -1, 0, 0
- .byte 0, 0, 0, 0, 0
- .byte 0, 1, 0, -1, 0
- .byte -1, 0, 0, 1, 0
- .byte 0, 0, 0, 1, -1
- .byte 0, 0, -1, 1, 0
- .byte 0, -1, 0, 1, 0
- .byte 0, 0, 0, 0, 0
-
- .align 2
-gUnknown_083F7EA8:: @ 83F7EA8
- .4byte sub_80A5B40, c2_exit_to_overworld_2_switch
- .4byte sub_802E424, c2_exit_to_overworld_2_switch
-
- .align 2
-gPokeblockNames:: @ 83F7EB8
- .4byte NULL
- .4byte ContestStatsText_RedPokeBlock
- .4byte ContestStatsText_BluePokeBlock
- .4byte ContestStatsText_PinkPokeBlock
- .4byte ContestStatsText_GreenPokeBlock
- .4byte ContestStatsText_YellowPokeBlock
- .4byte ContestStatsText_PurplePokeBlock
- .4byte ContestStatsText_IndigoPokeBlock
- .4byte ContestStatsText_BrownPokeBlock
- .4byte ContestStatsText_LiteBluePokeBlock
- .4byte ContestStatsText_OlivePokeBlock
- .4byte ContestStatsText_GrayPokeBlock
- .4byte ContestStatsText_BlackPokeBlock
- .4byte ContestStatsText_WhitePokeBlock
- .4byte ContestStatsText_GoldPokeBlock
-
- .align 2
-gUnknown_083F7EF4:: @ 83F7EF4
- .4byte OtherText_Use, sub_810C508
- .4byte OtherText_Toss, sub_810C5C0
- .4byte gOtherText_CancelNoTerminator, sub_810C748
- .4byte OtherText_Use, sub_810C788
- .4byte OtherText_Use, sub_810C854
-
-gUnknown_083F7F1C:: @ 83F7F1C
- .byte 0, 1, 2
-
-gUnknown_083F7F1F:: @ 83F7F1F
- .byte 3, 2
-
-gUnknown_083F7F21:: @ 83F7F21
- .byte 4, 2
-
- .align 2
-gUnknown_083F7F24:: @ 83F7F24
- .4byte sub_810C610
- .4byte sub_810C668
-
-@ unreferenced
- .byte 0x16, 0x17, 0x18, 0x21, 0x2F
-
- .align 2
-gOamData_83F7F34:: @ 83F7F34
- .2byte 0x0000
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83F7F3C:: @ 83F7F3C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83F7F44:: @ 83F7F44
- .4byte gSpriteAnim_83F7F3C
-
- .align 2
-gSpriteAffineAnim_83F7F48:: @ 83F7F48
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 2
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, -2, 4
- obj_rot_scal_anim_frame 0x0, 0x0, 2, 2
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83F7F70:: @ 83F7F70
- .4byte gSpriteAffineAnim_83F7F48
-
- .align 2
-gUnknown_083F7F74:: @ 83F7F74
- obj_tiles gMenuPokeblockDevice_Gfx, 2048, 0x39d0
-
- .align 2
-gUnknown_083F7F7C:: @ 83F7F7C
- obj_pal gMenuPokeblockDevice_Pal, 0x39d0
-
- .align 2
-gSpriteTemplate_83F7F84:: @ 83F7F84
- spr_template 14800, 14800, gOamData_83F7F34, gSpriteAnimTable_83F7F44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
-gUnknown_083F7F9C:: @ 83F7F9C
- .byte 1, 20, 0, 0, 0, 0, 20, 0
- .byte 2, 0, 20, 0, 0, 0, 20, 0
- .byte 3, 0, 0, 20, 0, 0, 20, 0
- .byte 4, 0, 0, 0, 20, 0, 20, 0
- .byte 5, 0, 0, 0, 0, 20, 20, 0
diff --git a/data/rotating_gate.s b/data/rotating_gate.s
deleted file mode 100644
index 06cc64e51..000000000
--- a/data/rotating_gate.s
+++ /dev/null
@@ -1,311 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_083D2964:: @ 83D2964
- .byte 12, 0, 5, 0, 3, 0, 0, 0
- .byte 14, 0, 7, 0, 3, 3, 0, 0
- .byte 16, 0, 4, 0, 5, 1, 0, 0
- .byte 15, 0, 14, 0, 1, 0, 0, 0
- .byte 18, 0, 13, 0, 4, 2, 0, 0
- .byte 8, 0, 20, 0, 4, 2, 0, 0
- .byte 16, 0, 20, 0, 7, 1, 0, 0
-
- .align 2
-gUnknown_083D299C:: @ 83D299C
- .byte 13, 0, 3, 0, 4, 3, 0, 0
- .byte 12, 0, 6, 0, 4, 2, 0, 0
- .byte 3, 0, 6, 0, 4, 2, 0, 0
- .byte 3, 0, 9, 0, 5, 3, 0, 0
- .byte 8, 0, 8, 0, 0, 1, 0, 0
- .byte 2, 0, 12, 0, 6, 2, 0, 0
- .byte 9, 0, 13, 0, 1, 0, 0, 0
- .byte 3, 0, 14, 0, 2, 1, 0, 0
- .byte 9, 0, 15, 0, 3, 2, 0, 0
- .byte 3, 0, 18, 0, 5, 2, 0, 0
- .byte 2, 0, 19, 0, 4, 0, 0, 0
- .byte 5, 0, 21, 0, 0, 0, 0, 0
- .byte 9, 0, 19, 0, 3, 3, 0, 0
- .byte 12, 0, 20, 0, 4, 1, 0, 0
-
- .align 2
-RotatingGateTiles_1: @ 83D2A0C
- .incbin "graphics/rotating_gates/1.4bpp"
-
- .align 2
-RotatingGateTiles_2: @ 83D320C
- .incbin "graphics/rotating_gates/2.4bpp"
-
- .align 2
-RotatingGateTiles_3: @ 83D3A0C
- .incbin "graphics/rotating_gates/3.4bpp"
-
- .align 2
-RotatingGateTiles_5: @ 83D420C
- .incbin "graphics/rotating_gates/5.4bpp"
-
- .align 2
-RotatingGateTiles_6: @ 83D4A0C
- .incbin "graphics/rotating_gates/6.4bpp"
-
- .align 2
-RotatingGateTiles_7: @ 83D520C
- .incbin "graphics/rotating_gates/7.4bpp"
-
- .align 2
-RotatingGateTiles_0: @ 83D5A0C
- .incbin "graphics/rotating_gates/0.4bpp"
-
- .align 2
-RotatingGateTiles_4: @ 83D5C0C
- .incbin "graphics/rotating_gates/4.4bpp"
-
- .align 2
-gOamData_83D5E0C:: @ 83D5E0C
- .2byte 0x0100
- .2byte 0xC000
- .2byte 0x5800
-
- .align 2
-gOamData_83D5E14:: @ 83D5E14
- .2byte 0x0100
- .2byte 0x8000
- .2byte 0x5800
-
- .align 2
-gRotatingGatesGraphicsTable:: @ 83D5E1C
- obj_tiles RotatingGateTiles_0, 0x200, 0x1300
- obj_tiles RotatingGateTiles_1, 0x800, 0x1301
- obj_tiles RotatingGateTiles_2, 0x800, 0x1302
- obj_tiles RotatingGateTiles_3, 0x800, 0x1303
- obj_tiles RotatingGateTiles_4, 0x200, 0x1304
- obj_tiles RotatingGateTiles_5, 0x800, 0x1305
- obj_tiles RotatingGateTiles_6, 0x800, 0x1306
- obj_tiles RotatingGateTiles_7, 0x800, 0x1307
- null_obj_tiles
-
- .align 2
-gSpriteAnim_83D5E64:: @ 83D5E64
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D5E6C:: @ 83D5E6C
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D5E74:: @ 83D5E74
- .4byte gSpriteAnim_83D5E64
-
- .align 2
-gSpriteAnimTable_83D5E78:: @ 83D5E78
- .4byte gSpriteAnim_83D5E6C
-
- .align 2
-gSpriteAffineAnim_83D5E7C:: @ 83D5E7C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5E8C:: @ 83D5E8C
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5E9C:: @ 83D5E9C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5EAC:: @ 83D5EAC
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_jump 0
-
- .align 2
-gSpriteAffineAnim_83D5EBC:: @ 83D5EBC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5ED4:: @ 83D5ED4
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5EEC:: @ 83D5EEC
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F04:: @ 83D5F04
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F1C:: @ 83D5F1C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F34:: @ 83D5F34
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F4C:: @ 83D5F4C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F64:: @ 83D5F64
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 4, 16
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F7C:: @ 83D5F7C
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5F94:: @ 83D5F94
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FAC:: @ 83D5FAC
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FC4:: @ 83D5FC4
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, -8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FDC:: @ 83D5FDC
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D5FF4:: @ 83D5FF4
- obj_rot_scal_anim_frame 0x100, 0x100, 64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D600C:: @ 83D600C
- obj_rot_scal_anim_frame 0x100, 0x100, -128, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_83D6024:: @ 83D6024
- obj_rot_scal_anim_frame 0x100, 0x100, -64, 0
- obj_rot_scal_anim_frame 0x0, 0x0, 8, 8
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_83D603C:: @ 83D603C
- .4byte gSpriteAffineAnim_83D5E7C
- .4byte gSpriteAffineAnim_83D5E8C
- .4byte gSpriteAffineAnim_83D5E9C
- .4byte gSpriteAffineAnim_83D5EAC
- .4byte gSpriteAffineAnim_83D5F1C
- .4byte gSpriteAffineAnim_83D5F64
- .4byte gSpriteAffineAnim_83D5F4C
- .4byte gSpriteAffineAnim_83D5F34
- .4byte gSpriteAffineAnim_83D5EBC
- .4byte gSpriteAffineAnim_83D5ED4
- .4byte gSpriteAffineAnim_83D5EEC
- .4byte gSpriteAffineAnim_83D5F04
- .4byte gSpriteAffineAnim_83D5FDC
- .4byte gSpriteAffineAnim_83D6024
- .4byte gSpriteAffineAnim_83D600C
- .4byte gSpriteAffineAnim_83D5FF4
- .4byte gSpriteAffineAnim_83D5F7C
- .4byte gSpriteAffineAnim_83D5F94
- .4byte gSpriteAffineAnim_83D5FAC
- .4byte gSpriteAffineAnim_83D5FC4
-
- .align 2
-gSpriteTemplate_83D608C:: @ 83D608C
- spr_template 4864, 0xFFFF, gOamData_83D5E0C, gSpriteAnimTable_83D5E74, NULL, gSpriteAffineAnimTable_83D603C, sub_80C7C94
-
- .align 2
-gSpriteTemplate_83D60A4:: @ 83D60A4
- spr_template 4864, 0xFFFF, gOamData_83D5E14, gSpriteAnimTable_83D5E78, NULL, gSpriteAffineAnimTable_83D603C, sub_80C7C94
-
-gUnknown_083D60BC:: @ 83D60BC
- .byte 255, 255, 255, 255
- .byte 39, 38, 18, 19
- .byte 255, 255, 255, 255
- .byte 255, 255, 255, 255
-
-gUnknown_083D60CC:: @ 83D60CC
- .byte 255, 255, 255, 255
- .byte 255, 255, 255, 255
- .byte 23, 22, 34, 35
- .byte 255, 255, 255, 255
-
-gUnknown_083D60DC:: @ 83D60DC
- .byte 255, 17, 255, 255
- .byte 255, 16, 255, 255
- .byte 255, 36, 255, 255
- .byte 255, 37, 255, 255
-
-gUnknown_083D60EC:: @ 83D60EC
- .byte 255, 255, 33, 255
- .byte 255, 255, 32, 255
- .byte 255, 255, 20, 255
- .byte 255, 255, 21, 255
-
-gUnknown_083D60FC:: @ 83D60FC
- .byte 0, -1, 0, 0
- .byte 1, -2, 0, 0
- .byte 0, 0, 0, 0
- .byte 1, 0, 0, 0
- .byte -1, 0, 0, 0
- .byte -1, 1, 0, 0
- .byte -1, -1, 0, 0
- .byte -2, -1, 0, 0
-
-gUnknown_083D611C:: @ 83D611C
- .byte -1, -1, 0, 0
- .byte -1, -2, 0, 0
- .byte 0, -1, 0, 0
- .byte 1, -1, 0, 0
- .byte 0, 0, 0, 0
- .byte 0, 1, 0, 0
- .byte -1, 0, 0, 0
- .byte -2, 0, 0, 0
-
- .align 2
-gUnknown_083D613C:: @ 83D613C
- .byte 1, 0, 1, 0, 0, 0, 0, 0
- .byte 1, 1, 1, 0, 0, 0, 0, 0
- .byte 1, 0, 1, 1, 0, 0, 0, 0
- .byte 1, 1, 1, 1, 0, 0, 0, 0
- .byte 1, 0, 1, 0, 1, 0, 0, 0
- .byte 1, 1, 1, 0, 1, 0, 0, 0
- .byte 1, 0, 1, 1, 1, 0, 0, 0
- .byte 1, 0, 1, 0, 1, 1, 0, 0
- .byte 1, 1, 1, 1, 1, 0, 0, 0
- .byte 1, 1, 1, 0, 1, 1, 0, 0
- .byte 1, 0, 1, 1, 1, 1, 0, 0
- .byte 1, 1, 1, 1, 1, 1, 0, 0
diff --git a/data/sound_check_menu.s b/data/sound_check_menu.s
deleted file mode 100644
index a91f55d04..000000000
--- a/data/sound_check_menu.s
+++ /dev/null
@@ -1,121 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2 @ object file boundary?
-
-gDebugText_SoundCheckJap:: @ 83D02C8
- .string "サウンドチェック$" @ Sound Check
-
-gDebugText_BGM:: @ 83D02D1
- .string "BGM$"
-
-gDebugText_SE:: @ 83D02D5
- .string "SE $"
-
-gUnknown_083D02D9:: @ 83D02D9
- .string "A‥さいせい B‥おわり$"
-
-gDebugText_UpDown:: @ 83D02E6
- .string "L‥UP R‥DOWN$"
-
-gDebugText_DriverTest:: @ 83D02F2
- .string "R‥DRIVER-TEST$"
-
-gUnknown_083D0300:: @ 83D0300
- .byte 1, 1
- .byte 1, 3
- .byte 1, 5
- .byte 1, 7
- .byte 1, 9
- .byte 1, 11
- .byte 1, 13
- .byte 1, 15
- .byte 1, 17
-
-gUnknown_083D0312:: @ 83D0312
- .string "Bぼたんで もどる$"
-
-gUnknown_083D031C:: @ 83D031C
- .string "Aぼたんで さいせい$"
-
-gDebugText_Voice:: @ 83D0327
- .string "VOICE‥‥‥‥$"
-
-gDebugText_Volume:: @ 83D0331
- .string "VOLUME‥‥‥$"
-
-gDebugText_Panpot:: @ 83D033B
- .string "PANPOT‥‥‥$"
-
-gDebugText_Pitch:: @ 83D0345
- .string "PITCH‥‥‥‥$"
-
-gDebugText_Length:: @ 83D034F
- .string "LENGTH‥‥‥$"
-
-gDebugText_Release:: @ 83D0359
- .string "RELEASE‥‥$"
-
-gDebugText_Progress:: @ 83D0363
- .string "PROGRESS‥$"
-
-gDebugText_Chorus:: @ 83D036D
- .string "CHORUS‥‥‥$"
-
-gDebugText_Priority:: @ 83D0377
- .string "PRIORITY‥$"
-
-gUnknown_083D0381:: @ 83D0381
- .string "さいせいちゆう‥$" @ 再生中 (playing)
-
-gUnknown_083D038A:: @ 83D038A
- .string "はんてん‥‥‥‥$" @ 反転 (reverse)
-
-gUnknown_083D0393:: @ 83D0393
- .string "すてれお‥‥‥‥$" @ stereo
-
- .align 2
-gUnknown_083D039C:: @ 83D039C
- .4byte 0, 387
- .4byte 0, 127
- .4byte -127, 127
- .4byte -128, 32639
- .4byte 0, 65535
- .4byte 0, 255
- .4byte 0, 65535
- .4byte -64, 63
-
-gUnknown_083D03DC:: @ 83D03DC
- .string "▶$"
-
-gUnknown_083D03DE:: @ 83D03DE
- .string " $"
-
- .align 2
-gUnknown_083D03E0:: @ 83D03E0
- .4byte 1
- .4byte 10
- .4byte 100
- .4byte 1000
- .4byte 10000
- .4byte 100000
-
-gUnknown_083D03F8:: @ 83D03F8
- .byte 0x3F, 0x00, 0xC0, 0x7F, 0x80 @ stereo panning
-
-gOtherText_SE:: @ 83D03FD
- .string "SE$"
-
-gOtherText_Pan:: @ 83D0400
- .string "PAN$"
-
-gOtherText_LR:: @ 83D0404
- .string " LR$"
-
-gOtherText_RL:: @ 83D0409
- .string " RL$"
-
-@ 83D040E
- .include "data/text/song_names.inc"
diff --git a/data/text/song_names.inc b/data/text/song_names.inc
deleted file mode 100644
index 29fad36e1..000000000
--- a/data/text/song_names.inc
+++ /dev/null
@@ -1,1105 +0,0 @@
-BGMName_STOP:
- .string "STOP$"
-BGMName_TETSUJI:
- .string "TETSUJI$"
-BGMName_FIELD13:
- .string "FIELD13$"
-BGMName_KACHI22:
- .string "KACHI22$"
-BGMName_KACHI2:
- .string "KACHI2$"
-BGMName_KACHI3:
- .string "KACHI3$"
-BGMName_KACHI5:
- .string "KACHI5$"
-BGMName_PCC:
- .string "PCC$"
-BGMName_NIBI:
- .string "NIBI$"
-BGMName_SUIKUN:
- .string "SUIKUN$"
-BGMName_DOORO1:
- .string "DOORO1$"
-BGMName_DOORO_X1:
- .string "DOORO-X1$"
-BGMName_DOORO_X3:
- .string "DOORO-X3$"
-BGMName_MACHI_S2:
- .string "MACHI-S2$"
-BGMName_MACHI_S4:
- .string "MACHI-S4$"
-BGMName_GIM:
- .string "GIM$"
-BGMName_NAMINORI:
- .string "NAMINORI$"
-BGMName_DAN01:
- .string "DAN01$"
-BGMName_FANFA1:
- .string "FANFA1$"
-BGMName_ME_ASA:
- .string "ME-ASA$"
-BGMName_ME_BACHI:
- .string "ME-BACHI$"
-BGMName_FANFA4:
- .string "FANFA4$"
-BGMName_FANFA5:
- .string "FANFA5$"
-BGMName_ME_WAZA:
- .string "ME-WAZA$"
-BGMName_BIJYUTU:
- .string "BIJYUTU$"
-BGMName_DOORO_X4:
- .string "DOORO-X4$"
-BGMName_FUNE_KAN:
- .string "FUNE-KAN$"
-BGMName_ME_SHINKA:
- .string "ME-SHINKA$"
-BGMName_SHINKA:
- .string "SHINKA$"
-BGMName_ME_WASURE:
- .string "ME-WASURE$"
-BGMName_SYOUJOEYE:
- .string "SYOUJOEYE$"
-BGMName_BOYEYE:
- .string "BOYEYE$"
-BGMName_DAN02:
- .string "DAN02$"
-BGMName_MACHI_S3:
- .string "MACHI-S3$"
-BGMName_ODAMAKI:
- .string "ODAMAKI$"
-BGMName_B_TOWER:
- .string "B-TOWER$"
-BGMName_SWIMEYE:
- .string "SWIMEYE$"
-BGMName_DAN03:
- .string "DAN03$"
-BGMName_ME_KINOMI:
- .string "ME-KINOMI$"
-BGMName_ME_TAMA:
- .string "ME-TAMA$"
-BGMName_ME_B_BIG:
- .string "ME-B-BIG$"
-BGMName_ME_B_SMALL:
- .string "ME-B-SMALL$"
-BGMName_ME_ZANNEN:
- .string "ME-ZANNEN$"
-BGMName_BD_TIME:
- .string "BD-TIME$"
-BGMName_TEST1:
- .string "TEST1$"
-BGMName_TEST2:
- .string "TEST2$"
-BGMName_TEST3:
- .string "TEST3$"
-BGMName_TEST4:
- .string "TEST4$"
-BGMName_TEST:
- .string "TEST$"
-BGMName_GOMACHI0:
- .string "GOMACHI0$"
-BGMName_GOTOWN:
- .string "GOTOWN$"
-BGMName_POKECEN:
- .string "POKECEN$"
-BGMName_NEXTROAD:
- .string "NEXTROAD$"
-BGMName_GRANROAD:
- .string "GRANROAD$"
-BGMName_CYCLING:
- .string "CYCLING$"
-BGMName_FRIENDLY:
- .string "FRIENDLY$"
-BGMName_MISHIRO:
- .string "MISHIRO$"
-BGMName_TOZAN:
- .string "TOZAN$"
-BGMName_GIRLEYE:
- .string "GIRLEYE$"
-BGMName_MINAMO:
- .string "MINAMO$"
-BGMName_ASHROAD:
- .string "ASHROAD$"
-BGMName_EVENT0:
- .string "EVENT0$"
-BGMName_DEEPDEEP:
- .string "DEEPDEEP$"
-BGMName_KACHI1:
- .string "KACHI1$"
-BGMName_TITLE3:
- .string "TITLE3$"
-BGMName_DEMO1:
- .string "DEMO1$"
-BGMName_GIRL_SUP:
- .string "GIRL-SUP$"
-BGMName_HAGESHII:
- .string "HAGESHII$"
-BGMName_KAKKOII:
- .string "KAKKOII$"
-BGMName_KAZANBAI:
- .string "KAZANBAI$"
-BGMName_AQA_0:
- .string "AQA-0$"
-BGMName_TSURETEK:
- .string "TSURETEK$"
-BGMName_BOY_SUP:
- .string "BOY-SUP$"
-BGMName_RAINBOW:
- .string "RAINBOW$"
-BGMName_AYASII:
- .string "AYASII$"
-BGMName_KACHI4:
- .string "KACHI4$"
-BGMName_ROPEWAY:
- .string "ROPEWAY$"
-BGMName_CASINO:
- .string "CASINO$"
-BGMName_HIGHTOWN:
- .string "HIGHTOWN$"
-BGMName_SAFARI:
- .string "SAFARI$"
-BGMName_C_ROAD:
- .string "C-ROAD$"
-BGMName_AJITO:
- .string "AJITO$"
-BGMName_M_BOAT:
- .string "M-BOAT$"
-BGMName_M_DUNGON:
- .string "M-DUNGON$"
-BGMName_FINECITY:
- .string "FINECITY$"
-BGMName_MACHUPI:
- .string "MACHUPI$"
-BGMName_P_SCHOOL:
- .string "P-SCHOOL$"
-BGMName_DENDOU:
- .string "DENDOU$"
-BGMName_TONEKUSA:
- .string "TONEKUSA$"
-BGMName_MABOROSI:
- .string "MABOROSI$"
-BGMName_CON_FAN:
- .string "CON-FAN$"
-BGMName_CONTEST0:
- .string "CONTEST0$"
-BGMName_MGM0:
- .string "MGM0$"
-BGMName_T_BATTLE:
- .string "T-BATTLE$"
-BGMName_OOAME:
- .string "OOAME$"
-BGMName_HIDERI:
- .string "HIDERI$"
-BGMName_RUNECITY:
- .string "RUNECITY$"
-BGMName_CON_K:
- .string "CON-K$"
-BGMName_EIKOU_R:
- .string "EIKOU-R$"
-BGMName_KARAKURI:
- .string "KARAKURI$"
-BGMName_HUTAGO:
- .string "HUTAGO$"
-BGMName_SITENNOU:
- .string "SITENNOU$"
-BGMName_YAMA_EYE:
- .string "YAMA-EYE$"
-BGMName_CONLOBBY:
- .string "CONLOBBY$"
-BGMName_INTER_V:
- .string "INTER-V$"
-BGMName_DAIGO:
- .string "DAIGO$"
-BGMName_THANKFOR:
- .string "THANKFOR$"
-BGMName_END:
- .string "END$"
-BGMName_BATTLE27:
- .string "BATTLE27$"
-BGMName_BATTLE31:
- .string "BATTLE31$"
-BGMName_BATTLE20:
- .string "BATTLE20$"
-BGMName_BATTLE32:
- .string "BATTLE32$"
-BGMName_BATTLE33:
- .string "BATTLE33$"
-BGMName_BATTLE36:
- .string "BATTLE36$"
-BGMName_BATTLE34:
- .string "BATTLE34$"
-BGMName_BATTLE35:
- .string "BATTLE35$"
-BGMName_BATTLE38:
- .string "BATTLE38$"
-BGMName_BATTLE30:
- .string "BATTLE30$"
-
- .align 2
-gBGMNames:: @ 83D07AC
- .word BGMName_STOP
- .word BGMName_TETSUJI
- .word BGMName_FIELD13
- .word BGMName_KACHI22
- .word BGMName_KACHI2
- .word BGMName_KACHI3
- .word BGMName_KACHI5
- .word BGMName_PCC
- .word BGMName_NIBI
- .word BGMName_SUIKUN
- .word BGMName_DOORO1
- .word BGMName_DOORO_X1
- .word BGMName_DOORO_X3
- .word BGMName_MACHI_S2
- .word BGMName_MACHI_S4
- .word BGMName_GIM
- .word BGMName_NAMINORI
- .word BGMName_DAN01
- .word BGMName_FANFA1
- .word BGMName_ME_ASA
- .word BGMName_ME_BACHI
- .word BGMName_FANFA4
- .word BGMName_FANFA5
- .word BGMName_ME_WAZA
- .word BGMName_BIJYUTU
- .word BGMName_DOORO_X4
- .word BGMName_FUNE_KAN
- .word BGMName_ME_SHINKA
- .word BGMName_SHINKA
- .word BGMName_ME_WASURE
- .word BGMName_SYOUJOEYE
- .word BGMName_BOYEYE
- .word BGMName_DAN02
- .word BGMName_MACHI_S3
- .word BGMName_ODAMAKI
- .word BGMName_B_TOWER
- .word BGMName_SWIMEYE
- .word BGMName_DAN03
- .word BGMName_ME_KINOMI
- .word BGMName_ME_TAMA
- .word BGMName_ME_B_BIG
- .word BGMName_ME_B_SMALL
- .word BGMName_ME_ZANNEN
- .word BGMName_BD_TIME
- .word BGMName_TEST1
- .word BGMName_TEST2
- .word BGMName_TEST3
- .word BGMName_TEST4
- .word BGMName_TEST
- .word BGMName_GOMACHI0
- .word BGMName_GOTOWN
- .word BGMName_POKECEN
- .word BGMName_NEXTROAD
- .word BGMName_GRANROAD
- .word BGMName_CYCLING
- .word BGMName_FRIENDLY
- .word BGMName_MISHIRO
- .word BGMName_TOZAN
- .word BGMName_GIRLEYE
- .word BGMName_MINAMO
- .word BGMName_ASHROAD
- .word BGMName_EVENT0
- .word BGMName_DEEPDEEP
- .word BGMName_KACHI1
- .word BGMName_TITLE3
- .word BGMName_DEMO1
- .word BGMName_GIRL_SUP
- .word BGMName_HAGESHII
- .word BGMName_KAKKOII
- .word BGMName_KAZANBAI
- .word BGMName_AQA_0
- .word BGMName_TSURETEK
- .word BGMName_BOY_SUP
- .word BGMName_RAINBOW
- .word BGMName_AYASII
- .word BGMName_KACHI4
- .word BGMName_ROPEWAY
- .word BGMName_CASINO
- .word BGMName_HIGHTOWN
- .word BGMName_SAFARI
- .word BGMName_C_ROAD
- .word BGMName_AJITO
- .word BGMName_M_BOAT
- .word BGMName_M_DUNGON
- .word BGMName_FINECITY
- .word BGMName_MACHUPI
- .word BGMName_P_SCHOOL
- .word BGMName_DENDOU
- .word BGMName_TONEKUSA
- .word BGMName_MABOROSI
- .word BGMName_CON_FAN
- .word BGMName_CONTEST0
- .word BGMName_MGM0
- .word BGMName_T_BATTLE
- .word BGMName_OOAME
- .word BGMName_HIDERI
- .word BGMName_RUNECITY
- .word BGMName_CON_K
- .word BGMName_EIKOU_R
- .word BGMName_KARAKURI
- .word BGMName_HUTAGO
- .word BGMName_SITENNOU
- .word BGMName_YAMA_EYE
- .word BGMName_CONLOBBY
- .word BGMName_INTER_V
- .word BGMName_DAIGO
- .word BGMName_THANKFOR
- .word BGMName_END
- .word BGMName_BATTLE27
- .word BGMName_BATTLE31
- .word BGMName_BATTLE20
- .word BGMName_BATTLE32
- .word BGMName_BATTLE33
- .word BGMName_BATTLE36
- .word BGMName_BATTLE34
- .word BGMName_BATTLE35
- .word BGMName_BATTLE38
- .word BGMName_BATTLE30
-
-SEName_STOP:
- .string "STOP$"
-SEName_KAIFUKU:
- .string "KAIFUKU$"
-SEName_PC_LOGON:
- .string "PC-LOGON$"
-SEName_PC_OFF:
- .string "PC-OFF$"
-SEName_PC_ON:
- .string "PC-ON$"
-SEName_SELECT:
- .string "SELECT$"
-SEName_WIN_OPEN:
- .string "WIN-OPEN$"
-SEName_WALL_HIT:
- .string "WALL-HIT$"
-SEName_DOOR:
- .string "DOOR$"
-SEName_KAIDAN:
- .string "KAIDAN$"
-SEName_DANSA:
- .string "DANSA$"
-SEName_JITENSYA:
- .string "JITENSYA$"
-SEName_KOUKA_L:
- .string "KOUKA-L$"
-SEName_KOUKA_M:
- .string "KOUKA-M$"
-SEName_KOUKA_H:
- .string "KOUKA-H$"
-SEName_BOWA2:
- .string "BOWA2$"
-SEName_POKE_DEAD:
- .string "POKE-DEAD$"
-SEName_NIGERU:
- .string "NIGERU$"
-SEName_JIDO_DOA:
- .string "JIDO-DOA$"
-SEName_NAMINORI:
- .string "NAMINORI$"
-SEName_BAN:
- .string "BAN$"
-SEName_PIN:
- .string "PIN$"
-SEName_BOO:
- .string "BOO$"
-SEName_BOWA:
- .string "BOWA$"
-SEName_JYUNI:
- .string "JYUNI$"
-SEName_A:
- .string "A$"
-SEName_I:
- .string "I$"
-SEName_U:
- .string "U$"
-SEName_E:
- .string "E$"
-SEName_O:
- .string "O$"
-SEName_N:
- .string "N$"
-SEName_SEIKAI:
- .string "SEIKAI$"
-SEName_HAZURE:
- .string "HAZURE$"
-SEName_EXP:
- .string "EXP$"
-SEName_JITE_PYOKO:
- .string "JITE-PYOKO$"
-SEName_MU_PACHI:
- .string "MU-PACHI$"
-SEName_TK_KASYA:
- .string "TK-KASYA$"
-SEName_FU_ZAKU:
- .string "FU-ZAKU$"
-SEName_FU_ZAKU2:
- .string "FU-ZAKU2$"
-SEName_FU_ZUZUZU:
- .string "FU-ZUZUZU$"
-SEName_RU_GASHIN:
- .string "RU-GASHIN$"
-SEName_RU_GASYAN:
- .string "RU-GASYAN$"
-SEName_RU_BARI:
- .string "RU-BARI$"
-SEName_RU_HYUU:
- .string "RU-HYUU$"
-SEName_KI_GASYAN:
- .string "KI-GASYAN$"
-SEName_TK_WARPIN:
- .string "TK-WARPIN$"
-SEName_TK_WARPOUT:
- .string "TK-WARPOUT$"
-SEName_TU_SAA:
- .string "TU-SAA$"
-SEName_HI_TURUN:
- .string "HI-TURUN$"
-SEName_TRACK_MOVE:
- .string "TRACK-MOVE$"
-SEName_TRACK_STOP:
- .string "TRACK-STOP$"
-SEName_TRACK_HAIK:
- .string "TRACK-HAIK$"
-SEName_TRACK_DOOR:
- .string "TRACK-DOOR$"
-SEName_MOTER:
- .string "MOTER$"
-SEName_CARD:
- .string "CARD$"
-SEName_SAVE:
- .string "SAVE$"
-SEName_KON:
- .string "KON$"
-SEName_KON2:
- .string "KON2$"
-SEName_KON3:
- .string "KON3$"
-SEName_KON4:
- .string "KON4$"
-SEName_SUIKOMU:
- .string "SUIKOMU$"
-SEName_NAGERU:
- .string "NAGERU$"
-SEName_TOY_C:
- .string "TOY-C$"
-SEName_TOY_D:
- .string "TOY-D$"
-SEName_TOY_E:
- .string "TOY-E$"
-SEName_TOY_F:
- .string "TOY-F$"
-SEName_TOY_G:
- .string "TOY-G$"
-SEName_TOY_A:
- .string "TOY-A$"
-SEName_TOY_B:
- .string "TOY-B$"
-SEName_TOY_C1:
- .string "TOY-C1$"
-SEName_MIZU:
- .string "MIZU$"
-SEName_HASHI:
- .string "HASHI$"
-SEName_DAUGI:
- .string "DAUGI$"
-SEName_PINPON:
- .string "PINPON$"
-SEName_FUUSEN1:
- .string "FUUSEN1$"
-SEName_FUUSEN2:
- .string "FUUSEN2$"
-SEName_FUUSEN3:
- .string "FUUSEN3$"
-SEName_TOY_KABE:
- .string "TOY-KABE$"
-SEName_TOY_DANGO:
- .string "TOY-DANGO$"
-SEName_DOKU:
- .string "DOKU$"
-SEName_ESUKA:
- .string "ESUKA$"
-SEName_T_AME:
- .string "T-AME$"
-SEName_T_AME_E:
- .string "T-AME-E$"
-SEName_T_OOAME:
- .string "T-OOAME$"
-SEName_T_OOAME_E:
- .string "T-OOAME-E$"
-SEName_T_KOAME:
- .string "T-KOAME$"
-SEName_T_KOAME_E:
- .string "T-KOAME-E$"
-SEName_T_KAMI:
- .string "T-KAMI$"
-SEName_T_KAMI2:
- .string "T-KAMI2$"
-SEName_ELEBETA:
- .string "ELEBETA$"
-SEName_HINSI:
- .string "HINSI$"
-SEName_EXPMAX:
- .string "EXPMAX$"
-SEName_TAMAKORO:
- .string "TAMAKORO$"
-SEName_TAMAKORO_E:
- .string "TAMAKORO-E$"
-SEName_BASABASA:
- .string "BASABASA$"
-SEName_REGI:
- .string "REGI$"
-SEName_C_GAJI:
- .string "C-GAJI$"
-SEName_C_MAKU_U:
- .string "C-MAKU-U$"
-SEName_C_MAKU_D:
- .string "C-MAKU-D$"
-SEName_C_PASI:
- .string "C-PASI$"
-SEName_C_SYU:
- .string "C-SYU$"
-SEName_C_PIKON:
- .string "C-PIKON$"
-SEName_REAPOKE:
- .string "REAPOKE$"
-SEName_OP_BASYU:
- .string "OP-BASYU$"
-SEName_BT_START:
- .string "BT-START$"
-SEName_DENDOU:
- .string "DENDOU$"
-SEName_JIHANKI:
- .string "JIHANKI$"
-SEName_TAMA:
- .string "TAMA$"
-SEName_Z_SCROLL:
- .string "Z-SCROLL$"
-SEName_Z_PAGE:
- .string "Z-PAGE$"
-SEName_PN_ON:
- .string "PN-ON$"
-SEName_PN_OFF:
- .string "PN-OFF$"
-SEName_Z_SEARCH:
- .string "Z-SEARCH$"
-SEName_TAMAGO:
- .string "TAMAGO$"
-SEName_TB_START:
- .string "TB-START$"
-SEName_TB_KON:
- .string "TB-KON$"
-SEName_TB_KARA:
- .string "TB-KARA$"
-SEName_BIDORO:
- .string "BIDORO$"
-SEName_W085:
- .string "W085$"
-SEName_W085B:
- .string "W085B$"
-SEName_W231:
- .string "W231$"
-SEName_W171:
- .string "W171$"
-SEName_W233:
- .string "W233$"
-SEName_W233B:
- .string "W233B$"
-SEName_W145:
- .string "W145$"
-SEName_W145B:
- .string "W145B$"
-SEName_W145C:
- .string "W145C$"
-SEName_W240:
- .string "W240$"
-SEName_W015:
- .string "W015$"
-SEName_W081:
- .string "W081$"
-SEName_W081B:
- .string "W081B$"
-SEName_W088:
- .string "W088$"
-SEName_W016:
- .string "W016$"
-SEName_W016B:
- .string "W016B$"
-SEName_W003:
- .string "W003$"
-SEName_W104:
- .string "W104$"
-SEName_W013:
- .string "W013$"
-SEName_W196:
- .string "W196$"
-SEName_W086:
- .string "W086$"
-SEName_W004:
- .string "W004$"
-SEName_W025:
- .string "W025$"
-SEName_W025B:
- .string "W025B$"
-SEName_W152:
- .string "W152$"
-SEName_W026:
- .string "W026$"
-SEName_W172:
- .string "W172$"
-SEName_W172B:
- .string "W172B$"
-SEName_W053:
- .string "W053$"
-SEName_W007:
- .string "W007$"
-SEName_W092:
- .string "W092$"
-SEName_W221:
- .string "W221$"
-SEName_W221B:
- .string "W221B$"
-SEName_W052:
- .string "W052$"
-SEName_W036:
- .string "W036$"
-SEName_W059:
- .string "W059$"
-SEName_W059B:
- .string "W059B$"
-SEName_W010:
- .string "W010$"
-SEName_W011:
- .string "W011$"
-SEName_W017:
- .string "W017$"
-SEName_W019:
- .string "W019$"
-SEName_W028:
- .string "W028$"
-SEName_W013B:
- .string "W013B$"
-SEName_W044:
- .string "W044$"
-SEName_W029:
- .string "W029$"
-SEName_W057:
- .string "W057$"
-SEName_W056:
- .string "W056$"
-SEName_W250:
- .string "W250$"
-SEName_W030:
- .string "W030$"
-SEName_W039:
- .string "W039$"
-SEName_W054:
- .string "W054$"
-SEName_W077:
- .string "W077$"
-SEName_W020:
- .string "W020$"
-SEName_W082:
- .string "W082$"
-SEName_W047:
- .string "W047$"
-SEName_W195:
- .string "W195$"
-SEName_W006:
- .string "W006$"
-SEName_W091:
- .string "W091$"
-SEName_W146:
- .string "W146$"
-SEName_W120:
- .string "W120$"
-SEName_W153:
- .string "W153$"
-SEName_W071B:
- .string "W071B$"
-SEName_W071:
- .string "W071$"
-SEName_W103:
- .string "W103$"
-SEName_W062:
- .string "W062$"
-SEName_W062B:
- .string "W062B$"
-SEName_W048:
- .string "W048$"
-SEName_W187:
- .string "W187$"
-SEName_W118:
- .string "W118$"
-SEName_W155:
- .string "W155$"
-SEName_W122:
- .string "W122$"
-SEName_W060:
- .string "W060$"
-SEName_W185:
- .string "W185$"
-SEName_W014:
- .string "W014$"
-SEName_W043:
- .string "W043$"
-SEName_W207:
- .string "W207$"
-SEName_W207B:
- .string "W207B$"
-SEName_W215:
- .string "W215$"
-SEName_W109:
- .string "W109$"
-SEName_W173:
- .string "W173$"
-SEName_W280:
- .string "W280$"
-SEName_W202:
- .string "W202$"
-SEName_W060B:
- .string "W060B$"
-SEName_W076:
- .string "W076$"
-SEName_W080:
- .string "W080$"
-SEName_W100:
- .string "W100$"
-SEName_W107:
- .string "W107$"
-SEName_W166:
- .string "W166$"
-SEName_W129:
- .string "W129$"
-SEName_W115:
- .string "W115$"
-SEName_W112:
- .string "W112$"
-SEName_W197:
- .string "W197$"
-SEName_W199:
- .string "W199$"
-SEName_W236:
- .string "W236$"
-SEName_W204:
- .string "W204$"
-SEName_W268:
- .string "W268$"
-SEName_W070:
- .string "W070$"
-SEName_W063:
- .string "W063$"
-SEName_W127:
- .string "W127$"
-SEName_W179:
- .string "W179$"
-SEName_W151:
- .string "W151$"
-SEName_W201:
- .string "W201$"
-SEName_W161:
- .string "W161$"
-SEName_W161B:
- .string "W161B$"
-SEName_W227:
- .string "W227$"
-SEName_W227B:
- .string "W227B$"
-SEName_W226:
- .string "W226$"
-SEName_W208:
- .string "W208$"
-SEName_W213:
- .string "W213$"
-SEName_W213B:
- .string "W213B$"
-SEName_W234:
- .string "W234$"
-SEName_W260:
- .string "W260$"
-SEName_W328:
- .string "W328$"
-SEName_W320:
- .string "W320$"
-SEName_W255:
- .string "W255$"
-SEName_W291:
- .string "W291$"
-SEName_W089:
- .string "W089$"
-SEName_W239:
- .string "W239$"
-SEName_W230:
- .string "W230$"
-SEName_W281:
- .string "W281$"
-SEName_W327:
- .string "W327$"
-SEName_W287:
- .string "W287$"
-SEName_W257:
- .string "W257$"
-SEName_W253:
- .string "W253$"
-SEName_W258:
- .string "W258$"
-SEName_W322:
- .string "W322$"
-SEName_W298:
- .string "W298$"
-SEName_W287B:
- .string "W287B$"
-SEName_W114:
- .string "W114$"
-SEName_W063B:
- .string "W063B$"
-
- .align 2
-gSENames:: @ 83D0F78
- .word SEName_STOP
- .word SEName_KAIFUKU
- .word SEName_PC_LOGON
- .word SEName_PC_OFF
- .word SEName_PC_ON
- .word SEName_SELECT
- .word SEName_WIN_OPEN
- .word SEName_WALL_HIT
- .word SEName_DOOR
- .word SEName_KAIDAN
- .word SEName_DANSA
- .word SEName_JITENSYA
- .word SEName_KOUKA_L
- .word SEName_KOUKA_M
- .word SEName_KOUKA_H
- .word SEName_BOWA2
- .word SEName_POKE_DEAD
- .word SEName_NIGERU
- .word SEName_JIDO_DOA
- .word SEName_NAMINORI
- .word SEName_BAN
- .word SEName_PIN
- .word SEName_BOO
- .word SEName_BOWA
- .word SEName_JYUNI
- .word SEName_A
- .word SEName_I
- .word SEName_U
- .word SEName_E
- .word SEName_O
- .word SEName_N
- .word SEName_SEIKAI
- .word SEName_HAZURE
- .word SEName_EXP
- .word SEName_JITE_PYOKO
- .word SEName_MU_PACHI
- .word SEName_TK_KASYA
- .word SEName_FU_ZAKU
- .word SEName_FU_ZAKU2
- .word SEName_FU_ZUZUZU
- .word SEName_RU_GASHIN
- .word SEName_RU_GASYAN
- .word SEName_RU_BARI
- .word SEName_RU_HYUU
- .word SEName_KI_GASYAN
- .word SEName_TK_WARPIN
- .word SEName_TK_WARPOUT
- .word SEName_TU_SAA
- .word SEName_HI_TURUN
- .word SEName_TRACK_MOVE
- .word SEName_TRACK_STOP
- .word SEName_TRACK_HAIK
- .word SEName_TRACK_DOOR
- .word SEName_MOTER
- .word SEName_CARD
- .word SEName_SAVE
- .word SEName_KON
- .word SEName_KON2
- .word SEName_KON3
- .word SEName_KON4
- .word SEName_SUIKOMU
- .word SEName_NAGERU
- .word SEName_TOY_C
- .word SEName_TOY_D
- .word SEName_TOY_E
- .word SEName_TOY_F
- .word SEName_TOY_G
- .word SEName_TOY_A
- .word SEName_TOY_B
- .word SEName_TOY_C1
- .word SEName_MIZU
- .word SEName_HASHI
- .word SEName_DAUGI
- .word SEName_PINPON
- .word SEName_FUUSEN1
- .word SEName_FUUSEN2
- .word SEName_FUUSEN3
- .word SEName_TOY_KABE
- .word SEName_TOY_DANGO
- .word SEName_DOKU
- .word SEName_ESUKA
- .word SEName_T_AME
- .word SEName_T_AME_E
- .word SEName_T_OOAME
- .word SEName_T_OOAME_E
- .word SEName_T_KOAME
- .word SEName_T_KOAME_E
- .word SEName_T_KAMI
- .word SEName_T_KAMI2
- .word SEName_ELEBETA
- .word SEName_HINSI
- .word SEName_EXPMAX
- .word SEName_TAMAKORO
- .word SEName_TAMAKORO_E
- .word SEName_BASABASA
- .word SEName_REGI
- .word SEName_C_GAJI
- .word SEName_C_MAKU_U
- .word SEName_C_MAKU_D
- .word SEName_C_PASI
- .word SEName_C_SYU
- .word SEName_C_PIKON
- .word SEName_REAPOKE
- .word SEName_OP_BASYU
- .word SEName_BT_START
- .word SEName_DENDOU
- .word SEName_JIHANKI
- .word SEName_TAMA
- .word SEName_Z_SCROLL
- .word SEName_Z_PAGE
- .word SEName_PN_ON
- .word SEName_PN_OFF
- .word SEName_Z_SEARCH
- .word SEName_TAMAGO
- .word SEName_TB_START
- .word SEName_TB_KON
- .word SEName_TB_KARA
- .word SEName_BIDORO
- .word SEName_W085
- .word SEName_W085B
- .word SEName_W231
- .word SEName_W171
- .word SEName_W233
- .word SEName_W233B
- .word SEName_W145
- .word SEName_W145B
- .word SEName_W145C
- .word SEName_W240
- .word SEName_W015
- .word SEName_W081
- .word SEName_W081B
- .word SEName_W088
- .word SEName_W016
- .word SEName_W016B
- .word SEName_W003
- .word SEName_W104
- .word SEName_W013
- .word SEName_W196
- .word SEName_W086
- .word SEName_W004
- .word SEName_W025
- .word SEName_W025B
- .word SEName_W152
- .word SEName_W026
- .word SEName_W172
- .word SEName_W172B
- .word SEName_W053
- .word SEName_W007
- .word SEName_W092
- .word SEName_W221
- .word SEName_W221B
- .word SEName_W052
- .word SEName_W036
- .word SEName_W059
- .word SEName_W059B
- .word SEName_W010
- .word SEName_W011
- .word SEName_W017
- .word SEName_W019
- .word SEName_W028
- .word SEName_W013B
- .word SEName_W044
- .word SEName_W029
- .word SEName_W057
- .word SEName_W056
- .word SEName_W250
- .word SEName_W030
- .word SEName_W039
- .word SEName_W054
- .word SEName_W077
- .word SEName_W020
- .word SEName_W082
- .word SEName_W047
- .word SEName_W195
- .word SEName_W006
- .word SEName_W091
- .word SEName_W146
- .word SEName_W120
- .word SEName_W153
- .word SEName_W071B
- .word SEName_W071
- .word SEName_W103
- .word SEName_W062
- .word SEName_W062B
- .word SEName_W048
- .word SEName_W187
- .word SEName_W118
- .word SEName_W155
- .word SEName_W122
- .word SEName_W060
- .word SEName_W185
- .word SEName_W014
- .word SEName_W043
- .word SEName_W207
- .word SEName_W207B
- .word SEName_W215
- .word SEName_W109
- .word SEName_W173
- .word SEName_W280
- .word SEName_W202
- .word SEName_W060B
- .word SEName_W076
- .word SEName_W080
- .word SEName_W100
- .word SEName_W107
- .word SEName_W166
- .word SEName_W129
- .word SEName_W115
- .word SEName_W112
- .word SEName_W197
- .word SEName_W199
- .word SEName_W236
- .word SEName_W204
- .word SEName_W268
- .word SEName_W070
- .word SEName_W063
- .word SEName_W127
- .word SEName_W179
- .word SEName_W151
- .word SEName_W201
- .word SEName_W161
- .word SEName_W161B
- .word SEName_W227
- .word SEName_W227B
- .word SEName_W226
- .word SEName_W208
- .word SEName_W213
- .word SEName_W213B
- .word SEName_W234
- .word SEName_W260
- .word SEName_W328
- .word SEName_W320
- .word SEName_W255
- .word SEName_W291
- .word SEName_W089
- .word SEName_W239
- .word SEName_W230
- .word SEName_W281
- .word SEName_W327
- .word SEName_W287
- .word SEName_W257
- .word SEName_W253
- .word SEName_W258
- .word SEName_W322
- .word SEName_W298
- .word SEName_W287B
- .word SEName_W114
- .word SEName_W063B
diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s
deleted file mode 100644
index 2eabe9ce3..000000000
--- a/data/use_pokeblock.s
+++ /dev/null
@@ -1,73 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-.ifndef GERMAN
- .align 2
-ConditionUpDownPalette:
- .incbin "graphics/misc/condition_up_down.gbapal"
-
- .align 2
-ConditionUpDownTiles:
- .incbin "graphics/misc/condition_up_down.4bpp"
-.endif
-
-gUnknown_08406118:: @ 8406118
- .4byte 22 @ MON_DATA_COOL
- .4byte 47 @ MON_DATA_TOUGH
- .4byte 33 @ MON_DATA_SMART
- .4byte 24 @ MON_DATA_CUTE
- .4byte 23 @ MON_DATA_BEAUTY
-
- .align 2
-gUnknown_0840612C:: @ 840612C
- obj_pal 0x02030400, 0x0001
-
- .align 2
-gUnknown_08406134:: @ 8406134
- .4byte OtherText_Coolness
- .4byte OtherText_Toughness
- .4byte OtherText_Smartness
- .4byte OtherText_Cuteness
- .4byte OtherText_Beauty
-
- .align 2
-gSpriteSheet_ConditionUpDown:: @ 8406148
- obj_tiles ConditionUpDownTiles, 0x200, 0
-
- .align 2
-gSpritePalette_ConditionUpDown:: @ 8406150
- obj_pal ConditionUpDownPalette, 0
-
-gUnknown_08406158:: @ 8406158
- .2byte 156, 30
- .2byte 117, 53
- .2byte 117, 112
- .2byte 197, 112
- .2byte 197, 53
-
- .align 2
-gOamData_840616C:: @ 840616C
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gSpriteAnim_8406174:: @ 8406174
- obj_image_anim_frame 0, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_840617C:: @ 840617C
- obj_image_anim_frame 8, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_8406184:: @ 8406184
- .4byte gSpriteAnim_8406174
- .4byte gSpriteAnim_840617C
-
- .align 2
-gSpriteTemplate_840618C:: @ 840618C
- spr_template 0, 0, gOamData_840616C, gSpriteAnimTable_8406184, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
diff --git a/graphics-de/unused/old_charmap.png b/graphics-de/unused/old_charmap.png
index 72ceffbf9..72ceffbf9 100755..100644
--- a/graphics-de/unused/old_charmap.png
+++ b/graphics-de/unused/old_charmap.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/attract.bin b/graphics/battle_anims/backgrounds/attract.bin
index b06f46479..b06f46479 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.bin
+++ b/graphics/battle_anims/backgrounds/attract.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/attract.pal b/graphics/battle_anims/backgrounds/attract.pal
index a3a183566..a3a183566 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.pal
+++ b/graphics/battle_anims/backgrounds/attract.pal
diff --git a/graphics/battle_anims/backgrounds/attract.png b/graphics/battle_anims/backgrounds/attract.png
index c5bba0f89..c5bba0f89 100755..100644
--- a/graphics/battle_anims/backgrounds/attract.png
+++ b/graphics/battle_anims/backgrounds/attract.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.bin b/graphics/battle_anims/backgrounds/sandstorm_brew.bin
index 64e6d8584..64e6d8584 100755..100644
--- a/graphics/battle_anims/backgrounds/sandstorm_brew.bin
+++ b/graphics/battle_anims/backgrounds/sandstorm_brew.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/sandstorm_brew.png b/graphics/battle_anims/backgrounds/sandstorm_brew.png
index 87d5d41ea..87d5d41ea 100755..100644
--- a/graphics/battle_anims/backgrounds/sandstorm_brew.png
+++ b/graphics/battle_anims/backgrounds/sandstorm_brew.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face.pal b/graphics/battle_anims/backgrounds/scary_face.pal
index 580360ac0..580360ac0 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face.pal
+++ b/graphics/battle_anims/backgrounds/scary_face.pal
diff --git a/graphics/battle_anims/backgrounds/scary_face.png b/graphics/battle_anims/backgrounds/scary_face.png
index a395485cf..a395485cf 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face.png
+++ b/graphics/battle_anims/backgrounds/scary_face.png
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_contest.bin b/graphics/battle_anims/backgrounds/scary_face_contest.bin
index e2d1e3a99..e2d1e3a99 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_contest.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_contest.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_opponent.bin b/graphics/battle_anims/backgrounds/scary_face_opponent.bin
index dfaaf5f2f..dfaaf5f2f 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_opponent.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_opponent.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/scary_face_player.bin b/graphics/battle_anims/backgrounds/scary_face_player.bin
index 690305126..690305126 100755..100644
--- a/graphics/battle_anims/backgrounds/scary_face_player.bin
+++ b/graphics/battle_anims/backgrounds/scary_face_player.bin
Binary files differ
diff --git a/graphics/battle_anims/backgrounds/water.pal b/graphics/battle_anims/backgrounds/water.pal
index ee7a7b6e2..ee7a7b6e2 100755..100644
--- a/graphics/battle_anims/backgrounds/water.pal
+++ b/graphics/battle_anims/backgrounds/water.pal
diff --git a/graphics/battle_anims/backgrounds/water.png b/graphics/battle_anims/backgrounds/water.png
index 7740f99f8..7740f99f8 100755..100644
--- a/graphics/battle_anims/backgrounds/water.png
+++ b/graphics/battle_anims/backgrounds/water.png
Binary files differ
diff --git a/graphics/battle_anims/masks/cure_bubbles.bin b/graphics/battle_anims/masks/cure_bubbles.bin
index fa2f572b6..fa2f572b6 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.bin
+++ b/graphics/battle_anims/masks/cure_bubbles.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/cure_bubbles.pal b/graphics/battle_anims/masks/cure_bubbles.pal
index 2868f2479..2868f2479 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.pal
+++ b/graphics/battle_anims/masks/cure_bubbles.pal
diff --git a/graphics/battle_anims/masks/cure_bubbles.png b/graphics/battle_anims/masks/cure_bubbles.png
index aa7f7b1f2..aa7f7b1f2 100755..100644
--- a/graphics/battle_anims/masks/cure_bubbles.png
+++ b/graphics/battle_anims/masks/cure_bubbles.png
Binary files differ
diff --git a/graphics/battle_anims/masks/curse.bin b/graphics/battle_anims/masks/curse.bin
index 1e9623948..1e9623948 100755..100644
--- a/graphics/battle_anims/masks/curse.bin
+++ b/graphics/battle_anims/masks/curse.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/curse.png b/graphics/battle_anims/masks/curse.png
index 03979ee8d..03979ee8d 100755..100644
--- a/graphics/battle_anims/masks/curse.png
+++ b/graphics/battle_anims/masks/curse.png
Binary files differ
diff --git a/graphics/battle_anims/masks/metal_shine.bin b/graphics/battle_anims/masks/metal_shine.bin
index fed60df36..fed60df36 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.bin
+++ b/graphics/battle_anims/masks/metal_shine.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/metal_shine.pal b/graphics/battle_anims/masks/metal_shine.pal
index 019a17c3f..019a17c3f 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.pal
+++ b/graphics/battle_anims/masks/metal_shine.pal
diff --git a/graphics/battle_anims/masks/metal_shine.png b/graphics/battle_anims/masks/metal_shine.png
index a9c5a952c..a9c5a952c 100755..100644
--- a/graphics/battle_anims/masks/metal_shine.png
+++ b/graphics/battle_anims/masks/metal_shine.png
Binary files differ
diff --git a/graphics/battle_anims/masks/morning_sun.bin b/graphics/battle_anims/masks/morning_sun.bin
index cfa7b8069..cfa7b8069 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.bin
+++ b/graphics/battle_anims/masks/morning_sun.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/morning_sun.pal b/graphics/battle_anims/masks/morning_sun.pal
index 08249a43c..08249a43c 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.pal
+++ b/graphics/battle_anims/masks/morning_sun.pal
diff --git a/graphics/battle_anims/masks/morning_sun.png b/graphics/battle_anims/masks/morning_sun.png
index c10b02782..c10b02782 100755..100644
--- a/graphics/battle_anims/masks/morning_sun.png
+++ b/graphics/battle_anims/masks/morning_sun.png
Binary files differ
diff --git a/graphics/battle_anims/masks/stat.png b/graphics/battle_anims/masks/stat.png
index 0a6014ccd..0a6014ccd 100755..100644
--- a/graphics/battle_anims/masks/stat.png
+++ b/graphics/battle_anims/masks/stat.png
Binary files differ
diff --git a/graphics/battle_anims/masks/stat1.pal b/graphics/battle_anims/masks/stat1.pal
index d4128a31f..d4128a31f 100755..100644
--- a/graphics/battle_anims/masks/stat1.pal
+++ b/graphics/battle_anims/masks/stat1.pal
diff --git a/graphics/battle_anims/masks/stat2.pal b/graphics/battle_anims/masks/stat2.pal
index 434b06e8d..434b06e8d 100755..100644
--- a/graphics/battle_anims/masks/stat2.pal
+++ b/graphics/battle_anims/masks/stat2.pal
diff --git a/graphics/battle_anims/masks/stat3.pal b/graphics/battle_anims/masks/stat3.pal
index 784e5c640..784e5c640 100755..100644
--- a/graphics/battle_anims/masks/stat3.pal
+++ b/graphics/battle_anims/masks/stat3.pal
diff --git a/graphics/battle_anims/masks/stat4.pal b/graphics/battle_anims/masks/stat4.pal
index 2868f2479..2868f2479 100755..100644
--- a/graphics/battle_anims/masks/stat4.pal
+++ b/graphics/battle_anims/masks/stat4.pal
diff --git a/graphics/battle_anims/masks/stat5.pal b/graphics/battle_anims/masks/stat5.pal
index 4991b1bd7..4991b1bd7 100755..100644
--- a/graphics/battle_anims/masks/stat5.pal
+++ b/graphics/battle_anims/masks/stat5.pal
diff --git a/graphics/battle_anims/masks/stat6.pal b/graphics/battle_anims/masks/stat6.pal
index f647ff4b3..f647ff4b3 100755..100644
--- a/graphics/battle_anims/masks/stat6.pal
+++ b/graphics/battle_anims/masks/stat6.pal
diff --git a/graphics/battle_anims/masks/stat_tilemap_1.bin b/graphics/battle_anims/masks/stat_tilemap_1.bin
index 1b65e515a..1b65e515a 100755..100644
--- a/graphics/battle_anims/masks/stat_tilemap_1.bin
+++ b/graphics/battle_anims/masks/stat_tilemap_1.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/stat_tilemap_2.bin b/graphics/battle_anims/masks/stat_tilemap_2.bin
index eb336cb74..eb336cb74 100755..100644
--- a/graphics/battle_anims/masks/stat_tilemap_2.bin
+++ b/graphics/battle_anims/masks/stat_tilemap_2.bin
diff --git a/graphics/battle_anims/masks/unknown_D2EDFC.bin b/graphics/battle_anims/masks/unknown_D2EDFC.bin
index 712c1ee12..712c1ee12 100755..100644
--- a/graphics/battle_anims/masks/unknown_D2EDFC.bin
+++ b/graphics/battle_anims/masks/unknown_D2EDFC.bin
Binary files differ
diff --git a/graphics/battle_anims/masks/unknown_D2EDFC.png b/graphics/battle_anims/masks/unknown_D2EDFC.png
index d0b372cbb..d0b372cbb 100755..100644
--- a/graphics/battle_anims/masks/unknown_D2EDFC.png
+++ b/graphics/battle_anims/masks/unknown_D2EDFC.png
Binary files differ
diff --git a/graphics/battle_anims/sprites/substitute.bin b/graphics/battle_anims/sprites/substitute.bin
index d30c07d4e..d30c07d4e 100755..100644
--- a/graphics/battle_anims/sprites/substitute.bin
+++ b/graphics/battle_anims/sprites/substitute.bin
Binary files differ
diff --git a/graphics/battle_anims/sprites/substitute.pal b/graphics/battle_anims/sprites/substitute.pal
index 8b6e458a1..8b6e458a1 100755..100644
--- a/graphics/battle_anims/sprites/substitute.pal
+++ b/graphics/battle_anims/sprites/substitute.pal
diff --git a/graphics/battle_anims/sprites/substitute.png b/graphics/battle_anims/sprites/substitute.png
index 0b6dea850..0b6dea850 100755..100644
--- a/graphics/battle_anims/sprites/substitute.png
+++ b/graphics/battle_anims/sprites/substitute.png
Binary files differ
diff --git a/graphics/battle_interface/ball_display.png b/graphics/battle_interface/ball_display.png
index 0c49d7ac4..0c49d7ac4 100755..100644
--- a/graphics/battle_interface/ball_display.png
+++ b/graphics/battle_interface/ball_display.png
Binary files differ
diff --git a/graphics/battle_interface/ball_display_unused_extra.png b/graphics/battle_interface/ball_display_unused_extra.png
index 5473d53df..5473d53df 100755..100644
--- a/graphics/battle_interface/ball_display_unused_extra.png
+++ b/graphics/battle_interface/ball_display_unused_extra.png
Binary files differ
diff --git a/graphics/battle_interface/bar.png b/graphics/battle_interface/bar.png
index b947a7803..b947a7803 100755..100644
--- a/graphics/battle_interface/bar.png
+++ b/graphics/battle_interface/bar.png
Binary files differ
diff --git a/graphics/battle_interface/enemy_mon_shadow.png b/graphics/battle_interface/enemy_mon_shadow.png
index 3db333a92..3db333a92 100755..100644
--- a/graphics/battle_interface/enemy_mon_shadow.png
+++ b/graphics/battle_interface/enemy_mon_shadow.png
Binary files differ
diff --git a/graphics/battle_interface/expbar.png b/graphics/battle_interface/expbar.png
index b54dbe600..b54dbe600 100755..100644
--- a/graphics/battle_interface/expbar.png
+++ b/graphics/battle_interface/expbar.png
Binary files differ
diff --git a/graphics/battle_interface/hpbar.pal b/graphics/battle_interface/hpbar.pal
index ea646bb82..ea646bb82 100755..100644
--- a/graphics/battle_interface/hpbar.pal
+++ b/graphics/battle_interface/hpbar.pal
diff --git a/graphics/battle_interface/hpbar.png b/graphics/battle_interface/hpbar.png
index f3a0314e4..f3a0314e4 100755..100644
--- a/graphics/battle_interface/hpbar.png
+++ b/graphics/battle_interface/hpbar.png
Binary files differ
diff --git a/graphics/battle_interface/hpbar_anim.png b/graphics/battle_interface/hpbar_anim.png
index 9e7564234..9e7564234 100755..100644
--- a/graphics/battle_interface/hpbar_anim.png
+++ b/graphics/battle_interface/hpbar_anim.png
Binary files differ
diff --git a/graphics/battle_interface/misc.png b/graphics/battle_interface/misc.png
index 6456ebe5c..6456ebe5c 100755..100644
--- a/graphics/battle_interface/misc.png
+++ b/graphics/battle_interface/misc.png
Binary files differ
diff --git a/graphics/battle_interface/misc_frameend.png b/graphics/battle_interface/misc_frameend.png
index 630f44242..630f44242 100755..100644
--- a/graphics/battle_interface/misc_frameend.png
+++ b/graphics/battle_interface/misc_frameend.png
Binary files differ
diff --git a/graphics/battle_interface/status2.png b/graphics/battle_interface/status2.png
index 97a344ae3..97a344ae3 100755..100644
--- a/graphics/battle_interface/status2.png
+++ b/graphics/battle_interface/status2.png
Binary files differ
diff --git a/graphics/battle_interface/status3.png b/graphics/battle_interface/status3.png
index 3e5989d05..3e5989d05 100755..100644
--- a/graphics/battle_interface/status3.png
+++ b/graphics/battle_interface/status3.png
Binary files differ
diff --git a/graphics/battle_interface/status4.png b/graphics/battle_interface/status4.png
index d9769ad28..d9769ad28 100755..100644
--- a/graphics/battle_interface/status4.png
+++ b/graphics/battle_interface/status4.png
Binary files differ
diff --git a/graphics/battle_interface/status_brn.png b/graphics/battle_interface/status_brn.png
index 0de1e3ad2..0de1e3ad2 100755..100644
--- a/graphics/battle_interface/status_brn.png
+++ b/graphics/battle_interface/status_brn.png
Binary files differ
diff --git a/graphics/battle_interface/status_frz.png b/graphics/battle_interface/status_frz.png
index 3e1d534b5..3e1d534b5 100755..100644
--- a/graphics/battle_interface/status_frz.png
+++ b/graphics/battle_interface/status_frz.png
Binary files differ
diff --git a/graphics/battle_interface/status_par.png b/graphics/battle_interface/status_par.png
index 177d4eb5b..177d4eb5b 100755..100644
--- a/graphics/battle_interface/status_par.png
+++ b/graphics/battle_interface/status_par.png
Binary files differ
diff --git a/graphics/battle_interface/status_psn.png b/graphics/battle_interface/status_psn.png
index 95869e572..95869e572 100755..100644
--- a/graphics/battle_interface/status_psn.png
+++ b/graphics/battle_interface/status_psn.png
Binary files differ
diff --git a/graphics/battle_interface/status_slp.png b/graphics/battle_interface/status_slp.png
index b0eb5a250..b0eb5a250 100755..100644
--- a/graphics/battle_interface/status_slp.png
+++ b/graphics/battle_interface/status_slp.png
Binary files differ
diff --git a/graphics/battle_interface/window.pal b/graphics/battle_interface/window.pal
index bc8e8f2bc..bc8e8f2bc 100755..100644
--- a/graphics/battle_interface/window.pal
+++ b/graphics/battle_interface/window.pal
diff --git a/graphics/battle_interface/window.png b/graphics/battle_interface/window.png
index 2117967ec..2117967ec 100755..100644
--- a/graphics/battle_interface/window.png
+++ b/graphics/battle_interface/window.png
Binary files differ
diff --git a/graphics/battle_interface/window2.png b/graphics/battle_interface/window2.png
index ac084b2e5..ac084b2e5 100755..100644
--- a/graphics/battle_interface/window2.png
+++ b/graphics/battle_interface/window2.png
Binary files differ
diff --git a/graphics/battle_interface/window3.png b/graphics/battle_interface/window3.png
index f45e2f714..f45e2f714 100755..100644
--- a/graphics/battle_interface/window3.png
+++ b/graphics/battle_interface/window3.png
Binary files differ
diff --git a/graphics/battle_interface/window4.png b/graphics/battle_interface/window4.png
index a366186cf..a366186cf 100755..100644
--- a/graphics/battle_interface/window4.png
+++ b/graphics/battle_interface/window4.png
Binary files differ
diff --git a/graphics/battle_interface/window5.png b/graphics/battle_interface/window5.png
index e48f380a4..e48f380a4 100755..100644
--- a/graphics/battle_interface/window5.png
+++ b/graphics/battle_interface/window5.png
Binary files differ
diff --git a/graphics/battle_terrain/building/palette2.pal b/graphics/battle_terrain/building/palette2.pal
index 3ca2e0b0c..3ca2e0b0c 100755..100644
--- a/graphics/battle_terrain/building/palette2.pal
+++ b/graphics/battle_terrain/building/palette2.pal
diff --git a/graphics/battle_terrain/building/palette3.pal b/graphics/battle_terrain/building/palette3.pal
index cebf5e687..cebf5e687 100755..100644
--- a/graphics/battle_terrain/building/palette3.pal
+++ b/graphics/battle_terrain/building/palette3.pal
diff --git a/graphics/battle_terrain/cave/groudon.pal b/graphics/battle_terrain/cave/groudon.pal
index 73021c957..73021c957 100755..100644
--- a/graphics/battle_terrain/cave/groudon.pal
+++ b/graphics/battle_terrain/cave/groudon.pal
diff --git a/graphics/battle_terrain/stadium/battle_tower.pal b/graphics/battle_terrain/stadium/battle_tower.pal
index 10a842bcc..10a842bcc 100755..100644
--- a/graphics/battle_terrain/stadium/battle_tower.pal
+++ b/graphics/battle_terrain/stadium/battle_tower.pal
diff --git a/graphics/battle_terrain/stadium/map.bin b/graphics/battle_terrain/stadium/map.bin
index d7bee6035..d7bee6035 100755..100644
--- a/graphics/battle_terrain/stadium/map.bin
+++ b/graphics/battle_terrain/stadium/map.bin
Binary files differ
diff --git a/graphics/battle_terrain/stadium/palette1.pal b/graphics/battle_terrain/stadium/palette1.pal
index 8252e3c5e..8252e3c5e 100755..100644
--- a/graphics/battle_terrain/stadium/palette1.pal
+++ b/graphics/battle_terrain/stadium/palette1.pal
diff --git a/graphics/battle_terrain/stadium/palette2.pal b/graphics/battle_terrain/stadium/palette2.pal
index 48b2d851b..48b2d851b 100755..100644
--- a/graphics/battle_terrain/stadium/palette2.pal
+++ b/graphics/battle_terrain/stadium/palette2.pal
diff --git a/graphics/battle_terrain/stadium/palette3.pal b/graphics/battle_terrain/stadium/palette3.pal
index 10c5b50d6..10c5b50d6 100755..100644
--- a/graphics/battle_terrain/stadium/palette3.pal
+++ b/graphics/battle_terrain/stadium/palette3.pal
diff --git a/graphics/battle_terrain/stadium/palette4.pal b/graphics/battle_terrain/stadium/palette4.pal
index 201de5471..201de5471 100755..100644
--- a/graphics/battle_terrain/stadium/palette4.pal
+++ b/graphics/battle_terrain/stadium/palette4.pal
diff --git a/graphics/battle_terrain/stadium/palette5.pal b/graphics/battle_terrain/stadium/palette5.pal
index 16f50d89b..16f50d89b 100755..100644
--- a/graphics/battle_terrain/stadium/palette5.pal
+++ b/graphics/battle_terrain/stadium/palette5.pal
diff --git a/graphics/battle_terrain/stadium/palette6.pal b/graphics/battle_terrain/stadium/palette6.pal
index 118a6a3bb..118a6a3bb 100755..100644
--- a/graphics/battle_terrain/stadium/palette6.pal
+++ b/graphics/battle_terrain/stadium/palette6.pal
diff --git a/graphics/battle_terrain/stadium/palette7.pal b/graphics/battle_terrain/stadium/palette7.pal
index b0c050be5..b0c050be5 100755..100644
--- a/graphics/battle_terrain/stadium/palette7.pal
+++ b/graphics/battle_terrain/stadium/palette7.pal
diff --git a/graphics/battle_terrain/stadium/tiles.png b/graphics/battle_terrain/stadium/tiles.png
index ece531ec0..ece531ec0 100755..100644
--- a/graphics/battle_terrain/stadium/tiles.png
+++ b/graphics/battle_terrain/stadium/tiles.png
Binary files differ
diff --git a/graphics/battle_terrain/water/kyogre.pal b/graphics/battle_terrain/water/kyogre.pal
index eaa19730f..eaa19730f 100755..100644
--- a/graphics/battle_terrain/water/kyogre.pal
+++ b/graphics/battle_terrain/water/kyogre.pal
diff --git a/graphics/battle_transitions/vs.png b/graphics/battle_transitions/vs.png
index a1badcb02..a1badcb02 100755..100644
--- a/graphics/battle_transitions/vs.png
+++ b/graphics/battle_transitions/vs.png
Binary files differ
diff --git a/graphics/battle_transitions/vs_frame.bin b/graphics/battle_transitions/vs_frame.bin
index 2ad153964..2ad153964 100755..100644
--- a/graphics/battle_transitions/vs_frame.bin
+++ b/graphics/battle_transitions/vs_frame.bin
Binary files differ
diff --git a/graphics/battle_transitions/vs_frame.pal b/graphics/battle_transitions/vs_frame.pal
index 104afd395..104afd395 100755..100644
--- a/graphics/battle_transitions/vs_frame.pal
+++ b/graphics/battle_transitions/vs_frame.pal
diff --git a/graphics/battle_transitions/vs_frame.png b/graphics/battle_transitions/vs_frame.png
index 0b38c8960..0b38c8960 100755..100644
--- a/graphics/battle_transitions/vs_frame.png
+++ b/graphics/battle_transitions/vs_frame.png
Binary files differ
diff --git a/graphics/birch_speech/birch.pal b/graphics/birch_speech/birch.pal
index b89a5861a..b89a5861a 100755..100644
--- a/graphics/birch_speech/birch.pal
+++ b/graphics/birch_speech/birch.pal
diff --git a/graphics/birch_speech/birch.png b/graphics/birch_speech/birch.png
index b34ae7436..b34ae7436 100755..100644
--- a/graphics/birch_speech/birch.png
+++ b/graphics/birch_speech/birch.png
Binary files differ
diff --git a/graphics/birch_speech/shadow.png b/graphics/birch_speech/shadow.png
index 778b75797..778b75797 100755..100644
--- a/graphics/birch_speech/shadow.png
+++ b/graphics/birch_speech/shadow.png
Binary files differ
diff --git a/graphics/contest/applause.png b/graphics/contest/applause.png
index 32b1748a0..32b1748a0 100755..100644
--- a/graphics/contest/applause.png
+++ b/graphics/contest/applause.png
Binary files differ
diff --git a/graphics/contest/applause_meter.png b/graphics/contest/applause_meter.png
index 8a4fce8c0..8a4fce8c0 100755..100644
--- a/graphics/contest/applause_meter.png
+++ b/graphics/contest/applause_meter.png
Binary files differ
diff --git a/graphics/contest/audience.png b/graphics/contest/audience.png
index 59f8d0add..59f8d0add 100755..100644
--- a/graphics/contest/audience.png
+++ b/graphics/contest/audience.png
Binary files differ
diff --git a/graphics/contest/faces.png b/graphics/contest/faces.png
index bba47a91d..bba47a91d 100755..100644
--- a/graphics/contest/faces.png
+++ b/graphics/contest/faces.png
Binary files differ
diff --git a/graphics/contest/heart.png b/graphics/contest/heart.png
index bd1ede8fc..bd1ede8fc 100755..100644
--- a/graphics/contest/heart.png
+++ b/graphics/contest/heart.png
Binary files differ
diff --git a/graphics/contest/judge.pal b/graphics/contest/judge.pal
index e62f2abd3..e62f2abd3 100755..100644
--- a/graphics/contest/judge.pal
+++ b/graphics/contest/judge.pal
diff --git a/graphics/contest/judge.png b/graphics/contest/judge.png
index c4dcf520b..c4dcf520b 100755..100644
--- a/graphics/contest/judge.png
+++ b/graphics/contest/judge.png
Binary files differ
diff --git a/graphics/contest/judge_symbols.pal b/graphics/contest/judge_symbols.pal
index 3eeaa1128..3eeaa1128 100755..100644
--- a/graphics/contest/judge_symbols.pal
+++ b/graphics/contest/judge_symbols.pal
diff --git a/graphics/contest/judge_symbols.png b/graphics/contest/judge_symbols.png
index 7669fb88b..7669fb88b 100755..100644
--- a/graphics/contest/judge_symbols.png
+++ b/graphics/contest/judge_symbols.png
Binary files differ
diff --git a/graphics/contest/misc.png b/graphics/contest/misc.png
index 536924daf..536924daf 100755..100644
--- a/graphics/contest/misc.png
+++ b/graphics/contest/misc.png
Binary files differ
diff --git a/graphics/contest/misc_2.pal b/graphics/contest/misc_2.pal
index 869aef9e1..869aef9e1 100755..100644
--- a/graphics/contest/misc_2.pal
+++ b/graphics/contest/misc_2.pal
diff --git a/graphics/contest/misc_2.png b/graphics/contest/misc_2.png
index 44a4a8295..44a4a8295 100755..100644
--- a/graphics/contest/misc_2.png
+++ b/graphics/contest/misc_2.png
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_1.bin b/graphics/contest/misc_2_tilemap_1.bin
index 197e88cee..197e88cee 100755..100644
--- a/graphics/contest/misc_2_tilemap_1.bin
+++ b/graphics/contest/misc_2_tilemap_1.bin
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_2.bin b/graphics/contest/misc_2_tilemap_2.bin
index b31126836..b31126836 100755..100644
--- a/graphics/contest/misc_2_tilemap_2.bin
+++ b/graphics/contest/misc_2_tilemap_2.bin
Binary files differ
diff --git a/graphics/contest/misc_2_tilemap_3.bin b/graphics/contest/misc_2_tilemap_3.bin
index 5055ab79e..5055ab79e 100755..100644
--- a/graphics/contest/misc_2_tilemap_3.bin
+++ b/graphics/contest/misc_2_tilemap_3.bin
diff --git a/graphics/contest/nextturn.pal b/graphics/contest/nextturn.pal
index 05991c79e..05991c79e 100755..100644
--- a/graphics/contest/nextturn.pal
+++ b/graphics/contest/nextturn.pal
diff --git a/graphics/contest/nextturn.png b/graphics/contest/nextturn.png
index 747c4b5a7..747c4b5a7 100755..100644
--- a/graphics/contest/nextturn.png
+++ b/graphics/contest/nextturn.png
Binary files differ
diff --git a/graphics/contest/nextturn_numbers.png b/graphics/contest/nextturn_numbers.png
index 4386f822d..4386f822d 100755..100644
--- a/graphics/contest/nextturn_numbers.png
+++ b/graphics/contest/nextturn_numbers.png
Binary files differ
diff --git a/graphics/contest/nextturn_random.png b/graphics/contest/nextturn_random.png
index b92003823..b92003823 100755..100644
--- a/graphics/contest/nextturn_random.png
+++ b/graphics/contest/nextturn_random.png
Binary files differ
diff --git a/graphics/interface/bag_screen.png b/graphics/interface/bag_screen.png
index 86b824bce..86b824bce 100755..100644
--- a/graphics/interface/bag_screen.png
+++ b/graphics/interface/bag_screen.png
Binary files differ
diff --git a/graphics/interface/bag_screen_female.pal b/graphics/interface/bag_screen_female.pal
index d5d99e115..d5d99e115 100755..100644
--- a/graphics/interface/bag_screen_female.pal
+++ b/graphics/interface/bag_screen_female.pal
diff --git a/graphics/interface/bag_screen_male.pal b/graphics/interface/bag_screen_male.pal
index 49c4879bd..49c4879bd 100755..100644
--- a/graphics/interface/bag_screen_male.pal
+++ b/graphics/interface/bag_screen_male.pal
diff --git a/graphics/interface/ball/dive.pal b/graphics/interface/ball/dive.pal
index 1bd07d69d..1bd07d69d 100755..100644
--- a/graphics/interface/ball/dive.pal
+++ b/graphics/interface/ball/dive.pal
diff --git a/graphics/interface/ball/dive.png b/graphics/interface/ball/dive.png
index 5be9b1ed6..5be9b1ed6 100755..100644
--- a/graphics/interface/ball/dive.png
+++ b/graphics/interface/ball/dive.png
Binary files differ
diff --git a/graphics/interface/ball/great.pal b/graphics/interface/ball/great.pal
index f19aa5e4a..f19aa5e4a 100755..100644
--- a/graphics/interface/ball/great.pal
+++ b/graphics/interface/ball/great.pal
diff --git a/graphics/interface/ball/great.png b/graphics/interface/ball/great.png
index 0c054d7d3..0c054d7d3 100755..100644
--- a/graphics/interface/ball/great.png
+++ b/graphics/interface/ball/great.png
Binary files differ
diff --git a/graphics/interface/ball/luxury.pal b/graphics/interface/ball/luxury.pal
index a49399d01..a49399d01 100755..100644
--- a/graphics/interface/ball/luxury.pal
+++ b/graphics/interface/ball/luxury.pal
diff --git a/graphics/interface/ball/luxury.png b/graphics/interface/ball/luxury.png
index 8056416b2..8056416b2 100755..100644
--- a/graphics/interface/ball/luxury.png
+++ b/graphics/interface/ball/luxury.png
Binary files differ
diff --git a/graphics/interface/ball/master.pal b/graphics/interface/ball/master.pal
index 72247849b..72247849b 100755..100644
--- a/graphics/interface/ball/master.pal
+++ b/graphics/interface/ball/master.pal
diff --git a/graphics/interface/ball/master.png b/graphics/interface/ball/master.png
index 9787a8896..9787a8896 100755..100644
--- a/graphics/interface/ball/master.png
+++ b/graphics/interface/ball/master.png
Binary files differ
diff --git a/graphics/interface/ball/nest.pal b/graphics/interface/ball/nest.pal
index 4bee9fa12..4bee9fa12 100755..100644
--- a/graphics/interface/ball/nest.pal
+++ b/graphics/interface/ball/nest.pal
diff --git a/graphics/interface/ball/nest.png b/graphics/interface/ball/nest.png
index a2fa81c1e..a2fa81c1e 100755..100644
--- a/graphics/interface/ball/nest.png
+++ b/graphics/interface/ball/nest.png
Binary files differ
diff --git a/graphics/interface/ball/net.pal b/graphics/interface/ball/net.pal
index dc5abb94d..dc5abb94d 100755..100644
--- a/graphics/interface/ball/net.pal
+++ b/graphics/interface/ball/net.pal
diff --git a/graphics/interface/ball/net.png b/graphics/interface/ball/net.png
index 6fef48101..6fef48101 100755..100644
--- a/graphics/interface/ball/net.png
+++ b/graphics/interface/ball/net.png
Binary files differ
diff --git a/graphics/interface/ball/poke.pal b/graphics/interface/ball/poke.pal
index 0e6b2fb5c..0e6b2fb5c 100755..100644
--- a/graphics/interface/ball/poke.pal
+++ b/graphics/interface/ball/poke.pal
diff --git a/graphics/interface/ball/poke.png b/graphics/interface/ball/poke.png
index 1e4aba669..1e4aba669 100755..100644
--- a/graphics/interface/ball/poke.png
+++ b/graphics/interface/ball/poke.png
Binary files differ
diff --git a/graphics/interface/ball/premier.pal b/graphics/interface/ball/premier.pal
index 0e6b2fb5c..0e6b2fb5c 100755..100644
--- a/graphics/interface/ball/premier.pal
+++ b/graphics/interface/ball/premier.pal
diff --git a/graphics/interface/ball/premier.png b/graphics/interface/ball/premier.png
index f5aaadbaf..f5aaadbaf 100755..100644
--- a/graphics/interface/ball/premier.png
+++ b/graphics/interface/ball/premier.png
Binary files differ
diff --git a/graphics/interface/ball/repeat.pal b/graphics/interface/ball/repeat.pal
index c3689e13f..c3689e13f 100755..100644
--- a/graphics/interface/ball/repeat.pal
+++ b/graphics/interface/ball/repeat.pal
diff --git a/graphics/interface/ball/repeat.png b/graphics/interface/ball/repeat.png
index 5abe789a2..5abe789a2 100755..100644
--- a/graphics/interface/ball/repeat.png
+++ b/graphics/interface/ball/repeat.png
Binary files differ
diff --git a/graphics/interface/ball/safari.pal b/graphics/interface/ball/safari.pal
index bbe4d76f3..bbe4d76f3 100755..100644
--- a/graphics/interface/ball/safari.pal
+++ b/graphics/interface/ball/safari.pal
diff --git a/graphics/interface/ball/safari.png b/graphics/interface/ball/safari.png
index 0dd49aef9..0dd49aef9 100755..100644
--- a/graphics/interface/ball/safari.png
+++ b/graphics/interface/ball/safari.png
Binary files differ
diff --git a/graphics/interface/ball/timer.pal b/graphics/interface/ball/timer.pal
index e0c23569e..e0c23569e 100755..100644
--- a/graphics/interface/ball/timer.pal
+++ b/graphics/interface/ball/timer.pal
diff --git a/graphics/interface/ball/timer.png b/graphics/interface/ball/timer.png
index 2b63f6795..2b63f6795 100755..100644
--- a/graphics/interface/ball/timer.png
+++ b/graphics/interface/ball/timer.png
Binary files differ
diff --git a/graphics/interface/ball/ultra.pal b/graphics/interface/ball/ultra.pal
index 3b7021097..3b7021097 100755..100644
--- a/graphics/interface/ball/ultra.pal
+++ b/graphics/interface/ball/ultra.pal
diff --git a/graphics/interface/ball/ultra.png b/graphics/interface/ball/ultra.png
index edae9a9f1..edae9a9f1 100755..100644
--- a/graphics/interface/ball/ultra.png
+++ b/graphics/interface/ball/ultra.png
Binary files differ
diff --git a/graphics/interface/ball_open.png b/graphics/interface/ball_open.png
index 1030f4942..1030f4942 100755..100644
--- a/graphics/interface/ball_open.png
+++ b/graphics/interface/ball_open.png
Binary files differ
diff --git a/graphics/interface/blank.pal b/graphics/interface/blank.pal
index 9757f2e57..9757f2e57 100755..100644
--- a/graphics/interface/blank.pal
+++ b/graphics/interface/blank.pal
diff --git a/graphics/interface/blank.png b/graphics/interface/blank.png
index 3a4ba289c..3a4ba289c 100755..100644
--- a/graphics/interface/blank.png
+++ b/graphics/interface/blank.png
Binary files differ
diff --git a/graphics/interface/check_berry.pal b/graphics/interface/check_berry.pal
index f4f6cb4e3..f4f6cb4e3 100755..100644
--- a/graphics/interface/check_berry.pal
+++ b/graphics/interface/check_berry.pal
diff --git a/graphics/interface/check_berry.png b/graphics/interface/check_berry.png
index 8a4ea695a..8a4ea695a 100755..100644
--- a/graphics/interface/check_berry.png
+++ b/graphics/interface/check_berry.png
Binary files differ
diff --git a/graphics/interface/check_berry_circle.png b/graphics/interface/check_berry_circle.png
index 38f2ae26b..38f2ae26b 100755..100644
--- a/graphics/interface/check_berry_circle.png
+++ b/graphics/interface/check_berry_circle.png
Binary files differ
diff --git a/graphics/interface/hold_icons.pal b/graphics/interface/hold_icons.pal
index e31d717c9..e31d717c9 100755..100644
--- a/graphics/interface/hold_icons.pal
+++ b/graphics/interface/hold_icons.pal
diff --git a/graphics/interface/hold_icons.png b/graphics/interface/hold_icons.png
index 53eeedde3..53eeedde3 100755..100644
--- a/graphics/interface/hold_icons.png
+++ b/graphics/interface/hold_icons.png
Binary files differ
diff --git a/graphics/interface/hpbar_anim.png b/graphics/interface/hpbar_anim.png
index d4e79fdae..d4e79fdae 100755..100644
--- a/graphics/interface/hpbar_anim.png
+++ b/graphics/interface/hpbar_anim.png
Binary files differ
diff --git a/graphics/interface/mart_frame.bin b/graphics/interface/mart_frame.bin
index e9bc3eaa7..e9bc3eaa7 100755..100644
--- a/graphics/interface/mart_frame.bin
+++ b/graphics/interface/mart_frame.bin
Binary files differ
diff --git a/graphics/interface/mart_frame.png b/graphics/interface/mart_frame.png
index a776e789a..a776e789a 100755..100644
--- a/graphics/interface/mart_frame.png
+++ b/graphics/interface/mart_frame.png
Binary files differ
diff --git a/graphics/interface/menu.pal b/graphics/interface/menu.pal
index 80a6cefcd..80a6cefcd 100755..100644
--- a/graphics/interface/menu.pal
+++ b/graphics/interface/menu.pal
diff --git a/graphics/interface/menu.png b/graphics/interface/menu.png
index e82b78ff3..e82b78ff3 100755..100644
--- a/graphics/interface/menu.png
+++ b/graphics/interface/menu.png
Binary files differ
diff --git a/graphics/interface/menu_0.pal b/graphics/interface/menu_0.pal
index 67e1af896..67e1af896 100755..100644
--- a/graphics/interface/menu_0.pal
+++ b/graphics/interface/menu_0.pal
diff --git a/graphics/interface/menu_1.pal b/graphics/interface/menu_1.pal
index 3adc73766..3adc73766 100755..100644
--- a/graphics/interface/menu_1.pal
+++ b/graphics/interface/menu_1.pal
diff --git a/graphics/interface/money.pal b/graphics/interface/money.pal
index 3fa8d8cff..3fa8d8cff 100755..100644
--- a/graphics/interface/money.pal
+++ b/graphics/interface/money.pal
diff --git a/graphics/interface/money.png b/graphics/interface/money.png
index 5ad533dbf..5ad533dbf 100755..100644
--- a/graphics/interface/money.png
+++ b/graphics/interface/money.png
Binary files differ
diff --git a/graphics/interface/numbers1.png b/graphics/interface/numbers1.png
index f15757958..f15757958 100755..100644
--- a/graphics/interface/numbers1.png
+++ b/graphics/interface/numbers1.png
Binary files differ
diff --git a/graphics/interface/numbers2.png b/graphics/interface/numbers2.png
index 4ddf364bf..4ddf364bf 100755..100644
--- a/graphics/interface/numbers2.png
+++ b/graphics/interface/numbers2.png
Binary files differ
diff --git a/graphics/interface/party_menu_hpbar.png b/graphics/interface/party_menu_hpbar.png
index 5860ada9b..5860ada9b 100755..100644
--- a/graphics/interface/party_menu_hpbar.png
+++ b/graphics/interface/party_menu_hpbar.png
Binary files differ
diff --git a/graphics/interface/party_menu_misc.bin b/graphics/interface/party_menu_misc.bin
index 3b3bcc57a..3b3bcc57a 100755..100644
--- a/graphics/interface/party_menu_misc.bin
+++ b/graphics/interface/party_menu_misc.bin
Binary files differ
diff --git a/graphics/interface/party_menu_misc.pal b/graphics/interface/party_menu_misc.pal
index 4bc706a6b..4bc706a6b 100755..100644
--- a/graphics/interface/party_menu_misc.pal
+++ b/graphics/interface/party_menu_misc.pal
diff --git a/graphics/interface/party_menu_misc.png b/graphics/interface/party_menu_misc.png
index 6ca98493b..6ca98493b 100755..100644
--- a/graphics/interface/party_menu_misc.png
+++ b/graphics/interface/party_menu_misc.png
Binary files differ
diff --git a/graphics/interface/party_menu_ordertext.png b/graphics/interface/party_menu_ordertext.png
index 003af36d0..003af36d0 100755..100644
--- a/graphics/interface/party_menu_ordertext.png
+++ b/graphics/interface/party_menu_ordertext.png
Binary files differ
diff --git a/graphics/interface/pokeblock.bin b/graphics/interface/pokeblock.bin
index 232df0fdb..232df0fdb 100755..100644
--- a/graphics/interface/pokeblock.bin
+++ b/graphics/interface/pokeblock.bin
Binary files differ
diff --git a/graphics/interface/pokeblock_case_frame.pal b/graphics/interface/pokeblock_case_frame.pal
index ef58ae778..ef58ae778 100755..100644
--- a/graphics/interface/pokeblock_case_frame.pal
+++ b/graphics/interface/pokeblock_case_frame.pal
diff --git a/graphics/interface/pokeblock_case_frame.png b/graphics/interface/pokeblock_case_frame.png
index 646636365..646636365 100755..100644
--- a/graphics/interface/pokeblock_case_frame.png
+++ b/graphics/interface/pokeblock_case_frame.png
Binary files differ
diff --git a/graphics/interface/pokeblock_device.pal b/graphics/interface/pokeblock_device.pal
index a491b61af..a491b61af 100755..100644
--- a/graphics/interface/pokeblock_device.pal
+++ b/graphics/interface/pokeblock_device.pal
diff --git a/graphics/interface/pokeblock_device.png b/graphics/interface/pokeblock_device.png
index 65b29a8b3..65b29a8b3 100755..100644
--- a/graphics/interface/pokeblock_device.png
+++ b/graphics/interface/pokeblock_device.png
Binary files differ
diff --git a/graphics/interface/status_icons.pal b/graphics/interface/status_icons.pal
index 718f5bb77..718f5bb77 100755..100644
--- a/graphics/interface/status_icons.pal
+++ b/graphics/interface/status_icons.pal
diff --git a/graphics/interface/status_icons.png b/graphics/interface/status_icons.png
index f319d5566..f319d5566 100755..100644
--- a/graphics/interface/status_icons.png
+++ b/graphics/interface/status_icons.png
Binary files differ
diff --git a/graphics/interface/status_screen.pal b/graphics/interface/status_screen.pal
index 61cd08f0c..61cd08f0c 100755..100644
--- a/graphics/interface/status_screen.pal
+++ b/graphics/interface/status_screen.pal
diff --git a/graphics/interface/status_screen.png b/graphics/interface/status_screen.png
index 3024a035c..3024a035c 100755..100644
--- a/graphics/interface/status_screen.png
+++ b/graphics/interface/status_screen.png
Binary files differ
diff --git a/graphics/interface/summary_frames.pal b/graphics/interface/summary_frames.pal
index d46aa6c8f..d46aa6c8f 100755..100644
--- a/graphics/interface/summary_frames.pal
+++ b/graphics/interface/summary_frames.pal
diff --git a/graphics/interface/summary_frames.png b/graphics/interface/summary_frames.png
index d3c9a2c08..d3c9a2c08 100755..100644
--- a/graphics/interface/summary_frames.png
+++ b/graphics/interface/summary_frames.png
Binary files differ
diff --git a/graphics/intro/intro1_bg.png b/graphics/intro/intro1_bg.png
index 14b3cb5ec..14b3cb5ec 100755..100644
--- a/graphics/intro/intro1_bg.png
+++ b/graphics/intro/intro1_bg.png
Binary files differ
diff --git a/graphics/intro/intro1_bgpal1.pal b/graphics/intro/intro1_bgpal1.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal1.pal
+++ b/graphics/intro/intro1_bgpal1.pal
diff --git a/graphics/intro/intro1_bgpal10.pal b/graphics/intro/intro1_bgpal10.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal10.pal
+++ b/graphics/intro/intro1_bgpal10.pal
diff --git a/graphics/intro/intro1_bgpal11.pal b/graphics/intro/intro1_bgpal11.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal11.pal
+++ b/graphics/intro/intro1_bgpal11.pal
diff --git a/graphics/intro/intro1_bgpal12.pal b/graphics/intro/intro1_bgpal12.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal12.pal
+++ b/graphics/intro/intro1_bgpal12.pal
diff --git a/graphics/intro/intro1_bgpal13.pal b/graphics/intro/intro1_bgpal13.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal13.pal
+++ b/graphics/intro/intro1_bgpal13.pal
diff --git a/graphics/intro/intro1_bgpal14.pal b/graphics/intro/intro1_bgpal14.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal14.pal
+++ b/graphics/intro/intro1_bgpal14.pal
diff --git a/graphics/intro/intro1_bgpal15.pal b/graphics/intro/intro1_bgpal15.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal15.pal
+++ b/graphics/intro/intro1_bgpal15.pal
diff --git a/graphics/intro/intro1_bgpal16.pal b/graphics/intro/intro1_bgpal16.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal16.pal
+++ b/graphics/intro/intro1_bgpal16.pal
diff --git a/graphics/intro/intro1_bgpal2.pal b/graphics/intro/intro1_bgpal2.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal2.pal
+++ b/graphics/intro/intro1_bgpal2.pal
diff --git a/graphics/intro/intro1_bgpal3.pal b/graphics/intro/intro1_bgpal3.pal
index 8a1fb05a5..8a1fb05a5 100755..100644
--- a/graphics/intro/intro1_bgpal3.pal
+++ b/graphics/intro/intro1_bgpal3.pal
diff --git a/graphics/intro/intro1_bgpal4.pal b/graphics/intro/intro1_bgpal4.pal
index 9761c8fac..9761c8fac 100755..100644
--- a/graphics/intro/intro1_bgpal4.pal
+++ b/graphics/intro/intro1_bgpal4.pal
diff --git a/graphics/intro/intro1_bgpal5.pal b/graphics/intro/intro1_bgpal5.pal
index 3617c25a8..3617c25a8 100755..100644
--- a/graphics/intro/intro1_bgpal5.pal
+++ b/graphics/intro/intro1_bgpal5.pal
diff --git a/graphics/intro/intro1_bgpal6.pal b/graphics/intro/intro1_bgpal6.pal
index c242494ac..c242494ac 100755..100644
--- a/graphics/intro/intro1_bgpal6.pal
+++ b/graphics/intro/intro1_bgpal6.pal
diff --git a/graphics/intro/intro1_bgpal7.pal b/graphics/intro/intro1_bgpal7.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal7.pal
+++ b/graphics/intro/intro1_bgpal7.pal
diff --git a/graphics/intro/intro1_bgpal8.pal b/graphics/intro/intro1_bgpal8.pal
index aef9152e4..aef9152e4 100755..100644
--- a/graphics/intro/intro1_bgpal8.pal
+++ b/graphics/intro/intro1_bgpal8.pal
diff --git a/graphics/intro/intro1_bgpal9.pal b/graphics/intro/intro1_bgpal9.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/intro/intro1_bgpal9.pal
+++ b/graphics/intro/intro1_bgpal9.pal
diff --git a/graphics/intro/intro1_eon.pal b/graphics/intro/intro1_eon.pal
index dcfc242a5..dcfc242a5 100755..100644
--- a/graphics/intro/intro1_eon.pal
+++ b/graphics/intro/intro1_eon.pal
diff --git a/graphics/intro/intro1_eon.png b/graphics/intro/intro1_eon.png
index cf8eedc08..cf8eedc08 100755..100644
--- a/graphics/intro/intro1_eon.png
+++ b/graphics/intro/intro1_eon.png
Binary files differ
diff --git a/graphics/intro/intro1_gamefreak.pal b/graphics/intro/intro1_gamefreak.pal
index aef9152e4..aef9152e4 100755..100644
--- a/graphics/intro/intro1_gamefreak.pal
+++ b/graphics/intro/intro1_gamefreak.pal
diff --git a/graphics/intro/intro1_gamefreak.png b/graphics/intro/intro1_gamefreak.png
index fe734a591..fe734a591 100755..100644
--- a/graphics/intro/intro1_gamefreak.png
+++ b/graphics/intro/intro1_gamefreak.png
Binary files differ
diff --git a/graphics/intro/intro1_leaves.png b/graphics/intro/intro1_leaves.png
index 38c442b24..38c442b24 100755..100644
--- a/graphics/intro/intro1_leaves.png
+++ b/graphics/intro/intro1_leaves.png
Binary files differ
diff --git a/graphics/intro/intro1_waterdrops.png b/graphics/intro/intro1_waterdrops.png
index 13dd3e216..13dd3e216 100755..100644
--- a/graphics/intro/intro1_waterdrops.png
+++ b/graphics/intro/intro1_waterdrops.png
Binary files differ
diff --git a/graphics/intro/intro2_bgclouds.pal b/graphics/intro/intro2_bgclouds.pal
index 6b312a16c..6b312a16c 100755..100644
--- a/graphics/intro/intro2_bgclouds.pal
+++ b/graphics/intro/intro2_bgclouds.pal
diff --git a/graphics/intro/intro2_bgclouds.png b/graphics/intro/intro2_bgclouds.png
index 7ba3d78f4..7ba3d78f4 100755..100644
--- a/graphics/intro/intro2_bgclouds.png
+++ b/graphics/intro/intro2_bgclouds.png
Binary files differ
diff --git a/graphics/intro/intro2_bgclouds2.png b/graphics/intro/intro2_bgclouds2.png
index 933332fdd..933332fdd 100755..100644
--- a/graphics/intro/intro2_bgclouds2.png
+++ b/graphics/intro/intro2_bgclouds2.png
Binary files differ
diff --git a/graphics/intro/intro2_bgnight.pal b/graphics/intro/intro2_bgnight.pal
index 765aad45a..765aad45a 100755..100644
--- a/graphics/intro/intro2_bgnight.pal
+++ b/graphics/intro/intro2_bgnight.pal
diff --git a/graphics/intro/intro2_bgnight.png b/graphics/intro/intro2_bgnight.png
index cb95bb04f..cb95bb04f 100755..100644
--- a/graphics/intro/intro2_bgnight.png
+++ b/graphics/intro/intro2_bgnight.png
Binary files differ
diff --git a/graphics/intro/intro2_bgtrees.pal b/graphics/intro/intro2_bgtrees.pal
index 5c506481a..5c506481a 100755..100644
--- a/graphics/intro/intro2_bgtrees.pal
+++ b/graphics/intro/intro2_bgtrees.pal
diff --git a/graphics/intro/intro2_bgtrees.png b/graphics/intro/intro2_bgtrees.png
index e6d163579..e6d163579 100755..100644
--- a/graphics/intro/intro2_bgtrees.png
+++ b/graphics/intro/intro2_bgtrees.png
Binary files differ
diff --git a/graphics/intro/intro2_bgtreessmall.png b/graphics/intro/intro2_bgtreessmall.png
index 33a7213b8..33a7213b8 100755..100644
--- a/graphics/intro/intro2_bgtreessmall.png
+++ b/graphics/intro/intro2_bgtreessmall.png
Binary files differ
diff --git a/graphics/intro/intro2_bicycle.png b/graphics/intro/intro2_bicycle.png
index 49af395bd..49af395bd 100755..100644
--- a/graphics/intro/intro2_bicycle.png
+++ b/graphics/intro/intro2_bicycle.png
Binary files differ
diff --git a/graphics/intro/intro2_brendan.pal b/graphics/intro/intro2_brendan.pal
index 5a8f9efcc..5a8f9efcc 100755..100644
--- a/graphics/intro/intro2_brendan.pal
+++ b/graphics/intro/intro2_brendan.pal
diff --git a/graphics/intro/intro2_brendan.png b/graphics/intro/intro2_brendan.png
index d09913663..d09913663 100755..100644
--- a/graphics/intro/intro2_brendan.png
+++ b/graphics/intro/intro2_brendan.png
Binary files differ
diff --git a/graphics/intro/intro2_grass.pal b/graphics/intro/intro2_grass.pal
index 389977abf..389977abf 100755..100644
--- a/graphics/intro/intro2_grass.pal
+++ b/graphics/intro/intro2_grass.pal
diff --git a/graphics/intro/intro2_grass.png b/graphics/intro/intro2_grass.png
index e573ca45e..e573ca45e 100755..100644
--- a/graphics/intro/intro2_grass.png
+++ b/graphics/intro/intro2_grass.png
Binary files differ
diff --git a/graphics/intro/intro2_latias.pal b/graphics/intro/intro2_latias.pal
index 0af96be29..0af96be29 100755..100644
--- a/graphics/intro/intro2_latias.pal
+++ b/graphics/intro/intro2_latias.pal
diff --git a/graphics/intro/intro2_latias.png b/graphics/intro/intro2_latias.png
index 5623895ce..5623895ce 100755..100644
--- a/graphics/intro/intro2_latias.png
+++ b/graphics/intro/intro2_latias.png
Binary files differ
diff --git a/graphics/intro/intro2_latios.pal b/graphics/intro/intro2_latios.pal
index bb51c0a7d..bb51c0a7d 100755..100644
--- a/graphics/intro/intro2_latios.pal
+++ b/graphics/intro/intro2_latios.pal
diff --git a/graphics/intro/intro2_latios.png b/graphics/intro/intro2_latios.png
index 439e26fe6..439e26fe6 100755..100644
--- a/graphics/intro/intro2_latios.png
+++ b/graphics/intro/intro2_latios.png
Binary files differ
diff --git a/graphics/intro/intro2_may.pal b/graphics/intro/intro2_may.pal
index 4d15e827b..4d15e827b 100755..100644
--- a/graphics/intro/intro2_may.pal
+++ b/graphics/intro/intro2_may.pal
diff --git a/graphics/intro/intro2_may.png b/graphics/intro/intro2_may.png
index bad682bbb..bad682bbb 100755..100644
--- a/graphics/intro/intro2_may.png
+++ b/graphics/intro/intro2_may.png
Binary files differ
diff --git a/graphics/intro/intro3_attackgfx.png b/graphics/intro/intro3_attackgfx.png
index 0ab052e36..0ab052e36 100755..100644
--- a/graphics/intro/intro3_attackgfx.png
+++ b/graphics/intro/intro3_attackgfx.png
Binary files differ
diff --git a/graphics/intro/intro3_explosion.png b/graphics/intro/intro3_explosion.png
index 1b687e53d..1b687e53d 100755..100644
--- a/graphics/intro/intro3_explosion.png
+++ b/graphics/intro/intro3_explosion.png
Binary files differ
diff --git a/graphics/intro/intro3_misc1.pal b/graphics/intro/intro3_misc1.pal
index a34bebc24..a34bebc24 100755..100644
--- a/graphics/intro/intro3_misc1.pal
+++ b/graphics/intro/intro3_misc1.pal
diff --git a/graphics/intro/intro3_misc2.pal b/graphics/intro/intro3_misc2.pal
index 3c985dc07..3c985dc07 100755..100644
--- a/graphics/intro/intro3_misc2.pal
+++ b/graphics/intro/intro3_misc2.pal
diff --git a/graphics/intro/intro3_pokeball.pal b/graphics/intro/intro3_pokeball.pal
index d520a5e82..d520a5e82 100755..100644
--- a/graphics/intro/intro3_pokeball.pal
+++ b/graphics/intro/intro3_pokeball.pal
diff --git a/graphics/intro/intro3_pokeball.png b/graphics/intro/intro3_pokeball.png
index 4af0187f8..4af0187f8 100755..100644
--- a/graphics/intro/intro3_pokeball.png
+++ b/graphics/intro/intro3_pokeball.png
Binary files differ
diff --git a/graphics/intro/intro3_star.png b/graphics/intro/intro3_star.png
index fb9368c34..fb9368c34 100755..100644
--- a/graphics/intro/intro3_star.png
+++ b/graphics/intro/intro3_star.png
Binary files differ
diff --git a/graphics/misc/birch_bag.pal b/graphics/misc/birch_bag.pal
index ca609b98d..ca609b98d 100755..100644
--- a/graphics/misc/birch_bag.pal
+++ b/graphics/misc/birch_bag.pal
diff --git a/graphics/misc/birch_bag.png b/graphics/misc/birch_bag.png
index 86bfbbbc0..86bfbbbc0 100755..100644
--- a/graphics/misc/birch_bag.png
+++ b/graphics/misc/birch_bag.png
Binary files differ
diff --git a/graphics/misc/birch_ballarrow.pal b/graphics/misc/birch_ballarrow.pal
index 12f7e8075..12f7e8075 100755..100644
--- a/graphics/misc/birch_ballarrow.pal
+++ b/graphics/misc/birch_ballarrow.pal
diff --git a/graphics/misc/birch_ballarrow.png b/graphics/misc/birch_ballarrow.png
index d2f0a3d97..d2f0a3d97 100755..100644
--- a/graphics/misc/birch_ballarrow.png
+++ b/graphics/misc/birch_ballarrow.png
Binary files differ
diff --git a/graphics/misc/birch_circle.pal b/graphics/misc/birch_circle.pal
index 52239fbc3..52239fbc3 100755..100644
--- a/graphics/misc/birch_circle.pal
+++ b/graphics/misc/birch_circle.pal
diff --git a/graphics/misc/birch_circle.png b/graphics/misc/birch_circle.png
index 3501dfec4..3501dfec4 100755..100644
--- a/graphics/misc/birch_circle.png
+++ b/graphics/misc/birch_circle.png
Binary files differ
diff --git a/graphics/misc/birch_grass.pal b/graphics/misc/birch_grass.pal
index 9a87ec0d5..9a87ec0d5 100755..100644
--- a/graphics/misc/birch_grass.pal
+++ b/graphics/misc/birch_grass.pal
diff --git a/graphics/misc/birch_grass.png b/graphics/misc/birch_grass.png
index 838fa5f4c..838fa5f4c 100755..100644
--- a/graphics/misc/birch_grass.png
+++ b/graphics/misc/birch_grass.png
Binary files differ
diff --git a/graphics/misc/cable_car.pal b/graphics/misc/cable_car.pal
index 64985f6da..64985f6da 100755..100644
--- a/graphics/misc/cable_car.pal
+++ b/graphics/misc/cable_car.pal
diff --git a/graphics/misc/cable_car.png b/graphics/misc/cable_car.png
index 67f581fb9..67f581fb9 100755..100644
--- a/graphics/misc/cable_car.png
+++ b/graphics/misc/cable_car.png
Binary files differ
diff --git a/graphics/misc/cable_car_bg.pal b/graphics/misc/cable_car_bg.pal
index d543b4cce..d543b4cce 100755..100644
--- a/graphics/misc/cable_car_bg.pal
+++ b/graphics/misc/cable_car_bg.pal
diff --git a/graphics/misc/cable_car_bg.png b/graphics/misc/cable_car_bg.png
index f268ea990..f268ea990 100755..100644
--- a/graphics/misc/cable_car_bg.png
+++ b/graphics/misc/cable_car_bg.png
Binary files differ
diff --git a/graphics/misc/cable_car_cord.png b/graphics/misc/cable_car_cord.png
index b8176d3ca..b8176d3ca 100755..100644
--- a/graphics/misc/cable_car_cord.png
+++ b/graphics/misc/cable_car_cord.png
Binary files differ
diff --git a/graphics/misc/cable_car_door.png b/graphics/misc/cable_car_door.png
index a61b3f504..a61b3f504 100755..100644
--- a/graphics/misc/cable_car_door.png
+++ b/graphics/misc/cable_car_door.png
Binary files differ
diff --git a/graphics/misc/clock1.pal b/graphics/misc/clock1.pal
index 1582ebfd2..1582ebfd2 100755..100644
--- a/graphics/misc/clock1.pal
+++ b/graphics/misc/clock1.pal
diff --git a/graphics/misc/clock2.pal b/graphics/misc/clock2.pal
index a7909e2e0..a7909e2e0 100755..100644
--- a/graphics/misc/clock2.pal
+++ b/graphics/misc/clock2.pal
diff --git a/graphics/misc/clock_ampm.png b/graphics/misc/clock_ampm.png
index b0d596293..b0d596293 100755..100644
--- a/graphics/misc/clock_ampm.png
+++ b/graphics/misc/clock_ampm.png
Binary files differ
diff --git a/graphics/misc/clock_hands.png b/graphics/misc/clock_hands.png
index 016625770..016625770 100755..100644
--- a/graphics/misc/clock_hands.png
+++ b/graphics/misc/clock_hands.png
Binary files differ
diff --git a/graphics/misc/clock_small.pal b/graphics/misc/clock_small.pal
index 3398fcbe3..3398fcbe3 100755..100644
--- a/graphics/misc/clock_small.pal
+++ b/graphics/misc/clock_small.pal
diff --git a/graphics/misc/clock_small.png b/graphics/misc/clock_small.png
index 6b9f6c1f7..6b9f6c1f7 100755..100644
--- a/graphics/misc/clock_small.png
+++ b/graphics/misc/clock_small.png
Binary files differ
diff --git a/graphics/misc/confetti.pal b/graphics/misc/confetti.pal
index f2494e508..f2494e508 100755..100644
--- a/graphics/misc/confetti.pal
+++ b/graphics/misc/confetti.pal
diff --git a/graphics/misc/confetti.png b/graphics/misc/confetti.png
index ef8b921d8..ef8b921d8 100755..100644
--- a/graphics/misc/confetti.png
+++ b/graphics/misc/confetti.png
Binary files differ
diff --git a/graphics/misc/diploma.png b/graphics/misc/diploma.png
index d9607dce6..d9607dce6 100755..100644
--- a/graphics/misc/diploma.png
+++ b/graphics/misc/diploma.png
Binary files differ
diff --git a/graphics/misc/diploma_national.pal b/graphics/misc/diploma_national.pal
index 03c37bf22..03c37bf22 100755..100644
--- a/graphics/misc/diploma_national.pal
+++ b/graphics/misc/diploma_national.pal
diff --git a/graphics/misc/egg_hatch.png b/graphics/misc/egg_hatch.png
index abea3122f..abea3122f 100755..100644
--- a/graphics/misc/egg_hatch.png
+++ b/graphics/misc/egg_hatch.png
Binary files differ
diff --git a/graphics/misc/egg_shard.png b/graphics/misc/egg_shard.png
index d404445b8..d404445b8 100755..100644
--- a/graphics/misc/egg_shard.png
+++ b/graphics/misc/egg_shard.png
Binary files differ
diff --git a/graphics/misc/evo_sparkle.pal b/graphics/misc/evo_sparkle.pal
index 7ccbffd1d..7ccbffd1d 100755..100644
--- a/graphics/misc/evo_sparkle.pal
+++ b/graphics/misc/evo_sparkle.pal
diff --git a/graphics/misc/evo_sparkle.png b/graphics/misc/evo_sparkle.png
index ac6172602..ac6172602 100755..100644
--- a/graphics/misc/evo_sparkle.png
+++ b/graphics/misc/evo_sparkle.png
Binary files differ
diff --git a/graphics/misc/interview_frame.pal b/graphics/misc/interview_frame.pal
index 7d6c36d2b..7d6c36d2b 100755..100644
--- a/graphics/misc/interview_frame.pal
+++ b/graphics/misc/interview_frame.pal
diff --git a/graphics/misc/interview_frame.png b/graphics/misc/interview_frame.png
index 63470e729..63470e729 100755..100644
--- a/graphics/misc/interview_frame.png
+++ b/graphics/misc/interview_frame.png
Binary files differ
diff --git a/graphics/misc/ribbons_beauty.pal b/graphics/misc/ribbons_beauty.pal
index 78dcdf6f0..78dcdf6f0 100755..100644
--- a/graphics/misc/ribbons_beauty.pal
+++ b/graphics/misc/ribbons_beauty.pal
diff --git a/graphics/misc/ribbons_cool.pal b/graphics/misc/ribbons_cool.pal
index ae6725c65..ae6725c65 100755..100644
--- a/graphics/misc/ribbons_cool.pal
+++ b/graphics/misc/ribbons_cool.pal
diff --git a/graphics/misc/ribbons_cute.pal b/graphics/misc/ribbons_cute.pal
index 7deb2fd4d..7deb2fd4d 100755..100644
--- a/graphics/misc/ribbons_cute.pal
+++ b/graphics/misc/ribbons_cute.pal
diff --git a/graphics/misc/ribbons_full.png b/graphics/misc/ribbons_full.png
index aeaecc5e5..aeaecc5e5 100755..100644
--- a/graphics/misc/ribbons_full.png
+++ b/graphics/misc/ribbons_full.png
Binary files differ
diff --git a/graphics/misc/ribbons_half.pal b/graphics/misc/ribbons_half.pal
index ad0de0547..ad0de0547 100755..100644
--- a/graphics/misc/ribbons_half.pal
+++ b/graphics/misc/ribbons_half.pal
diff --git a/graphics/misc/ribbons_half.png b/graphics/misc/ribbons_half.png
index 095891feb..095891feb 100755..100644
--- a/graphics/misc/ribbons_half.png
+++ b/graphics/misc/ribbons_half.png
Binary files differ
diff --git a/graphics/misc/ribbons_smart.pal b/graphics/misc/ribbons_smart.pal
index 3321186ed..3321186ed 100755..100644
--- a/graphics/misc/ribbons_smart.pal
+++ b/graphics/misc/ribbons_smart.pal
diff --git a/graphics/misc/ribbons_tough.pal b/graphics/misc/ribbons_tough.pal
index 0a01d552f..0a01d552f 100755..100644
--- a/graphics/misc/ribbons_tough.pal
+++ b/graphics/misc/ribbons_tough.pal
diff --git a/graphics/naming_screen/menu.png b/graphics/naming_screen/menu.png
index aae121e3e..aae121e3e 100755..100644
--- a/graphics/naming_screen/menu.png
+++ b/graphics/naming_screen/menu.png
Binary files differ
diff --git a/graphics/pokedex/area_glow.pal b/graphics/pokedex/area_glow.pal
index 0b9ac5a6d..0b9ac5a6d 100755..100644
--- a/graphics/pokedex/area_glow.pal
+++ b/graphics/pokedex/area_glow.pal
diff --git a/graphics/pokedex/area_glow.png b/graphics/pokedex/area_glow.png
index 039e932a8..039e932a8 100755..100644
--- a/graphics/pokedex/area_glow.png
+++ b/graphics/pokedex/area_glow.png
Binary files differ
diff --git a/graphics/pokedex/arrows.pal b/graphics/pokedex/arrows.pal
index 256cee631..256cee631 100755..100644
--- a/graphics/pokedex/arrows.pal
+++ b/graphics/pokedex/arrows.pal
diff --git a/graphics/pokedex/arrows.png b/graphics/pokedex/arrows.png
index 2abf39366..2abf39366 100755..100644
--- a/graphics/pokedex/arrows.png
+++ b/graphics/pokedex/arrows.png
Binary files differ
diff --git a/graphics/pokedex/cry_meter.pal b/graphics/pokedex/cry_meter.pal
index 224f3d983..224f3d983 100755..100644
--- a/graphics/pokedex/cry_meter.pal
+++ b/graphics/pokedex/cry_meter.pal
diff --git a/graphics/pokedex/cry_meter.png b/graphics/pokedex/cry_meter.png
index ec6b0ed43..ec6b0ed43 100755..100644
--- a/graphics/pokedex/cry_meter.png
+++ b/graphics/pokedex/cry_meter.png
Binary files differ
diff --git a/graphics/pokedex/menu.png b/graphics/pokedex/menu.png
index dd8ab63a7..dd8ab63a7 100755..100644
--- a/graphics/pokedex/menu.png
+++ b/graphics/pokedex/menu.png
Binary files differ
diff --git a/graphics/pokedex/menu1.pal b/graphics/pokedex/menu1.pal
index 9850d59b0..9850d59b0 100755..100644
--- a/graphics/pokedex/menu1.pal
+++ b/graphics/pokedex/menu1.pal
diff --git a/graphics/pokedex/menu2.pal b/graphics/pokedex/menu2.pal
index da71fe5ba..da71fe5ba 100755..100644
--- a/graphics/pokedex/menu2.pal
+++ b/graphics/pokedex/menu2.pal
diff --git a/graphics/pokedex/menu2.png b/graphics/pokedex/menu2.png
index 27de53df0..27de53df0 100755..100644
--- a/graphics/pokedex/menu2.png
+++ b/graphics/pokedex/menu2.png
Binary files differ
diff --git a/graphics/pokedex/menu3.pal b/graphics/pokedex/menu3.pal
index 101b62b41..101b62b41 100755..100644
--- a/graphics/pokedex/menu3.pal
+++ b/graphics/pokedex/menu3.pal
diff --git a/graphics/pokedex/menu_search.png b/graphics/pokedex/menu_search.png
index d1c4ae466..d1c4ae466 100755..100644
--- a/graphics/pokedex/menu_search.png
+++ b/graphics/pokedex/menu_search.png
Binary files differ
diff --git a/graphics/pokedex/noball.png b/graphics/pokedex/noball.png
index 40acfbd7d..40acfbd7d 100755..100644
--- a/graphics/pokedex/noball.png
+++ b/graphics/pokedex/noball.png
Binary files differ
diff --git a/graphics/pokemon_storage/arrow.pal b/graphics/pokemon_storage/arrow.pal
index 527c10ba2..527c10ba2 100755..100644
--- a/graphics/pokemon_storage/arrow.pal
+++ b/graphics/pokemon_storage/arrow.pal
diff --git a/graphics/pokemon_storage/arrow.png b/graphics/pokemon_storage/arrow.png
index 53aae9e51..53aae9e51 100755..100644
--- a/graphics/pokemon_storage/arrow.png
+++ b/graphics/pokemon_storage/arrow.png
Binary files differ
diff --git a/graphics/pokemon_storage/beach.bin b/graphics/pokemon_storage/beach.bin
index aa2a97d94..aa2a97d94 100755..100644
--- a/graphics/pokemon_storage/beach.bin
+++ b/graphics/pokemon_storage/beach.bin
Binary files differ
diff --git a/graphics/pokemon_storage/beach_bg.pal b/graphics/pokemon_storage/beach_bg.pal
index b7cb930c4..b7cb930c4 100755..100644
--- a/graphics/pokemon_storage/beach_bg.pal
+++ b/graphics/pokemon_storage/beach_bg.pal
diff --git a/graphics/pokemon_storage/beach_bg.png b/graphics/pokemon_storage/beach_bg.png
index e90325251..e90325251 100755..100644
--- a/graphics/pokemon_storage/beach_bg.png
+++ b/graphics/pokemon_storage/beach_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/beach_frame.pal b/graphics/pokemon_storage/beach_frame.pal
index 360d77bde..360d77bde 100755..100644
--- a/graphics/pokemon_storage/beach_frame.pal
+++ b/graphics/pokemon_storage/beach_frame.pal
diff --git a/graphics/pokemon_storage/beach_frame.png b/graphics/pokemon_storage/beach_frame.png
index c2b17f4d5..c2b17f4d5 100755..100644
--- a/graphics/pokemon_storage/beach_frame.png
+++ b/graphics/pokemon_storage/beach_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/box_bg1.pal b/graphics/pokemon_storage/box_bg1.pal
index 52ac12110..52ac12110 100755..100644
--- a/graphics/pokemon_storage/box_bg1.pal
+++ b/graphics/pokemon_storage/box_bg1.pal
diff --git a/graphics/pokemon_storage/box_bg2.pal b/graphics/pokemon_storage/box_bg2.pal
index 4b0812f09..4b0812f09 100755..100644
--- a/graphics/pokemon_storage/box_bg2.pal
+++ b/graphics/pokemon_storage/box_bg2.pal
diff --git a/graphics/pokemon_storage/box_bg3.pal b/graphics/pokemon_storage/box_bg3.pal
index 87eb83684..87eb83684 100755..100644
--- a/graphics/pokemon_storage/box_bg3.pal
+++ b/graphics/pokemon_storage/box_bg3.pal
diff --git a/graphics/pokemon_storage/box_bg4.pal b/graphics/pokemon_storage/box_bg4.pal
index a15c0ba56..a15c0ba56 100755..100644
--- a/graphics/pokemon_storage/box_bg4.pal
+++ b/graphics/pokemon_storage/box_bg4.pal
diff --git a/graphics/pokemon_storage/cave.bin b/graphics/pokemon_storage/cave.bin
index e8cec86f6..e8cec86f6 100755..100644
--- a/graphics/pokemon_storage/cave.bin
+++ b/graphics/pokemon_storage/cave.bin
Binary files differ
diff --git a/graphics/pokemon_storage/cave_bg.pal b/graphics/pokemon_storage/cave_bg.pal
index 6b783cdd5..6b783cdd5 100755..100644
--- a/graphics/pokemon_storage/cave_bg.pal
+++ b/graphics/pokemon_storage/cave_bg.pal
diff --git a/graphics/pokemon_storage/cave_bg.png b/graphics/pokemon_storage/cave_bg.png
index 6a4a7ae7a..6a4a7ae7a 100755..100644
--- a/graphics/pokemon_storage/cave_bg.png
+++ b/graphics/pokemon_storage/cave_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/cave_frame.pal b/graphics/pokemon_storage/cave_frame.pal
index f6e731395..f6e731395 100755..100644
--- a/graphics/pokemon_storage/cave_frame.pal
+++ b/graphics/pokemon_storage/cave_frame.pal
diff --git a/graphics/pokemon_storage/cave_frame.png b/graphics/pokemon_storage/cave_frame.png
index 484e6dd06..484e6dd06 100755..100644
--- a/graphics/pokemon_storage/cave_frame.png
+++ b/graphics/pokemon_storage/cave_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/city.bin b/graphics/pokemon_storage/city.bin
index 8274f44a4..8274f44a4 100755..100644
--- a/graphics/pokemon_storage/city.bin
+++ b/graphics/pokemon_storage/city.bin
Binary files differ
diff --git a/graphics/pokemon_storage/city_bg.pal b/graphics/pokemon_storage/city_bg.pal
index ba67b3414..ba67b3414 100755..100644
--- a/graphics/pokemon_storage/city_bg.pal
+++ b/graphics/pokemon_storage/city_bg.pal
diff --git a/graphics/pokemon_storage/city_bg.png b/graphics/pokemon_storage/city_bg.png
index 3e9ee0168..3e9ee0168 100755..100644
--- a/graphics/pokemon_storage/city_bg.png
+++ b/graphics/pokemon_storage/city_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/city_frame.pal b/graphics/pokemon_storage/city_frame.pal
index a5387638a..a5387638a 100755..100644
--- a/graphics/pokemon_storage/city_frame.pal
+++ b/graphics/pokemon_storage/city_frame.pal
diff --git a/graphics/pokemon_storage/city_frame.png b/graphics/pokemon_storage/city_frame.png
index 5464bc160..5464bc160 100755..100644
--- a/graphics/pokemon_storage/city_frame.png
+++ b/graphics/pokemon_storage/city_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/crag.bin b/graphics/pokemon_storage/crag.bin
index ce256ff37..ce256ff37 100755..100644
--- a/graphics/pokemon_storage/crag.bin
+++ b/graphics/pokemon_storage/crag.bin
Binary files differ
diff --git a/graphics/pokemon_storage/crag_bg.pal b/graphics/pokemon_storage/crag_bg.pal
index f72b27d13..f72b27d13 100755..100644
--- a/graphics/pokemon_storage/crag_bg.pal
+++ b/graphics/pokemon_storage/crag_bg.pal
diff --git a/graphics/pokemon_storage/crag_bg.png b/graphics/pokemon_storage/crag_bg.png
index 6eea4e118..6eea4e118 100755..100644
--- a/graphics/pokemon_storage/crag_bg.png
+++ b/graphics/pokemon_storage/crag_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/crag_frame.pal b/graphics/pokemon_storage/crag_frame.pal
index c4f85c644..c4f85c644 100755..100644
--- a/graphics/pokemon_storage/crag_frame.pal
+++ b/graphics/pokemon_storage/crag_frame.pal
diff --git a/graphics/pokemon_storage/crag_frame.png b/graphics/pokemon_storage/crag_frame.png
index 9d5d9cab9..9d5d9cab9 100755..100644
--- a/graphics/pokemon_storage/crag_frame.png
+++ b/graphics/pokemon_storage/crag_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/desert.bin b/graphics/pokemon_storage/desert.bin
index 75207eaf5..75207eaf5 100755..100644
--- a/graphics/pokemon_storage/desert.bin
+++ b/graphics/pokemon_storage/desert.bin
Binary files differ
diff --git a/graphics/pokemon_storage/desert_bg.pal b/graphics/pokemon_storage/desert_bg.pal
index c5ca027d2..c5ca027d2 100755..100644
--- a/graphics/pokemon_storage/desert_bg.pal
+++ b/graphics/pokemon_storage/desert_bg.pal
diff --git a/graphics/pokemon_storage/desert_bg.png b/graphics/pokemon_storage/desert_bg.png
index 04d467025..04d467025 100755..100644
--- a/graphics/pokemon_storage/desert_bg.png
+++ b/graphics/pokemon_storage/desert_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/desert_frame.pal b/graphics/pokemon_storage/desert_frame.pal
index 4cf04f8ae..4cf04f8ae 100755..100644
--- a/graphics/pokemon_storage/desert_frame.pal
+++ b/graphics/pokemon_storage/desert_frame.pal
diff --git a/graphics/pokemon_storage/desert_frame.png b/graphics/pokemon_storage/desert_frame.png
index e19e9eee8..e19e9eee8 100755..100644
--- a/graphics/pokemon_storage/desert_frame.png
+++ b/graphics/pokemon_storage/desert_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/forest.bin b/graphics/pokemon_storage/forest.bin
index 005155f6c..005155f6c 100755..100644
--- a/graphics/pokemon_storage/forest.bin
+++ b/graphics/pokemon_storage/forest.bin
Binary files differ
diff --git a/graphics/pokemon_storage/forest_bg.pal b/graphics/pokemon_storage/forest_bg.pal
index 946becabb..946becabb 100755..100644
--- a/graphics/pokemon_storage/forest_bg.pal
+++ b/graphics/pokemon_storage/forest_bg.pal
diff --git a/graphics/pokemon_storage/forest_bg.png b/graphics/pokemon_storage/forest_bg.png
index 51bd24528..51bd24528 100755..100644
--- a/graphics/pokemon_storage/forest_bg.png
+++ b/graphics/pokemon_storage/forest_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/forest_frame.pal b/graphics/pokemon_storage/forest_frame.pal
index 1b4166087..1b4166087 100755..100644
--- a/graphics/pokemon_storage/forest_frame.pal
+++ b/graphics/pokemon_storage/forest_frame.pal
diff --git a/graphics/pokemon_storage/forest_frame.png b/graphics/pokemon_storage/forest_frame.png
index b9039c5f0..b9039c5f0 100755..100644
--- a/graphics/pokemon_storage/forest_frame.png
+++ b/graphics/pokemon_storage/forest_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/machine.bin b/graphics/pokemon_storage/machine.bin
index 981638225..981638225 100755..100644
--- a/graphics/pokemon_storage/machine.bin
+++ b/graphics/pokemon_storage/machine.bin
Binary files differ
diff --git a/graphics/pokemon_storage/machine_bg.pal b/graphics/pokemon_storage/machine_bg.pal
index 4f75effd5..4f75effd5 100755..100644
--- a/graphics/pokemon_storage/machine_bg.pal
+++ b/graphics/pokemon_storage/machine_bg.pal
diff --git a/graphics/pokemon_storage/machine_bg.png b/graphics/pokemon_storage/machine_bg.png
index d3f84167c..d3f84167c 100755..100644
--- a/graphics/pokemon_storage/machine_bg.png
+++ b/graphics/pokemon_storage/machine_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/machine_frame.pal b/graphics/pokemon_storage/machine_frame.pal
index aa74af16f..aa74af16f 100755..100644
--- a/graphics/pokemon_storage/machine_frame.pal
+++ b/graphics/pokemon_storage/machine_frame.pal
diff --git a/graphics/pokemon_storage/machine_frame.png b/graphics/pokemon_storage/machine_frame.png
index 0e2bdde13..0e2bdde13 100755..100644
--- a/graphics/pokemon_storage/machine_frame.png
+++ b/graphics/pokemon_storage/machine_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/plain.bin b/graphics/pokemon_storage/plain.bin
index b9ab5e535..b9ab5e535 100755..100644
--- a/graphics/pokemon_storage/plain.bin
+++ b/graphics/pokemon_storage/plain.bin
Binary files differ
diff --git a/graphics/pokemon_storage/plain_bg.pal b/graphics/pokemon_storage/plain_bg.pal
index 74e28306b..74e28306b 100755..100644
--- a/graphics/pokemon_storage/plain_bg.pal
+++ b/graphics/pokemon_storage/plain_bg.pal
diff --git a/graphics/pokemon_storage/plain_bg.png b/graphics/pokemon_storage/plain_bg.png
index 0b6dce460..0b6dce460 100755..100644
--- a/graphics/pokemon_storage/plain_bg.png
+++ b/graphics/pokemon_storage/plain_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/plain_frame.pal b/graphics/pokemon_storage/plain_frame.pal
index b68d724cd..b68d724cd 100755..100644
--- a/graphics/pokemon_storage/plain_frame.pal
+++ b/graphics/pokemon_storage/plain_frame.pal
diff --git a/graphics/pokemon_storage/plain_frame.png b/graphics/pokemon_storage/plain_frame.png
index eedd67aad..eedd67aad 100755..100644
--- a/graphics/pokemon_storage/plain_frame.png
+++ b/graphics/pokemon_storage/plain_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter.bin b/graphics/pokemon_storage/pokecenter.bin
index 6c5924c37..6c5924c37 100755..100644
--- a/graphics/pokemon_storage/pokecenter.bin
+++ b/graphics/pokemon_storage/pokecenter.bin
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter_bg.pal b/graphics/pokemon_storage/pokecenter_bg.pal
index b029c1741..b029c1741 100755..100644
--- a/graphics/pokemon_storage/pokecenter_bg.pal
+++ b/graphics/pokemon_storage/pokecenter_bg.pal
diff --git a/graphics/pokemon_storage/pokecenter_bg.png b/graphics/pokemon_storage/pokecenter_bg.png
index 94834b69e..94834b69e 100755..100644
--- a/graphics/pokemon_storage/pokecenter_bg.png
+++ b/graphics/pokemon_storage/pokecenter_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/pokecenter_frame.pal b/graphics/pokemon_storage/pokecenter_frame.pal
index 4a8074805..4a8074805 100755..100644
--- a/graphics/pokemon_storage/pokecenter_frame.pal
+++ b/graphics/pokemon_storage/pokecenter_frame.pal
diff --git a/graphics/pokemon_storage/pokecenter_frame.png b/graphics/pokemon_storage/pokecenter_frame.png
index 99ef4a680..99ef4a680 100755..100644
--- a/graphics/pokemon_storage/pokecenter_frame.png
+++ b/graphics/pokemon_storage/pokecenter_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot.bin b/graphics/pokemon_storage/polkadot.bin
index 8477f680c..8477f680c 100755..100644
--- a/graphics/pokemon_storage/polkadot.bin
+++ b/graphics/pokemon_storage/polkadot.bin
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot_bg.pal b/graphics/pokemon_storage/polkadot_bg.pal
index b7bf06f47..b7bf06f47 100755..100644
--- a/graphics/pokemon_storage/polkadot_bg.pal
+++ b/graphics/pokemon_storage/polkadot_bg.pal
diff --git a/graphics/pokemon_storage/polkadot_bg.png b/graphics/pokemon_storage/polkadot_bg.png
index 16bf0be88..16bf0be88 100755..100644
--- a/graphics/pokemon_storage/polkadot_bg.png
+++ b/graphics/pokemon_storage/polkadot_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/polkadot_frame.pal b/graphics/pokemon_storage/polkadot_frame.pal
index d90a6f0b2..d90a6f0b2 100755..100644
--- a/graphics/pokemon_storage/polkadot_frame.pal
+++ b/graphics/pokemon_storage/polkadot_frame.pal
diff --git a/graphics/pokemon_storage/polkadot_frame.png b/graphics/pokemon_storage/polkadot_frame.png
index 41477d9ff..41477d9ff 100755..100644
--- a/graphics/pokemon_storage/polkadot_frame.png
+++ b/graphics/pokemon_storage/polkadot_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/river.bin b/graphics/pokemon_storage/river.bin
index ff2736df7..ff2736df7 100755..100644
--- a/graphics/pokemon_storage/river.bin
+++ b/graphics/pokemon_storage/river.bin
Binary files differ
diff --git a/graphics/pokemon_storage/river_bg.pal b/graphics/pokemon_storage/river_bg.pal
index 09d45090a..09d45090a 100755..100644
--- a/graphics/pokemon_storage/river_bg.pal
+++ b/graphics/pokemon_storage/river_bg.pal
diff --git a/graphics/pokemon_storage/river_bg.png b/graphics/pokemon_storage/river_bg.png
index 085640004..085640004 100755..100644
--- a/graphics/pokemon_storage/river_bg.png
+++ b/graphics/pokemon_storage/river_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/river_frame.pal b/graphics/pokemon_storage/river_frame.pal
index 9fcc4cbca..9fcc4cbca 100755..100644
--- a/graphics/pokemon_storage/river_frame.pal
+++ b/graphics/pokemon_storage/river_frame.pal
diff --git a/graphics/pokemon_storage/river_frame.png b/graphics/pokemon_storage/river_frame.png
index c4adcd23c..c4adcd23c 100755..100644
--- a/graphics/pokemon_storage/river_frame.png
+++ b/graphics/pokemon_storage/river_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/savanna.bin b/graphics/pokemon_storage/savanna.bin
index 4d166b7a9..4d166b7a9 100755..100644
--- a/graphics/pokemon_storage/savanna.bin
+++ b/graphics/pokemon_storage/savanna.bin
Binary files differ
diff --git a/graphics/pokemon_storage/savanna_bg.pal b/graphics/pokemon_storage/savanna_bg.pal
index d80816c35..d80816c35 100755..100644
--- a/graphics/pokemon_storage/savanna_bg.pal
+++ b/graphics/pokemon_storage/savanna_bg.pal
diff --git a/graphics/pokemon_storage/savanna_bg.png b/graphics/pokemon_storage/savanna_bg.png
index 4bc6b14e3..4bc6b14e3 100755..100644
--- a/graphics/pokemon_storage/savanna_bg.png
+++ b/graphics/pokemon_storage/savanna_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/savanna_frame.pal b/graphics/pokemon_storage/savanna_frame.pal
index 1c1742cc2..1c1742cc2 100755..100644
--- a/graphics/pokemon_storage/savanna_frame.pal
+++ b/graphics/pokemon_storage/savanna_frame.pal
diff --git a/graphics/pokemon_storage/savanna_frame.png b/graphics/pokemon_storage/savanna_frame.png
index 63897d514..63897d514 100755..100644
--- a/graphics/pokemon_storage/savanna_frame.png
+++ b/graphics/pokemon_storage/savanna_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor.bin b/graphics/pokemon_storage/seafloor.bin
index c6be345de..c6be345de 100755..100644
--- a/graphics/pokemon_storage/seafloor.bin
+++ b/graphics/pokemon_storage/seafloor.bin
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor_bg.pal b/graphics/pokemon_storage/seafloor_bg.pal
index 43b2eecab..43b2eecab 100755..100644
--- a/graphics/pokemon_storage/seafloor_bg.pal
+++ b/graphics/pokemon_storage/seafloor_bg.pal
diff --git a/graphics/pokemon_storage/seafloor_bg.png b/graphics/pokemon_storage/seafloor_bg.png
index 8f53e7dc2..8f53e7dc2 100755..100644
--- a/graphics/pokemon_storage/seafloor_bg.png
+++ b/graphics/pokemon_storage/seafloor_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/seafloor_frame.pal b/graphics/pokemon_storage/seafloor_frame.pal
index 79c7650b4..79c7650b4 100755..100644
--- a/graphics/pokemon_storage/seafloor_frame.pal
+++ b/graphics/pokemon_storage/seafloor_frame.pal
diff --git a/graphics/pokemon_storage/seafloor_frame.png b/graphics/pokemon_storage/seafloor_frame.png
index 3f2d5f713..3f2d5f713 100755..100644
--- a/graphics/pokemon_storage/seafloor_frame.png
+++ b/graphics/pokemon_storage/seafloor_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/sky.bin b/graphics/pokemon_storage/sky.bin
index e2c553b2a..e2c553b2a 100755..100644
--- a/graphics/pokemon_storage/sky.bin
+++ b/graphics/pokemon_storage/sky.bin
Binary files differ
diff --git a/graphics/pokemon_storage/sky_bg.pal b/graphics/pokemon_storage/sky_bg.pal
index 3d722ed6d..3d722ed6d 100755..100644
--- a/graphics/pokemon_storage/sky_bg.pal
+++ b/graphics/pokemon_storage/sky_bg.pal
diff --git a/graphics/pokemon_storage/sky_bg.png b/graphics/pokemon_storage/sky_bg.png
index 560e406e1..560e406e1 100755..100644
--- a/graphics/pokemon_storage/sky_bg.png
+++ b/graphics/pokemon_storage/sky_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/sky_frame.pal b/graphics/pokemon_storage/sky_frame.pal
index 951f59ecf..951f59ecf 100755..100644
--- a/graphics/pokemon_storage/sky_frame.pal
+++ b/graphics/pokemon_storage/sky_frame.pal
diff --git a/graphics/pokemon_storage/sky_frame.png b/graphics/pokemon_storage/sky_frame.png
index 85b1f75b0..85b1f75b0 100755..100644
--- a/graphics/pokemon_storage/sky_frame.png
+++ b/graphics/pokemon_storage/sky_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/snow.bin b/graphics/pokemon_storage/snow.bin
index 3e8253ade..3e8253ade 100755..100644
--- a/graphics/pokemon_storage/snow.bin
+++ b/graphics/pokemon_storage/snow.bin
Binary files differ
diff --git a/graphics/pokemon_storage/snow_bg.pal b/graphics/pokemon_storage/snow_bg.pal
index 01e46d027..01e46d027 100755..100644
--- a/graphics/pokemon_storage/snow_bg.pal
+++ b/graphics/pokemon_storage/snow_bg.pal
diff --git a/graphics/pokemon_storage/snow_bg.png b/graphics/pokemon_storage/snow_bg.png
index 4415750c4..4415750c4 100755..100644
--- a/graphics/pokemon_storage/snow_bg.png
+++ b/graphics/pokemon_storage/snow_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/snow_frame.pal b/graphics/pokemon_storage/snow_frame.pal
index 437ccb934..437ccb934 100755..100644
--- a/graphics/pokemon_storage/snow_frame.pal
+++ b/graphics/pokemon_storage/snow_frame.pal
diff --git a/graphics/pokemon_storage/snow_frame.png b/graphics/pokemon_storage/snow_frame.png
index 8ac1ae138..8ac1ae138 100755..100644
--- a/graphics/pokemon_storage/snow_frame.png
+++ b/graphics/pokemon_storage/snow_frame.png
Binary files differ
diff --git a/graphics/pokemon_storage/volcano.bin b/graphics/pokemon_storage/volcano.bin
index 5d7102e09..5d7102e09 100755..100644
--- a/graphics/pokemon_storage/volcano.bin
+++ b/graphics/pokemon_storage/volcano.bin
Binary files differ
diff --git a/graphics/pokemon_storage/volcano_bg.pal b/graphics/pokemon_storage/volcano_bg.pal
index 8ea563b6e..8ea563b6e 100755..100644
--- a/graphics/pokemon_storage/volcano_bg.pal
+++ b/graphics/pokemon_storage/volcano_bg.pal
diff --git a/graphics/pokemon_storage/volcano_bg.png b/graphics/pokemon_storage/volcano_bg.png
index 8561696b7..8561696b7 100755..100644
--- a/graphics/pokemon_storage/volcano_bg.png
+++ b/graphics/pokemon_storage/volcano_bg.png
Binary files differ
diff --git a/graphics/pokemon_storage/volcano_frame.pal b/graphics/pokemon_storage/volcano_frame.pal
index 0378aff29..0378aff29 100755..100644
--- a/graphics/pokemon_storage/volcano_frame.pal
+++ b/graphics/pokemon_storage/volcano_frame.pal
diff --git a/graphics/pokemon_storage/volcano_frame.png b/graphics/pokemon_storage/volcano_frame.png
index 4480c6c24..4480c6c24 100755..100644
--- a/graphics/pokemon_storage/volcano_frame.png
+++ b/graphics/pokemon_storage/volcano_frame.png
Binary files differ
diff --git a/graphics/pokenav/cursor.pal b/graphics/pokenav/cursor.pal
index b35568acf..b35568acf 100755..100644
--- a/graphics/pokenav/cursor.pal
+++ b/graphics/pokenav/cursor.pal
diff --git a/graphics/pokenav/cursor_large.png b/graphics/pokenav/cursor_large.png
index eeda68a0e..eeda68a0e 100755..100644
--- a/graphics/pokenav/cursor_large.png
+++ b/graphics/pokenav/cursor_large.png
Binary files differ
diff --git a/graphics/pokenav/cursor_small.png b/graphics/pokenav/cursor_small.png
index 031e7ed16..031e7ed16 100755..100644
--- a/graphics/pokenav/cursor_small.png
+++ b/graphics/pokenav/cursor_small.png
Binary files differ
diff --git a/graphics/pokenav/icon.pal b/graphics/pokenav/icon.pal
index 6130754f4..6130754f4 100755..100644
--- a/graphics/pokenav/icon.pal
+++ b/graphics/pokenav/icon.pal
diff --git a/graphics/pokenav/icon.png b/graphics/pokenav/icon.png
index 083f32272..083f32272 100755..100644
--- a/graphics/pokenav/icon.png
+++ b/graphics/pokenav/icon.png
Binary files differ
diff --git a/graphics/pokenav/map_frame.pal b/graphics/pokenav/map_frame.pal
index d460cfe4e..d460cfe4e 100755..100644
--- a/graphics/pokenav/map_frame.pal
+++ b/graphics/pokenav/map_frame.pal
diff --git a/graphics/pokenav/map_frame.png b/graphics/pokenav/map_frame.png
index f64171746..f64171746 100755..100644
--- a/graphics/pokenav/map_frame.png
+++ b/graphics/pokenav/map_frame.png
Binary files differ
diff --git a/graphics/pokenav/map_misc.pal b/graphics/pokenav/map_misc.pal
index c0f2cc4e9..c0f2cc4e9 100755..100644
--- a/graphics/pokenav/map_misc.pal
+++ b/graphics/pokenav/map_misc.pal
diff --git a/graphics/pokenav/map_misc.png b/graphics/pokenav/map_misc.png
index 7a997afc5..7a997afc5 100755..100644
--- a/graphics/pokenav/map_misc.png
+++ b/graphics/pokenav/map_misc.png
Binary files differ
diff --git a/graphics/pokenav/map_squares.pal b/graphics/pokenav/map_squares.pal
index 7325e7fb8..7325e7fb8 100755..100644
--- a/graphics/pokenav/map_squares.pal
+++ b/graphics/pokenav/map_squares.pal
diff --git a/graphics/pokenav/region_map.pal b/graphics/pokenav/region_map.pal
index 4fca67ade..4fca67ade 100755..100644
--- a/graphics/pokenav/region_map.pal
+++ b/graphics/pokenav/region_map.pal
diff --git a/graphics/pokenav/region_map.png b/graphics/pokenav/region_map.png
index 08df6eb29..08df6eb29 100755..100644
--- a/graphics/pokenav/region_map.png
+++ b/graphics/pokenav/region_map.png
Binary files differ
diff --git a/graphics/pokenav/trainereyes_misc.png b/graphics/pokenav/trainereyes_misc.png
index 63c641ee1..63c641ee1 100755..100644
--- a/graphics/pokenav/trainereyes_misc.png
+++ b/graphics/pokenav/trainereyes_misc.png
Binary files differ
diff --git a/graphics/pokenav/trainereyes_misc_pal.bin b/graphics/pokenav/trainereyes_misc_pal.bin
index 4d681dd27..4d681dd27 100755..100644
--- a/graphics/pokenav/trainereyes_misc_pal.bin
+++ b/graphics/pokenav/trainereyes_misc_pal.bin
Binary files differ
diff --git a/graphics/roulette/azurill.pal b/graphics/roulette/azurill.pal
index 2d6c464e3..2d6c464e3 100755..100644
--- a/graphics/roulette/azurill.pal
+++ b/graphics/roulette/azurill.pal
diff --git a/graphics/roulette/azurill.png b/graphics/roulette/azurill.png
index b99bc1a33..b99bc1a33 100755..100644
--- a/graphics/roulette/azurill.png
+++ b/graphics/roulette/azurill.png
Binary files differ
diff --git a/graphics/roulette/ball.pal b/graphics/roulette/ball.pal
index f72217a9b..f72217a9b 100755..100644
--- a/graphics/roulette/ball.pal
+++ b/graphics/roulette/ball.pal
diff --git a/graphics/roulette/ball.png b/graphics/roulette/ball.png
index 2352e9be5..2352e9be5 100755..100644
--- a/graphics/roulette/ball.png
+++ b/graphics/roulette/ball.png
Binary files differ
diff --git a/graphics/roulette/ball_counter.pal b/graphics/roulette/ball_counter.pal
index e76199ced..e76199ced 100755..100644
--- a/graphics/roulette/ball_counter.pal
+++ b/graphics/roulette/ball_counter.pal
diff --git a/graphics/roulette/ball_counter.png b/graphics/roulette/ball_counter.png
index 30c88b894..30c88b894 100755..100644
--- a/graphics/roulette/ball_counter.png
+++ b/graphics/roulette/ball_counter.png
Binary files differ
diff --git a/graphics/roulette/center.png b/graphics/roulette/center.png
index 0653b0e97..0653b0e97 100755..100644
--- a/graphics/roulette/center.png
+++ b/graphics/roulette/center.png
Binary files differ
diff --git a/graphics/roulette/cursor.pal b/graphics/roulette/cursor.pal
index f5ff00341..f5ff00341 100755..100644
--- a/graphics/roulette/cursor.pal
+++ b/graphics/roulette/cursor.pal
diff --git a/graphics/roulette/cursor.png b/graphics/roulette/cursor.png
index 962ebb2c7..962ebb2c7 100755..100644
--- a/graphics/roulette/cursor.png
+++ b/graphics/roulette/cursor.png
Binary files differ
diff --git a/graphics/roulette/makuhita.pal b/graphics/roulette/makuhita.pal
index 35a9a5307..35a9a5307 100755..100644
--- a/graphics/roulette/makuhita.pal
+++ b/graphics/roulette/makuhita.pal
diff --git a/graphics/roulette/makuhita.png b/graphics/roulette/makuhita.png
index 756157496..756157496 100755..100644
--- a/graphics/roulette/makuhita.png
+++ b/graphics/roulette/makuhita.png
Binary files differ
diff --git a/graphics/roulette/poke_icons.pal b/graphics/roulette/poke_icons.pal
index f2d21a7e5..f2d21a7e5 100755..100644
--- a/graphics/roulette/poke_icons.pal
+++ b/graphics/roulette/poke_icons.pal
diff --git a/graphics/roulette/poke_icons.png b/graphics/roulette/poke_icons.png
index 91a2f301f..91a2f301f 100755..100644
--- a/graphics/roulette/poke_icons.png
+++ b/graphics/roulette/poke_icons.png
Binary files differ
diff --git a/graphics/roulette/shadow.pal b/graphics/roulette/shadow.pal
index 2ac26b064..2ac26b064 100755..100644
--- a/graphics/roulette/shadow.pal
+++ b/graphics/roulette/shadow.pal
diff --git a/graphics/roulette/shadow.png b/graphics/roulette/shadow.png
index d3793b1c8..d3793b1c8 100755..100644
--- a/graphics/roulette/shadow.png
+++ b/graphics/roulette/shadow.png
Binary files differ
diff --git a/graphics/roulette/shroomish.pal b/graphics/roulette/shroomish.pal
index 3a1fbff02..3a1fbff02 100755..100644
--- a/graphics/roulette/shroomish.pal
+++ b/graphics/roulette/shroomish.pal
diff --git a/graphics/roulette/shroomish.png b/graphics/roulette/shroomish.png
index 12ee2a870..12ee2a870 100755..100644
--- a/graphics/roulette/shroomish.png
+++ b/graphics/roulette/shroomish.png
Binary files differ
diff --git a/graphics/roulette/skitty.pal b/graphics/roulette/skitty.pal
index cdfca277d..cdfca277d 100755..100644
--- a/graphics/roulette/skitty.pal
+++ b/graphics/roulette/skitty.pal
diff --git a/graphics/roulette/skitty.png b/graphics/roulette/skitty.png
index a1d6f1ab5..a1d6f1ab5 100755..100644
--- a/graphics/roulette/skitty.png
+++ b/graphics/roulette/skitty.png
Binary files differ
diff --git a/graphics/roulette/tailow.pal b/graphics/roulette/tailow.pal
index 00b5a7054..00b5a7054 100755..100644
--- a/graphics/roulette/tailow.pal
+++ b/graphics/roulette/tailow.pal
diff --git a/graphics/roulette/tailow.png b/graphics/roulette/tailow.png
index acd2fc4ba..acd2fc4ba 100755..100644
--- a/graphics/roulette/tailow.png
+++ b/graphics/roulette/tailow.png
Binary files differ
diff --git a/graphics/roulette/wynaut.pal b/graphics/roulette/wynaut.pal
index 5eef080f8..5eef080f8 100755..100644
--- a/graphics/roulette/wynaut.pal
+++ b/graphics/roulette/wynaut.pal
diff --git a/graphics/roulette/wynaut.png b/graphics/roulette/wynaut.png
index 8ba7d3c0f..8ba7d3c0f 100755..100644
--- a/graphics/roulette/wynaut.png
+++ b/graphics/roulette/wynaut.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/0.png b/graphics/slot_machine/numbers/0.png
index 07c668eea..07c668eea 100755..100644
--- a/graphics/slot_machine/numbers/0.png
+++ b/graphics/slot_machine/numbers/0.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/1.png b/graphics/slot_machine/numbers/1.png
index 0aa67e201..0aa67e201 100755..100644
--- a/graphics/slot_machine/numbers/1.png
+++ b/graphics/slot_machine/numbers/1.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/2.png b/graphics/slot_machine/numbers/2.png
index 0ff2a0265..0ff2a0265 100755..100644
--- a/graphics/slot_machine/numbers/2.png
+++ b/graphics/slot_machine/numbers/2.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/3.png b/graphics/slot_machine/numbers/3.png
index ea5f1e496..ea5f1e496 100755..100644
--- a/graphics/slot_machine/numbers/3.png
+++ b/graphics/slot_machine/numbers/3.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/4.png b/graphics/slot_machine/numbers/4.png
index d5353c752..d5353c752 100755..100644
--- a/graphics/slot_machine/numbers/4.png
+++ b/graphics/slot_machine/numbers/4.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/5.png b/graphics/slot_machine/numbers/5.png
index 121a7b3c9..121a7b3c9 100755..100644
--- a/graphics/slot_machine/numbers/5.png
+++ b/graphics/slot_machine/numbers/5.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/6.png b/graphics/slot_machine/numbers/6.png
index 95a9ae0ff..95a9ae0ff 100755..100644
--- a/graphics/slot_machine/numbers/6.png
+++ b/graphics/slot_machine/numbers/6.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/7.png b/graphics/slot_machine/numbers/7.png
index 1b8b77b2a..1b8b77b2a 100755..100644
--- a/graphics/slot_machine/numbers/7.png
+++ b/graphics/slot_machine/numbers/7.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/8.png b/graphics/slot_machine/numbers/8.png
index 17fe7938f..17fe7938f 100755..100644
--- a/graphics/slot_machine/numbers/8.png
+++ b/graphics/slot_machine/numbers/8.png
Binary files differ
diff --git a/graphics/slot_machine/numbers/9.png b/graphics/slot_machine/numbers/9.png
index f684e0be7..f684e0be7 100755..100644
--- a/graphics/slot_machine/numbers/9.png
+++ b/graphics/slot_machine/numbers/9.png
Binary files differ
diff --git a/graphics/slot_machine/reel_machine.png b/graphics/slot_machine/reel_machine.png
index 4f0ae169d..4f0ae169d 100755..100644
--- a/graphics/slot_machine/reel_machine.png
+++ b/graphics/slot_machine/reel_machine.png
Binary files differ
diff --git a/graphics/slot_machine/reel_pikachu.png b/graphics/slot_machine/reel_pikachu.png
index 29b004c84..29b004c84 100755..100644
--- a/graphics/slot_machine/reel_pikachu.png
+++ b/graphics/slot_machine/reel_pikachu.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/1.png b/graphics/slot_machine/reel_symbols/1.png
index 73e9d3345..73e9d3345 100755..100644
--- a/graphics/slot_machine/reel_symbols/1.png
+++ b/graphics/slot_machine/reel_symbols/1.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/2.png b/graphics/slot_machine/reel_symbols/2.png
index 866f4cead..866f4cead 100755..100644
--- a/graphics/slot_machine/reel_symbols/2.png
+++ b/graphics/slot_machine/reel_symbols/2.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/3.png b/graphics/slot_machine/reel_symbols/3.png
index 9641dc4c5..9641dc4c5 100755..100644
--- a/graphics/slot_machine/reel_symbols/3.png
+++ b/graphics/slot_machine/reel_symbols/3.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/4.png b/graphics/slot_machine/reel_symbols/4.png
index b3319e0e4..b3319e0e4 100755..100644
--- a/graphics/slot_machine/reel_symbols/4.png
+++ b/graphics/slot_machine/reel_symbols/4.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/5.png b/graphics/slot_machine/reel_symbols/5.png
index 16ae0f318..16ae0f318 100755..100644
--- a/graphics/slot_machine/reel_symbols/5.png
+++ b/graphics/slot_machine/reel_symbols/5.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/6.png b/graphics/slot_machine/reel_symbols/6.png
index 3d170585f..3d170585f 100755..100644
--- a/graphics/slot_machine/reel_symbols/6.png
+++ b/graphics/slot_machine/reel_symbols/6.png
Binary files differ
diff --git a/graphics/slot_machine/reel_symbols/7.png b/graphics/slot_machine/reel_symbols/7.png
index e6535b380..e6535b380 100755..100644
--- a/graphics/slot_machine/reel_symbols/7.png
+++ b/graphics/slot_machine/reel_symbols/7.png
Binary files differ
diff --git a/graphics/slot_machine/spr0.pal b/graphics/slot_machine/spr0.pal
index 98665e9c4..98665e9c4 100755..100644
--- a/graphics/slot_machine/spr0.pal
+++ b/graphics/slot_machine/spr0.pal
diff --git a/graphics/slot_machine/spr1.pal b/graphics/slot_machine/spr1.pal
index 393528400..393528400 100755..100644
--- a/graphics/slot_machine/spr1.pal
+++ b/graphics/slot_machine/spr1.pal
diff --git a/graphics/slot_machine/spr2_ruby.pal b/graphics/slot_machine/spr2_ruby.pal
index e669c2c27..e669c2c27 100755..100644
--- a/graphics/slot_machine/spr2_ruby.pal
+++ b/graphics/slot_machine/spr2_ruby.pal
diff --git a/graphics/slot_machine/spr3_ruby.pal b/graphics/slot_machine/spr3_ruby.pal
index a4966f50c..a4966f50c 100755..100644
--- a/graphics/slot_machine/spr3_ruby.pal
+++ b/graphics/slot_machine/spr3_ruby.pal
diff --git a/graphics/slot_machine/spr4.pal b/graphics/slot_machine/spr4.pal
index c1617d073..c1617d073 100755..100644
--- a/graphics/slot_machine/spr4.pal
+++ b/graphics/slot_machine/spr4.pal
diff --git a/graphics/slot_machine/spr5.pal b/graphics/slot_machine/spr5.pal
index 61f60fb8a..61f60fb8a 100755..100644
--- a/graphics/slot_machine/spr5.pal
+++ b/graphics/slot_machine/spr5.pal
diff --git a/graphics/slot_machine/spr6.pal b/graphics/slot_machine/spr6.pal
index 4f74a3079..4f74a3079 100755..100644
--- a/graphics/slot_machine/spr6.pal
+++ b/graphics/slot_machine/spr6.pal
diff --git a/graphics/title_screen/groudon.png b/graphics/title_screen/groudon.png
index 6e4b5cc20..6e4b5cc20 100755..100644
--- a/graphics/title_screen/groudon.png
+++ b/graphics/title_screen/groudon.png
Binary files differ
diff --git a/graphics/title_screen/groudon_dark.pal b/graphics/title_screen/groudon_dark.pal
index 12f8dc3f2..12f8dc3f2 100755..100644
--- a/graphics/title_screen/groudon_dark.pal
+++ b/graphics/title_screen/groudon_dark.pal
diff --git a/graphics/title_screen/groudon_glow.pal b/graphics/title_screen/groudon_glow.pal
index 43f83d357..43f83d357 100755..100644
--- a/graphics/title_screen/groudon_glow.pal
+++ b/graphics/title_screen/groudon_glow.pal
diff --git a/graphics/title_screen/kyogre.png b/graphics/title_screen/kyogre.png
index 81dc829c8..81dc829c8 100755..100644
--- a/graphics/title_screen/kyogre.png
+++ b/graphics/title_screen/kyogre.png
Binary files differ
diff --git a/graphics/title_screen/kyogre_dark.pal b/graphics/title_screen/kyogre_dark.pal
index 05e7c5270..05e7c5270 100755..100644
--- a/graphics/title_screen/kyogre_dark.pal
+++ b/graphics/title_screen/kyogre_dark.pal
diff --git a/graphics/title_screen/kyogre_glow.pal b/graphics/title_screen/kyogre_glow.pal
index 85c483666..85c483666 100755..100644
--- a/graphics/title_screen/kyogre_glow.pal
+++ b/graphics/title_screen/kyogre_glow.pal
diff --git a/graphics/title_screen/logo_ruby.pal b/graphics/title_screen/logo_ruby.pal
index ea9820a4a..ea9820a4a 100755..100644
--- a/graphics/title_screen/logo_ruby.pal
+++ b/graphics/title_screen/logo_ruby.pal
diff --git a/graphics/title_screen/logo_sapphire.pal b/graphics/title_screen/logo_sapphire.pal
index e733c6d2c..e733c6d2c 100755..100644
--- a/graphics/title_screen/logo_sapphire.pal
+++ b/graphics/title_screen/logo_sapphire.pal
diff --git a/graphics/title_screen/pokemon_ruby.png b/graphics/title_screen/pokemon_ruby.png
index 7d141ad67..7d141ad67 100755..100644
--- a/graphics/title_screen/pokemon_ruby.png
+++ b/graphics/title_screen/pokemon_ruby.png
Binary files differ
diff --git a/graphics/title_screen/pokemon_sapphire.png b/graphics/title_screen/pokemon_sapphire.png
index 9363289df..9363289df 100755..100644
--- a/graphics/title_screen/pokemon_sapphire.png
+++ b/graphics/title_screen/pokemon_sapphire.png
Binary files differ
diff --git a/graphics/title_screen/rubyversion.png b/graphics/title_screen/rubyversion.png
index d12eb7bfa..d12eb7bfa 100755..100644
--- a/graphics/title_screen/rubyversion.png
+++ b/graphics/title_screen/rubyversion.png
Binary files differ
diff --git a/graphics/title_screen/sapphireversion.png b/graphics/title_screen/sapphireversion.png
index 53b494d5e..53b494d5e 100755..100644
--- a/graphics/title_screen/sapphireversion.png
+++ b/graphics/title_screen/sapphireversion.png
Binary files differ
diff --git a/graphics/trade/cable_end.png b/graphics/trade/cable_end.png
index 1d7828a00..1d7828a00 100755..100644
--- a/graphics/trade/cable_end.png
+++ b/graphics/trade/cable_end.png
Binary files differ
diff --git a/graphics/trade/gba.pal b/graphics/trade/gba.pal
index 64a442293..64a442293 100755..100644
--- a/graphics/trade/gba.pal
+++ b/graphics/trade/gba.pal
diff --git a/graphics/trade/gba.png b/graphics/trade/gba.png
index 61ce32b4f..61ce32b4f 100755..100644
--- a/graphics/trade/gba.png
+++ b/graphics/trade/gba.png
Binary files differ
diff --git a/graphics/trade/gba_screen.png b/graphics/trade/gba_screen.png
index 4220e5e0d..4220e5e0d 100755..100644
--- a/graphics/trade/gba_screen.png
+++ b/graphics/trade/gba_screen.png
Binary files differ
diff --git a/graphics/trade/glow1.png b/graphics/trade/glow1.png
index e223d97ce..e223d97ce 100755..100644
--- a/graphics/trade/glow1.png
+++ b/graphics/trade/glow1.png
Binary files differ
diff --git a/graphics/trade/glow2.png b/graphics/trade/glow2.png
index e7729bc84..e7729bc84 100755..100644
--- a/graphics/trade/glow2.png
+++ b/graphics/trade/glow2.png
Binary files differ
diff --git a/graphics/trade/misc.pal b/graphics/trade/misc.pal
index 32fafddfc..32fafddfc 100755..100644
--- a/graphics/trade/misc.pal
+++ b/graphics/trade/misc.pal
diff --git a/graphics/trade/shadow.pal b/graphics/trade/shadow.pal
index a4bec6478..a4bec6478 100755..100644
--- a/graphics/trade/shadow.pal
+++ b/graphics/trade/shadow.pal
diff --git a/graphics/trade/shadow.png b/graphics/trade/shadow.png
index 109979f90..109979f90 100755..100644
--- a/graphics/trade/shadow.png
+++ b/graphics/trade/shadow.png
Binary files differ
diff --git a/graphics/types/bug.png b/graphics/types/bug.png
index c11629b21..c11629b21 100755..100644
--- a/graphics/types/bug.png
+++ b/graphics/types/bug.png
Binary files differ
diff --git a/graphics/types/contest_beauty.png b/graphics/types/contest_beauty.png
index b52fe3ca4..b52fe3ca4 100755..100644
--- a/graphics/types/contest_beauty.png
+++ b/graphics/types/contest_beauty.png
Binary files differ
diff --git a/graphics/types/contest_cool.png b/graphics/types/contest_cool.png
index 813e91f80..813e91f80 100755..100644
--- a/graphics/types/contest_cool.png
+++ b/graphics/types/contest_cool.png
Binary files differ
diff --git a/graphics/types/contest_cute.png b/graphics/types/contest_cute.png
index ece852a9d..ece852a9d 100755..100644
--- a/graphics/types/contest_cute.png
+++ b/graphics/types/contest_cute.png
Binary files differ
diff --git a/graphics/types/contest_smart.png b/graphics/types/contest_smart.png
index 8e0d903f1..8e0d903f1 100755..100644
--- a/graphics/types/contest_smart.png
+++ b/graphics/types/contest_smart.png
Binary files differ
diff --git a/graphics/types/contest_tough.png b/graphics/types/contest_tough.png
index a76e9cba4..a76e9cba4 100755..100644
--- a/graphics/types/contest_tough.png
+++ b/graphics/types/contest_tough.png
Binary files differ
diff --git a/graphics/types/dark.png b/graphics/types/dark.png
index 3380297da..3380297da 100755..100644
--- a/graphics/types/dark.png
+++ b/graphics/types/dark.png
Binary files differ
diff --git a/graphics/types/dragon.png b/graphics/types/dragon.png
index 908073260..908073260 100755..100644
--- a/graphics/types/dragon.png
+++ b/graphics/types/dragon.png
Binary files differ
diff --git a/graphics/types/electric.png b/graphics/types/electric.png
index 84db710b6..84db710b6 100755..100644
--- a/graphics/types/electric.png
+++ b/graphics/types/electric.png
Binary files differ
diff --git a/graphics/types/fight.png b/graphics/types/fight.png
index 6431c9bba..6431c9bba 100755..100644
--- a/graphics/types/fight.png
+++ b/graphics/types/fight.png
Binary files differ
diff --git a/graphics/types/fire.png b/graphics/types/fire.png
index f6db950c8..f6db950c8 100755..100644
--- a/graphics/types/fire.png
+++ b/graphics/types/fire.png
Binary files differ
diff --git a/graphics/types/flying.png b/graphics/types/flying.png
index 144d0010b..144d0010b 100755..100644
--- a/graphics/types/flying.png
+++ b/graphics/types/flying.png
Binary files differ
diff --git a/graphics/types/ghost.png b/graphics/types/ghost.png
index 5820fe93a..5820fe93a 100755..100644
--- a/graphics/types/ghost.png
+++ b/graphics/types/ghost.png
Binary files differ
diff --git a/graphics/types/grass.png b/graphics/types/grass.png
index 6d3e870ca..6d3e870ca 100755..100644
--- a/graphics/types/grass.png
+++ b/graphics/types/grass.png
Binary files differ
diff --git a/graphics/types/ground.png b/graphics/types/ground.png
index 2872b1367..2872b1367 100755..100644
--- a/graphics/types/ground.png
+++ b/graphics/types/ground.png
Binary files differ
diff --git a/graphics/types/ice.png b/graphics/types/ice.png
index a611d1f4a..a611d1f4a 100755..100644
--- a/graphics/types/ice.png
+++ b/graphics/types/ice.png
Binary files differ
diff --git a/graphics/types/move_types_1.pal b/graphics/types/move_types_1.pal
index 951aa69cb..951aa69cb 100755..100644
--- a/graphics/types/move_types_1.pal
+++ b/graphics/types/move_types_1.pal
diff --git a/graphics/types/move_types_2.pal b/graphics/types/move_types_2.pal
index 08dcea47c..08dcea47c 100755..100644
--- a/graphics/types/move_types_2.pal
+++ b/graphics/types/move_types_2.pal
diff --git a/graphics/types/move_types_3.pal b/graphics/types/move_types_3.pal
index 4db37235b..4db37235b 100755..100644
--- a/graphics/types/move_types_3.pal
+++ b/graphics/types/move_types_3.pal
diff --git a/graphics/types/mystery.png b/graphics/types/mystery.png
index a2ea01d55..a2ea01d55 100755..100644
--- a/graphics/types/mystery.png
+++ b/graphics/types/mystery.png
Binary files differ
diff --git a/graphics/types/normal.png b/graphics/types/normal.png
index 608a1f9c9..608a1f9c9 100755..100644
--- a/graphics/types/normal.png
+++ b/graphics/types/normal.png
Binary files differ
diff --git a/graphics/types/poison.png b/graphics/types/poison.png
index 2fab1ad53..2fab1ad53 100755..100644
--- a/graphics/types/poison.png
+++ b/graphics/types/poison.png
Binary files differ
diff --git a/graphics/types/psychic.png b/graphics/types/psychic.png
index 98f70406e..98f70406e 100755..100644
--- a/graphics/types/psychic.png
+++ b/graphics/types/psychic.png
Binary files differ
diff --git a/graphics/types/rock.png b/graphics/types/rock.png
index e95b2a8ef..e95b2a8ef 100755..100644
--- a/graphics/types/rock.png
+++ b/graphics/types/rock.png
Binary files differ
diff --git a/graphics/types/steel.png b/graphics/types/steel.png
index b952031fd..b952031fd 100755..100644
--- a/graphics/types/steel.png
+++ b/graphics/types/steel.png
Binary files differ
diff --git a/graphics/types/water.png b/graphics/types/water.png
index 19ae3ebe3..19ae3ebe3 100755..100644
--- a/graphics/types/water.png
+++ b/graphics/types/water.png
Binary files differ
diff --git a/graphics/unknown/ball.pal b/graphics/unknown/ball.pal
index b4e7ac7ca..b4e7ac7ca 100755..100644
--- a/graphics/unknown/ball.pal
+++ b/graphics/unknown/ball.pal
diff --git a/graphics/unknown/ball.png b/graphics/unknown/ball.png
index 9932b916d..9932b916d 100755..100644
--- a/graphics/unknown/ball.png
+++ b/graphics/unknown/ball.png
Binary files differ
diff --git a/graphics/unknown/unknown_3E3BE0.png b/graphics/unknown/unknown_3E3BE0.png
index 98c067833..98c067833 100755..100644
--- a/graphics/unknown/unknown_3E3BE0.png
+++ b/graphics/unknown/unknown_3E3BE0.png
Binary files differ
diff --git a/graphics/unknown/unknown_D04388.png b/graphics/unknown/unknown_D04388.png
index 0b2ae80f9..0b2ae80f9 100755..100644
--- a/graphics/unknown/unknown_D04388.png
+++ b/graphics/unknown/unknown_D04388.png
Binary files differ
diff --git a/graphics/unknown/unknown_D07B68.pal b/graphics/unknown/unknown_D07B68.pal
index ca77648e6..ca77648e6 100755..100644
--- a/graphics/unknown/unknown_D07B68.pal
+++ b/graphics/unknown/unknown_D07B68.pal
diff --git a/graphics/unknown/unknown_D07B68.png b/graphics/unknown/unknown_D07B68.png
index d36afa64d..d36afa64d 100755..100644
--- a/graphics/unknown/unknown_D07B68.png
+++ b/graphics/unknown/unknown_D07B68.png
Binary files differ
diff --git a/graphics/unknown/unknown_D07B68_2.pal b/graphics/unknown/unknown_D07B68_2.pal
index 44f4b55d6..44f4b55d6 100755..100644
--- a/graphics/unknown/unknown_D07B68_2.pal
+++ b/graphics/unknown/unknown_D07B68_2.pal
diff --git a/graphics/unknown/unknown_D0CFAC.bin b/graphics/unknown/unknown_D0CFAC.bin
index 4b6b2b106..4b6b2b106 100755..100644
--- a/graphics/unknown/unknown_D0CFAC.bin
+++ b/graphics/unknown/unknown_D0CFAC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0CFD0.bin b/graphics/unknown/unknown_D0CFD0.bin
index 25fc33a73..25fc33a73 100755..100644
--- a/graphics/unknown/unknown_D0CFD0.bin
+++ b/graphics/unknown/unknown_D0CFD0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0CFF4.bin b/graphics/unknown/unknown_D0CFF4.bin
index 5b81e0216..5b81e0216 100755..100644
--- a/graphics/unknown/unknown_D0CFF4.bin
+++ b/graphics/unknown/unknown_D0CFF4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0D070.bin b/graphics/unknown/unknown_D0D070.bin
index 15379a9ce..15379a9ce 100755..100644
--- a/graphics/unknown/unknown_D0D070.bin
+++ b/graphics/unknown/unknown_D0D070.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D0D2B4.bin b/graphics/unknown/unknown_D0D2B4.bin
index d42729b58..d42729b58 100755..100644
--- a/graphics/unknown/unknown_D0D2B4.bin
+++ b/graphics/unknown/unknown_D0D2B4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D12FEC.png b/graphics/unknown/unknown_D12FEC.png
index 96c49a992..96c49a992 100755..100644
--- a/graphics/unknown/unknown_D12FEC.png
+++ b/graphics/unknown/unknown_D12FEC.png
Binary files differ
diff --git a/graphics/unknown/unknown_D1300C.png b/graphics/unknown/unknown_D1300C.png
index 0c077dd0b..0c077dd0b 100755..100644
--- a/graphics/unknown/unknown_D1300C.png
+++ b/graphics/unknown/unknown_D1300C.png
Binary files differ
diff --git a/graphics/unknown/unknown_D15D64.bin b/graphics/unknown/unknown_D15D64.bin
index 40de9e529..40de9e529 100755..100644
--- a/graphics/unknown/unknown_D15D64.bin
+++ b/graphics/unknown/unknown_D15D64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17424.bin b/graphics/unknown/unknown_D17424.bin
index ce20ff15a..ce20ff15a 100755..100644
--- a/graphics/unknown/unknown_D17424.bin
+++ b/graphics/unknown/unknown_D17424.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D176CC.bin b/graphics/unknown/unknown_D176CC.bin
index b2567ca7c..b2567ca7c 100755..100644
--- a/graphics/unknown/unknown_D176CC.bin
+++ b/graphics/unknown/unknown_D176CC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D177D8.bin b/graphics/unknown/unknown_D177D8.bin
index e8a506838..e8a506838 100755..100644
--- a/graphics/unknown/unknown_D177D8.bin
+++ b/graphics/unknown/unknown_D177D8.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D17C3C.bin b/graphics/unknown/unknown_D17C3C.bin
index 77e35348a..77e35348a 100755..100644
--- a/graphics/unknown/unknown_D17C3C.bin
+++ b/graphics/unknown/unknown_D17C3C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D1C060.bin b/graphics/unknown/unknown_D1C060.bin
index e4776cba4..e4776cba4 100755..100644
--- a/graphics/unknown/unknown_D1C060.bin
+++ b/graphics/unknown/unknown_D1C060.bin
Binary files differ
diff --git a/graphics/unknown/unknown_D1C060.pal b/graphics/unknown/unknown_D1C060.pal
index 0b2590f44..0b2590f44 100755..100644
--- a/graphics/unknown/unknown_D1C060.pal
+++ b/graphics/unknown/unknown_D1C060.pal
diff --git a/graphics/unknown/unknown_D1C060.png b/graphics/unknown/unknown_D1C060.png
index 2371241d7..2371241d7 100755..100644
--- a/graphics/unknown/unknown_D1C060.png
+++ b/graphics/unknown/unknown_D1C060.png
Binary files differ
diff --git a/graphics/unknown/unknown_E6BC04.bin b/graphics/unknown/unknown_E6BC04.bin
index 91230cb01..91230cb01 100755..100644
--- a/graphics/unknown/unknown_E6BC04.bin
+++ b/graphics/unknown/unknown_E6BC04.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E70968.bin b/graphics/unknown/unknown_E70968.bin
index d48de1d6f..d48de1d6f 100755..100644
--- a/graphics/unknown/unknown_E70968.bin
+++ b/graphics/unknown/unknown_E70968.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E70C38.bin b/graphics/unknown/unknown_E70C38.bin
index 6a6f7c049..6a6f7c049 100755..100644
--- a/graphics/unknown/unknown_E70C38.bin
+++ b/graphics/unknown/unknown_E70C38.bin
diff --git a/graphics/unknown/unknown_E70F0C.bin b/graphics/unknown/unknown_E70F0C.bin
index 6312b8645..6312b8645 100755..100644
--- a/graphics/unknown/unknown_E70F0C.bin
+++ b/graphics/unknown/unknown_E70F0C.bin
diff --git a/graphics/unknown/unknown_E8096C.png b/graphics/unknown/unknown_E8096C.png
index 92fe2da3a..92fe2da3a 100755..100644
--- a/graphics/unknown/unknown_E8096C.png
+++ b/graphics/unknown/unknown_E8096C.png
Binary files differ
diff --git a/graphics/unknown/unknown_E953D0.bin b/graphics/unknown/unknown_E953D0.bin
index 1c4ec2567..1c4ec2567 100755..100644
--- a/graphics/unknown/unknown_E953D0.bin
+++ b/graphics/unknown/unknown_E953D0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E966B8.pal b/graphics/unknown/unknown_E966B8.pal
index c4fbe6b86..c4fbe6b86 100755..100644
--- a/graphics/unknown/unknown_E966B8.pal
+++ b/graphics/unknown/unknown_E966B8.pal
diff --git a/graphics/unknown/unknown_E96738.bin b/graphics/unknown/unknown_E96738.bin
index 154db8924..154db8924 100755..100644
--- a/graphics/unknown/unknown_E96738.bin
+++ b/graphics/unknown/unknown_E96738.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E96D2C.bin b/graphics/unknown/unknown_E96D2C.bin
index 83bf29bec..83bf29bec 100755..100644
--- a/graphics/unknown/unknown_E96D2C.bin
+++ b/graphics/unknown/unknown_E96D2C.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E997E8.pal b/graphics/unknown/unknown_E997E8.pal
index 34ce0e2a5..34ce0e2a5 100755..100644
--- a/graphics/unknown/unknown_E997E8.pal
+++ b/graphics/unknown/unknown_E997E8.pal
diff --git a/graphics/unknown/unknown_E99FB0.bin b/graphics/unknown/unknown_E99FB0.bin
index 4ad21c463..4ad21c463 100755..100644
--- a/graphics/unknown/unknown_E99FB0.bin
+++ b/graphics/unknown/unknown_E99FB0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9AB40.pal b/graphics/unknown/unknown_E9AB40.pal
index 086bdf503..086bdf503 100755..100644
--- a/graphics/unknown/unknown_E9AB40.pal
+++ b/graphics/unknown/unknown_E9AB40.pal
diff --git a/graphics/unknown/unknown_E9AB60.bin b/graphics/unknown/unknown_E9AB60.bin
index 713dadb65..713dadb65 100755..100644
--- a/graphics/unknown/unknown_E9AB60.bin
+++ b/graphics/unknown/unknown_E9AB60.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9C6DC.bin b/graphics/unknown/unknown_E9C6DC.bin
index a9d1e28fb..a9d1e28fb 100755..100644
--- a/graphics/unknown/unknown_E9C6DC.bin
+++ b/graphics/unknown/unknown_E9C6DC.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F7E4.bin b/graphics/unknown/unknown_E9F7E4.bin
index 0e6b7e775..0e6b7e775 100755..100644
--- a/graphics/unknown/unknown_E9F7E4.bin
+++ b/graphics/unknown/unknown_E9F7E4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9F988.pal b/graphics/unknown/unknown_E9F988.pal
index 17cd7b267..17cd7b267 100755..100644
--- a/graphics/unknown/unknown_E9F988.pal
+++ b/graphics/unknown/unknown_E9F988.pal
diff --git a/graphics/unknown/unknown_E9F9E8.pal b/graphics/unknown/unknown_E9F9E8.pal
index 6a3616159..6a3616159 100755..100644
--- a/graphics/unknown/unknown_E9F9E8.pal
+++ b/graphics/unknown/unknown_E9F9E8.pal
diff --git a/graphics/unknown/unknown_E9FBA0.bin b/graphics/unknown/unknown_E9FBA0.bin
index 74a7dc73a..74a7dc73a 100755..100644
--- a/graphics/unknown/unknown_E9FBA0.bin
+++ b/graphics/unknown/unknown_E9FBA0.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FC64.bin b/graphics/unknown/unknown_E9FC64.bin
index 0864924dc..0864924dc 100755..100644
--- a/graphics/unknown/unknown_E9FC64.bin
+++ b/graphics/unknown/unknown_E9FC64.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FEB4.bin b/graphics/unknown/unknown_E9FEB4.bin
index 75581f46e..75581f46e 100755..100644
--- a/graphics/unknown/unknown_E9FEB4.bin
+++ b/graphics/unknown/unknown_E9FEB4.bin
Binary files differ
diff --git a/graphics/unknown/unknown_E9FF58.bin b/graphics/unknown/unknown_E9FF58.bin
index d9dc0b3b8..d9dc0b3b8 100755..100644
--- a/graphics/unknown/unknown_E9FF58.bin
+++ b/graphics/unknown/unknown_E9FF58.bin
Binary files differ
diff --git a/graphics/unused/basic_frame.bin b/graphics/unused/basic_frame.bin
index 8e83eb9f5..8e83eb9f5 100755..100644
--- a/graphics/unused/basic_frame.bin
+++ b/graphics/unused/basic_frame.bin
Binary files differ
diff --git a/graphics/unused/basic_frame.pal b/graphics/unused/basic_frame.pal
index 70ff9b632..70ff9b632 100755..100644
--- a/graphics/unused/basic_frame.pal
+++ b/graphics/unused/basic_frame.pal
diff --git a/graphics/unused/basic_frame.png b/graphics/unused/basic_frame.png
index 132671581..132671581 100755..100644
--- a/graphics/unused/basic_frame.png
+++ b/graphics/unused/basic_frame.png
Binary files differ
diff --git a/graphics/unused/battle_anim_023.pal b/graphics/unused/battle_anim_023.pal
index 8e6e6e902..8e6e6e902 100755..100644
--- a/graphics/unused/battle_anim_023.pal
+++ b/graphics/unused/battle_anim_023.pal
diff --git a/graphics/unused/blank_frame.bin b/graphics/unused/blank_frame.bin
index e9784eb4c..e9784eb4c 100755..100644
--- a/graphics/unused/blank_frame.bin
+++ b/graphics/unused/blank_frame.bin
Binary files differ
diff --git a/graphics/unused/blue_frame.bin b/graphics/unused/blue_frame.bin
index d5c3b6600..d5c3b6600 100755..100644
--- a/graphics/unused/blue_frame.bin
+++ b/graphics/unused/blue_frame.bin
Binary files differ
diff --git a/graphics/unused/color_frames.pal b/graphics/unused/color_frames.pal
index 56bf2a29c..56bf2a29c 100755..100644
--- a/graphics/unused/color_frames.pal
+++ b/graphics/unused/color_frames.pal
diff --git a/graphics/unused/color_frames.png b/graphics/unused/color_frames.png
index 9270879eb..9270879eb 100755..100644
--- a/graphics/unused/color_frames.png
+++ b/graphics/unused/color_frames.png
Binary files differ
diff --git a/graphics/unused/goosuto.bin b/graphics/unused/goosuto.bin
index 8e5329157..8e5329157 100755..100644
--- a/graphics/unused/goosuto.bin
+++ b/graphics/unused/goosuto.bin
Binary files differ
diff --git a/graphics/unused/goosuto.pal b/graphics/unused/goosuto.pal
index 4315453b8..4315453b8 100755..100644
--- a/graphics/unused/goosuto.pal
+++ b/graphics/unused/goosuto.pal
diff --git a/graphics/unused/goosuto.png b/graphics/unused/goosuto.png
index 257a25c71..257a25c71 100755..100644
--- a/graphics/unused/goosuto.png
+++ b/graphics/unused/goosuto.png
Binary files differ
diff --git a/graphics/unused/green_frame.bin b/graphics/unused/green_frame.bin
index b381235d9..b381235d9 100755..100644
--- a/graphics/unused/green_frame.bin
+++ b/graphics/unused/green_frame.bin
Binary files differ
diff --git a/graphics/unused/line_sketch.pal b/graphics/unused/line_sketch.pal
index dc1d51763..dc1d51763 100755..100644
--- a/graphics/unused/line_sketch.pal
+++ b/graphics/unused/line_sketch.pal
diff --git a/graphics/unused/line_sketch.png b/graphics/unused/line_sketch.png
index fdfc8d771..fdfc8d771 100755..100644
--- a/graphics/unused/line_sketch.png
+++ b/graphics/unused/line_sketch.png
Binary files differ
diff --git a/graphics/unused/line_sketch_2.bin b/graphics/unused/line_sketch_2.bin
index e68d116a3..e68d116a3 100755..100644
--- a/graphics/unused/line_sketch_2.bin
+++ b/graphics/unused/line_sketch_2.bin
Binary files differ
diff --git a/graphics/unused/line_sketch_2.png b/graphics/unused/line_sketch_2.png
index cb70b3d83..cb70b3d83 100755..100644
--- a/graphics/unused/line_sketch_2.png
+++ b/graphics/unused/line_sketch_2.png
Binary files differ
diff --git a/graphics/unused/metronome_hand_small.png b/graphics/unused/metronome_hand_small.png
index bd6cc8530..bd6cc8530 100755..100644
--- a/graphics/unused/metronome_hand_small.png
+++ b/graphics/unused/metronome_hand_small.png
Binary files differ
diff --git a/graphics/unused/music_notes.png b/graphics/unused/music_notes.png
index af89e55a0..af89e55a0 100755..100644
--- a/graphics/unused/music_notes.png
+++ b/graphics/unused/music_notes.png
Binary files differ
diff --git a/graphics/unused/numbers.pal b/graphics/unused/numbers.pal
index 3955aa77a..3955aa77a 100755..100644
--- a/graphics/unused/numbers.pal
+++ b/graphics/unused/numbers.pal
diff --git a/graphics/unused/numbers.png b/graphics/unused/numbers.png
index 2c816c426..2c816c426 100755..100644
--- a/graphics/unused/numbers.png
+++ b/graphics/unused/numbers.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_1.png b/graphics/unused/old_battle_interface_1.png
index 0b2fe5eb7..0b2fe5eb7 100755..100644
--- a/graphics/unused/old_battle_interface_1.png
+++ b/graphics/unused/old_battle_interface_1.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_2.png b/graphics/unused/old_battle_interface_2.png
index 04229ccda..04229ccda 100755..100644
--- a/graphics/unused/old_battle_interface_2.png
+++ b/graphics/unused/old_battle_interface_2.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_3.png b/graphics/unused/old_battle_interface_3.png
index 428c7765d..428c7765d 100755..100644
--- a/graphics/unused/old_battle_interface_3.png
+++ b/graphics/unused/old_battle_interface_3.png
Binary files differ
diff --git a/graphics/unused/old_battle_interface_tilemap.bin b/graphics/unused/old_battle_interface_tilemap.bin
index aae3307e7..aae3307e7 100755..100644
--- a/graphics/unused/old_battle_interface_tilemap.bin
+++ b/graphics/unused/old_battle_interface_tilemap.bin
Binary files differ
diff --git a/graphics/unused/old_beatup.pal b/graphics/unused/old_beatup.pal
index 31c43515e..31c43515e 100755..100644
--- a/graphics/unused/old_beatup.pal
+++ b/graphics/unused/old_beatup.pal
diff --git a/graphics/unused/old_beatup.png b/graphics/unused/old_beatup.png
index e2a0561e2..e2a0561e2 100755..100644
--- a/graphics/unused/old_beatup.png
+++ b/graphics/unused/old_beatup.png
Binary files differ
diff --git a/graphics/unused/old_bulbasaur.png b/graphics/unused/old_bulbasaur.png
index 729ebe789..729ebe789 100755..100644
--- a/graphics/unused/old_bulbasaur.png
+++ b/graphics/unused/old_bulbasaur.png
Binary files differ
diff --git a/graphics/unused/old_bulbasaur2.png b/graphics/unused/old_bulbasaur2.png
index f374e5a9f..f374e5a9f 100755..100644
--- a/graphics/unused/old_bulbasaur2.png
+++ b/graphics/unused/old_bulbasaur2.png
Binary files differ
diff --git a/graphics/unused/old_charizard.png b/graphics/unused/old_charizard.png
index e1470aada..e1470aada 100755..100644
--- a/graphics/unused/old_charizard.png
+++ b/graphics/unused/old_charizard.png
Binary files differ
diff --git a/graphics/unused/old_charmap.bin b/graphics/unused/old_charmap.bin
index aa15ea36e..aa15ea36e 100755..100644
--- a/graphics/unused/old_charmap.bin
+++ b/graphics/unused/old_charmap.bin
Binary files differ
diff --git a/graphics/unused/old_charmap.pal b/graphics/unused/old_charmap.pal
index cbcd5de4d..cbcd5de4d 100755..100644
--- a/graphics/unused/old_charmap.pal
+++ b/graphics/unused/old_charmap.pal
diff --git a/graphics/unused/old_charmap.png b/graphics/unused/old_charmap.png
index b5ea6e803..b5ea6e803 100755..100644
--- a/graphics/unused/old_charmap.png
+++ b/graphics/unused/old_charmap.png
Binary files differ
diff --git a/graphics/unused/old_contest.bin b/graphics/unused/old_contest.bin
index da6f4652e..da6f4652e 100755..100644
--- a/graphics/unused/old_contest.bin
+++ b/graphics/unused/old_contest.bin
Binary files differ
diff --git a/graphics/unused/old_contest.pal b/graphics/unused/old_contest.pal
index 69fde2000..69fde2000 100755..100644
--- a/graphics/unused/old_contest.pal
+++ b/graphics/unused/old_contest.pal
diff --git a/graphics/unused/old_contest_2.bin b/graphics/unused/old_contest_2.bin
index 06836cc19..06836cc19 100755..100644
--- a/graphics/unused/old_contest_2.bin
+++ b/graphics/unused/old_contest_2.bin
Binary files differ
diff --git a/graphics/unused/old_contest_2.pal b/graphics/unused/old_contest_2.pal
index 3fb174790..3fb174790 100755..100644
--- a/graphics/unused/old_contest_2.pal
+++ b/graphics/unused/old_contest_2.pal
diff --git a/graphics/unused/old_contest_2_1.png b/graphics/unused/old_contest_2_1.png
index 67b81de2d..67b81de2d 100755..100644
--- a/graphics/unused/old_contest_2_1.png
+++ b/graphics/unused/old_contest_2_1.png
Binary files differ
diff --git a/graphics/unused/old_contest_2_2.png b/graphics/unused/old_contest_2_2.png
index a33a8c324..a33a8c324 100755..100644
--- a/graphics/unused/old_contest_2_2.png
+++ b/graphics/unused/old_contest_2_2.png
Binary files differ
diff --git a/graphics/unused/old_contest_classes.png b/graphics/unused/old_contest_classes.png
index c2e7b5e29..c2e7b5e29 100755..100644
--- a/graphics/unused/old_contest_classes.png
+++ b/graphics/unused/old_contest_classes.png
Binary files differ
diff --git a/graphics/unused/old_contest_floor.png b/graphics/unused/old_contest_floor.png
index 94877b921..94877b921 100755..100644
--- a/graphics/unused/old_contest_floor.png
+++ b/graphics/unused/old_contest_floor.png
Binary files differ
diff --git a/graphics/unused/old_contest_frame_1.png b/graphics/unused/old_contest_frame_1.png
index 28eaae905..28eaae905 100755..100644
--- a/graphics/unused/old_contest_frame_1.png
+++ b/graphics/unused/old_contest_frame_1.png
Binary files differ
diff --git a/graphics/unused/old_contest_frame_2.png b/graphics/unused/old_contest_frame_2.png
index c8b20408c..c8b20408c 100755..100644
--- a/graphics/unused/old_contest_frame_2.png
+++ b/graphics/unused/old_contest_frame_2.png
Binary files differ
diff --git a/graphics/unused/old_contest_meter.png b/graphics/unused/old_contest_meter.png
index 606208b1f..606208b1f 100755..100644
--- a/graphics/unused/old_contest_meter.png
+++ b/graphics/unused/old_contest_meter.png
Binary files differ
diff --git a/graphics/unused/old_contest_numbers.png b/graphics/unused/old_contest_numbers.png
index 98c145976..98c145976 100755..100644
--- a/graphics/unused/old_contest_numbers.png
+++ b/graphics/unused/old_contest_numbers.png
Binary files differ
diff --git a/graphics/unused/old_contest_symbols.png b/graphics/unused/old_contest_symbols.png
index 87cac733e..87cac733e 100755..100644
--- a/graphics/unused/old_contest_symbols.png
+++ b/graphics/unused/old_contest_symbols.png
Binary files differ
diff --git a/graphics/unused/old_pal1.pal b/graphics/unused/old_pal1.pal
index 1e2ef9083..1e2ef9083 100755..100644
--- a/graphics/unused/old_pal1.pal
+++ b/graphics/unused/old_pal1.pal
diff --git a/graphics/unused/old_pal2.pal b/graphics/unused/old_pal2.pal
index 3c5e6ad7f..3c5e6ad7f 100755..100644
--- a/graphics/unused/old_pal2.pal
+++ b/graphics/unused/old_pal2.pal
diff --git a/graphics/unused/old_pal3.pal b/graphics/unused/old_pal3.pal
index d07e21019..d07e21019 100755..100644
--- a/graphics/unused/old_pal3.pal
+++ b/graphics/unused/old_pal3.pal
diff --git a/graphics/unused/old_pal4.pal b/graphics/unused/old_pal4.pal
index 60b814f75..60b814f75 100755..100644
--- a/graphics/unused/old_pal4.pal
+++ b/graphics/unused/old_pal4.pal
diff --git a/graphics/unused/old_pal5.pal b/graphics/unused/old_pal5.pal
index b6f481d46..b6f481d46 100755..100644
--- a/graphics/unused/old_pal5.pal
+++ b/graphics/unused/old_pal5.pal
diff --git a/graphics/unused/old_pal6.pal b/graphics/unused/old_pal6.pal
index 6d91e9918..6d91e9918 100755..100644
--- a/graphics/unused/old_pal6.pal
+++ b/graphics/unused/old_pal6.pal
diff --git a/graphics/unused/old_pal7.pal b/graphics/unused/old_pal7.pal
index d380bc65d..d380bc65d 100755..100644
--- a/graphics/unused/old_pal7.pal
+++ b/graphics/unused/old_pal7.pal
diff --git a/graphics/unused/red_frame.bin b/graphics/unused/red_frame.bin
index 5090b1b84..5090b1b84 100755..100644
--- a/graphics/unused/red_frame.bin
+++ b/graphics/unused/red_frame.bin
Binary files differ
diff --git a/graphics/unused/shadow.pal b/graphics/unused/shadow.pal
index 72d9b7406..72d9b7406 100755..100644
--- a/graphics/unused/shadow.pal
+++ b/graphics/unused/shadow.pal
diff --git a/graphics/unused/shadow.png b/graphics/unused/shadow.png
index 7d090ad3d..7d090ad3d 100755..100644
--- a/graphics/unused/shadow.png
+++ b/graphics/unused/shadow.png
Binary files differ
diff --git a/graphics/unused/water_splash.bin b/graphics/unused/water_splash.bin
index 059347fa7..059347fa7 100755..100644
--- a/graphics/unused/water_splash.bin
+++ b/graphics/unused/water_splash.bin
Binary files differ
diff --git a/graphics/unused/water_splash.pal b/graphics/unused/water_splash.pal
index ada1391df..ada1391df 100755..100644
--- a/graphics/unused/water_splash.pal
+++ b/graphics/unused/water_splash.pal
diff --git a/graphics/unused/water_splash.png b/graphics/unused/water_splash.png
index a8439a050..a8439a050 100755..100644
--- a/graphics/unused/water_splash.png
+++ b/graphics/unused/water_splash.png
Binary files differ
diff --git a/graphics/unused/yellow_frame.bin b/graphics/unused/yellow_frame.bin
index 30ba3ed01..30ba3ed01 100755..100644
--- a/graphics/unused/yellow_frame.bin
+++ b/graphics/unused/yellow_frame.bin
Binary files differ
diff --git a/graphics/weather/fog1.bin b/graphics/weather/fog1.bin
index 1f9d53f95..1f9d53f95 100755..100644
--- a/graphics/weather/fog1.bin
+++ b/graphics/weather/fog1.bin
Binary files differ
diff --git a/include/battle.h b/include/battle.h
index bd3aa4225..c57c9c238 100644..100755
--- a/include/battle.h
+++ b/include/battle.h
@@ -604,6 +604,8 @@ void dp01_build_cmdbuf_x37_a(u8 a, u8 b); //0x37
void MarkBufferBankForExecution(u8 bank);
+extern u8 gBattleTextBuff1[];
+
// asm/battle_1.o
void sub_800D6D4();
void sub_800D74C();
diff --git a/include/battle_setup.h b/include/battle_setup.h
index e88aefe6d..c8c463f6d 100644
--- a/include/battle_setup.h
+++ b/include/battle_setup.h
@@ -87,7 +87,7 @@ bool32 battle_exit_is_player_defeat(u32 a1);
//void sub_80822BC(void);
//void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data);
//void battle_80801F0(void);
-u8 *TrainerBattleConfigure(u8 *data);
+u8 *TrainerBattleConfigure(const u8 *data);
void TrainerWantsBattle(u8, u8 *);
bool32 GetTrainerFlagFromScriptPointer(u8 *data);
//void sub_8082524(void);
diff --git a/include/data/field_map_obj/anim_func_ptrs.h b/include/data/field_map_obj/anim_func_ptrs.h
index 63575727d..63575727d 100755..100644
--- a/include/data/field_map_obj/anim_func_ptrs.h
+++ b/include/data/field_map_obj/anim_func_ptrs.h
diff --git a/include/data/field_map_obj/base_oam.h b/include/data/field_map_obj/base_oam.h
index 8595f97e7..8595f97e7 100755..100644
--- a/include/data/field_map_obj/base_oam.h
+++ b/include/data/field_map_obj/base_oam.h
diff --git a/include/data/field_map_obj/berry_tree_graphics_tables.h b/include/data/field_map_obj/berry_tree_graphics_tables.h
index 53a0fd482..53a0fd482 100755..100644
--- a/include/data/field_map_obj/berry_tree_graphics_tables.h
+++ b/include/data/field_map_obj/berry_tree_graphics_tables.h
diff --git a/include/data/field_map_obj/callback_subroutine_pointers.h b/include/data/field_map_obj/callback_subroutine_pointers.h
index d24a47184..d24a47184 100755..100644
--- a/include/data/field_map_obj/callback_subroutine_pointers.h
+++ b/include/data/field_map_obj/callback_subroutine_pointers.h
diff --git a/include/data/field_map_obj/field_effect_object_template_pointers.h b/include/data/field_map_obj/field_effect_object_template_pointers.h
index 8e19747ce..8e19747ce 100755..100644
--- a/include/data/field_map_obj/field_effect_object_template_pointers.h
+++ b/include/data/field_map_obj/field_effect_object_template_pointers.h
diff --git a/include/data/field_map_obj/field_effect_objects.h b/include/data/field_map_obj/field_effect_objects.h
index dc8a38542..dc8a38542 100755..100644
--- a/include/data/field_map_obj/field_effect_objects.h
+++ b/include/data/field_map_obj/field_effect_objects.h
diff --git a/include/data/field_map_obj/map_object_anims.h b/include/data/field_map_obj/map_object_anims.h
index 0d6e299ee..0d6e299ee 100755..100644
--- a/include/data/field_map_obj/map_object_anims.h
+++ b/include/data/field_map_obj/map_object_anims.h
diff --git a/include/data/field_map_obj/map_object_graphics_info.h b/include/data/field_map_obj/map_object_graphics_info.h
index 818c5b90c..818c5b90c 100755..100644
--- a/include/data/field_map_obj/map_object_graphics_info.h
+++ b/include/data/field_map_obj/map_object_graphics_info.h
diff --git a/include/data/field_map_obj/map_object_graphics_info_pointers.h b/include/data/field_map_obj/map_object_graphics_info_pointers.h
index c36827709..c36827709 100755..100644
--- a/include/data/field_map_obj/map_object_graphics_info_pointers.h
+++ b/include/data/field_map_obj/map_object_graphics_info_pointers.h
diff --git a/include/data/field_map_obj/map_object_pic_tables.h b/include/data/field_map_obj/map_object_pic_tables.h
index 37d579512..37d579512 100755..100644
--- a/include/data/field_map_obj/map_object_pic_tables.h
+++ b/include/data/field_map_obj/map_object_pic_tables.h
diff --git a/include/data/field_map_obj/map_object_subsprites.h b/include/data/field_map_obj/map_object_subsprites.h
index f928db88a..f928db88a 100755..100644
--- a/include/data/field_map_obj/map_object_subsprites.h
+++ b/include/data/field_map_obj/map_object_subsprites.h
diff --git a/include/decoration.h b/include/decoration.h
index 7a6d8ef5a..7a6d8ef5a 100644..100755
--- a/include/decoration.h
+++ b/include/decoration.h
diff --git a/include/field_effect_helpers.h b/include/field_effect_helpers.h
index a1dd53a2b..a1dd53a2b 100755..100644
--- a/include/field_effect_helpers.h
+++ b/include/field_effect_helpers.h
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 6595a51ca..6595a51ca 100755..100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
diff --git a/include/global.h b/include/global.h
index 0f5bcde6d..4d20ea4fc 100644
--- a/include/global.h
+++ b/include/global.h
@@ -115,11 +115,6 @@ enum
BAG_KEYITEMS
};
-struct TextStruct
-{
- const u8 *text;
-};
-
struct Coords16
{
s16 x;
diff --git a/include/graphics.h b/include/graphics.h
index 36b11fd0a..fb9781147 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2435,12 +2435,118 @@ extern const u8 gMonFrontPic_UnownQuestionMark[];
extern const u8 gMonBackPic_UnownQuestionMark[];
extern const u8 gMonIcon_UnownQuestionMark[];
-// src/pokeblock.c
+// data/graphics.s
+extern const u8 gBagMaleTiles[];
+extern const u8 gBagFemaleTiles[];
+extern const u8 gBagPalette[];
+extern const u8 gBagScreen_Gfx[];
+extern const u8 gBagScreenMale_Pal[];
+extern const u8 gBagScreenFemale_Pal[];
+extern const u16 gUnknown_08E77004[];
+extern const u8 gBuyMenuFrame_Gfx[];
+extern const u8 gMenuMoneyPal[];
+extern const u8 gBuyMenuFrame_Tilemap[];
+extern const u8 gMenuMoneyGfx[];
extern const u8 gMenuPokeblock_Gfx[];
-extern const u8 gMenuPokeblock_Tilemap[];
extern const u8 gMenuPokeblock_Pal[];
-
extern const u8 gMenuPokeblockDevice_Gfx[];
extern const u8 gMenuPokeblockDevice_Pal[];
+extern const u8 gMenuPokeblock_Tilemap[];
+
+extern const u8 gBerryCheck_Gfx[];
+extern const u8 gBerryCheck_Pal[];
+extern const u8 gUnknown_08E788E4[];
+extern const u8 gUnknown_08E78A84[];
+extern const u8 gBerryCheckCircle_Gfx[];
+
+// data/graphics/berries/graphics.inc
+extern const u8 gBerryPic_Cheri[];
+extern const u8 gBerryPic_Oran[];
+extern const u8 gBerryPic_Pecha[];
+extern const u8 gBerryPic_Rawst[];
+extern const u8 gBerryPic_Aspear[];
+extern const u8 gBerryPic_Leppa[];
+extern const u8 gBerryPic_Chesto[];
+extern const u8 gBerryPic_Persim[];
+extern const u8 gBerryPic_Lum[];
+extern const u8 gBerryPic_Sitrus[];
+extern const u8 gBerryPic_Figy[];
+extern const u8 gBerryPic_Wiki[];
+extern const u8 gBerryPic_Mago[];
+extern const u8 gBerryPic_Aguav[];
+extern const u8 gBerryPic_Iapapa[];
+extern const u8 gBerryPic_Razz[];
+extern const u8 gBerryPic_Bluk[];
+extern const u8 gBerryPic_Nanab[];
+extern const u8 gBerryPic_Wepear[];
+extern const u8 gBerryPic_Pinap[];
+extern const u8 gBerryPic_Pomeg[];
+extern const u8 gBerryPic_Kelpsy[];
+extern const u8 gBerryPic_Qualot[];
+extern const u8 gBerryPic_Hondew[];
+extern const u8 gBerryPic_Grepa[];
+extern const u8 gBerryPic_Tamato[];
+extern const u8 gBerryPic_Cornn[];
+extern const u8 gBerryPic_Magost[];
+extern const u8 gBerryPic_Rabuta[];
+extern const u8 gBerryPic_Nomel[];
+extern const u8 gBerryPic_Spelon[];
+extern const u8 gBerryPic_Pamtre[];
+extern const u8 gBerryPic_Watmel[];
+extern const u8 gBerryPic_Durin[];
+extern const u8 gBerryPic_Belue[];
+extern const u8 gBerryPic_Liechi[];
+extern const u8 gBerryPic_Ganlon[];
+extern const u8 gBerryPic_Salac[];
+extern const u8 gBerryPic_Petaya[];
+extern const u8 gBerryPic_Apicot[];
+extern const u8 gBerryPic_Lansat[];
+extern const u8 gBerryPic_Starf[];
+extern const u8 gBerryPic_Enigma[];
+extern const u8 gBerryPalette_Cheri[];
+extern const u8 gBerryPalette_Oran[];
+extern const u8 gBerryPalette_Pecha[];
+extern const u8 gBerryPalette_Rawst[];
+extern const u8 gBerryPalette_Aspear[];
+extern const u8 gBerryPalette_Leppa[];
+extern const u8 gBerryPalette_Chesto[];
+extern const u8 gBerryPalette_Persim[];
+extern const u8 gBerryPalette_Lum[];
+extern const u8 gBerryPalette_Sitrus[];
+extern const u8 gBerryPalette_Figy[];
+extern const u8 gBerryPalette_Wiki[];
+extern const u8 gBerryPalette_Mago[];
+extern const u8 gBerryPalette_Aguav[];
+extern const u8 gBerryPalette_Iapapa[];
+extern const u8 gBerryPalette_Razz[];
+extern const u8 gBerryPalette_Bluk[];
+extern const u8 gBerryPalette_Nanab[];
+extern const u8 gBerryPalette_Wepear[];
+extern const u8 gBerryPalette_Pinap[];
+extern const u8 gBerryPalette_Pomeg[];
+extern const u8 gBerryPalette_Kelpsy[];
+extern const u8 gBerryPalette_Qualot[];
+extern const u8 gBerryPalette_Hondew[];
+extern const u8 gBerryPalette_Grepa[];
+extern const u8 gBerryPalette_Tamato[];
+extern const u8 gBerryPalette_Cornn[];
+extern const u8 gBerryPalette_Magost[];
+extern const u8 gBerryPalette_Rabuta[];
+extern const u8 gBerryPalette_Nomel[];
+extern const u8 gBerryPalette_Spelon[];
+extern const u8 gBerryPalette_Pamtre[];
+extern const u8 gBerryPalette_Watmel[];
+extern const u8 gBerryPalette_Durin[];
+extern const u8 gBerryPalette_Belue[];
+extern const u8 gBerryPalette_Liechi[];
+extern const u8 gBerryPalette_Ganlon[];
+extern const u8 gBerryPalette_Salac[];
+extern const u8 gBerryPalette_Petaya[];
+extern const u8 gBerryPalette_Apicot[];
+extern const u8 gBerryPalette_Lansat[];
+extern const u8 gBerryPalette_Starf[];
+extern const u8 gBerryPalette_Enigma[];
+
+extern const u8 gUnknown_08E96EC8[];
#endif // GUARD_GRAPHICS_H
diff --git a/include/item.h b/include/item.h
index 47af11940..80a460caa 100644
--- a/include/item.h
+++ b/include/item.h
@@ -22,6 +22,16 @@ struct Item
u8 secondaryId;
};
+struct BagPocket
+{
+ struct ItemSlot *itemSlots;
+ u8 capacity;
+};
+
+#define NUM_BAG_POCKETS 5
+
+extern const struct BagPocket gBagPockets[NUM_BAG_POCKETS];
+
void CopyItemName(u16 itemId, u8 *string);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
@@ -41,7 +51,7 @@ u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
u8 ItemId_GetHoldEffectParam(u16 itemId);
u8 *ItemId_GetDescription(u16 itemId);
-bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
+bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
u8 ItemId_GetImportance(u16 itemId);
u8 ItemId_GetUnknownValue(u16 itemId);
u8 ItemId_GetPocket(u16 itemId);
diff --git a/include/item_menu.h b/include/item_menu.h
index 301836ac8..6950ed0ff 100644
--- a/include/item_menu.h
+++ b/include/item_menu.h
@@ -3,12 +3,12 @@
#include "string_util.h"
-void sub_80A3684(void);
+void ResetBagScrollPositions(void);
void ClearBag(void);
void sub_80A3E0C(void);
-void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32);
+void sub_80A3FA0(u16 *a, u8 b, u8 c, u8 d, u8 e, u16 f);
void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
-void sub_80A418C(u16, enum StringConvertMode, int, int, int);
+void sub_80A418C(u16 a, enum StringConvertMode b, u8 c, u8 d, u8 e);
void sub_80A53F8(void);
void HandleItemMenuPaletteFade(u8);
void sub_80A5B40(void);
@@ -19,11 +19,11 @@ void sub_80A5D04(void);
void sub_80A6300(void);
void sub_80A68CC();
void sub_80A6A30(void);
-int sub_80A6D1C(void);
+bool32 sub_80A6D1C(void);
void sub_80A6DCC(void);
void sub_80A7094(u8);
-u8 sub_80A7D8C(u8 berry, int i, int i1);
+u8 CreateBerrySprite(u8, s16, s16);
void sub_80A7DD4(void);
-u8 sub_80A7E5C(u8);
+u8 sub_80A7E5C(s16);
#endif // GUARD_ITEM_MENU_H
diff --git a/include/items.h b/include/items.h
index f3c506b43..69515f18e 100644
--- a/include/items.h
+++ b/include/items.h
@@ -1,7 +1,8 @@
#ifndef GUARD_ITEMS_H
#define GUARD_ITEMS_H
-enum {
+enum
+{
ITEM_NONE, // 0x000
ITEM_MASTER_BALL, // 0x001
ITEM_ULTRA_BALL, // 0x002
diff --git a/include/link.h b/include/link.h
index f80f2bc58..367add625 100644
--- a/include/link.h
+++ b/include/link.h
@@ -144,6 +144,7 @@ extern u8 deUnkValue2;
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
+extern bool8 gLinkOpen;
void Task_DestroySelf(u8);
void sub_8007270(u8);
diff --git a/include/menu.h b/include/menu.h
index 9b48ab79b..9b48ab79b 100644..100755
--- a/include/menu.h
+++ b/include/menu.h
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index 1df5053e7..1df5053e7 100644..100755
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
diff --git a/include/pokenav.h b/include/pokenav.h
index 70cc4135f..70cc4135f 100644..100755
--- a/include/pokenav.h
+++ b/include/pokenav.h
diff --git a/include/script.h b/include/script.h
index 5577fcb01..e35ec7608 100644
--- a/include/script.h
+++ b/include/script.h
@@ -12,8 +12,8 @@ struct ScriptContext
u8 mode;
u8 comparisonResult;
u8 (*nativePtr)(void);
- u8 *scriptPtr;
- u8 *stack[20];
+ const u8 *scriptPtr;
+ const u8 *stack[20];
ScrCmdFunc *cmdTable;
ScrCmdFunc *cmdTableEnd;
u32 data[4];
@@ -22,12 +22,12 @@ struct ScriptContext
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd);
-u8 SetupBytecodeScript(struct ScriptContext *ctx, void *ptr);
+u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
void SetupNativeScript(struct ScriptContext *ctx, void *ptr);
void StopScript(struct ScriptContext *ctx);
u8 RunScript(struct ScriptContext *ctx);
-u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr);
-u8 *ScriptPop(struct ScriptContext *ctx);
+u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
+const u8 *ScriptPop(struct ScriptContext *ctx);
void ScriptJump(struct ScriptContext *ctx, u8 *ptr);
void ScriptCall(struct ScriptContext *ctx, u8 *ptr);
void ScriptReturn(struct ScriptContext *ctx);
@@ -38,10 +38,10 @@ void ScriptContext2_Disable(void);
bool8 ScriptContext2_IsEnabled(void);
void ScriptContext1_Init(void);
bool8 ScriptContext2_RunScript(void);
-void ScriptContext1_SetupScript(u8 *ptr);
+void ScriptContext1_SetupScript(const u8 *ptr);
void ScriptContext1_Stop(void);
void EnableBothScriptContexts(void);
-void ScriptContext2_RunNewScript(u8 *ptr);
+void ScriptContext2_RunNewScript(const u8 *ptr);
u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
diff --git a/include/script_menu.h b/include/script_menu.h
index 458aad13d..cc5c442ec 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -7,7 +7,7 @@ struct MultichoiceListStruct
u8 count;
};
-extern const struct TextStruct gUnknown_083CE048[];
+extern const u8 *const gUnknown_083CE048[];
bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4);
bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
diff --git a/include/songs.h b/include/songs.h
index a813cc785..8cf7ee5e9 100644
--- a/include/songs.h
+++ b/include/songs.h
@@ -94,11 +94,11 @@ enum
SE_T_KAMI2,
SE_ELEBETA,
/*0x5A*/ SE_HINSI,
- SE_EXPMAX,
- SE_TAMAKORO,
- SE_TAMAKORO_E,
- SE_BASABASA,
- SE_REGI,
+ /*0x5B*/ SE_EXPMAX,
+ /*0x5C*/ SE_TAMAKORO,
+ /*0x5D*/ SE_TAMAKORO_E,
+ /*0x5E*/ SE_BASABASA,
+ /*0x5F*/ SE_REGI,
SE_C_GAJI,
SE_C_MAKU_U,
SE_C_MAKU_D,
diff --git a/include/sprite.h b/include/sprite.h
index a65e71bd9..733231eb5 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -19,7 +19,7 @@ struct CompressedSpriteSheet
struct SpriteFrameImage
{
- u8 *data;
+ const u8 *data;
u16 size;
};
diff --git a/include/strings.h b/include/strings.h
index 89a78e478..fe9cfc6ba 100644..100755
--- a/include/strings.h
+++ b/include/strings.h
@@ -188,7 +188,7 @@ extern const u8 OtherText_TheField[];
extern const u8 OtherText_TheField2[];
extern const u8 OtherText_ThePC[];
-extern const struct TextStruct gUnknown_0840E740[];
+extern const u8 *const gUnknown_0840E740[7];
extern const u8 gOtherText_ReturnTo[];
extern const u8 gOtherText_WhatWillYouDo2[];
diff --git a/include/text.h b/include/text.h
index cf413644b..e9e8eb8c2 100644
--- a/include/text.h
+++ b/include/text.h
@@ -9,8 +9,9 @@
#define CHAR_ELLIPSIS 0xB0
#define CHAR_MALE 0xB5
#define CHAR_FEMALE 0xB6
-#define CHAR_COMMA 0xB8
#define CHAR_CURRENCY 0xB7
+#define CHAR_COMMA 0xB8
+#define CHAR_MULT_SIGN 0xB9
#define CHAR_SLASH 0xBA
#define CHAR_A 0xBB
#define CHAR_B 0xBC
diff --git a/ld_script.txt b/ld_script.txt
index 4a4b82679..764f9379d 100755..100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -155,7 +155,7 @@ SECTIONS {
src/fldeff_cut.o(.text);
src/mail_data.o(.text);
src/map_name_popup.o(.text);
- asm/item_menu.o(.text);
+ src/item_menu.o(.text);
src/battle_anim_80A7E7C.o(.text);
src/item.o(.text);
src/matsuda_debug_menu.o(.text);
@@ -398,7 +398,7 @@ SECTIONS {
data/pokemon_icon.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
data/fldeff_cut.o(.rodata);
- data/item_menu.o(.rodata);
+ src/item_menu.o(.rodata);
data/battle_anim_80A7E7C.o(.rodata);
data/item.o(.rodata);
data/matsuda_debug_menu.o(.rodata);
diff --git a/misc.mk b/misc.mk
index 1d6cb09b0..1d6cb09b0 100755..100644
--- a/misc.mk
+++ b/misc.mk
diff --git a/src/battle_setup.c b/src/battle_setup.c
index adcbe8eaa..04674e739 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -845,17 +845,17 @@ void HandleFirstBattleEnd(void)
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
-u32 TrainerBattleLoadArg32(u8 *ptr)
+u32 TrainerBattleLoadArg32(const u8 *ptr)
{
return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
}
-u16 TrainerBattleLoadArg16(u8 *ptr)
+u16 TrainerBattleLoadArg16(const u8 *ptr)
{
return ptr[0] | (ptr[1] << 8);
}
-u8 TrainerBattleLoadArg8(u8 *ptr)
+u8 TrainerBattleLoadArg8(const u8 *ptr)
{
return ptr[0];
}
@@ -867,16 +867,16 @@ u16 trainerflag_opponent(void)
bool32 battle_exit_is_player_defeat(u32 a1)
{
- switch (a1 - 1)
+ switch (a1)
{
- case 1:
case 2:
- return TRUE;
- case 0:
case 3:
+ return TRUE;
+ case 1:
case 4:
case 5:
case 6:
+ case 7:
return FALSE;
}
return FALSE;
@@ -895,7 +895,7 @@ void sub_80822BC(void)
gTrainerBattleEndScript = 0;
}
-void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data)
+void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, const u8 *data)
{
while (1)
{
@@ -923,7 +923,7 @@ void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data)
*(u32 *)specs->ptr = 0;
break;
case 6:
- *(u8 **)specs->ptr = data;
+ *(const u8 **)specs->ptr = data;
return;
}
specs++;
@@ -939,7 +939,7 @@ void battle_80801F0(void)
}
}
-u8 *TrainerBattleConfigure(u8 *data)
+u8 *TrainerBattleConfigure(const u8 *data)
{
sub_80822BC();
gTrainerBattleMode = TrainerBattleLoadArg8(data);
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 0e81e4fec..2d8ff2236 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -131,7 +131,7 @@ static bool8 sub_8146058(void)
break;
case 8:
berry = gScriptItemId + OFFSET_7B;
- gUnknown_0203932C = sub_80A7D8C(berry, 56, 64);
+ gUnknown_0203932C = CreateBerrySprite(berry, 56, 64);
gMain.state += 1;
break;
case 9:
@@ -374,7 +374,7 @@ static void sub_81466E8(u8 taskId, s8 direction)
lsls r0, 3\n\
ldr r1, _08146748 @ =gTasks + 0x8\n\
adds r6, r0, r1\n\
- ldr r4, _0814674C @ =gUnknown_03005D10\n\
+ ldr r4, _0814674C @ =gBagPocketScrollStates\n\
movs r0, 0xC\n\
adds r0, r4\n\
mov r8, r0\n\
@@ -412,7 +412,7 @@ _08146728:\n\
b _08146766\n\
.align 2, 0\n\
_08146748: .4byte gTasks + 0x8\n\
-_0814674C: .4byte gUnknown_03005D10\n\
+_0814674C: .4byte gBagPocketScrollStates\n\
_08146750:\n\
mov r4, r8\n\
ldrb r0, [r4, 0x2]\n\
@@ -487,7 +487,7 @@ static void sub_8146810(s8 berry)
asrs r1, r0, 24\n\
cmp r1, 0\n\
ble _08146848\n\
- ldr r0, _08146840 @ =gUnknown_03005D10\n\
+ ldr r0, _08146840 @ =gBagPocketScrollStates\n\
adds r4, r0, 0\n\
adds r4, 0xC\n\
ldrb r2, [r0, 0xC]\n\
@@ -504,12 +504,12 @@ static void sub_8146810(s8 berry)
movs r0, 0x7\n\
b _0814686E\n\
.align 2, 0\n\
-_08146840: .4byte gUnknown_03005D10\n\
+_08146840: .4byte gBagPocketScrollStates\n\
_08146844:\n\
adds r0, r2, r3\n\
b _0814686E\n\
_08146848:\n\
- ldr r0, _08146868 @ =gUnknown_03005D10\n\
+ ldr r0, _08146868 @ =gBagPocketScrollStates\n\
adds r5, r0, 0\n\
adds r5, 0xC\n\
ldrb r2, [r0, 0xC]\n\
@@ -525,7 +525,7 @@ _08146848:\n\
strb r1, [r6, 0xC]\n\
b _08146870\n\
.align 2, 0\n\
-_08146868: .4byte gUnknown_03005D10\n\
+_08146868: .4byte gBagPocketScrollStates\n\
_0814686C:\n\
adds r0, r2, r4\n\
_0814686E:\n\
@@ -538,7 +538,7 @@ _08146870:\n\
ldrb r1, [r0, 0x1]\n\
ldrb r0, [r0]\n\
adds r1, r0\n\
- ldr r0, _081468B0 @ =gUnknown_03005D24\n\
+ ldr r0, _081468B0 @ =gCurrentBagPocketItemSlots\n\
ldr r0, [r0]\n\
lsls r1, 2\n\
adds r1, r0\n\
@@ -559,7 +559,7 @@ _08146870:\n\
bx r0\n\
.align 2, 0\n\
_081468AC: .4byte gScriptItemId\n\
-_081468B0: .4byte gUnknown_03005D24\n\
+_081468B0: .4byte gCurrentBagPocketItemSlots\n\
_081468B4: .4byte gUnknown_0203932C\n\
_081468B8: .4byte gSprites\n\
.syntax divided\n");
@@ -571,7 +571,7 @@ static void sub_81468BC(void)
sub_81464E4();
// center of berry sprite
- gUnknown_0203932C = sub_80A7D8C(gScriptItemId + OFFSET_7B, 56, 64);
+ gUnknown_0203932C = CreateBerrySprite(gScriptItemId + OFFSET_7B, 56, 64);
sub_8146600(gScriptItemId + OFFSET_7B);
}
diff --git a/src/decoration.c b/src/decoration.c
index e829cb072..e829cb072 100644..100755
--- a/src/decoration.c
+++ b/src/decoration.c
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index 2d8140be5..a4f52f4b9 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -206,7 +206,7 @@ int sub_8068024(struct FieldInput *input)
sub_8071310();
return TRUE;
}
- if (input->pressedSelectButton && sub_80A6D1C() == 1)
+ if (input->pressedSelectButton && sub_80A6D1C() == TRUE)
return TRUE;
return FALSE;
}
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index d94c97ff3..d94c97ff3 100755..100644
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c
index 17584c96a..46784cff3 100755..100644
--- a/src/field_map_obj_helpers.c
+++ b/src/field_map_obj_helpers.c
@@ -34,7 +34,7 @@ bool8 FreezeMapObject(struct MapObject *mapObject)
}
}
-void FreezeMapObjects()
+void FreezeMapObjects(void)
{
u8 i;
for (i = 0; i < 16; i++)
diff --git a/src/item.c b/src/item.c
index 2eb013490..22ac6e7cd 100644
--- a/src/item.c
+++ b/src/item.c
@@ -8,14 +8,6 @@
extern u8 gUnknown_02038560;
extern struct Item gItems[];
-struct BagPocket
-{
- struct ItemSlot *itemSlots;
- u8 capacity;
-};
-
-extern struct BagPocket gBagPockets[5];
-
enum
{
ITEMS_POCKET,
@@ -137,6 +129,9 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
return TRUE;
}
+// This function matches if gBagPockets is declared non-const,
+// but it should be fixed anyway.
+#ifdef NONMATCHING
bool8 AddBagItem(u16 itemId, u16 count)
{
u8 i;
@@ -201,6 +196,158 @@ bool8 AddBagItem(u16 itemId, u16 count)
memcpy(gBagPockets[pocket].itemSlots, newItems, gBagPockets[pocket].capacity * sizeof(struct ItemSlot));
return TRUE;
}
+#else
+__attribute__((naked))
+bool8 AddBagItem(u16 itemId, u16 count)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ sub sp, 0x100\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r8, r0\n\
+ lsls r1, 16\n\
+ lsrs r4, r1, 16\n\
+ bl ItemId_GetPocket\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ beq _080A9510\n\
+ mov r0, r8\n\
+ bl ItemId_GetPocket\n\
+ subs r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ ldr r1, _080A94F8 @ =gBagPockets\n\
+ lsls r0, r6, 3\n\
+ adds r5, r0, r1\n\
+ ldr r1, [r5]\n\
+ ldrb r2, [r5, 0x4]\n\
+ lsls r2, 2\n\
+ mov r0, sp\n\
+ bl memcpy\n\
+ ldr r7, _080A94FC @ =0x000003e7\n\
+ cmp r6, 0x3\n\
+ beq _080A9468\n\
+ movs r7, 0x63\n\
+_080A9468:\n\
+ movs r1, 0\n\
+ ldrb r0, [r5, 0x4]\n\
+ cmp r1, r0\n\
+ bcs _080A94B2\n\
+ subs r0, r6, 0x2\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r12, r0\n\
+_080A9478:\n\
+ lsls r0, r1, 2\n\
+ mov r2, sp\n\
+ adds r3, r2, r0\n\
+ ldrh r0, [r3]\n\
+ cmp r0, r8\n\
+ bne _080A94A6\n\
+ ldrh r2, [r3, 0x2]\n\
+ adds r0, r2, r4\n\
+ cmp r0, r7\n\
+ ble _080A9500\n\
+ mov r0, r12\n\
+ cmp r0, 0x1\n\
+ bls _080A9510\n\
+ subs r0, r7, r2\n\
+ subs r0, r4, r0\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ strh r7, [r3, 0x2]\n\
+ ldr r2, _080A94F8 @ =gBagPockets\n\
+ mov r9, r2\n\
+ lsls r3, r6, 3\n\
+ cmp r4, 0\n\
+ beq _080A9516\n\
+_080A94A6:\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ ldrb r0, [r5, 0x4]\n\
+ cmp r1, r0\n\
+ bcc _080A9478\n\
+_080A94B2:\n\
+ ldr r2, _080A94F8 @ =gBagPockets\n\
+ mov r9, r2\n\
+ lsls r3, r6, 3\n\
+ cmp r4, 0\n\
+ beq _080A9516\n\
+ movs r1, 0\n\
+ adds r0, r3, r2\n\
+ ldrb r0, [r0, 0x4]\n\
+ cmp r1, r0\n\
+ bcs _080A94F2\n\
+ mov r6, r9\n\
+ adds r5, r3, r6\n\
+_080A94CA:\n\
+ lsls r0, r1, 2\n\
+ mov r6, sp\n\
+ adds r2, r6, r0\n\
+ ldrh r0, [r2]\n\
+ cmp r0, 0\n\
+ bne _080A94E6\n\
+ mov r0, r8\n\
+ strh r0, [r2]\n\
+ cmp r4, r7\n\
+ bls _080A9514\n\
+ subs r0, r4, r7\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ strh r7, [r2, 0x2]\n\
+_080A94E6:\n\
+ adds r0, r1, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r1, r0, 24\n\
+ ldrb r2, [r5, 0x4]\n\
+ cmp r1, r2\n\
+ bcc _080A94CA\n\
+_080A94F2:\n\
+ cmp r4, 0\n\
+ beq _080A9516\n\
+ b _080A9510\n\
+ .align 2, 0\n\
+_080A94F8: .4byte gBagPockets\n\
+_080A94FC: .4byte 0x000003e7\n\
+_080A9500:\n\
+ strh r0, [r3, 0x2]\n\
+ ldr r0, _080A950C @ =gBagPockets\n\
+ lsls r1, r6, 3\n\
+ adds r1, r0\n\
+ b _080A951A\n\
+ .align 2, 0\n\
+_080A950C: .4byte gBagPockets\n\
+_080A9510:\n\
+ movs r0, 0\n\
+ b _080A9528\n\
+_080A9514:\n\
+ strh r4, [r2, 0x2]\n\
+_080A9516:\n\
+ mov r6, r9\n\
+ adds r1, r3, r6\n\
+_080A951A:\n\
+ ldr r0, [r1]\n\
+ ldrb r2, [r1, 0x4]\n\
+ lsls r2, 2\n\
+ mov r1, sp\n\
+ bl memcpy\n\
+ movs r0, 0x1\n\
+_080A9528:\n\
+ add sp, 0x100\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .syntax divided\n");
+}
+#endif
bool8 RemoveBagItem(u16 itemId, u16 count)
{
@@ -440,7 +587,7 @@ u8 *ItemId_GetDescription(u16 itemId)
return gItems[SanitizeItemId(itemId)].description;
}
-bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c)
+bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c)
{
u32 r5 = c + 1;
u8 *description = gItems[SanitizeItemId(itemId)].description;
diff --git a/src/item_menu.c b/src/item_menu.c
new file mode 100644
index 000000000..350ba3db4
--- /dev/null
+++ b/src/item_menu.c
@@ -0,0 +1,4583 @@
+#include "global.h"
+#include "berry.h"
+#include "berry_tag_screen.h"
+#include "data2.h"
+#include "decompress.h"
+#include "field_effect.h"
+#include "field_map_obj_helpers.h"
+#include "field_player_avatar.h"
+#include "graphics.h"
+#include "item.h"
+#include "items.h"
+#include "item_menu.h"
+#include "item_use.h"
+#include "link.h"
+#include "mail_data.h"
+#include "main.h"
+#include "map_name_popup.h"
+#include "menu.h"
+#include "menu_cursor.h"
+#include "menu_helpers.h"
+#include "money.h"
+#include "palette.h"
+#include "party_menu.h"
+#include "player_pc.h"
+#include "pokemon_menu.h"
+#include "rom4.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "strings.h"
+#include "strings2.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "unknown_task.h"
+
+// External stuff
+extern u8 ewram[];
+extern void gpu_pal_allocator_reset__manage_upper_four(void);
+extern void sub_80F9020(void);
+extern void sub_80F9988();
+extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16);
+extern void PauseVerticalScrollIndicator();
+extern u8 sub_80F9284(void);
+extern void sub_808B5B4();
+extern u8 sub_80F92F4();
+extern void sub_80C9C7C(u8);
+extern void pal_fill_black(void);
+extern bool8 sub_807D770(void);
+extern u8 sub_80F931C();
+extern void sub_808A3F8(u8);
+extern void sub_80B3050(void);
+extern void sub_80546B8(u8);
+extern void sub_804E990(u8);
+extern void sub_802E424(u8);
+extern void sub_8064E2C(void);
+
+struct PocketScrollState
+{
+ u8 cursorPos;
+ u8 scrollTop;
+ u8 numSlots;
+ u8 cursorMax;
+};
+
+struct UnknownStruct2
+{
+ u8 unk0;
+ u8 textLine;
+ u8 unk2;
+};
+
+struct UnknownStruct3
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+};
+
+struct UnknownStruct4
+{
+ u8 unk0;
+ u8 unk1;
+ u16 unk2;
+ const u8 *unk4;
+ TaskFunc unk8;
+};
+
+struct UnknownStruct5
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+};
+
+struct UnknownStruct6
+{
+ u8 unk0;
+};
+
+enum
+{
+ BAG_POCKET_ITEMS, // 0
+ BAG_POCKET_POKE_BALLS, // 1
+ BAG_POCKET_TMs_HMs, // 2
+ BAG_POCKET_BERRIES, // 3
+ BAG_POCKET_KEY_ITEMS, // 4
+};
+
+enum
+{
+ RETURN_TO_FIELD_0,
+ RETURN_TO_BATTLE,
+ RETURN_TO_PKMN_LIST,
+ RETURN_TO_SHOP,
+ RETURN_TO_FIELD_4,
+ RETURN_TO_FIELD_5,
+ RETURN_TO_PC,
+ RETURN_TO_WALLY_BATTLE,
+};
+
+enum
+{
+ ITEM_ACTION_USE_0, // 0
+ ITEM_ACTION_TOSS, // 1
+ ITEM_ACTION_CANCEL_2, // 2
+ ITEM_ACTION_REGISTER, // 3
+ ITEM_ACTION_USE_4, // 4
+ ITEM_ACTION_CANCEL_5, // 5
+ ITEM_ACTION_GIVE, // 6
+ ITEM_ACTION_CHECK_TAG, // 7
+ ITEM_ACTION_NONE, // 8
+ ITEM_ACTION_CONFIRM, // 9
+};
+
+// ewram
+EWRAM_DATA static struct UnknownStruct2 gUnknown_0203853C = {0};
+EWRAM_DATA static struct UnknownStruct3 gUnknown_02038540 = {0};
+EWRAM_DATA static struct UnknownStruct4 gUnknown_02038544 = {0};
+EWRAM_DATA static struct UnknownStruct5 gUnknown_02038550 = {0};
+EWRAM_DATA static struct UnknownStruct6 gUnknown_02038554 = {0}; // There are 3 bytes of padding after this, so I assume it's a struct
+EWRAM_DATA static u8 gUnknown_02038558 = 0;
+EWRAM_DATA static s8 sCurrentBagPocket = 0;
+EWRAM_DATA static u8 gUnknown_0203855A = 0;
+EWRAM_DATA static s8 gUnknown_0203855B = 0;
+EWRAM_DATA static s8 gUnknown_0203855C = 0;
+EWRAM_DATA u16 gScriptItemId = 0;
+EWRAM_DATA u8 gUnknown_02038560 = 0;
+EWRAM_DATA u8 gUnknown_02038561 = 0;
+EWRAM_DATA static u8 gUnknown_02038562 = 0;
+EWRAM_DATA static u8 gUnknown_02038563 = 0;
+EWRAM_DATA static u8 gUnknown_02038564 = 0;
+EWRAM_DATA static u8 sPokeballSpriteId ALIGNED(4) = 0; // HACK: why is there a space before this variable?
+
+// bss
+static u8 sPopupMenuSelection;
+static u8 sReturnLocation;
+static const u8 *sPopupMenuActionList;
+
+// common
+void (*gUnknown_03005D00)(u8) = NULL;
+extern u16 gUnknown_030041B4;
+extern struct PocketScrollState gBagPocketScrollStates[];
+extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots
+extern const u8 Event_NoRegisteredItem[];
+
+#define ewramBerryPic (ewram + 0)
+#define ewramBerryPicTemp (ewram + 0x1000)
+#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle)
+#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle)
+#define ewramBagSetupStep (ewram[0x1FFFF])
+
+extern const struct CompressedSpriteSheet sMaleBagSpriteSheet;
+extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet;
+extern const struct CompressedSpritePalette sBagSpritePalette;
+
+const struct BagPocket gBagPockets[NUM_BAG_POCKETS] =
+{
+ {gSaveBlock1.bagPocket_Items, 20},
+ {gSaveBlock1.bagPocket_PokeBalls, 16},
+ {gSaveBlock1.bagPocket_TMHM, 64},
+ {gSaveBlock1.bagPocket_Berries, 46},
+ {gSaveBlock1.bagPocket_KeyItems, 20},
+};
+
+static void HandlePopupMenuAction_UseOnField(u8);
+static void HandlePopupMenuAction_Toss(u8);
+static void sub_80A5F80(u8);
+static void HandlePopupMenuAction_Register(u8);
+static void HandlePopupMenuAction_UseInBattle(u8);
+static void sub_80A7124(u8);
+static void HandlePopupMenuAction_Give(u8);
+static void HandlePopupMenuAction_CheckTag(u8);
+static void HandlePopupMenuAction_Confirm(u8);
+
+static const struct MenuAction2 sItemPopupMenuActions[] =
+{
+ {OtherText_Use, HandlePopupMenuAction_UseOnField},
+ {OtherText_Toss, HandlePopupMenuAction_Toss},
+ {gOtherText_CancelNoTerminator, sub_80A5F80},
+ {OtherText_Register, HandlePopupMenuAction_Register},
+ {OtherText_Use, HandlePopupMenuAction_UseInBattle},
+ {gOtherText_CancelNoTerminator, sub_80A7124},
+ {OtherText_Give2, HandlePopupMenuAction_Give},
+ {OtherText_CheckTag, HandlePopupMenuAction_CheckTag},
+ {gOtherText_CancelWithTerminator, NULL},
+ {OtherText_Confirm, HandlePopupMenuAction_Confirm},
+};
+
+static const u8 sItemPopupMenuChoicesTable[][6] =
+{
+ [BAG_POCKET_ITEMS] =
+ {
+ ITEM_ACTION_USE_0,
+ ITEM_ACTION_TOSS,
+ ITEM_ACTION_GIVE,
+ ITEM_ACTION_CANCEL_2,
+ },
+
+ [BAG_POCKET_POKE_BALLS] =
+ {
+ ITEM_ACTION_GIVE,
+ ITEM_ACTION_TOSS,
+ ITEM_ACTION_NONE,
+ ITEM_ACTION_CANCEL_2,
+ },
+
+ [BAG_POCKET_TMs_HMs] =
+ {
+ ITEM_ACTION_USE_0,
+ ITEM_ACTION_NONE,
+ ITEM_ACTION_GIVE,
+ ITEM_ACTION_CANCEL_2,
+ },
+
+ [BAG_POCKET_BERRIES] =
+ {
+ ITEM_ACTION_CHECK_TAG,
+ ITEM_ACTION_USE_0,
+ ITEM_ACTION_TOSS,
+ ITEM_ACTION_NONE,
+ ITEM_ACTION_GIVE,
+ ITEM_ACTION_CANCEL_2
+ },
+
+ [BAG_POCKET_KEY_ITEMS] =
+ {
+ ITEM_ACTION_USE_0,
+ ITEM_ACTION_NONE,
+ ITEM_ACTION_REGISTER,
+ ITEM_ACTION_CANCEL_2,
+ },
+};
+
+const u8 gUnknown_083C16AE[][2] =
+{
+ {6, 2},
+ {6, 2},
+ {6, 2},
+ {6, 2},
+ {2, 0},
+};
+
+const u8 gUnknown_083C16B8[] = {7, 9, 8, 2};
+
+static void OnItemSelect_Field05(u8);
+static void OnBagClose_Field0(u8);
+static void OnBagClose_PkmnList(u8);
+static void OnItemSelect_PkmnList(u8);
+static void OnBagClose_Shop(u8);
+static void OnItemSelect_Shop(u8);
+static void OnBagClose_Field4(u8);
+static void OnItemSelect_Field4(u8);
+static void OnBagClose_Field5(u8);
+static void OnBagClose_PC(u8);
+static void OnItemSelect_PC(u8);
+static void OnItemSelect_Battle(u8);
+static void OnBagClose_Battle(u8);
+
+static const struct {TaskFunc onItemSelect; TaskFunc onBagClose;} gUnknown_083C16BC[] =
+{
+ [RETURN_TO_FIELD_0] = {OnItemSelect_Field05, OnBagClose_Field0},
+ [RETURN_TO_BATTLE] = {OnItemSelect_Battle, OnBagClose_Battle},
+ [RETURN_TO_PKMN_LIST] = {OnItemSelect_PkmnList, OnBagClose_PkmnList},
+ [RETURN_TO_SHOP] = {OnItemSelect_Shop, OnBagClose_Shop},
+ [RETURN_TO_FIELD_4] = {OnItemSelect_Field4, OnBagClose_Field4},
+ [RETURN_TO_FIELD_5] = {OnItemSelect_Field05, OnBagClose_Field5},
+ [RETURN_TO_PC] = {OnItemSelect_PC, OnBagClose_PC},
+};
+
+static void sub_80A5E60(u8);
+static void sub_80A5E90(u8);
+
+static const struct YesNoFuncTable gUnknown_083C16F4 = {sub_80A5E60, sub_80A5E90};
+
+static void sub_80A65AC(u8);
+static void sub_80A6618(u8);
+
+const struct YesNoFuncTable gUnknown_083C16FC = {sub_80A65AC, sub_80A6618};
+
+void sub_80A34E8(void);
+static bool8 LoadBagGraphicsMultistep(void);
+static void sub_80A362C(void);
+static void sub_80A3740(void);
+static void sub_80A396C(u16 *, u8, u8, u8);
+static void sub_80A39B8(u16 *, u8);
+static void sub_80A39E4(u16 *, u8, u8, s8);
+static void DrawPocketIndicatorDots(u16 *, u8);
+static void SortItemSlots(struct BagPocket);
+static void UpdateAllBagPockets(void);
+static void sub_80A3D24(u8);
+static void sub_80A3D40(void);
+static void RemoveSelectIconFromRegisteredItem(void);
+static void sub_80A48E8(u16, int, int);
+static void ItemListMenu_InitDescription(s16);
+static void ItemListMenu_ChangeDescription(s16, int);
+static void sub_80A4F68(u8);
+static void sub_80A50C8(u8);
+static void sub_80A5AE4(u8);
+static void sub_80A5BF8(u8);
+static void Task_CallItemUseOnFieldCallback(u8);
+static void sub_80A6444(u8);
+static void sub_80A648C(u8);
+static void Task_BuyHowManyDialogueHandleInput(u8);
+static void BuyMenuPrintItemQuantityAndPrice(u8);
+static void BuyMenuDisplayMessage(u16, u16);
+static void sub_80A683C(void);
+static void sub_80A6870(u16, u8);
+static void sub_80A699C(void);
+static void sub_80A7230(u8);
+static void ItemListMenu_InitMenu(void);
+static void sub_80A73C0(void);
+static void sub_80A73F0(void);
+static void sub_80A73FC(void);
+static void sub_80A740C(void);
+static void sub_80A7420(void);
+static void sub_80A751C(void);
+static void sub_80A7528(u8);
+static void sub_80A7590(void);
+static void sub_80A75E4(void);
+static void sub_80A7630(void);
+static void sub_80A763C(void);
+static void sub_80A76A0(void);
+static void sub_80A770C(void);
+static void DisplayCannotUseItemMessage(int, const u8 *, TaskFunc, int);
+static void sub_80A7768(void);
+static void sub_80A7828(void);
+static void sub_80A7834(int, int);
+static bool32 sub_80A78A0(void);
+static void sub_80A78B8(void);
+static bool32 sub_80A78C4(void);
+static void sub_80A78E8(void);
+static int sub_80A78F4(void);
+static void sub_80A7918(void);
+static int sub_80A7924(void);
+static int sub_80A7958(void);
+static void sub_80A7970(void);
+static void sub_80A797C(void);
+static int sub_80A7988(void);
+static void sub_80A79B4(struct Sprite *);
+static void sub_80A79EC(struct Sprite *);
+static void sub_80A7A94(struct Sprite *);
+static void sub_80A7AE4(struct Sprite *);
+static void CreateBagSprite(void);
+static void sub_80A7B6C(struct Sprite *);
+static void CreateBagPokeballSprite(u8);
+static void sub_80A7C64(void);
+
+static void sub_80A3118(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTasks();
+ sub_80A740C();
+ UpdatePaletteFade();
+}
+
+static void sub_80A3134(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+
+ {
+ const void *src = gBGTilemapBuffers[1];
+ void *dst = (void *)(VRAM + 0x2000);
+
+ DmaCopy16(3, src, dst, 0x800);
+ }
+
+ {
+ const void *src = gBGTilemapBuffers[2];
+ void *dst = (void *)(VRAM + 0x6000);
+
+ DmaCopy16(3, src, dst, 0x800);
+ }
+}
+
+static bool8 SetupBagMultistep(void)
+{
+ u32 index;
+ u16 savedIme;
+
+ switch (gMain.state)
+ {
+ case 0:
+ sub_80F9438();
+ sub_80A34E8();
+ gMain.state++;
+ break;
+ case 1:
+ remove_some_task();
+ gMain.state++;
+ break;
+ case 2:
+ gpu_pal_allocator_reset__manage_upper_four();
+ gMain.state++;
+ break;
+ case 3:
+ sub_80F9020();
+ ewramBagSetupStep = 0;
+ gMain.state++;
+ break;
+ case 4:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ gMain.state++;
+ break;
+ case 5:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 6:
+ if (LoadBagGraphicsMultistep() == FALSE)
+ break;
+ gMain.state++;
+ break;
+ case 7:
+ SetUpWindowConfig(&gWindowConfig_81E6DFC);
+ gMain.state++;
+ break;
+ case 8:
+ MultistepInitMenuWindowBegin(&gWindowConfig_81E6DFC);
+ gMain.state++;
+ break;
+ case 9:
+ if (!MultistepInitMenuWindowContinue())
+ break;
+ gMain.state++;
+ break;
+ case 10:
+ sub_80F944C();
+ LoadScrollIndicatorPalette();
+ CreateVerticalScrollIndicators(0, 172, 12);
+ CreateVerticalScrollIndicators(1, 172, 148);
+ CreateVerticalScrollIndicators(2, 28, 88);
+ CreateVerticalScrollIndicators(3, 100, 88);
+ sub_80F9988(0, 2);
+ sub_80F9988(1, 2);
+ sub_80F9988(2, 2);
+ sub_80F9988(3, 2);
+ if (sReturnLocation == RETURN_TO_FIELD_4 || sReturnLocation == RETURN_TO_FIELD_5)
+ {
+ sub_80F979C(2, 1);
+ sub_80F979C(3, 1);
+ }
+ gMain.state++;
+ break;
+ case 11:
+ gUnknown_0203855A = 16;
+ sub_80A39B8(gBGTilemapBuffers[2], sCurrentBagPocket + 1);
+ DrawPocketIndicatorDots(gBGTilemapBuffers[2], sCurrentBagPocket);
+ UpdateAllBagPockets();
+ SortItemSlots(gBagPockets[2]);
+ SortItemSlots(gBagPockets[3]);
+ sub_80A3D40();
+ gCurrentBagPocketItemSlots = gBagPockets[sCurrentBagPocket].itemSlots;
+ sub_80A362C();
+ gMain.state++;
+ break;
+ case 12:
+ sub_80A48E8(0xFFFF, 0, 7);
+ index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+ ItemListMenu_InitDescription(gCurrentBagPocketItemSlots[index].itemId);
+ ItemListMenu_InitMenu();
+ gUnknown_0203855B = sCurrentBagPocket + 1;
+ gUnknown_0203855C = 0;
+ gMain.state++;
+ break;
+ case 13:
+ CreateBagSprite();
+ CreateBagPokeballSprite(0);
+ sub_80A3740();
+ gMain.state++;
+ break;
+ case 14:
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gMain.state++;
+ break;
+ case 15:
+ if (sub_8055870() == TRUE)
+ break;
+ gMain.state++;
+ break;
+ case 16:
+ SetVBlankCallback(sub_80A3134);
+ SetMainCallback2(sub_80A3118);
+ sub_80A751C();
+ sub_80A7630();
+ sub_80A770C();
+ sub_80A7828();
+ sub_80A78B8();
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool8 sub_80A34B4(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ sPopupMenuSelection = 0;
+ ResetTasks();
+ return TRUE;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+ return FALSE;
+}
+
+
+void sub_80A34E8(void)
+{
+ sub_80F9368();
+ REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(12) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(4) | BGCNT_16COLOR | BGCNT_TXT256x256;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
+ REG_BLDCNT = 0;
+}
+
+static bool8 LoadBagGraphicsMultistep(void)
+{
+ switch (ewramBagSetupStep)
+ {
+ case 0:
+ LZDecompressVram(gBagScreen_Gfx, (void *)(VRAM + 0x4000));
+ ewramBagSetupStep++;
+ break;
+ case 1:
+ CpuCopy16(gUnknown_08E77004, gBGTilemapBuffers[2], 0x800);
+ ewramBagSetupStep++;
+ break;
+ case 2:
+ if (gSaveBlock2.playerGender == MALE || sReturnLocation == RETURN_TO_WALLY_BATTLE)
+ LoadCompressedPalette(gBagScreenMale_Pal, 0, 64);
+ else
+ LoadCompressedPalette(gBagScreenFemale_Pal, 0, 64);
+ ewramBagSetupStep++;
+ break;
+ case 3:
+ if (gSaveBlock2.playerGender == MALE || sReturnLocation == RETURN_TO_WALLY_BATTLE)
+ LoadCompressedObjectPic(&sMaleBagSpriteSheet);
+ else
+ LoadCompressedObjectPic(&sFemaleBagSpriteSheet);
+ ewramBagSetupStep++;
+ break;
+ case 4:
+ LoadCompressedObjectPalette(&sBagSpritePalette);
+ ewramBagSetupStep = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80A362C(void)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ u8 r3;
+
+ if (sReturnLocation == RETURN_TO_FIELD_5)
+ r3 = gBagPocketScrollStates[i].numSlots - 1;
+ else
+ r3 = gBagPocketScrollStates[i].numSlots;
+
+ if (gBagPocketScrollStates[i].scrollTop != 0)
+ {
+ if (gBagPocketScrollStates[i].scrollTop + gBagPocketScrollStates[i].cursorMax > r3)
+ gBagPocketScrollStates[i].scrollTop = r3 - gBagPocketScrollStates[i].cursorMax;
+ }
+ else
+ {
+ if (gBagPocketScrollStates[i].cursorPos > r3)
+ gBagPocketScrollStates[i].cursorPos = r3;
+ }
+ }
+}
+
+void ResetBagScrollPositions(void)
+{
+ u16 i;
+
+ for (i = 0; i < NUM_BAG_POCKETS; i++)
+ {
+ gBagPocketScrollStates[i].cursorPos = 0;
+ gBagPocketScrollStates[i].scrollTop = 0;
+ gBagPocketScrollStates[i].numSlots = 0;
+ gBagPocketScrollStates[i].cursorMax = 0;
+ }
+ sCurrentBagPocket = 0;
+}
+
+static void sub_80A36B8(u16 *a, u8 b, u8 c, u8 d, u8 e)
+{
+ u16 i;
+ u16 j;
+
+ for (i = c; i <= c + e; i++)
+ {
+ for (j = b; j <= b + d; j++)
+ {
+ u32 index = j + i * 32;
+
+ a[index] = 0;
+ }
+ }
+}
+
+void ClearBag(void)
+{
+ u16 i;
+
+ for (i = 0; i < NUM_BAG_POCKETS; i++)
+ ClearItemSlots(gBagPockets[i].itemSlots, gBagPockets[i].capacity);
+ ResetBagScrollPositions();
+}
+
+static void sub_80A3740(void)
+{
+ const u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE};
+
+ LoadPalette(&colors[1], 0xD1, sizeof(colors[1]));
+ LoadPalette(&colors[0], 0xD8, sizeof(colors[0]));
+}
+
+static void sub_80A3770(void)
+{
+ if (sReturnLocation == RETURN_TO_FIELD_0)
+ {
+ sPopupMenuActionList = sItemPopupMenuChoicesTable[sCurrentBagPocket];
+ if (sCurrentBagPocket != BAG_POCKET_BERRIES)
+ gUnknown_02038564 = 4;
+ else
+ gUnknown_02038564 = 6;
+ }
+}
+
+static void sub_80A37C0(u8 taskId)
+{
+ gTasks[taskId].func = sub_80A50C8;
+ StartVerticalScrollIndicators(0);
+ StartVerticalScrollIndicators(1);
+ StartVerticalScrollIndicators(2);
+ StartVerticalScrollIndicators(3);
+}
+
+static void sub_80A37F8(u8 taskId)
+{
+ u8 r5 = gUnknown_0203855A;
+
+ if (r5 < 16)
+ {
+ gUnknown_0203855A++;
+ sub_80A396C(gBGTilemapBuffers[2], r5, gUnknown_0203855A, 0x4F);
+ sub_80A39E4(gBGTilemapBuffers[2], sCurrentBagPocket + 1, gUnknown_0203855A / 2, gTasks[taskId].data[5]);
+ gUnknown_02038558 = 1;
+ sub_80A48E8(taskId, r5 / 2, gUnknown_0203855A / 2 - 1);
+ gUnknown_02038558 = 0;
+ return;
+ }
+
+ if (gLinkOpen == TRUE)
+ {
+ u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+
+ ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, gUnknown_02038562);
+ gUnknown_02038562++;
+ }
+ else
+ {
+ while (gUnknown_02038562 < 3)
+ {
+ u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+
+ ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, gUnknown_02038562);
+ gUnknown_02038562++;
+ }
+ }
+ if (gUnknown_02038562 == 3)
+ {
+ gUnknown_0203855A = 16;
+ gUnknown_0203855B = sCurrentBagPocket + 1;
+ sub_80A37C0(FindTaskIdByFunc(sub_80A4F68));
+ DestroyTask(taskId);
+ ItemListMenu_InitMenu();
+ sub_80F979C(2, 0);
+ sub_80F979C(3, 0);
+ }
+}
+
+static void sub_80A3954(u16 *a)
+{
+ CpuCopy16(gUnknown_08E77004, a, 0x800);
+}
+
+static void sub_80A396C(u16 *a, u8 b, u8 c, u8 d)
+{
+ u16 *dst = a + 14 + (b + 2) * 32;
+ u16 i;
+
+ while (c > b++)
+ {
+ for (i = 0; i < 15; i++)
+ dst[i] = d;
+ dst += 32;
+ }
+}
+
+static void sub_80A39B8(u16 *a, u8 b)
+{
+ u8 var = b * 2;
+
+ sub_809D104(a, 4, 10, gUnknown_08E96EC8, 0, var, 8, 2);
+}
+
+static void sub_80A39E4(u16 *a, u8 b, u8 c, s8 d)
+{
+ u16 r2 = b * 2;
+ u16 r7;
+
+ if (d == -1)
+ {
+ r7 = (b + 1) * 2;
+ if (b == 5)
+ r7 = 2;
+
+ sub_809D104(a, 4, 10, gUnknown_08E96EC8, 8 - c, r2, c, 2);
+ sub_809D104(a, c + 4, 10, gUnknown_08E96EC8, 0, r7, 8 - c, 2);
+ }
+ else if (d == 1)
+ {
+ r7 = (b - 1) * 2;
+ if (b == 1)
+ r7 = 10;
+
+ sub_809D104(a, 4, 10, gUnknown_08E96EC8, c, r7, 8 - c, 2);
+ sub_809D104(a, 12 - c, 10, gUnknown_08E96EC8, 0, r2, c, 2);
+ }
+}
+
+// Draws dots under the bag sprite, showing which pocket is selected
+static void DrawPocketIndicatorDots(u16 *tileMapBuffer, u8 selectedPocket)
+{
+ u8 i;
+
+ for (i = 0; i < NUM_BAG_POCKETS; i++)
+ {
+ if (i == selectedPocket)
+ tileMapBuffer[0x125 + i] = 0x107D;
+ else
+ tileMapBuffer[0x125 + i] = 0x107C;
+ }
+}
+
+static void ChangePocket(u16 *tileMapBuffer, s8 delta)
+{
+ u8 taskId;
+
+ sCurrentBagPocket += delta;
+ // Wrap around
+ if (sCurrentBagPocket >= NUM_BAG_POCKETS)
+ sCurrentBagPocket = 0;
+ if (sCurrentBagPocket < 0)
+ sCurrentBagPocket = NUM_BAG_POCKETS - 1;
+
+ sub_80A76A0();
+ sub_80A7590();
+ gCurrentBagPocketItemSlots = gBagPockets[sCurrentBagPocket].itemSlots;
+ sub_80A3D24(sCurrentBagPocket);
+ gUnknown_0203855A = 0;
+ sub_80A3954(tileMapBuffer);
+ sub_80A396C(tileMapBuffer, 0, 16, 3);
+ sub_80A39B8(tileMapBuffer, 0);
+ gUnknown_0203855B = 6;
+ gUnknown_02038562 = 0;
+ taskId = FindTaskIdByFunc(sub_80A37F8);
+ if (taskId == 0xFF)
+ taskId = CreateTask(sub_80A37F8, 8);
+ gTasks[taskId].data[5] = delta;
+}
+
+static void SwapItemSlots(struct ItemSlot *a, struct ItemSlot *b)
+{
+ struct ItemSlot temp = *a;
+
+ *a = *b;
+ *b = temp;
+}
+
+static void RemoveEmptyItemSlots(struct BagPocket pocket)
+{
+ u16 i;
+ u16 j;
+
+ for (i = 0; i < pocket.capacity - 1; i++)
+ {
+ for (j = i + 1; j < pocket.capacity; j++)
+ {
+ if (pocket.itemSlots[i].quantity == 0)
+ SwapItemSlots(&pocket.itemSlots[i], &pocket.itemSlots[j]);
+ }
+ }
+}
+
+static void SortItemSlots(struct BagPocket pocket)
+{
+ u16 i;
+ u16 j;
+
+ for (i = 0; i < pocket.capacity; i++)
+ {
+ for (j = i + 1; j < pocket.capacity; j++)
+ {
+ if (pocket.itemSlots[i].quantity != 0 && pocket.itemSlots[j].quantity != 0
+ && pocket.itemSlots[i].itemId > pocket.itemSlots[j].itemId)
+ SwapItemSlots(&pocket.itemSlots[i], &pocket.itemSlots[j]);
+ }
+ }
+}
+
+static void UpdateBagPocket(u8 pocketNum)
+{
+ u16 i;
+
+ gBagPocketScrollStates[pocketNum].numSlots = 0;
+ for (i = 0; i < gBagPockets[pocketNum].capacity; i++)
+ {
+ if (gBagPockets[pocketNum].itemSlots[i].quantity != 0)
+ gBagPocketScrollStates[pocketNum].numSlots++;
+ }
+ RemoveEmptyItemSlots(gBagPockets[pocketNum]);
+}
+
+static void UpdateAllBagPockets(void)
+{
+ u8 i;
+
+ for (i = 0; i < NUM_BAG_POCKETS; i++)
+ UpdateBagPocket(i);
+}
+
+static void sub_80A3D24(u8 pocketNum)
+{
+ if (gBagPocketScrollStates[pocketNum].numSlots >= 7)
+ gBagPocketScrollStates[pocketNum].cursorMax = 7;
+ else
+ gBagPocketScrollStates[pocketNum].cursorMax = gBagPocketScrollStates[pocketNum].numSlots;
+}
+
+static void sub_80A3D40(void)
+{
+ u8 i;
+
+ for (i = 0; i < NUM_BAG_POCKETS; i++)
+ sub_80A3D24(i);
+}
+
+static void sub_80A3D5C(u8 taskId)
+{
+ u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+
+ gCurrentBagPocketItemSlots[index].quantity -= gTasks[taskId].data[1];
+ if (gCurrentBagPocketItemSlots[index].quantity == 0) // item slot will be removed if the quantity is zero
+ {
+ // Un-register the item if registered
+ if (gSaveBlock1.registeredItem == gCurrentBagPocketItemSlots[index].itemId)
+ {
+ RemoveSelectIconFromRegisteredItem();
+ gSaveBlock1.registeredItem = ITEM_NONE;
+ }
+
+ gCurrentBagPocketItemSlots[index].itemId = ITEM_NONE;
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 7 == gBagPocketScrollStates[sCurrentBagPocket].numSlots
+ && gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0)
+ gBagPocketScrollStates[sCurrentBagPocket].scrollTop--;
+ UpdateBagPocket(sCurrentBagPocket);
+ }
+ sub_80A3D24(sCurrentBagPocket);
+}
+
+void sub_80A3E0C(void)
+{
+ u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+
+ if (gCurrentBagPocketItemSlots[index].quantity == 0)
+ {
+ gCurrentBagPocketItemSlots[index].itemId = 0;
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 7 == gBagPocketScrollStates[sCurrentBagPocket].numSlots
+ && gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0)
+ gBagPocketScrollStates[sCurrentBagPocket].scrollTop--;
+ UpdateBagPocket(sCurrentBagPocket);
+ }
+ sub_80A3D24(sCurrentBagPocket);
+}
+
+static void nullsub_16(void)
+{
+}
+
+static void sub_80A3E70(u8 a, u8 b)
+{
+ struct ItemSlot temp = gCurrentBagPocketItemSlots[a];
+
+ gCurrentBagPocketItemSlots[a] = gCurrentBagPocketItemSlots[b];
+ gCurrentBagPocketItemSlots[b] = temp;
+}
+
+static void sub_80A3E90(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ nullsub_16();
+ sub_80A3E70(
+ gTasks[taskId].data[10] - 1,
+ gBagPocketScrollStates[sCurrentBagPocket].cursorPos + gBagPocketScrollStates[sCurrentBagPocket].scrollTop);
+ gTasks[taskId].data[10] = 0;
+ sub_80A763C();
+ sub_80A7528(0);
+ ItemListMenu_InitMenu();
+}
+
+static void sub_80A3EF4(u8 taskId)
+{
+ u8 r2;
+
+ PlaySE(SE_SELECT);
+ nullsub_16();
+ r2 = gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1;
+ gTasks[taskId].data[10] = 0;
+ if (r2 < 8)
+ sub_80A48E8(taskId, r2, r2);
+ sub_80A7528(0);
+}
+
+static void sub_80A3F50(u8 taskId)
+{
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A7528(1);
+}
+
+void sub_80A3FA0(u16 *a, u8 b, u8 c, u8 d, u8 e, u16 f)
+{
+ s16 i;
+ s16 j;
+
+ for (i = c; i < c + e; i++)
+ {
+ for (j = b; j < b + d; j++)
+ {
+ u32 index = j + i * 32;
+
+ a[index] = f;
+ }
+ }
+}
+
+static void sub_80A4008(u16 *a, u8 b, u8 c, u8 d, u8 e)
+{
+ sub_80A3FA0(a, b, c, d, e, 1);
+}
+
+static void DrawSelectIcon(u32 itemPos)
+{
+ u16 *ptr1 = gBGTilemapBuffers[2] + 0x5A;
+
+ ptr1 += itemPos * 64;
+ ptr1[0] = 0x5A;
+ ptr1[1] = 0x5B;
+ ptr1[2] = 0x5C;
+ ptr1[32] = 0x6A;
+ ptr1[33] = 0x6B;
+ ptr1[34] = 0x6C;
+}
+
+static void MoveSelectIcon(u8 itemPos)
+{
+ u16 i;
+ u16 *ptr;
+
+ ptr = gBGTilemapBuffers[2] + 0x5A;
+ for (i = 0; i < 16; i++)
+ {
+ ptr[0] = 0x4F;
+ ptr[1] = 0x4F;
+ ptr[2] = 0x4F;
+ ptr += 32;
+ }
+
+ ptr = gBGTilemapBuffers[2] + 0x5A + itemPos * 64;
+ ptr[0] = 0x5A;
+ ptr[1] = 0x5B;
+ ptr[2] = 0x5C;
+ ptr[32] = 0x6A;
+ ptr[33] = 0x6B;
+ ptr[34] = 0x6C;
+}
+
+static void EraseSelectIcon(u8 itemPos)
+{
+ u16 *ptr = gBGTilemapBuffers[2] + 0x5A;
+
+ ptr += itemPos * 64;
+ ptr[0] = 0x4F;
+ ptr[1] = 0x4F;
+ ptr[2] = 0x4F;
+ ptr[32] = 0x4F;
+ ptr[33] = 0x4F;
+ ptr[34] = 0x4F;
+}
+
+static void RemoveSelectIconFromRegisteredItem(void)
+{
+ u8 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i == gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ break;
+ if (gCurrentBagPocketItemSlots[gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i].itemId == gSaveBlock1.registeredItem)
+ {
+ EraseSelectIcon(i);
+ break;
+ }
+ }
+}
+
+static void AddSelectIconToRegisteredItem(void)
+{
+ RemoveSelectIconFromRegisteredItem();
+ MoveSelectIcon(gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+}
+
+void sub_80A4164(u8 *dest, u16 value, enum StringConvertMode mode, u8 digits)
+{
+ *dest++ = CHAR_MULT_SIGN;
+ dest[0] = EXT_CTRL_CODE_BEGIN;
+ dest[1] = 0x14;
+ dest[2] = 6;
+ dest += 3;
+ ConvertIntToDecimalStringN(dest, value, mode, digits);
+}
+
+void sub_80A418C(u16 value, enum StringConvertMode mode, u8 c, u8 d, u8 digits)
+{
+ sub_80A4164(gStringVar1, value, mode, digits);
+ MenuPrint(gStringVar1, c, d);
+}
+
+static void sub_80A41D4(u8 taskId)
+{
+ sub_80A763C();
+}
+
+static void sub_80A41E0(u8 *a, u16 b, const u8 *c, u16 d, u8 e)
+{
+ a[0] = EXT_CTRL_CODE_BEGIN;
+ a[1] = 0x13;
+ a[2] = 8;
+ a += 3;
+ a = ConvertIntToDecimalStringN(a, b, STR_CONV_MODE_LEADING_ZEROS, 2);
+ a[0] = EXT_CTRL_CODE_BEGIN;
+ a[1] = 0x13;
+ a[2] = 0x18;
+ a += 3;
+ a = sub_8072C74(a, c, 0x78 - (e + 1) * 6, 0);
+ *a++ = CHAR_MULT_SIGN;
+ sub_8072C14(a, d, 0x78, 1);
+}
+
+static u8 *sub_80A425C(u8 taskId, u8 *text, u8 c)
+{
+ if (gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1 == c)
+ {
+ text[0] = EXT_CTRL_CODE_BEGIN;
+ text[1] = 1;
+ text[2] = 2;
+ text += 3;
+ }
+ return text;
+}
+
+static bool8 sub_80A42B0(u8 itemPos, int b)
+{
+ u8 r5;
+ u16 *ptr;
+ struct UnknownStruct3 *r8 = &gUnknown_02038540;
+
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + itemPos > gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ return TRUE;
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + itemPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ if (sReturnLocation == RETURN_TO_FIELD_5)
+ return TRUE;
+ r5 = itemPos * 2 + 2;
+ sub_8072C74(gStringVar1, gOtherText_CloseBag, 0x78, 0);
+ MenuPrint(gStringVar1, 14, r5);
+ ptr = gBGTilemapBuffers[2] + 14 + r5 * 32;
+ ptr[0] = 0x4F;
+ ptr[1] = 0x4F;
+ ptr[32] = 0x4F;
+ ptr[33] = 0x4F;
+ if (itemPos == 7)
+ return TRUE;
+ if ((b == 1 && r8->unk2 != 0) || b == 2)
+ MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 13);
+ else
+ MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 17);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80A4380(u16 a, int b, int c, int d)
+{
+ u8 i;
+
+ for (i = b; i <= c; i++)
+ {
+ u8 r4;
+ u8 r5;
+ u8 *text;
+
+ if (sub_80A42B0(i, d) == TRUE)
+ break;
+ r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i;
+ r5 = i * 2 + 2;
+ text = gStringVar1;
+ text = sub_80A425C(a, text, i);
+ text = sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x66, 0);
+ *text++ = CHAR_MULT_SIGN;
+ sub_8072C14(text, gCurrentBagPocketItemSlots[r4].quantity, 0x78, 1);
+ MenuPrint(gStringVar1, 14, r5);
+ }
+}
+
+static void sub_80A444C(u16 a, int b, int c, int d)
+{
+ u8 i;
+
+ for (i = b; i <= c; i++)
+ {
+ u8 r4;
+ u8 r5;
+ u8 *text;
+
+ if (sub_80A42B0(i, d) == TRUE)
+ break;
+ r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i;
+ r5 = i * 2 + 2;
+ text = gStringVar1;
+ text = sub_80A425C(a, text, i);
+#if ENGLISH
+ sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x60, 0);
+#else
+ sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x63, 0);
+#endif
+ MenuPrint(gStringVar1, 14, r5);
+ if (gUnknown_02038558 != 0)
+ {
+ if (gCurrentBagPocketItemSlots[r4].itemId == gSaveBlock1.registeredItem)
+ DrawSelectIcon(i);
+ }
+ else
+ {
+ if (gCurrentBagPocketItemSlots[r4].itemId == gSaveBlock1.registeredItem)
+ MoveSelectIcon(i);
+ else
+ EraseSelectIcon(i);
+ }
+ }
+}
+
+// more gBGTilemapBuffers shenanigans
+#ifdef NONMATCHING
+static void sub_80A4548(u16 a, int b, int c, int d)
+{
+ u8 i;
+
+ for (i = b; i <= c; i++)
+ {
+ u8 r4;
+ u8 sp10;
+ u32 r5;
+ u8 *text;
+
+ if (sub_80A42B0(i, d) == TRUE)
+ break;
+ r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i;
+ sp10 = i * 2 + 2;
+ r5 = sp10 * 32 + 14;
+ text = gStringVar1;
+ text = sub_80A425C(a, text, i);
+ if (gCurrentBagPocketItemSlots[r4].itemId < 0x153)
+ {
+ const u8 *r2;
+
+ gBGTilemapBuffers[2][r5 + 0] = 0x59;
+ gBGTilemapBuffers[2][r5 + 1] = 0x4F;
+ gBGTilemapBuffers[2][r5 + 32] = 0x69;
+ gBGTilemapBuffers[2][r5 + 33] = 0x4F;
+ r2 = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)];
+ sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 288, r2, gCurrentBagPocketItemSlots[r4].quantity, 2);
+ }
+ else
+ {
+ const u8 *moveName;
+
+ gBGTilemapBuffers[2][r5 + 0] = 0x105D;
+ gBGTilemapBuffers[2][r5 + 1] = 0x105E;
+ gBGTilemapBuffers[2][r5 + 32] = 0x106D;
+ gBGTilemapBuffers[2][r5 + 33] = 0x106E;
+ text[0] = EXT_CTRL_CODE_BEGIN;
+ text[1] = 0x13;
+ text[2] = 0x11;
+ text += 3;
+ text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[r4].itemId);
+ text[0] = EXT_CTRL_CODE_BEGIN;
+ text[1] = 0x13;
+ text[2] = 0x18;
+ text += 3;
+ moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)];
+ sub_8072C74(text, moveName, 0x78, 0);
+ }
+ MenuPrint(gStringVar1, 14, sp10);
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80A4548(u16 a, int b, int c, int d)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x14\n\
+ str r2, [sp, 0x8]\n\
+ str r3, [sp, 0xC]\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x4]\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r8, r1\n\
+ ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000\n\
+ mov r9, r0\n\
+ b _080A46C2\n\
+ .align 2, 0\n\
+_080A456C: .4byte gBGTilemapBuffers + 0x1000\n\
+_080A4570:\n\
+ ldr r1, _080A461C @ =gBagPocketScrollStates\n\
+ ldr r0, _080A4620 @ =sCurrentBagPocket\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r4, [r0, 0x1]\n\
+ add r4, r8\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ mov r1, r8\n\
+ lsls r0, r1, 25\n\
+ movs r3, 0x80\n\
+ lsls r3, 18\n\
+ adds r0, r3\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x10]\n\
+ lsls r0, 5\n\
+ adds r0, 0xE\n\
+ adds r5, r0, 0\n\
+ ldr r6, _080A4624 @ =gStringVar1\n\
+ ldr r1, [sp, 0x4]\n\
+ lsls r0, r1, 24\n\
+ lsrs r0, 24\n\
+ adds r1, r6, 0\n\
+ mov r2, r8\n\
+ bl sub_80A425C\n\
+ adds r6, r0, 0\n\
+ ldr r3, _080A4628 @ =gCurrentBagPocketItemSlots\n\
+ mov r10, r3\n\
+ ldr r0, [r3]\n\
+ lsls r7, r4, 2\n\
+ adds r3, r7, r0\n\
+ ldrh r1, [r3]\n\
+ movs r0, 0xA9\n\
+ lsls r0, 1\n\
+ cmp r1, r0\n\
+ bhi _080A4634\n\
+ lsls r0, r5, 1\n\
+ add r0, r9\n\
+ movs r1, 0x59\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ movs r2, 0x4F\n\
+ strh r2, [r0]\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x20\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ movs r1, 0x69\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x21\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ strh r2, [r0]\n\
+ ldrh r0, [r3]\n\
+ bl ItemIdToBattleMoveId\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0xD\n\
+ adds r2, r0, 0\n\
+ muls r2, r1\n\
+ ldr r0, _080A462C @ =gMoveNames\n\
+ adds r2, r0\n\
+ mov r1, r10\n\
+ ldr r0, [r1]\n\
+ adds r0, r7, r0\n\
+ ldr r3, _080A4630 @ =0xfffffee0\n\
+ adds r1, r3, 0\n\
+ ldrh r3, [r0]\n\
+ adds r1, r3\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ ldrh r3, [r0, 0x2]\n\
+ movs r0, 0x2\n\
+ str r0, [sp]\n\
+ adds r0, r6, 0\n\
+ bl sub_80A41E0\n\
+ b _080A46AE\n\
+ .align 2, 0\n\
+_080A461C: .4byte gBagPocketScrollStates\n\
+_080A4620: .4byte sCurrentBagPocket\n\
+_080A4624: .4byte gStringVar1\n\
+_080A4628: .4byte gCurrentBagPocketItemSlots\n\
+_080A462C: .4byte gMoveNames\n\
+_080A4630: .4byte 0xfffffee0\n\
+_080A4634:\n\
+ lsls r0, r5, 1\n\
+ add r0, r9\n\
+ ldr r1, _080A46EC @ =0x0000105d\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ adds r1, 0x1\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x20\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ adds r1, 0xF\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x21\n\
+ lsls r0, 1\n\
+ add r0, r9\n\
+ adds r1, 0x1\n\
+ strh r1, [r0]\n\
+ movs r0, 0xFC\n\
+ strb r0, [r6]\n\
+ movs r4, 0x13\n\
+ strb r4, [r6, 0x1]\n\
+ movs r0, 0x11\n\
+ strb r0, [r6, 0x2]\n\
+ adds r6, 0x3\n\
+ mov r1, r10\n\
+ ldr r0, [r1]\n\
+ adds r0, r7, r0\n\
+ ldrh r1, [r0]\n\
+ ldr r3, _080A46F0 @ =0xfffffeae\n\
+ adds r1, r3\n\
+ adds r0, r6, 0\n\
+ bl ConvertIntToDecimalString\n\
+ adds r6, r0, 0\n\
+ movs r0, 0xFC\n\
+ strb r0, [r6]\n\
+ strb r4, [r6, 0x1]\n\
+ movs r0, 0x18\n\
+ strb r0, [r6, 0x2]\n\
+ adds r6, 0x3\n\
+ mov r1, r10\n\
+ ldr r0, [r1]\n\
+ adds r0, r7, r0\n\
+ ldrh r0, [r0]\n\
+ bl ItemIdToBattleMoveId\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ movs r1, 0xD\n\
+ muls r1, r0\n\
+ ldr r0, _080A46F4 @ =gMoveNames\n\
+ adds r1, r0\n\
+ adds r0, r6, 0\n\
+ movs r2, 0x78\n\
+ movs r3, 0\n\
+ bl sub_8072C74\n\
+_080A46AE:\n\
+ ldr r0, _080A46F8 @ =gStringVar1\n\
+ movs r1, 0xE\n\
+ ldr r2, [sp, 0x10]\n\
+ bl MenuPrint\n\
+ mov r0, r8\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+_080A46C2:\n\
+ ldr r3, [sp, 0x8]\n\
+ cmp r8, r3\n\
+ bgt _080A46DA\n\
+ mov r0, r8\n\
+ ldr r1, [sp, 0xC]\n\
+ bl sub_80A42B0\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ beq _080A46DA\n\
+ b _080A4570\n\
+_080A46DA:\n\
+ add sp, 0x14\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080A46EC: .4byte 0x0000105d\n\
+_080A46F0: .4byte 0xfffffeae\n\
+_080A46F4: .4byte gMoveNames\n\
+_080A46F8: .4byte gStringVar1\n\
+ .syntax divided\n");
+}
+#endif
+
+static void sub_80A46FC(u16 a, int b, int c, int d)
+{
+ u8 i;
+
+ for (i = b; i <= c; i++)
+ {
+ u8 r4;
+ u8 r5;
+ u8 *text;
+ register int var asm("r0");
+
+ if (sub_80A42B0(i, d) == TRUE)
+ break;
+ r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i;
+ r5 = i * 2 + 2;
+
+ var = 14 + r5 * 32;
+ gBGTilemapBuffers[2][var] = 0x59;
+ var += 32;
+ gBGTilemapBuffers[2][var] = 0x69;
+
+ text = gStringVar1;
+ text = sub_80A425C(a, text, i);
+ CopyItemName(gCurrentBagPocketItemSlots[r4].itemId, gStringVar2);
+ sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 0x84, gStringVar2, gCurrentBagPocketItemSlots[r4].quantity, 3);
+ MenuPrint(gStringVar1, 14, r5);
+ }
+}
+
+static void sub_80A47E8(u16 a, int b, int c, int d)
+{
+ switch (sCurrentBagPocket)
+ {
+ case BAG_POCKET_ITEMS:
+ case BAG_POCKET_POKE_BALLS:
+ sub_80A4380(a, b, c, d);
+ break;
+ case BAG_POCKET_KEY_ITEMS:
+ sub_80A444C(a, b, c, d);
+ break;
+ case BAG_POCKET_TMs_HMs:
+ sub_80A4548(a, b, c, d);
+ break;
+ case BAG_POCKET_BERRIES:
+ sub_80A46FC(a, b, c, d);
+ break;
+ }
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0)
+ sub_80F979C(0, 0);
+ else
+ sub_80F979C(0, 1);
+ if ((sReturnLocation != RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots + 1)
+ || (sReturnLocation == RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots))
+ sub_80F979C(1, 0);
+ else
+ sub_80F979C(1, 1);
+}
+
+static void sub_80A48E8(u16 taskId, int b, int c)
+{
+ sub_80A47E8(taskId, b, c, 0);
+}
+
+static void sub_80A48F8(u16 taskId)
+{
+ sub_80A47E8(taskId, 0, 5, 2);
+}
+
+static void ItemListMenu_InitDescription(s16 itemId)
+{
+ u8 r5;
+
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ r5 = sub_8072A18(gOtherText_ReturnTo, 4, 0x68, 0x68, 1);
+ r5 += sub_8072A18(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0x68, 1);
+ }
+ else
+ {
+ r5 = sub_8072A18(ItemId_GetDescription(itemId), 4, 0x68, 0x68, 1);
+ }
+
+ if (r5 < 3)
+ MenuZeroFillWindowRect(0, 13 + r5 * 2, 13, 20);
+}
+
+static void ItemListMenu_ChangeDescription(s16 itemId, int b)
+{
+ u8 description[100];
+
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ if (b == 0)
+ {
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ MenuPrint_PixelCoords(gOtherText_ReturnTo, 4, 0x68, 0);
+ }
+ else if (b == 1)
+ {
+ MenuPrint_PixelCoords(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0);
+ }
+ }
+ else
+ {
+ if (b == 0)
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ if (ItemId_CopyDescription(description, itemId, b))
+ MenuPrint_PixelCoords(description, 4, 104 + b * 16, 0);
+ }
+}
+
+static bool32 CopyTextLine(u8 *destination, const u8 *source, u32 c)
+{
+ u32 r4 = c + 1;
+ const u8 *src = source;
+ u8 *dst = destination;
+
+ while (1)
+ {
+ if (*src == CHAR_NEWLINE || *src == EOS)
+ {
+ r4--;
+ if (r4 == 0)
+ {
+ *dst = EOS;
+ return TRUE;
+ }
+ if (*src == EOS)
+ return FALSE;
+ // got a new line - reset dst pointer
+ dst = destination;
+ src++;
+ }
+ else
+ {
+ *dst++ = *src++;
+ }
+ }
+}
+
+static void sub_80A4A98(const u8 *text, u32 line)
+{
+ u8 buffer[100];
+
+ if (line == 0)
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ if (CopyTextLine(buffer, text, line))
+ MenuPrint_PixelCoords(buffer, 4, 104 + line * 16, 0);
+}
+
+static void sub_80A4ADC(u8 taskId)
+{
+ if (gTasks[taskId].data[10] == 0)
+ sub_80A7528(0);
+ PlaySE(SE_SELECT);
+ gUnknown_0203855C = 1;
+}
+
+static void sub_80A4B14(s8 a, u8 b)
+{
+ gBagPocketScrollStates[sCurrentBagPocket].scrollTop += a;
+ MoveMenuCursor(0);
+ sub_80A73C0();
+ sub_80A763C();
+ sub_80A4ADC(b);
+}
+
+static void sub_80A4B58(s8 delta, u8 b)
+{
+ gBagPocketScrollStates[sCurrentBagPocket].cursorPos = MoveMenuCursor(delta);
+ sub_80A73C0();
+ sub_80A4ADC(b);
+}
+
+static const u8 *sub_80A4B90(u16 itemId)
+{
+ if (TestPlayerAvatarFlags(6))
+ {
+ if (itemId == ITEM_MACH_BIKE || itemId == ITEM_ACRO_BIKE)
+ return gOtherText_Walk;
+ }
+ if (ItemIsMail(itemId) == TRUE)
+ return gOtherText_Check;
+ return sItemPopupMenuActions[sPopupMenuActionList[0]].text;
+}
+
+static void sub_80A4BF0(u16 *a)
+{
+ u8 i;
+
+ if (gUnknown_02038564 == 4)
+ {
+ MenuDrawTextWindow(0, 7, 13, 12);
+ sub_80A4008(a, 1, 8, 12, 4);
+ if (sub_80F9344() == TRUE && sReturnLocation == RETURN_TO_FIELD_5)
+ {
+ sub_80A7834(1, 0);
+ }
+ else
+ {
+ for (i = 0; i < gUnknown_02038564; i++)
+ {
+ const u8 *text;
+
+ if (i == 0)
+ text = sub_80A4B90(gScriptItemId);
+ else
+ text = sItemPopupMenuActions[sPopupMenuActionList[i]].text;
+ MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2);
+ }
+ }
+ if (sReturnLocation == RETURN_TO_FIELD_5)
+ InitMenu(0, 1, 8, gUnknown_02038564, sPopupMenuSelection, 1);
+ else
+ InitMenu(0, 1, 8, gUnknown_02038564, 0, 1);
+ sub_8072DCC(0x2F);
+ }
+ else
+ {
+ MenuDrawTextWindow(0, 5, 13, 12);
+ sub_80A4008(a, 1, 6, 12, 6);
+ for (i = 0; i < gUnknown_02038564; i++)
+ MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[i]].text, 1 + (i / 3) * 6, 6 + (i % 3) * 2);
+ InitMenu(0, 1, 6, gUnknown_02038564, 0, 1);
+ sub_8072DCC(0x2F);
+ }
+ sub_80A7528(2);
+}
+
+static void sub_80A4DA4(u16 *a)
+{
+ sub_80A73FC();
+ sub_80A36B8(a, 0, 6, 13, 6);
+ MenuZeroFillWindowRect(0, 5, 13, 12);
+ sub_80A7590();
+}
+
+static void sub_80A4DD8(u8 taskId, u8 b, u8 c, u8 d, u8 e, u8 digits)
+{
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[2] = b + 2;
+ gTasks[taskId].data[3] = c + 1;
+ MenuDrawTextWindow(b, c, b + d, c + e);
+ sub_80A4008(gBGTilemapBuffers[1], b + 1, c + 1, d - 1, e - 1);
+ sub_80A418C(1, 1, b + 2, c + 1, digits);
+}
+
+static void sub_80A4E8C(s8 delta, u8 b)
+{
+ PlaySE(SE_SELECT);
+ sub_80F979C(0, 1);
+ sub_80F979C(1, 1);
+ sub_80F979C(2, 1);
+ sub_80F979C(3, 1);
+ PauseVerticalScrollIndicator(0);
+ PauseVerticalScrollIndicator(1);
+ PauseVerticalScrollIndicator(2);
+ PauseVerticalScrollIndicator(3);
+ ChangePocket(gBGTilemapBuffers[2], delta);
+ DrawPocketIndicatorDots(gBGTilemapBuffers[2], sCurrentBagPocket);
+ sub_80A3770();
+ sub_80A7C64();
+ CreateBagPokeballSprite(b);
+}
+
+static bool8 sub_80A4F0C(void)
+{
+ if (sReturnLocation == RETURN_TO_FIELD_5 || sReturnLocation == RETURN_TO_FIELD_4)
+ return FALSE;
+ if (gMain.newKeys == DPAD_RIGHT || sub_80F9284() == 2)
+ {
+ sub_80A4E8C(1, 2);
+ return TRUE;
+ }
+ if (gMain.newKeys == DPAD_LEFT || sub_80F9284() == 1)
+ {
+ sub_80A4E8C(-1, 1);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80A4F68(u8 taskId)
+{
+ sub_80A4F0C();
+}
+
+static bool8 sub_80A4F74(u8 a)
+{
+ bool8 retVal = FALSE;
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos != 0)
+ sub_80A4B58(-1, a);
+ else if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0)
+ sub_80A4B14(-1, a);
+ if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5)
+ gMain.keyRepeatCounter = 11;
+ retVal = TRUE;
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ if (sReturnLocation != RETURN_TO_FIELD_5)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].cursorMax)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ sub_80A4B14(1, a);
+ }
+ else
+ {
+ sub_80A4B58(1, a);
+ }
+ }
+ else
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots - 1)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].cursorMax)
+ sub_80A4B58(1, a);
+ else
+ sub_80A4B14(1, a);
+ }
+ }
+ retVal = TRUE;
+ if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5)
+ gMain.keyRepeatCounter = 11;
+ }
+ else
+ {
+ if (gTasks[a].data[10] == 0 && sub_80A4F0C() == TRUE)
+ {
+ sub_80A73F0();
+ gTasks[a].func = sub_80A4F68;
+ retVal = TRUE;
+ }
+ else
+ {
+ sub_80A73C0();
+ }
+ }
+ return retVal;
+}
+
+static void sub_80A50C8(u8 taskId)
+{
+ s16 *r5 = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ if (sub_80A4F74(taskId) == TRUE)
+ {
+ sub_808B5B4(taskId);
+ return;
+ }
+
+ if ((gMain.newKeys & SELECT_BUTTON)
+ && !(sCurrentBagPocket == BAG_POCKET_BERRIES || sCurrentBagPocket == BAG_POCKET_TMs_HMs)
+ && (sReturnLocation == RETURN_TO_FIELD_0 || sReturnLocation == RETURN_TO_BATTLE))
+ {
+ if (r5[10] == 0)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ PlaySE(SE_SELECT);
+ sub_80A3F50(taskId);
+ }
+ sub_808B5B4(taskId);
+ }
+ else
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ PlaySE(SE_SELECT);
+ sub_80A3E90(taskId);
+ }
+ else
+ {
+ sub_80A3EF4(taskId);
+ }
+ sub_808B5B4(taskId);
+ }
+ return;
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots)
+ {
+ if (r5[10] == 0)
+ {
+ gScriptItemId = 0;
+ gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
+ }
+ else
+ {
+ sub_80A3EF4(taskId);
+ }
+ sub_808B5B4(taskId);
+ }
+ else
+ {
+ if (r5[10] == 0)
+ {
+ PlaySE(SE_SELECT);
+ gUnknown_02038560 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+ gScriptItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId;
+ gUnknown_083C16BC[sReturnLocation].onItemSelect(taskId);
+ sub_80F98A4(0);
+ sub_80F98A4(1);
+ sub_80F98A4(2);
+ sub_80F98A4(3);
+ sub_80A797C();
+ }
+ else
+ {
+ sub_80A3E90(taskId);
+ }
+ sub_808B5B4(taskId);
+ }
+ return;
+ }
+
+ if (gMain.newKeys & B_BUTTON)
+ {
+ if (r5[10] == 0)
+ {
+ if (sReturnLocation != RETURN_TO_FIELD_5)
+ {
+ gScriptItemId = 0;
+ gUnknown_083C16BC[sReturnLocation].onBagClose(taskId);
+ }
+ }
+ else
+ {
+ sub_80A3EF4(taskId);
+ }
+ sub_808B5B4(taskId);
+ return;
+ }
+ }
+}
+
+bool8 sub_80A52C4(u8 taskId, u16 b)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
+ {
+ if (taskData[1] != b)
+ taskData[1]++;
+ else
+ taskData[1] = 1;
+ return TRUE;
+ }
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ if (taskData[1] != 1)
+ taskData[1]--;
+ else
+ taskData[1] = b;
+ return TRUE;
+ }
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT)
+ {
+ if (taskData[1] + 10 < b)
+ taskData[1] += 10;
+ else
+ taskData[1] = b;
+ return TRUE;
+ }
+
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT)
+ {
+ if (taskData[1] > 10)
+ taskData[1] -= 10;
+ else
+ taskData[1] = 1;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static bool8 sub_80A5350(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if (sub_80A52C4(taskId, gCurrentBagPocketItemSlots[gUnknown_02038560].quantity) == TRUE)
+ {
+ // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way
+ if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1)
+ sub_80A418C(taskData[1], 1, taskData[2], taskData[3], 3);
+ else
+ sub_80A418C(taskData[1], 1, taskData[2], taskData[3], 2);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void sub_80A53CC(void)
+{
+ if (sub_80A34B4() == TRUE)
+ {
+ sub_80A3770();
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+ }
+}
+
+void sub_80A53F8(void)
+{
+ sReturnLocation = RETURN_TO_FIELD_0;
+ SetMainCallback2(sub_80A53CC);
+}
+
+#ifdef NONMATCHING
+static void sub_80A5414(u8 taskId)
+{
+ TaskFunc r5 = NULL;
+
+ if (sub_80A78A0() != 0)
+ {
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x40)
+ {
+ if ((sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection - 1] == 8)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor3(-1);
+ }
+ }
+ //_080A546C
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x80)
+ {
+ if (!(sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection + 1] != 8)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor3(1);
+ }
+ }
+ //_080A549C
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x20)
+ {
+ if (sPopupMenuSelection > 1 && sPopupMenuActionList[sPopupMenuSelection - 2] != 8)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor3(-2);
+ }
+ }
+ //_080A54CC
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x10)
+ {
+ if (sPopupMenuSelection <= 1 && sPopupMenuActionList[sPopupMenuSelection + 2] != 8)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor3(2);
+ }
+ }
+ //_080A5500
+ else if (!(gMain.newKeys & A_BUTTON))
+ {
+ if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ r5 = sItemPopupMenuActions[sPopupMenuActionList[3]].func;
+ r5(taskId);
+ }
+ }
+ else
+ {
+ //_080A5590
+ gTasks[taskId].data[10] = 0;
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ r5 = sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func;
+ r5(taskId);
+ }
+ }
+ //_080A5552
+ if (r5 == NULL)
+ {
+ if (sReturnLocation == RETURN_TO_FIELD_5)
+ {
+ if (sPopupMenuSelection == 0)
+ {
+ sub_8072DDC(12);
+ return;
+ }
+ //_080A55D4
+ //else
+ //{
+ if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1)
+ sub_8072DCC(0x2F);
+ else
+ sub_8072DCC(0x30);
+ //}
+ }
+ //_080A55E0
+ else
+ {
+ if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1)
+ sub_8072DCC(0x2F);
+ else
+ sub_8072DCC(0x30);
+ }
+ }
+}
+#else
+__attribute__((naked))
+static void sub_80A5414(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ movs r5, 0\n\
+ bl sub_80A78A0\n\
+ cmp r0, 0\n\
+ bne _080A5426\n\
+ b _080A5552\n\
+_080A5426:\n\
+ ldr r2, _080A5460 @ =gMain\n\
+ ldrh r0, [r2, 0x30]\n\
+ movs r1, 0xF0\n\
+ ands r1, r0\n\
+ cmp r1, 0x40\n\
+ bne _080A546C\n\
+ ldr r4, _080A5464 @ =sPopupMenuSelection\n\
+ ldrb r1, [r4]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080A5440\n\
+ b _080A5552\n\
+_080A5440:\n\
+ ldrb r1, [r4]\n\
+ ldr r0, _080A5468 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ subs r1, 0x1\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x8\n\
+ bne _080A5452\n\
+ b _080A5552\n\
+_080A5452:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ b _080A54EE\n\
+ .align 2, 0\n\
+_080A5460: .4byte gMain\n\
+_080A5464: .4byte sPopupMenuSelection\n\
+_080A5468: .4byte sPopupMenuActionList\n\
+_080A546C:\n\
+ cmp r1, 0x80\n\
+ bne _080A549C\n\
+ ldr r4, _080A5494 @ =sPopupMenuSelection\n\
+ ldrb r1, [r4]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080A5552\n\
+ ldrb r1, [r4]\n\
+ ldr r0, _080A5498 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0x8\n\
+ beq _080A5552\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ b _080A54EE\n\
+ .align 2, 0\n\
+_080A5494: .4byte sPopupMenuSelection\n\
+_080A5498: .4byte sPopupMenuActionList\n\
+_080A549C:\n\
+ cmp r1, 0x20\n\
+ bne _080A54CC\n\
+ ldr r4, _080A54C4 @ =sPopupMenuSelection\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x1\n\
+ bls _080A5552\n\
+ adds r1, r0, 0\n\
+ ldr r0, _080A54C8 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ subs r1, 0x2\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x8\n\
+ beq _080A5552\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x2\n\
+ negs r0, r0\n\
+ b _080A54EE\n\
+ .align 2, 0\n\
+_080A54C4: .4byte sPopupMenuSelection\n\
+_080A54C8: .4byte sPopupMenuActionList\n\
+_080A54CC:\n\
+ cmp r1, 0x10\n\
+ bne _080A5500\n\
+ ldr r4, _080A54F8 @ =sPopupMenuSelection\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x1\n\
+ bhi _080A5552\n\
+ adds r1, r0, 0\n\
+ ldr r0, _080A54FC @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x2]\n\
+ cmp r0, 0x8\n\
+ beq _080A5552\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x2\n\
+_080A54EE:\n\
+ bl MoveMenuCursor3\n\
+ strb r0, [r4]\n\
+ b _080A5552\n\
+ .align 2, 0\n\
+_080A54F8: .4byte sPopupMenuSelection\n\
+_080A54FC: .4byte sPopupMenuActionList\n\
+_080A5500:\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080A5590\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080A5552\n\
+ ldr r1, _080A5570 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x1C]\n\
+ ldr r1, _080A5574 @ =gBagPocketScrollStates\n\
+ ldr r0, _080A5578 @ =sCurrentBagPocket\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r2, [r0]\n\
+ adds r0, r4, 0\n\
+ adds r1, r2, 0\n\
+ bl sub_80A48E8\n\
+ ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800\n\
+ bl sub_80A4DA4\n\
+ ldr r1, _080A5580 @ =sItemPopupMenuActions\n\
+ ldr r0, _080A5584 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0x3]\n\
+ lsls r0, 3\n\
+ adds r1, 0x4\n\
+ adds r0, r1\n\
+ ldr r5, [r0]\n\
+ adds r0, r4, 0\n\
+ bl _call_via_r5\n\
+_080A5552:\n\
+ cmp r5, 0\n\
+ bne _080A55FA\n\
+ ldr r0, _080A5588 @ =sReturnLocation\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x5\n\
+ bne _080A55E0\n\
+ ldr r0, _080A558C @ =sPopupMenuSelection\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080A55D4\n\
+ movs r0, 0xC\n\
+ bl sub_8072DDC\n\
+ b _080A55FA\n\
+ .align 2, 0\n\
+_080A5570: .4byte gTasks\n\
+_080A5574: .4byte gBagPocketScrollStates\n\
+_080A5578: .4byte sCurrentBagPocket\n\
+_080A557C: .4byte gBGTilemapBuffers + 0x800\n\
+_080A5580: .4byte sItemPopupMenuActions\n\
+_080A5584: .4byte sPopupMenuActionList\n\
+_080A5588: .4byte sReturnLocation\n\
+_080A558C: .4byte sPopupMenuSelection\n\
+_080A5590:\n\
+ ldr r1, _080A55C0 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x1C]\n\
+ ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800\n\
+ bl sub_80A4DA4\n\
+ ldr r1, _080A55C8 @ =sItemPopupMenuActions\n\
+ ldr r0, _080A55CC @ =sPopupMenuSelection\n\
+ ldrb r2, [r0]\n\
+ ldr r0, _080A55D0 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 3\n\
+ adds r1, 0x4\n\
+ adds r0, r1\n\
+ ldr r5, [r0]\n\
+ adds r0, r4, 0\n\
+ bl _call_via_r5\n\
+ b _080A5552\n\
+ .align 2, 0\n\
+_080A55C0: .4byte gTasks\n\
+_080A55C4: .4byte gBGTilemapBuffers + 0x800\n\
+_080A55C8: .4byte sItemPopupMenuActions\n\
+_080A55CC: .4byte sPopupMenuSelection\n\
+_080A55D0: .4byte sPopupMenuActionList\n\
+_080A55D4:\n\
+ cmp r0, 0x1\n\
+ bls _080A55E8\n\
+ movs r0, 0x30\n\
+ bl sub_8072DCC\n\
+ b _080A55FA\n\
+_080A55E0:\n\
+ ldr r0, _080A55F0 @ =sPopupMenuSelection\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0x1\n\
+ bhi _080A55F4\n\
+_080A55E8:\n\
+ movs r0, 0x2F\n\
+ bl sub_8072DCC\n\
+ b _080A55FA\n\
+ .align 2, 0\n\
+_080A55F0: .4byte sPopupMenuSelection\n\
+_080A55F4:\n\
+ movs r0, 0x30\n\
+ bl sub_8072DCC\n\
+_080A55FA:\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+__attribute__((naked))
+static void sub_80A5600(u8 taskId)
+{
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ movs r5, 0\n\
+ ldr r2, _080A563C @ =gMain\n\
+ ldrh r0, [r2, 0x30]\n\
+ movs r1, 0xF0\n\
+ ands r1, r0\n\
+ cmp r1, 0x40\n\
+ bne _080A5648\n\
+ ldr r4, _080A5640 @ =sPopupMenuSelection\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0\n\
+ bne _080A561E\n\
+ b _080A5736\n\
+_080A561E:\n\
+ adds r1, r0, 0\n\
+ ldr r0, _080A5644 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ subs r1, 0x1\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x8\n\
+ bne _080A5630\n\
+ b _080A5736\n\
+_080A5630:\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ b _080A56D2\n\
+ .align 2, 0\n\
+_080A563C: .4byte gMain\n\
+_080A5640: .4byte sPopupMenuSelection\n\
+_080A5644: .4byte sPopupMenuActionList\n\
+_080A5648:\n\
+ cmp r1, 0x80\n\
+ bne _080A5680\n\
+ ldr r4, _080A5674 @ =sPopupMenuSelection\n\
+ ldrb r1, [r4]\n\
+ ldr r0, _080A5678 @ =gUnknown_02038564\n\
+ ldrb r0, [r0]\n\
+ subs r0, 0x1\n\
+ cmp r1, r0\n\
+ beq _080A5736\n\
+ cmp r1, 0x2\n\
+ beq _080A5736\n\
+ ldr r0, _080A567C @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r0, r1, r0\n\
+ ldrb r0, [r0, 0x1]\n\
+ cmp r0, 0x8\n\
+ beq _080A5736\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x1\n\
+ b _080A56D2\n\
+ .align 2, 0\n\
+_080A5674: .4byte sPopupMenuSelection\n\
+_080A5678: .4byte gUnknown_02038564\n\
+_080A567C: .4byte sPopupMenuActionList\n\
+_080A5680:\n\
+ cmp r1, 0x20\n\
+ bne _080A56B0\n\
+ ldr r4, _080A56A8 @ =sPopupMenuSelection\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x2\n\
+ bls _080A5736\n\
+ adds r1, r0, 0\n\
+ ldr r0, _080A56AC @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ subs r1, 0x3\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x8\n\
+ beq _080A5736\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x3\n\
+ negs r0, r0\n\
+ b _080A56D2\n\
+ .align 2, 0\n\
+_080A56A8: .4byte sPopupMenuSelection\n\
+_080A56AC: .4byte sPopupMenuActionList\n\
+_080A56B0:\n\
+ cmp r1, 0x10\n\
+ bne _080A56E4\n\
+ ldr r4, _080A56DC @ =sPopupMenuSelection\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0x2\n\
+ bhi _080A5736\n\
+ adds r1, r0, 0\n\
+ ldr r0, _080A56E0 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x3]\n\
+ cmp r0, 0x8\n\
+ beq _080A5736\n\
+ movs r0, 0x5\n\
+ bl PlaySE\n\
+ movs r0, 0x3\n\
+_080A56D2:\n\
+ bl MoveMenuCursor3\n\
+ strb r0, [r4]\n\
+ b _080A5736\n\
+ .align 2, 0\n\
+_080A56DC: .4byte sPopupMenuSelection\n\
+_080A56E0: .4byte sPopupMenuActionList\n\
+_080A56E4:\n\
+ ldrh r1, [r2, 0x2E]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ bne _080A5768\n\
+ movs r0, 0x2\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _080A5736\n\
+ ldr r1, _080A574C @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x1C]\n\
+ ldr r1, _080A5750 @ =gBagPocketScrollStates\n\
+ ldr r0, _080A5754 @ =sCurrentBagPocket\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ lsls r0, 2\n\
+ adds r0, r1\n\
+ ldrb r2, [r0]\n\
+ adds r0, r4, 0\n\
+ adds r1, r2, 0\n\
+ bl sub_80A48E8\n\
+ ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800\n\
+ bl sub_80A4DA4\n\
+ ldr r1, _080A575C @ =sItemPopupMenuActions\n\
+ ldr r0, _080A5760 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0x5]\n\
+ lsls r0, 3\n\
+ adds r1, 0x4\n\
+ adds r0, r1\n\
+ ldr r5, [r0]\n\
+ adds r0, r4, 0\n\
+ bl _call_via_r5\n\
+_080A5736:\n\
+ cmp r5, 0\n\
+ bne _080A57BE\n\
+ ldr r0, _080A5764 @ =sPopupMenuSelection\n\
+ ldrb r0, [r0]\n\
+ cmp r0, 0\n\
+ bne _080A57AC\n\
+ movs r0, 0xC\n\
+ bl sub_8072DDC\n\
+ b _080A57BE\n\
+ .align 2, 0\n\
+_080A574C: .4byte gTasks\n\
+_080A5750: .4byte gBagPocketScrollStates\n\
+_080A5754: .4byte sCurrentBagPocket\n\
+_080A5758: .4byte gBGTilemapBuffers + 0x800\n\
+_080A575C: .4byte sItemPopupMenuActions\n\
+_080A5760: .4byte sPopupMenuActionList\n\
+_080A5764: .4byte sPopupMenuSelection\n\
+_080A5768:\n\
+ ldr r1, _080A5798 @ =gTasks\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ strh r5, [r0, 0x1C]\n\
+ ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800\n\
+ bl sub_80A4DA4\n\
+ ldr r1, _080A57A0 @ =sItemPopupMenuActions\n\
+ ldr r0, _080A57A4 @ =sPopupMenuSelection\n\
+ ldrb r2, [r0]\n\
+ ldr r0, _080A57A8 @ =sPopupMenuActionList\n\
+ ldr r0, [r0]\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ lsls r0, 3\n\
+ adds r1, 0x4\n\
+ adds r0, r1\n\
+ ldr r5, [r0]\n\
+ adds r0, r4, 0\n\
+ bl _call_via_r5\n\
+ b _080A5736\n\
+ .align 2, 0\n\
+_080A5798: .4byte gTasks\n\
+_080A579C: .4byte gBGTilemapBuffers + 0x800\n\
+_080A57A0: .4byte sItemPopupMenuActions\n\
+_080A57A4: .4byte sPopupMenuSelection\n\
+_080A57A8: .4byte sPopupMenuActionList\n\
+_080A57AC:\n\
+ cmp r0, 0x2\n\
+ bhi _080A57B8\n\
+ movs r0, 0x2F\n\
+ bl sub_8072DCC\n\
+ b _080A57BE\n\
+_080A57B8:\n\
+ movs r0, 0x30\n\
+ bl sub_8072DCC\n\
+_080A57BE:\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+
+static void sub_80A57C4(void)
+{
+ u8 r5;
+
+ sPopupMenuActionList = gUnknown_083C16AE[sCurrentBagPocket];
+ if (sCurrentBagPocket == BAG_POCKET_KEY_ITEMS)
+ {
+ gUnknown_02038564 = 1;
+ r5 = 9;
+ }
+ else if (sub_80F92F4(gScriptItemId) == 0)
+ {
+ sPopupMenuActionList = gUnknown_083C16AE[4];
+ gUnknown_02038564 = 1;
+ r5 = 9;
+ }
+ else
+ {
+ gUnknown_02038564 = 2;
+ r5 = 7;
+ }
+ sub_80A4008(gBGTilemapBuffers[1], 7, r5 + 1, 6, gUnknown_02038564 * 2);
+ MenuDrawTextWindow(6, r5, 13, gUnknown_02038564 * 2 + 1 + r5);
+ sub_80A7834(0, r5);
+ InitMenu(0, 7, r5 + 1, gUnknown_02038564, 0, 6);
+}
+
+static void sub_80A5888(u8 taskId)
+{
+ if (sub_80A78A0() != 0)
+ {
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if (sPopupMenuSelection != 0)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor(-1);
+ }
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if (sPopupMenuSelection != gUnknown_02038564 - 1)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sItemPopupMenuActions[2].func(taskId);
+ }
+ }
+}
+
+static void OnBagClose_Field0(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_805469C >> 16;
+ gTasks[taskId].data[9] = (u32)sub_805469C;
+ gLastFieldPokeMenuOpened = 0;
+ sub_80A5AE4(taskId);
+}
+
+static void OnItemSelect_Field05(u8 taskId)
+{
+ sPopupMenuSelection = 0;
+ if (sReturnLocation == RETURN_TO_FIELD_5)
+ sPopupMenuSelection = 1;
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A73FC();
+ if (sub_80F9344() == TRUE && sReturnLocation != RETURN_TO_FIELD_5)
+ {
+ sub_80A57C4();
+ gTasks[taskId].func = sub_80A5888;
+ }
+ else
+ {
+ sub_80A4BF0(gBGTilemapBuffers[1]);
+ if (sCurrentBagPocket != BAG_POCKET_BERRIES || sReturnLocation == RETURN_TO_FIELD_5)
+ gTasks[taskId].func = sub_80A5414;
+ else
+ gTasks[taskId].func = sub_80A5600;
+ }
+}
+
+static void sub_80A5AAC(u8 taskId)
+{
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gTasks[taskId].func = HandleItemMenuPaletteFade;
+}
+
+static void sub_80A5AE4(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ sub_80A5AAC(taskId);
+}
+
+void HandleItemMenuPaletteFade(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ MainCallback cb = (MainCallback)((u16)taskData[8] << 16 | (u16)taskData[9]);
+
+ SetMainCallback2(cb);
+ gpu_pal_allocator_reset__manage_upper_four();
+ DestroyTask(taskId);
+ }
+}
+
+void sub_80A5B40(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ ResetTasks();
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+ break;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+}
+
+static void HandlePopupMenuAction_UseOnField(u8 taskId)
+{
+ if (ItemId_GetFieldFunc(gScriptItemId) != NULL)
+ {
+ PlaySE(SE_SELECT);
+ if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gScriptItemId) == 1)
+ {
+ sub_80A5BF8(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[2] = 0;
+ if (sCurrentBagPocket != BAG_POCKET_BERRIES)
+ ItemId_GetFieldFunc(gScriptItemId)(taskId);
+ else
+ sub_80C9C7C(taskId);
+ }
+ }
+}
+
+static void sub_80A5BF8(u8 taskId)
+{
+ sub_80A73FC();
+ sub_80A7590();
+ DisplayCannotUseItemMessage(taskId, gOtherText_NoPokemon, CleanUpItemMenuMessage, 1);
+}
+
+static void sub_80A5C24(u8 taskId)
+{
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+void CleanUpItemMenuMessage(u8 taskId)
+{
+ sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
+ MenuZeroFillWindowRect(7, 7, 13, 12);
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ gTasks[taskId].func = sub_80A5C24;
+}
+
+void CleanUpOverworldMessage(u8 taskId)
+{
+ MenuZeroFillWindowRect(0, 13, 29, 19);
+ DestroyTask(taskId);
+ sub_8064E2C();
+ ScriptContext2_Disable();
+}
+
+void ExecuteItemUseFromBlackPalette(void)
+{
+ pal_fill_black();
+ CreateTask(Task_CallItemUseOnFieldCallback, 8);
+}
+
+static void Task_CallItemUseOnFieldCallback(u8 taskId)
+{
+ if (sub_807D770() == TRUE)
+ gUnknown_03005D00(taskId);
+}
+
+void sub_80A5D04(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+ break;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+}
+
+static void sub_80A5D38(u8 taskId)
+{
+ gTasks[taskId].data[1] = 0;
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void sub_80A5D78(void)
+{
+ sub_80A4008(gBGTilemapBuffers[1], 8, 8, 5, 4);
+ DisplayYesNoMenu(7, 7, 1);
+}
+
+static void sub_80A5DA0(u16 itemId, u16 quantity)
+{
+ CopyItemName(itemId, gStringVar1);
+ if (quantity >= 100)
+ ConvertIntToDecimalStringN(gStringVar2, quantity, STR_CONV_MODE_LEFT_ALIGN, 3);
+ else
+ ConvertIntToDecimalStringN(gStringVar2, quantity, STR_CONV_MODE_LEFT_ALIGN, 2);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sub_80A7528(5);
+ sub_80A5D78();
+}
+
+static void sub_80A5DF8(void)
+{
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ MenuZeroFillWindowRect(7, 6, 11, 13);
+ sub_80A7528(4);
+}
+
+static void sub_80A5E1C(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A41D4(taskId);
+ sub_80A5D38(taskId);
+ }
+}
+
+static void sub_80A5E60(u8 taskId)
+{
+ sub_80A5DF8();
+ sub_80A3D5C(taskId);
+ gTasks[taskId].func = sub_80A5E1C;
+}
+
+static void sub_80A5E90(u8 taskId)
+{
+ sub_80A5D38(taskId);
+}
+
+static void sub_80A5EA0(u8 taskId)
+{
+ if (sub_80A5350(taskId) == TRUE)
+ return;
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80A5DA0(gScriptItemId, gTasks[taskId].data[1]);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083C16F4);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80A5D38(taskId);
+ }
+}
+
+static void HandlePopupMenuAction_Toss(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ gTasks[taskId].func = sub_80A5EA0;
+ sub_80A7528(3);
+ // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way
+ if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1)
+ sub_80A4DD8(taskId, 6, 9, 7, 3, 3);
+ else
+ sub_80A4DD8(taskId, 7, 9, 6, 3, 2);
+}
+
+static void sub_80A5F80(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void HandlePopupMenuAction_Register(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ if (gSaveBlock1.registeredItem == gScriptItemId)
+ {
+ // Un-register the registered item
+ RemoveSelectIconFromRegisteredItem();
+ gSaveBlock1.registeredItem = 0;
+ }
+ else
+ {
+ AddSelectIconToRegisteredItem();
+ gSaveBlock1.registeredItem = gScriptItemId;
+ }
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void sub_80A6000(u8 taskId)
+{
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void sub_80A6024(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ gTasks[taskId].func = sub_80A6000;
+ }
+}
+
+static void DisplayCannotBeHeldMessage(u8 taskId)
+{
+ sub_80A73FC();
+ CopyItemName(gScriptItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeld);
+ sub_80A7590();
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
+}
+
+static void HandlePopupMenuAction_Give(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ if (sub_80F931C(gScriptItemId) == 0)
+ {
+ sub_80A73FC();
+ sub_80A7590();
+ DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
+ }
+ else if (ItemId_GetImportance(gScriptItemId) == 0)
+ {
+ if (CalculatePlayerPartyCount() == 0)
+ {
+ sub_80A5BF8(taskId);
+ }
+ else
+ {
+ gTasks[taskId].data[8] = (u32)sub_808B020 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_808B020;
+ gTasks[taskId].func = HandleItemMenuPaletteFade;
+ gUnknown_02038561 = 1;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ }
+ }
+ else
+ {
+ DisplayCannotBeHeldMessage(taskId);
+ }
+}
+
+static void HandlePopupMenuAction_CheckTag(u8 taskId)
+{
+ sub_80A5AE4(taskId);
+ gTasks[taskId].data[8] = (u32)BerryTagScreen_814625C >> 16;
+ gTasks[taskId].data[9] = (u32)BerryTagScreen_814625C;
+}
+
+static void sub_80A61A8(void)
+{
+ if (sub_80A34B4() == TRUE)
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+}
+
+void sub_80A61D0(void)
+{
+ sReturnLocation = RETURN_TO_PKMN_LIST;
+ SetMainCallback2(sub_80A61A8);
+}
+
+static void OnBagClose_PkmnList(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_808A3F8;
+ sub_80A5AE4(taskId);
+}
+
+static void OnItemSelect_PkmnList(u8 taskId)
+{
+ u8 r6 = sCurrentBagPocket + 1;
+
+ if (sub_80F931C(gScriptItemId) == 0)
+ {
+ sub_80A73FC();
+ sub_80A7590();
+ DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1);
+ }
+ else if (sub_80F92F4(gScriptItemId) == 0)
+ {
+ sub_80A73FC();
+ CopyItemName(gScriptItemId, gStringVar1);
+ StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeldHere);
+ sub_80A7590();
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1);
+ }
+ else if (r6 != 5 && ItemId_GetImportance(gScriptItemId) == 0)
+ {
+ gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_808A3F8;
+ sub_80A5AAC(taskId);
+ }
+ else
+ {
+ DisplayCannotBeHeldMessage(taskId);
+ }
+}
+
+static void sub_80A62D8(void)
+{
+ if (sub_80A34B4() == TRUE)
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+}
+
+void sub_80A6300(void)
+{
+ sReturnLocation = RETURN_TO_SHOP;
+ SetMainCallback2(sub_80A62D8);
+}
+
+static void OnBagClose_Shop(u8 taskId)
+{
+ gFieldCallback = sub_80B3050;
+ gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16;
+ gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch;
+ sub_80A5AE4(taskId);
+}
+
+static void OnItemSelect_Shop(u8 taskId)
+{
+ sub_80A7590();
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A73FC();
+ CopyItemName(gScriptItemId, gStringVar2);
+ if (ItemId_GetPrice(gScriptItemId) == 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gOtherText_CantBuyThat);
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6444, 1);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gOtherText_HowManyToSell);
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A648C, 1);
+ }
+}
+
+static void sub_80A640C(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void sub_80A6444(u8 taskId)
+{
+ sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ gTasks[taskId].func = sub_80A640C;
+}
+
+static void sub_80A648C(u8 taskId)
+{
+ gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput;
+ sub_80A4008(gBGTilemapBuffers[1], 1, 11, 12, 2);
+ MenuDrawTextWindow(0, 10, 13, 13);
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[2] = 1;
+ gTasks[taskId].data[3] = 11;
+ // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way
+ if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1)
+ sub_80A418C(1, 1, 1, 11, 3);
+ else
+ sub_80A418C(1, 1, 1, 11, 2);
+ BuyMenuDisplayMessage(gScriptItemId, 1);
+ sub_80A683C();
+}
+
+static void sub_80A6520(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ BuyMenuPrintItemQuantityAndPrice(taskId);
+ }
+}
+
+static void sub_80A6548(u8 taskId)
+{
+ sub_80A48F8(taskId);
+ gTasks[taskId].func = sub_80A6520;
+}
+
+static void sub_80A6574(u8 taskId)
+{
+ PlaySE(SE_REGI);
+ sub_80A6870(gScriptItemId, gTasks[taskId].data[1]);
+ gTasks[taskId].func = sub_80A6548;
+}
+
+static void sub_80A65AC(u8 taskId)
+{
+ MenuZeroFillWindowRect(7, 6, 13, 12);
+ sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
+ CopyItemName(gScriptItemId, gStringVar2);
+ StringExpandPlaceholders(gStringVar4, gOtherText_SoldItem);
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6574, 1);
+ sub_80A3D5C(taskId);
+}
+
+static void sub_80A6618(u8 taskId)
+{
+ MenuZeroFillWindowRect(7, 6, 13, 12);
+ sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6);
+ BuyMenuPrintItemQuantityAndPrice(taskId);
+}
+
+static void sub_80A6650(u8 taskId)
+{
+ sub_80A5D78();
+ DoYesNoFuncWithChoice(taskId, &gUnknown_083C16FC);
+}
+
+static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
+{
+ if (sub_80A5350(taskId) == TRUE)
+ {
+ MenuZeroFillWindowRect(6, 11, 12, 11);
+ BuyMenuDisplayMessage(gScriptItemId, gTasks[taskId].data[1]);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ MenuZeroFillWindowRect(0, 10, 13, 13);
+ sub_80A36B8(gBGTilemapBuffers[1], 0, 10, 13, 3);
+ ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gScriptItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6);
+ StringExpandPlaceholders(gStringVar4, gOtherText_CanPay);
+ DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6650, 1);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ BuyMenuPrintItemQuantityAndPrice(taskId);
+ }
+}
+
+static void sub_80A6760(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
+{
+ sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31);
+ RemoveMoneyLabelObject(0, 0);
+ MenuZeroFillWindowRect(0, 4, 13, 13);
+ MenuZeroFillWindowRect(0, 14, 29, 19);
+ gTasks[taskId].func = sub_80A6760;
+}
+
+static void BuyMenuDisplayMessage(u16 itemId, u16 quantity)
+{
+ sub_80B7A94(ItemId_GetPrice(itemId) / 2 * quantity, 6, 6, 11);
+ ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(itemId) / 2 * quantity, STR_CONV_MODE_LEFT_ALIGN, 6);
+}
+
+static void sub_80A683C(void)
+{
+ sub_80B7C14(gSaveBlock1.money, 0, 0);
+ sub_80A4008(gBGTilemapBuffers[1], 1, 1, 12, 2);
+}
+
+static void sub_80A6870(u16 itemId, u8 quantity)
+{
+ sub_80B79B8(&gSaveBlock1.money, ItemId_GetPrice(itemId) / 2 * quantity);
+ sub_80B7BEC(gSaveBlock1.money, 0, 0);
+}
+
+static void sub_80A68A4(void)
+{
+ if (sub_80A34B4() == TRUE)
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+}
+
+void sub_80A68CC(void)
+{
+ sCurrentBagPocket = BAG_POCKET_BERRIES;
+ sReturnLocation = RETURN_TO_FIELD_4;
+ SetMainCallback2(sub_80A68A4);
+}
+
+static void OnBagClose_Field4(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_80546B8 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_80546B8;
+ sub_80A5AE4(taskId);
+}
+
+static void OnItemSelect_Field4(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_80546B8 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_80546B8;
+ sub_80A5AAC(taskId);
+}
+
+static void sub_80A6940(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+ sub_80A699C();
+ break;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+}
+
+void sub_80A6978(void)
+{
+ sCurrentBagPocket = BAG_POCKET_BERRIES;
+ sReturnLocation = RETURN_TO_FIELD_5;
+ SetMainCallback2(sub_80A6940);
+}
+
+static void sub_80A699C(void)
+{
+ sPopupMenuActionList = gUnknown_083C16B8;
+ gUnknown_02038564 = 4;
+}
+
+static void OnBagClose_Field5(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_804E990 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_804E990;
+ sub_80A5AE4(taskId);
+}
+
+static void HandlePopupMenuAction_Confirm(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_804E990 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_804E990;
+ sub_80A5AAC(taskId);
+}
+
+static void sub_80A6A08(void)
+{
+ if (sub_80A34B4() == TRUE)
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+}
+
+void sub_80A6A30(void)
+{
+ sReturnLocation = RETURN_TO_PC;
+ SetMainCallback2(sub_80A6A08);
+}
+
+static void OnBagClose_PC(u8 taskId)
+{
+ gFieldCallback = ItemStorage_ReturnToMenuAfterDeposit;
+ gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16;
+ gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch;
+ sub_80A5AE4(taskId);
+}
+
+static void sub_80A6A84(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ CopyItemName(gScriptItemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, taskData[1], STR_CONV_MODE_LEFT_ALIGN, 3);
+ MenuZeroFillWindowRect(7, 6, 11, 13);
+ sub_80A7528(7);
+ sub_80A3D5C(taskId);
+ gTasks[taskId].func = sub_80A5E1C;
+}
+
+static void sub_80A6B00(u8 taskId)
+{
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ PlaySE(SE_SELECT);
+ sub_80A5D38(taskId);
+ }
+}
+
+static void sub_80A6B64(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ if (ItemId_GetImportance(gScriptItemId) == 2)
+ {
+ gTasks[taskId].func = sub_80A6B00;
+ sub_80A7528(9);
+ }
+ else
+ {
+ if (AddPCItem(gScriptItemId, taskData[1]) == TRUE)
+ {
+ sub_80A6A84(taskId);
+ }
+ else
+ {
+ gTasks[taskId].func = sub_80A6B00;
+ sub_80A7528(8);
+ }
+ }
+}
+
+static void sub_80A6BE0(u8 taskId)
+{
+ if (sub_80A5350(taskId) == TRUE)
+ return;
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sub_80A6B64(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ PlaySE(SE_SELECT);
+ sub_80A5D38(taskId);
+ }
+}
+
+static void OnItemSelect_PC(u8 taskId)
+{
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A73FC();
+ PlaySE(SE_SELECT);
+ sub_80A7590();
+ if (sCurrentBagPocket != BAG_POCKET_KEY_ITEMS)
+ {
+ gTasks[taskId].func = sub_80A6BE0;
+ sub_80A7528(6);
+ // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way
+ if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1)
+ sub_80A4DD8(taskId, 6, 9, 7, 3, 3);
+ else
+ sub_80A4DD8(taskId, 7, 9, 6, 3, 2);
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 1;
+ sub_80A6B64(taskId);
+ }
+}
+
+bool32 sub_80A6D1C(void)
+{
+ HideMapNamePopup();
+ if (gSaveBlock1.registeredItem != 0)
+ {
+ if (CheckBagHasItem(gSaveBlock1.registeredItem, 1) == TRUE)
+ {
+ u8 taskId;
+
+ ScriptContext2_Enable();
+ FreezeMapObjects();
+ sub_80594C0();
+ sub_80597F4();
+ gScriptItemId = gSaveBlock1.registeredItem;
+ taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1.registeredItem), 8);
+ gTasks[taskId].data[2] = 1;
+ return TRUE;
+ }
+ gSaveBlock1.registeredItem = 0;
+ }
+ ScriptContext1_SetupScript(Event_NoRegisteredItem);
+ return TRUE;
+}
+
+static void sub_80A6D98(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ gUnknown_02038563 = CreateTask(sub_80A50C8, 0);
+ break;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+}
+
+void sub_80A6DCC(void)
+{
+ sPopupMenuSelection = 0;
+ sReturnLocation = RETURN_TO_BATTLE;
+ SetMainCallback2(sub_80A6D98);
+}
+
+static void sub_80A6DF0(u16 *a)
+{
+ u8 r6 = (gUnknown_02038564 - 1) * 2;
+
+ MenuDrawTextWindow(7, 9 - r6, 13, 12);
+ sub_80A4008(a, 8, 10 - r6, 5, r6 + 2);
+ if (gUnknown_02038564 == 1)
+ {
+ MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 10);
+ }
+ else
+ {
+ MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 8);
+ MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[1]].text, 8, 10);
+ }
+ InitMenu(0, 8, 10 - r6, gUnknown_02038564, 0, 5);
+ sub_80A7528(2);
+}
+
+static void sub_80A6EB8(u8 taskId)
+{
+ if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP)
+ {
+ if (sPopupMenuSelection == 1)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor(-1);
+ }
+ }
+ else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN)
+ {
+ if (sPopupMenuSelection + 1 < gUnknown_02038564)
+ {
+ PlaySE(SE_SELECT);
+ sPopupMenuSelection = MoveMenuCursor(1);
+ }
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ gTasks[taskId].data[10] = 0;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+ sItemPopupMenuActions[5].func(taskId);
+ }
+}
+
+static const u8 gUnknown_083C1708[] = {4, 5};
+static const u8 gUnknown_083C170A[] = {5, 0};
+
+static void sub_80A6FDC(void)
+{
+ if (ItemId_GetBattleUsage(gScriptItemId) != 0)
+ {
+ sPopupMenuActionList = gUnknown_083C1708;
+ gUnknown_02038564 = 2;
+ }
+ else
+ {
+ sPopupMenuActionList = gUnknown_083C170A;
+ gUnknown_02038564 = 1;
+ }
+}
+
+static void OnItemSelect_Battle(u8 taskId)
+{
+ sPopupMenuSelection = 0;
+ sub_80A6FDC();
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A73FC();
+ sub_80A6DF0(gBGTilemapBuffers[1]);
+ gTasks[taskId].func = sub_80A6EB8;
+}
+
+void sub_80A7094(u8 taskId)
+{
+ gTasks[taskId].data[8] = (u32)sub_802E424 >> 16;
+ gTasks[taskId].data[9] = (u32)sub_802E424;
+ gTasks[taskId].func = HandleItemMenuPaletteFade;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+}
+
+static void OnBagClose_Battle(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ sub_80A7094(taskId);
+}
+
+static void HandlePopupMenuAction_UseInBattle(u8 taskId)
+{
+ if (ItemId_GetBattleFunc(gScriptItemId) != NULL)
+ {
+ PlaySE(SE_SELECT);
+ ItemId_GetBattleFunc(gScriptItemId)(taskId);
+ }
+}
+
+static void sub_80A7124(u8 taskId)
+{
+ PlaySE(SE_SELECT);
+ sub_80A7528(0);
+ sub_80A41D4(taskId);
+ ItemListMenu_InitMenu();
+ sub_80A37C0(taskId);
+}
+
+static void sub_80A7150(void)
+{
+ while (1)
+ {
+ if (SetupBagMultistep() == TRUE)
+ {
+ gUnknown_02038563 = CreateTask(sub_80A7230, 0);
+ gTasks[gUnknown_02038563].data[15] = 0;
+ break;
+ }
+ if (sub_80F9344() == TRUE)
+ break;
+ }
+}
+
+void PrepareBagForWallyTutorial(void)
+{
+ u8 i;
+
+ sPopupMenuSelection = 0;
+ sCurrentBagPocket = BAG_POCKET_ITEMS;
+ for (i = 0; i < 5; i++)
+ {
+ gBagPocketScrollStates[i].cursorPos = 0;
+ gBagPocketScrollStates[i].scrollTop = 0;
+ }
+
+ // Save player's items
+ memcpy(ewramSavedItemsPocket, gSaveBlock1.bagPocket_Items, sizeof(gSaveBlock1.bagPocket_Items));
+ memcpy(ewramSavedPokeballsPocket, gSaveBlock1.bagPocket_PokeBalls, sizeof(gSaveBlock1.bagPocket_PokeBalls));
+
+ // Add Wally's items to the bag
+ ClearItemSlots(gSaveBlock1.bagPocket_Items, ARRAY_COUNT(gSaveBlock1.bagPocket_Items));
+ ClearItemSlots(gSaveBlock1.bagPocket_PokeBalls, ARRAY_COUNT(gSaveBlock1.bagPocket_PokeBalls));
+ AddBagItem(ITEM_POTION, 1);
+ AddBagItem(ITEM_POKE_BALL, 1);
+
+ sReturnLocation = RETURN_TO_WALLY_BATTLE;
+ SetMainCallback2(sub_80A7150);
+}
+
+static void sub_80A7230(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (taskData[15])
+ {
+ case 102:
+ PlaySE(SE_SELECT);
+ sub_80A4E8C(1, 2);
+ break;
+ case 204:
+ PlaySE(SE_SELECT);
+ sub_80F98A4(2);
+ sub_80F98A4(3);
+ gScriptItemId = ITEM_POKE_BALL;
+ sPopupMenuActionList = gUnknown_083C1708;
+ gUnknown_02038564 = 2;
+ gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1;
+ sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos);
+ sub_80A73FC();
+ sub_80A6DF0(gBGTilemapBuffers[1]);
+ break;
+ case 306:
+ PlaySE(SE_SELECT);
+ sub_80A4DA4(gBGTilemapBuffers[1]);
+
+ // Restore player's items
+ memcpy(gSaveBlock1.bagPocket_Items, ewramSavedItemsPocket, sizeof(gSaveBlock1.bagPocket_Items));
+ memcpy(gSaveBlock1.bagPocket_PokeBalls, ewramSavedPokeballsPocket, sizeof(gSaveBlock1.bagPocket_PokeBalls));
+
+ taskData[8] = (u32)sub_802E424 >> 16;
+ taskData[9] = (u32)sub_802E424;
+ gTasks[taskId].func = HandleItemMenuPaletteFade;
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ return;
+ }
+ taskData[15]++;
+}
+
+static void ItemListMenu_InitMenu(void)
+{
+ InitMenu(0, 14, 2, gBagPocketScrollStates[sCurrentBagPocket].cursorMax + 1, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, 0);
+ CreateBlendedOutlineCursor(16, 0xFFFF, 12, 0x2D9F, 15);
+ sub_80A73C0();
+}
+
+static void sub_80A73C0(void)
+{
+ sub_814AD7C(0x70, gBagPocketScrollStates[sCurrentBagPocket].cursorPos * 16 + 16);
+}
+
+static void sub_80A73F0(void)
+{
+ sub_814ADC8();
+}
+
+static void sub_80A73FC(void)
+{
+ HandleDestroyMenuCursors();
+ sub_814AD44();
+}
+
+static void sub_80A740C(void)
+{
+ sub_80A75E4();
+ sub_80A7768();
+ sub_80A7420();
+}
+
+static void sub_80A7420(void)
+{
+ struct UnknownStruct2 *unkStruct = &gUnknown_0203853C;
+ int index;
+
+ switch (unkStruct->unk0)
+ {
+ case 3:
+ unkStruct->unk0 = 2;
+ break;
+ case 2:
+ switch (unkStruct->unk2)
+ {
+ case 0:
+ index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos;
+ ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, unkStruct->textLine);
+ break;
+ case 1:
+ sub_80A4A98(gOtherText_SwitchWhichItem, unkStruct->textLine);
+ break;
+ case 2:
+ sub_80A4A98(gOtherText_WhatWillYouDo2, unkStruct->textLine);
+ break;
+ case 3:
+ sub_80A4A98(gOtherText_HowManyToToss, unkStruct->textLine);
+ break;
+ case 4:
+ sub_80A4A98(gOtherText_ThrewAwayItem, unkStruct->textLine);
+ break;
+ case 5:
+ sub_80A4A98(gOtherText_OkayToThrowAwayPrompt, unkStruct->textLine);
+ break;
+ case 6:
+ sub_80A4A98(gOtherText_HowManyToDeposit, unkStruct->textLine);
+ break;
+ case 7:
+ sub_80A4A98(gOtherText_DepositedItems, unkStruct->textLine);
+ break;
+ case 8:
+ sub_80A4A98(gOtherText_NoRoomForItems, unkStruct->textLine);
+ break;
+ case 9:
+ sub_80A4A98(gOtherText_CantStoreSomeoneItem, unkStruct->textLine);
+ break;
+ }
+ unkStruct->textLine++;
+ if (unkStruct->textLine == 3)
+ {
+ unkStruct->unk0 = 0;
+ sub_80A7918();
+ }
+ break;
+ }
+}
+
+static void sub_80A751C(void)
+{
+ gUnknown_0203853C.unk0 = 0;
+}
+
+static void sub_80A7528(u8 a)
+{
+ gUnknown_0203853C.textLine = 0;
+ gUnknown_0203853C.unk2 = a;
+ switch (sub_80A78F4())
+ {
+ case 0:
+ gUnknown_0203853C.unk0 = 2;
+ while (gUnknown_0203853C.unk0 != 0)
+ sub_80A7420();
+ break;
+ case 1:
+ gUnknown_0203853C.unk0 = 3;
+ break;
+ case 2:
+ gUnknown_0203853C.unk0 = 1;
+ break;
+ }
+}
+
+static void sub_80A756C(void)
+{
+ if (gUnknown_0203853C.unk0 == 2 || gUnknown_0203853C.unk0 == 3)
+ sub_80A7918();
+ gUnknown_0203853C.unk0 = 0;
+}
+
+static void sub_80A7590(void)
+{
+ MenuZeroFillWindowRect(0, 13, 13, 20);
+ sub_80A756C();
+}
+
+static void sub_80A75A8(void)
+{
+ if (gUnknown_0203853C.unk0 == 2 || gUnknown_0203853C.unk0 == 3)
+ gUnknown_0203853C.unk0 = 1;
+}
+
+static void sub_80A75C4(void)
+{
+ switch (gUnknown_0203853C.unk0)
+ {
+ case 1:
+ gUnknown_0203853C.unk0 = 3;
+ break;
+ case 0:
+ sub_80A7918();
+ break;
+ }
+}
+
+static void sub_80A75E4(void)
+{
+ if (gUnknown_02038540.unk0 == 1 && sub_80A7988() == 0)
+ {
+ int r1;
+
+ sub_80A47E8(gUnknown_02038563, gUnknown_02038540.unk1, gUnknown_02038540.unk1, 1);
+ gUnknown_02038540.unk1++;
+ if (gUnknown_02038540.unk2 != 0)
+ r1 = 5;
+ else
+ r1 = 7;
+ if (r1 < gUnknown_02038540.unk1)
+ {
+ gUnknown_02038540.unk0 = 0;
+ sub_80A78E8();
+ }
+ }
+}
+
+static void sub_80A7630(void)
+{
+ gUnknown_02038540.unk0 = 0;
+}
+
+static void sub_80A763C(void)
+{
+ struct UnknownStruct3 *r4 = &gUnknown_02038540;
+
+ switch (sub_80A78C4())
+ {
+ case FALSE:
+ sub_80A48E8(gUnknown_02038563, 0, 7);
+ break;
+ case TRUE:
+ r4->unk0 = 1;
+ r4->unk1 = 0;
+ r4->unk2 = 0;
+ break;
+ }
+}
+
+static void sub_80A7678(void)
+{
+ if (gUnknown_02038540.unk0 == 1)
+ sub_80A78E8();
+ gUnknown_02038540.unk0 = 0;
+}
+
+static void sub_80A7694(void)
+{
+ gUnknown_02038540.unk2 = 1;
+}
+
+static void sub_80A76A0(void)
+{
+ MenuZeroFillWindowRect(14, 2, 29, 18);
+ sub_80A7678();
+}
+
+static bool32 sub_80A76B8(void)
+{
+ struct UnknownStruct3 *s = &gUnknown_02038540;
+
+ return (s->unk0 == 0);
+}
+
+static bool32 sub_80A76D0(void)
+{
+ struct UnknownStruct3 *s = &gUnknown_02038540;
+
+ return (s->unk1 > 5);
+}
+
+static void sub_80A76E8(void)
+{
+ if (gUnknown_02038544.unk0 == 1)
+ {
+ DisplayItemMessageOnField(
+ gUnknown_02038544.unk1,
+ gUnknown_02038544.unk4,
+ gUnknown_02038544.unk8,
+ gUnknown_02038544.unk2);
+ gUnknown_02038544.unk0 = 0;
+ }
+}
+
+static void sub_80A770C(void)
+{
+ gUnknown_02038544.unk0 = 0;
+}
+
+static void DisplayCannotUseItemMessage(int a, const u8 *b, TaskFunc func, int d)
+{
+ struct UnknownStruct4 *r4 = &gUnknown_02038544;
+
+ switch (sub_80A7924())
+ {
+ case 0:
+ DisplayItemMessageOnField(a, b, func, d);
+ break;
+ case 2:
+ r4->unk0 = 1;
+ r4->unk1 = a;
+ r4->unk4 = b;
+ r4->unk8 = func;
+ r4->unk2 = d;
+ break;
+ }
+}
+
+static void sub_80A7768(void)
+{
+ struct UnknownStruct5 *r4 = &gUnknown_02038550;
+
+ if (r4->unk0 == 2)
+ {
+ if (r4->unk1 != 0)
+ {
+ if (r4->unk2 != 1)
+ {
+ const u8 *text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
+ int var = r4->unk1 - 1;
+
+ MenuPrint(text, 7, var * 2 + 1 + r4->unk3);
+ }
+ else
+ {
+ const u8 *text;
+ int var;
+
+ if (r4->unk1 == 1)
+ text = sub_80A4B90(gScriptItemId);
+ else
+ text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text;
+ var = r4->unk1 - 1;
+ MenuPrint(text, (var >> 1) * 6 + 1, (var & 1) * 2 + 8);
+ }
+ if (r4->unk1 == gUnknown_02038564)
+ {
+ r4->unk0 = 0;
+ sub_80A7970();
+ }
+ }
+ r4->unk1++;
+ }
+}
+
+static void sub_80A7828(void)
+{
+ gUnknown_02038550.unk0 = 0;
+}
+
+static void sub_80A7834(int a, int b)
+{
+ struct UnknownStruct5 *r4 = &gUnknown_02038550;
+
+ switch (sub_80A7958())
+ {
+ case 1:
+ r4->unk0 = 2;
+ r4->unk1 = 0;
+ r4->unk2 = a;
+ r4->unk3 = b;
+ break;
+ case 2:
+ r4->unk0 = 1;
+ r4->unk1 = 0;
+ r4->unk2 = a;
+ r4->unk3 = b;
+ break;
+ }
+}
+
+static void sub_80A7868(void)
+{
+ if (gUnknown_02038550.unk0 == 2)
+ gUnknown_02038550.unk0 = 1;
+}
+
+static void sub_80A7880(void)
+{
+ switch (gUnknown_02038550.unk0)
+ {
+ case 1:
+ gUnknown_02038550.unk0 = 2;
+ break;
+ case 0:
+ sub_80A7970();
+ break;
+ }
+}
+
+static bool32 sub_80A78A0(void)
+{
+ struct UnknownStruct5 *r0 = &gUnknown_02038550;
+
+ return (r0->unk0 == 0);
+}
+
+static void sub_80A78B8(void)
+{
+ gUnknown_02038554.unk0 = 0;
+}
+
+static bool32 sub_80A78C4(void)
+{
+ bool32 retVal;
+
+ if (gLinkOpen == TRUE)
+ {
+ sub_80A7868();
+ sub_80A75A8();
+ retVal = TRUE;
+ }
+ else
+ {
+ retVal = FALSE;
+ }
+ return retVal;
+}
+
+static void sub_80A78E8(void)
+{
+ sub_80A7880();
+}
+
+static int sub_80A78F4(void)
+{
+ int retVal;
+
+ if (gLinkOpen == TRUE)
+ {
+ if (sub_80A76B8() != 0)
+ retVal = 1;
+ else
+ retVal = 2;
+ }
+ else
+ {
+ retVal = 0;
+ }
+ return retVal;
+}
+
+static void sub_80A7918(void)
+{
+ sub_80A76E8();
+}
+
+static int sub_80A7924(void)
+{
+ if (gLinkOpen == TRUE && sub_80A76B8() == 0)
+ {
+ if (sub_80A76D0() != 0)
+ {
+ sub_80A7678();
+ return 0;
+ }
+ }
+ else
+ {
+ return 0;
+ }
+ sub_80A7694();
+ return 2;
+}
+
+static int sub_80A7958(void)
+{
+ if (sub_80A76B8() == 0)
+ return 2;
+ sub_80A75A8();
+ return 1;
+}
+
+static void sub_80A7970(void)
+{
+ sub_80A75C4();
+}
+
+static void sub_80A797C(void)
+{
+ gUnknown_02038554.unk0 = 1;
+}
+
+static int sub_80A7988(void)
+{
+ int val = gUnknown_02038554.unk0;
+
+ gUnknown_02038554.unk0 = 0;
+ return val;
+}
+
+static const u16 gPalette_83C170C[] = INCBIN_U16("graphics/unknown/83C170C.gbapal");
+static const u8 gSpriteImage_83C172C[] = INCBIN_U8("graphics/unknown_sprites/83C172C.4bpp");
+
+const u8 gSpriteImage_UnusedCherry[] = INCBIN_U8("graphics/unused/cherry.4bpp");
+const u16 gSpritePalette_UnusedCherry[] = INCBIN_U16("graphics/unused/cherry.gbapal");
+
+//------------------------------------------------------------------------------
+// Bag Sprite
+//------------------------------------------------------------------------------
+
+static const struct OamData sBagSpriteOamData =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 7,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq0[] =
+{
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq1[] =
+{
+ ANIMCMD_FRAME(64, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq5[] =
+{
+ ANIMCMD_FRAME(128, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq2[] =
+{
+ ANIMCMD_FRAME(192, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq3[] =
+{
+ ANIMCMD_FRAME(256, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd sBagSpriteAnimSeq4[] =
+{
+ ANIMCMD_FRAME(320, 4),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sBagSpriteAnimTable[] =
+{
+ sBagSpriteAnimSeq0,
+ sBagSpriteAnimSeq1,
+ sBagSpriteAnimSeq2,
+ sBagSpriteAnimSeq3,
+ sBagSpriteAnimSeq4,
+ sBagSpriteAnimSeq5,
+};
+
+static const union AffineAnimCmd sBagSpriteAffineAnimSeq[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, -2, 2),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, -2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 2),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const sBagSpriteAffineAnimTable[] =
+{
+ sBagSpriteAffineAnimSeq,
+};
+
+static const struct CompressedSpriteSheet sMaleBagSpriteSheet = {gBagMaleTiles, 0x3000, 30000};
+static const struct CompressedSpriteSheet sFemaleBagSpriteSheet = {gBagFemaleTiles, 0x3000, 30000};
+static const struct CompressedSpritePalette sBagSpritePalette = {gBagPalette, 30000};
+
+static void sub_80A7998(struct Sprite *sprite)
+{
+ sprite->animNum = 0;
+ sprite->data0 = 0;
+ sprite->data1 = 0;
+ sprite->data2 = 0;
+ sprite->data3 = 0;
+ sprite->data4 = 0;
+ sprite->callback = sub_80A79B4;
+}
+
+static void sub_80A79B4(struct Sprite *sprite)
+{
+ if (gUnknown_0203855B != -1)
+ sub_80A79EC(sprite);
+ if (gUnknown_0203855C != 0)
+ sub_80A7A94(sprite);
+}
+
+static void sub_80A79EC(struct Sprite *sprite)
+{
+ switch (sprite->data3)
+ {
+ case 0:
+ if (gUnknown_0203855B != 6)
+ {
+ sprite->animBeginning = TRUE;
+ sprite->animNum = gUnknown_0203855B;
+ gUnknown_0203855B = -1;
+ }
+ else
+ {
+ sprite->animBeginning = TRUE;
+ sprite->animNum = 0;
+ sprite->pos1.y -= 4;
+ sprite->data0 = 4;
+ sprite->data3 = 1;
+ sub_80A7AE4(sprite);
+ }
+ break;
+ case 1:
+ if (sprite->data0 != 0)
+ {
+ if (sprite->data1 != 0)
+ {
+ sprite->pos1.y++;
+ sprite->data0--;
+ }
+ sprite->data1 = (sprite->data1 + 1) & 1;
+ }
+ else
+ {
+ gUnknown_0203855B = -1;
+ sprite->data1 = 0;
+ sprite->data3 = 0;
+ }
+ break;
+ }
+}
+
+static void sub_80A7A94(struct Sprite *sprite)
+{
+ switch (sprite->data4)
+ {
+ case 0:
+ sprite->oam.affineMode = 1;
+ sprite->affineAnims = sBagSpriteAffineAnimTable;
+ InitSpriteAffineAnim(sprite);
+ sprite->data4 = 1;
+ break;
+ case 1:
+ sprite->data2++;
+ if (sprite->data2 == 12)
+ sub_80A7AE4(sprite);
+ break;
+ }
+}
+
+static void sub_80A7AE4(struct Sprite *sprite)
+{
+ gUnknown_0203855C = 0;
+ sprite->oam.affineMode = 0;
+ sprite->data2 = 0;
+ sprite->data4 = 0;
+ FreeOamMatrix(sprite->oam.matrixNum);
+}
+
+static const struct SpriteTemplate sBagSpriteTemplate =
+{
+ .tileTag = 30000,
+ .paletteTag = 30000,
+ .oam = &sBagSpriteOamData,
+ .anims = sBagSpriteAnimTable,
+ .images = NULL,
+ .affineAnims = sBagSpriteAffineAnimTable,
+ .callback = sub_80A7998,
+};
+
+static void CreateBagSprite(void)
+{
+ CreateSprite(&sBagSpriteTemplate, 58, 40, 0);
+}
+
+//------------------------------------------------------------------------------
+// Pokeball Sprite
+//------------------------------------------------------------------------------
+
+static const struct OamData gOamData_83C1CF8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 4,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 8,
+ .affineParam = 0,
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83C1D00[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, 8, 32),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83C1D10[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, -8, 32),
+ AFFINEANIMCMD_END,
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_83C1D20[] =
+{
+ gSpriteAffineAnim_83C1D00,
+ gSpriteAffineAnim_83C1D10,
+};
+
+static const struct SpriteFrameImage gSpriteImageTable_83C1D28[] =
+{
+ {gSpriteImage_83C172C, sizeof(gSpriteImage_83C172C)},
+};
+
+static const struct SpritePalette sPokeballSpritePalette = {gPalette_83C170C, 8};
+
+static void sub_80A7B28(struct Sprite *sprite)
+{
+ sprite->data3 = 0;
+ sprite->data0 = 0;
+ sub_80A7B6C(sprite);
+ sprite->callback = sub_80A7B6C;
+}
+
+static void sub_80A7B48(struct Sprite *sprite)
+{
+ sprite->centerToCornerVecX = sprite->data5 - ((sprite->data0 + 1) & 1);
+ sprite->centerToCornerVecY = sprite->data6 - ((sprite->data0 + 1) & 1);
+}
+
+static void sub_80A7B6C(struct Sprite *sprite)
+{
+ if (sprite->data7 != 0)
+ {
+ switch (sprite->data3)
+ {
+ case 0:
+ sprite->oam.affineMode = 1;
+ if (sprite->data7 == 1)
+ sprite->affineAnims = gSpriteAffineAnimTable_83C1D20;
+ else
+ sprite->affineAnims = gSpriteAffineAnimTable_83C1D20 + 1;
+ InitSpriteAffineAnim(sprite);
+ sprite->data3 = 1;
+ sprite->data5 = sprite->centerToCornerVecX;
+ sprite->data6 = sprite->centerToCornerVecY;
+ sub_80A7B48(sprite);
+ break;
+ case 1:
+ sprite->data0++;
+ sub_80A7B48(sprite);
+ if (sprite->data0 == 32)
+ {
+ sprite->data0 = 0;
+ sprite->data3 = 0;
+ sprite->centerToCornerVecX = sprite->data5;
+ sprite->centerToCornerVecY = sprite->data6;
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->oam.affineMode = 0;
+ sprite->callback = SpriteCallbackDummy;
+ }
+ break;
+ }
+ }
+}
+
+static const struct SpriteTemplate sPokeballSpriteTemplate =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 8,
+ .oam = &gOamData_83C1CF8,
+ .anims = sBagSpriteAnimTable,
+ .images = gSpriteImageTable_83C1D28,
+ .affineAnims = gSpriteAffineAnimTable_83C1D20,
+ .callback = sub_80A7B28,
+};
+
+static void CreateBagPokeballSprite(u8 a)
+{
+ LoadSpritePalette(&sPokeballSpritePalette);
+ sPokeballSpriteId = CreateSprite(&sPokeballSpriteTemplate, 16, 88, 0);
+ gSprites[sPokeballSpriteId].data7 = a;
+}
+
+static void sub_80A7C64(void)
+{
+ FreeSpritePaletteByTag(8);
+ FreeOamMatrix(gSprites[sPokeballSpriteId].oam.matrixNum);
+ DestroySprite(&gSprites[sPokeballSpriteId]);
+}
+
+static const struct OamData sBerrySpriteOamData =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 7,
+ .affineParam = 0,
+};
+
+static const struct OamData gOamData_83C1D58 =
+{
+ .y = 0,
+ .affineMode = 3,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 7,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sBerrySpriteAnimSeq[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const sBerrySpriteAnimTable[] =
+{
+ sBerrySpriteAnimSeq,
+};
+
+static const struct SpriteFrameImage sBerrySpriteImageTable[] =
+{
+ {ewramBerryPic, 0x800},
+};
+
+static void SpriteCB_BerrySprite(struct Sprite *);
+static const struct SpriteTemplate sBerrySpriteTemplate =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 30020,
+ .oam = &sBerrySpriteOamData,
+ .anims = sBerrySpriteAnimTable,
+ .images = sBerrySpriteImageTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_BerrySprite,
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83C1D8C[] =
+{
+ AFFINEANIMCMD_FRAME(-1, -1, -3, 96),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 16),
+ AFFINEANIMCMD_FRAME(-2, -2, -1, 64),
+ AFFINEANIMCMD_FRAME(-8, 0, 0, 16),
+ AFFINEANIMCMD_FRAME(0, -8, 0, 16),
+ AFFINEANIMCMD_FRAME(256, 256, 0, 0),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_83C1DC4[] =
+{
+ AFFINEANIMCMD_FRAME(-1, -1, 3, 96),
+ AFFINEANIMCMD_FRAME(0, 0, 0, 16),
+ AFFINEANIMCMD_FRAME(-2, -2, 1, 64),
+ AFFINEANIMCMD_FRAME(-8, 0, 0, 16),
+ AFFINEANIMCMD_FRAME(0, -8, 0, 16),
+ AFFINEANIMCMD_FRAME(256, 256, 0, 0),
+ AFFINEANIMCMD_JUMP(0),
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_83C1DFC[] =
+{
+ gSpriteAffineAnim_83C1D8C,
+ gSpriteAffineAnim_83C1DC4,
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83C1E04 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 30020,
+ .oam = &gOamData_83C1D58,
+ .anims = sBerrySpriteAnimTable,
+ .images = sBerrySpriteImageTable,
+ .affineAnims = gSpriteAffineAnimTable_83C1DFC,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct {const u8 *lzPic; const u8 *lzPalette;} sBerryGraphicsTable[] =
+{
+ {gBerryPic_Cheri, gBerryPalette_Cheri},
+ {gBerryPic_Chesto, gBerryPalette_Chesto},
+ {gBerryPic_Pecha, gBerryPalette_Pecha},
+ {gBerryPic_Rawst, gBerryPalette_Rawst},
+ {gBerryPic_Aspear, gBerryPalette_Aspear},
+ {gBerryPic_Leppa, gBerryPalette_Leppa},
+ {gBerryPic_Oran, gBerryPalette_Oran},
+ {gBerryPic_Persim, gBerryPalette_Persim},
+ {gBerryPic_Lum, gBerryPalette_Lum},
+ {gBerryPic_Sitrus, gBerryPalette_Sitrus},
+ {gBerryPic_Figy, gBerryPalette_Figy},
+ {gBerryPic_Wiki, gBerryPalette_Wiki},
+ {gBerryPic_Mago, gBerryPalette_Mago},
+ {gBerryPic_Aguav, gBerryPalette_Aguav},
+ {gBerryPic_Iapapa, gBerryPalette_Iapapa},
+ {gBerryPic_Razz, gBerryPalette_Razz},
+ {gBerryPic_Bluk, gBerryPalette_Bluk},
+ {gBerryPic_Nanab, gBerryPalette_Nanab},
+ {gBerryPic_Wepear, gBerryPalette_Wepear},
+ {gBerryPic_Pinap, gBerryPalette_Pinap},
+ {gBerryPic_Pomeg, gBerryPalette_Pomeg},
+ {gBerryPic_Kelpsy, gBerryPalette_Kelpsy},
+ {gBerryPic_Qualot, gBerryPalette_Qualot},
+ {gBerryPic_Hondew, gBerryPalette_Hondew},
+ {gBerryPic_Grepa, gBerryPalette_Grepa},
+ {gBerryPic_Tamato, gBerryPalette_Tamato},
+ {gBerryPic_Cornn, gBerryPalette_Cornn},
+ {gBerryPic_Magost, gBerryPalette_Magost},
+ {gBerryPic_Rabuta, gBerryPalette_Rabuta},
+ {gBerryPic_Nomel, gBerryPalette_Nomel},
+ {gBerryPic_Spelon, gBerryPalette_Spelon},
+ {gBerryPic_Pamtre, gBerryPalette_Pamtre},
+ {gBerryPic_Watmel, gBerryPalette_Watmel},
+ {gBerryPic_Durin, gBerryPalette_Durin},
+ {gBerryPic_Belue, gBerryPalette_Belue},
+ {gBerryPic_Liechi, gBerryPalette_Liechi},
+ {gBerryPic_Ganlon, gBerryPalette_Ganlon},
+ {gBerryPic_Salac, gBerryPalette_Salac},
+ {gBerryPic_Petaya, gBerryPalette_Petaya},
+ {gBerryPic_Apicot, gBerryPalette_Apicot},
+ {gBerryPic_Lansat, gBerryPalette_Lansat},
+ {gBerryPic_Starf, gBerryPalette_Starf},
+ {gBerryPic_Enigma, gBerryPalette_Enigma},
+};
+
+static void DrawBerryPic(const u8 *src, u8 *dst)
+{
+ u8 i;
+ u8 j;
+
+ memset(dst, 0, 0x800);
+ dst += 0x100;
+ for (i = 0; i < 6; i++)
+ {
+ dst += 32;
+ for (j = 0; j < 6; j++)
+ {
+ memcpy(dst, src, 32);
+ dst += 32;
+ src += 32;
+ }
+ if (i != 5)
+ dst += 32;
+ }
+}
+
+static void LoadBerryPic(u8 berryId)
+{
+ struct SpritePalette spritePal;
+
+ if (berryId == 0x2A && IsEnigmaBerryValid() == TRUE)
+ {
+ DrawBerryPic(gSaveBlock1.enigmaBerry.pic, ewramBerryPic);
+ spritePal.data = gSaveBlock1.enigmaBerry.palette;
+ spritePal.tag = 0x7544;
+ LoadSpritePalette(&spritePal);
+ }
+ else
+ {
+ spritePal.data = (u16 *)sBerryGraphicsTable[berryId].lzPalette;
+ spritePal.tag = 0x7544;
+ LoadCompressedObjectPalette((struct CompressedSpritePalette *)&spritePal);
+ sub_800D238(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp);
+ DrawBerryPic(ewramBerryPicTemp, ewramBerryPic);
+ }
+}
+
+u8 CreateBerrySprite(u8 berryId, s16 x, s16 y)
+{
+ LoadBerryPic(berryId);
+ return CreateSprite(&sBerrySpriteTemplate, x, y, 0);
+}
+
+static void SpriteCB_BerrySprite(struct Sprite *sprite)
+{
+ sprite->pos2.y = -gUnknown_030041B4;
+}
+
+void sub_80A7DD4(void)
+{
+ FreeSpritePaletteByTag(0x7544);
+ FreeSpritePaletteByTag(8);
+}
+
+u8 sub_80A7DEC(u8 berryId, u8 x, u8 y, bool8 animate)
+{
+ u8 spriteId;
+
+ FreeSpritePaletteByTag(0x7544);
+ LoadBerryPic(berryId);
+ spriteId = CreateSprite(&gSpriteTemplate_83C1E04, x, y, 0);
+ if (animate == TRUE)
+ StartSpriteAffineAnim(&gSprites[spriteId], 1);
+ return spriteId;
+}
+
+const struct CompressedSpriteSheet gUnknown_083C1F74 = {gBerryCheckCircle_Gfx, 2048, 0x2710};
+
+const struct CompressedSpritePalette gUnknown_083C1F7C = {gBerryCheck_Pal, 0x2710};
+
+static const struct OamData gOamData_83C1F84 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd gSpriteAnim_83C1F8C[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END,
+};
+
+static const union AnimCmd *const gSpriteAnimTable_83C1F94[] =
+{
+ gSpriteAnim_83C1F8C,
+};
+
+static const struct SpriteTemplate gSpriteTemplate_83C1F98 =
+{
+ .tileTag = 10000,
+ .paletteTag = 10000,
+ .oam = &gOamData_83C1F84,
+ .anims = gSpriteAnimTable_83C1F94,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_BerrySprite,
+};
+
+u8 sub_80A7E5C(s16 x)
+{
+ return CreateSprite(&gSpriteTemplate_83C1F98, x, 99, 0);
+}
diff --git a/src/item_use.c b/src/item_use.c
index b906f91ad..1750c1584 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -55,7 +55,7 @@ extern u16 gBattleTypeFlags;
static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな");
static const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな");
-static const struct TextStruct gUnknown_083D61DC[2] =
+static const u8 *const gUnknown_083D61DC[2] =
{
gSSTidalBetaString,
gSSTidalBetaString2,
@@ -768,11 +768,11 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId)
if(gTasks[taskId].data[2] == 0)
{
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BB8, 1);
+ DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BB8, 1);
}
else
{
- DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BD8, 0);
+ DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BD8, 0);
}
}
diff --git a/src/new_game.c b/src/new_game.c
index 33aacd10a..4b6ea1dd2 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -114,7 +114,7 @@ void sub_8052E4C(void)
sub_808C0A0();
ZeroPlayerPartyMons();
ZeroEnemyPartyMons();
- sub_80A3684();
+ ResetBagScrollPositions();
}
void NewGameInitData(void)
diff --git a/src/player_pc.c b/src/player_pc.c
index 38e01b92e..b432f260e 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -30,9 +30,6 @@ extern void LoadScrollIndicatorPalette(void);
extern void ClearMailStruct(struct MailStruct *);
extern u8 sub_807D770(void);
extern void sub_808B020(void);
-extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
-extern void sub_80A418C(u16, enum StringConvertMode, int, int, int);
-extern void sub_80A6A30(void);
extern void sub_80F944C(void);
extern u8 *gPcItemMenuOptionOrder;
@@ -100,7 +97,7 @@ static void Mailbox_MoveToBag(u8);
static void Mailbox_Give(u8);
static void Mailbox_Cancel(u8);
-static const struct TextStruct gPCText_OptionDescList[] =
+static const u8 *const gPCText_OptionDescList[] =
{
PCText_TakeOutItems,
PCText_StoreItems,
@@ -319,7 +316,7 @@ static void InitItemStorageMenu(u8 var)
MenuDrawTextWindow(0, 0, 11, 9);
PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText);
InitMenu(0, 1, 1, 4, var, 10);
- ItemStorageMenuPrint(gPCText_OptionDescList[var].text);
+ ItemStorageMenuPrint(gPCText_OptionDescList[var]);
}
static void ItemStorageMenuPrint(const u8 *textPtr)
@@ -334,13 +331,13 @@ static void ItemStorageMenuProcessInput(u8 var)
{
PlaySE(SE_SELECT);
MoveMenuCursor(-1);
- ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text);
+ ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]);
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
PlaySE(SE_SELECT);
MoveMenuCursor(1);
- ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text);
+ ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]);
}
else if (gMain.newKeys & A_BUTTON)
{
diff --git a/src/scrcmd.c b/src/scrcmd.c
index a394f2a55..45552f2fa 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1416,7 +1416,7 @@ bool8 ScrCmd_bufferstd(struct ScriptContext *ctx)
{
u8 stringVarIndex = ScriptReadByte(ctx);
u16 index = VarGet(ScriptReadHalfword(ctx));
- StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index].text);
+ StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]);
return FALSE;
}
diff --git a/src/script.c b/src/script.c
index 488a67de1..c27eb22fe 100644
--- a/src/script.c
+++ b/src/script.c
@@ -34,7 +34,7 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable
ctx->stack[i] = 0;
}
-u8 SetupBytecodeScript(struct ScriptContext *ctx, void *ptr)
+u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
{
ctx->scriptPtr = ptr;
ctx->mode = 1;
@@ -106,7 +106,7 @@ u8 RunScript(struct ScriptContext *ctx)
return 1;
}
-u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr)
+u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
{
if (ctx->stackDepth + 1 >= 20)
{
@@ -120,7 +120,7 @@ u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr)
}
}
-u8 *ScriptPop(struct ScriptContext *ctx)
+const u8 *ScriptPop(struct ScriptContext *ctx)
{
if (ctx->stackDepth == 0)
return NULL;
@@ -202,7 +202,7 @@ bool8 ScriptContext2_RunScript(void)
return 1;
}
-void ScriptContext1_SetupScript(u8 *ptr)
+void ScriptContext1_SetupScript(const u8 *ptr)
{
InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd);
SetupBytecodeScript(&sScriptContext1, ptr);
@@ -221,7 +221,7 @@ void EnableBothScriptContexts()
ScriptContext2_Enable();
}
-void ScriptContext2_RunNewScript(u8 *ptr)
+void ScriptContext2_RunNewScript(const u8 *ptr)
{
InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd);
SetupBytecodeScript(&sScriptContext2, ptr);
diff --git a/src/script_menu.c b/src/script_menu.c
index e1ad3f467..f4ac55fb9 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -547,7 +547,7 @@ const struct MultichoiceListStruct gMultichoiceLists[] =
{(struct MenuAction *)MultichoiceList_72, 5}
};
-const struct TextStruct gUnknown_083CE048[] =
+const u8 *const gUnknown_083CE048[] =
{
OtherText_Cool2,
OtherText_Beauty3,
diff --git a/src/strings.c b/src/strings.c
index be1bd94c7..219c5bec1 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -197,7 +197,7 @@ const u8 OtherText_TheField[] = _("the field.");
const u8 OtherText_TheField2[] = _("the field.");
const u8 OtherText_ThePC[] = _("the PC.");
-const struct TextStruct gUnknown_0840E740[7] =
+const u8 *const gUnknown_0840E740[7] =
{
OtherText_TheField3,
OtherText_TheBattle,
@@ -1120,7 +1120,7 @@ const u8 OtherText_TheField[] = _("zum Hauptmenü.");
const u8 OtherText_TheField2[] = _("zum Hauptmenü.");
const u8 OtherText_ThePC[] = _("zum PC.");
-const struct TextStruct gUnknown_0840E740[7] =
+const u8 *const gUnknown_0840E740[7] =
{
OtherText_TheField3,
OtherText_TheBattle,
diff --git a/src/tv.c b/src/tv.c
index 1e00e2a05..b2135afff 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -1470,16 +1470,16 @@ void sub_80BEF10(u8 strvaridx, u8 rank)
switch (rank)
{
case NORMAL_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]);
break;
case SUPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]);
break;
case HYPER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]);
break;
case MASTER_RANK:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]);
break;
}
}
@@ -1489,19 +1489,19 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category)
switch (category)
{
case CONTEST_COOL:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]);
break;
case CONTEST_BEAUTY:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]);
break;
case CONTEST_CUTE:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]);
break;
case CONTEST_SMART:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]);
break;
case CONTEST_TOUGH:
- StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH].text);
+ StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]);
break;
}
}
diff --git a/sym_bss.txt b/sym_bss.txt
index 315bad6bb..99dcd1392 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -93,15 +93,7 @@ gUnknown_030006DC: @ 30006DC
.space 0x4
.include "src/field_effect.o"
-
-gUnknown_03000700: @ 3000700
- .space 0x1
-
-gUnknown_03000701: @ 3000701
- .space 0x3
-
-gUnknown_03000704: @ 3000704
- .space 0x4
+ .include "src/item_menu.o"
gUnknown_03000708: @ 3000708
.space 0x10
diff --git a/sym_common.txt b/sym_common.txt
index dfd114c8c..dc1e62f13 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -234,10 +234,10 @@ gUnknown_03005CF0: @ 3005CF0
gUnknown_03005D00: @ 3005D00
.space 0x10
-gUnknown_03005D10: @ 3005D10
+gBagPocketScrollStates: @ 3005D10
.space 0x14
-gUnknown_03005D24: @ 3005D24
+gCurrentBagPocketItemSlots: @ 3005D24
.space 0x4
gUnknown_03005D28: @ 3005D28
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 435ce33bb..14d328e35 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -605,59 +605,9 @@ gUnknown_020384F8: @ 20384F8
.space 0x40
.include "src/map_name_popup.o"
+ .include "src/item_menu.o"
- .align 2
-gUnknown_0203853C: @ 203853C
- .space 0x4
-
-gUnknown_02038540: @ 2038540
- .space 0x4
-
-gUnknown_02038544: @ 2038544
- .space 0xC
-
-gUnknown_02038550: @ 2038550
- .space 0x4
-
-gUnknown_02038554: @ 2038554
- .space 0x4
-
-gUnknown_02038558: @ 2038558
- .space 0x1
-
-gUnknown_02038559: @ 2038559
- .space 0x1
-
-gUnknown_0203855A: @ 203855A
- .space 0x1
-
-gUnknown_0203855B: @ 203855B
- .space 0x1
-
-gUnknown_0203855C: @ 203855C
- .space 0x2
-
-gScriptItemId: @ 203855E
- .space 0x2
-
-gUnknown_02038560: @ 2038560
- .space 0x1
-
-gUnknown_02038561: @ 2038561
- .space 0x1
-
-gUnknown_02038562: @ 2038562
- .space 0x1
-
-gUnknown_02038563: @ 2038563
- .space 0x1
-
-gUnknown_02038564: @ 2038564
- .space 0x4
-
-gUnknown_02038568: @ 2038568
- .space 0x4
-
+ .align 2
gUnknown_0203856C: @ 203856C
.space 0x4
diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile
index 611c0e2df..967930c59 100644
--- a/tools/aif2pcm/Makefile
+++ b/tools/aif2pcm/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -Wno-switch -std=c11 -O2 -s
+CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 -s
LIBS = -lm
diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile
index bd5f60490..4cc23a25a 100644
--- a/tools/bin2c/Makefile
+++ b/tools/bin2c/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -std=c11 -O2 -s
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s
.PHONY: clean
diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile
index 9a5dee1cc..d791dabb5 100644
--- a/tools/gbagfx/Makefile
+++ b/tools/gbagfx/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c
index 0624201df..37d3441fe 100644
--- a/tools/gbagfx/main.c
+++ b/tools/gbagfx/main.c
@@ -59,8 +59,7 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
{
char *inputFileExtension = GetFileExtension(inputPath);
int bitDepth = inputFileExtension[0] - '0';
- char *paletteFilePath;
- bool hasPalette = false;
+ char *paletteFilePath = NULL;
bool hasTransparency = false;
int width = 1;
@@ -76,8 +75,6 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
i++;
paletteFilePath = argv[i];
-
- hasPalette = true;
}
else if (strcmp(option, "-object") == 0)
{
@@ -102,7 +99,7 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
}
}
- ConvertGbaToPng(inputPath, outputPath, width, bitDepth, hasPalette ? paletteFilePath : NULL, hasTransparency);
+ ConvertGbaToPng(inputPath, outputPath, width, bitDepth, paletteFilePath, hasTransparency);
}
void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv)
diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile
index accd81882..f27f2cad4 100644
--- a/tools/mid2agb/Makefile
+++ b/tools/mid2agb/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch
+CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp
diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile
index 1f4c58e21..ec4a5f365 100644
--- a/tools/preproc/Makefile
+++ b/tools/preproc/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch
+CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \
utf8.cpp
diff --git a/tools/ramscrgen/Makefile b/tools/ramscrgen/Makefile
index 6c4ca28b6..cc6d458ba 100644
--- a/tools/ramscrgen/Makefile
+++ b/tools/ramscrgen/Makefile
@@ -1,6 +1,6 @@
CXX := g++
-CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch
+CXXFLAGS := -std=c++11 -O2 -s -Wall -Wno-switch -Werror
SRCS := main.cpp sym_file.cpp elf.cpp
diff --git a/tools/rsfont/Makefile b/tools/rsfont/Makefile
index 544954bfc..a78beca50 100644
--- a/tools/rsfont/Makefile
+++ b/tools/rsfont/Makefile
@@ -1,6 +1,6 @@
CC = gcc
-CFLAGS = -Wall -Wextra -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
+CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 -s -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile
index d33dee6d2..3e1c031a8 100644
--- a/tools/scaninc/Makefile
+++ b/tools/scaninc/Makefile
@@ -1,6 +1,6 @@
CXX = g++
-CXXFLAGS = -Wall -std=c++11 -O2 -s
+CXXFLAGS = -Wall -Werror -std=c++11 -O2 -s
SRCS = scaninc.cpp c_file.cpp asm_file.cpp