summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2017-10-27 02:02:36 -0500
committerDiegoisawesome <diego@domoreaweso.me>2017-10-27 02:02:36 -0500
commit49c88e63439a4ca08ca9fac7a85de51d4f56c8bd (patch)
tree69504e13ad956a1596d7f5f188279f0c25ddad55
parent431e737453feb99c18349060cad53d551ba41dcf (diff)
parent5ea2f463d71d0bc2663e70a553557de0ccf40eef (diff)
Merge branch 'master' of github.com:pret/pokeemerald into dump_maps
-rw-r--r--Makefile2
-rw-r--r--asm/battle_1.s8
-rw-r--r--asm/battle_5.s8
-rw-r--r--asm/battle_7.s50
-rw-r--r--asm/battle_anim.s4205
-rw-r--r--asm/battle_anim_80A9C70.s16
-rwxr-xr-xasm/battle_anim_80D51AC.s90
-rw-r--r--asm/battle_anim_80FE840.s1828
-rwxr-xr-xasm/battle_anim_815A0D4.s426
-rw-r--r--asm/battle_anim_8170478.s132
-rw-r--r--asm/battle_anim_sound_tasks.s92
-rw-r--r--asm/battle_controller_linkopponent.s28
-rw-r--r--asm/battle_controller_linkpartner.s26
-rw-r--r--asm/battle_controller_opponent.s42
-rw-r--r--asm/battle_controller_player.s70
-rw-r--r--asm/battle_controller_player_partner.s38
-rw-r--r--asm/battle_controller_recorded_opponent.s34
-rw-r--r--asm/battle_controller_recorded_player.s38
-rw-r--r--asm/battle_controller_safari.s6
-rw-r--r--asm/battle_controller_wally.s34
-rwxr-xr-xasm/battle_interface.s5734
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/clear_save_data_screen.s399
-rw-r--r--asm/contest.s352
-rw-r--r--asm/contest_ai.s298
-rw-r--r--asm/contest_effect.s148
-rw-r--r--asm/contest_link_80FC4F4.s18
-rw-r--r--asm/crt0.s2
-rw-r--r--asm/decoration.s7167
-rw-r--r--asm/decoration_inventory.s459
-rwxr-xr-xasm/international_string_util.s121
-rw-r--r--asm/intro.s4
-rw-r--r--asm/librfu.s2263
-rw-r--r--asm/librfu_intr.s696
-rw-r--r--asm/link.s22
-rw-r--r--asm/macros/event.inc4
-rw-r--r--asm/mail.s1035
-rwxr-xr-xasm/party_menu.s4
-rwxr-xr-xasm/pokemon_storage_system.s84
-rwxr-xr-xasm/pokemon_summary_screen.s7826
-rwxr-xr-xasm/rayquaza_scene.s21
-rw-r--r--asm/record_mixing.s2
-rw-r--r--asm/rom3.s3775
-rw-r--r--asm/rom6.s4
-rw-r--r--asm/rom_80A5C6C.s174
-rw-r--r--asm/secret_base.s2
-rw-r--r--asm/title_screen.s2
-rw-r--r--asm/trade.s10
-rw-r--r--asm/trader.s10
-rwxr-xr-xasm/walda_phrase.s543
-rw-r--r--data/battle_anim_scripts.s2
-rw-r--r--data/battle_anims.s132
-rw-r--r--data/battle_interface.s180
-rw-r--r--data/clear_save_data_screen.s17
-rw-r--r--data/cute_sketch.s2
-rw-r--r--data/decoration.s86
-rw-r--r--data/event_scripts.s3
-rw-r--r--data/graphics.s119
-rw-r--r--data/graphics/decorations/decoration_graphics.inc252
-rw-r--r--data/mail.s26
-rw-r--r--data/pokemon_summary_screen.s5
-rw-r--r--data/rom_8525F58.s57
-rw-r--r--data/specials.inc537
-rw-r--r--data/strings.s28
-rw-r--r--data/walda_phrase.s7
-rw-r--r--graphics/battle_interface/unknown_32C2D4.pngbin0 -> 102 bytes
-rw-r--r--graphics/decorations/decor_attract_mat.pal19
-rw-r--r--graphics/decorations/decor_attract_mat.pngbin0 -> 307 bytes
-rw-r--r--graphics/decorations/decor_big_plant.pal19
-rw-r--r--graphics/decorations/decor_big_plant.pngbin0 -> 310 bytes
-rw-r--r--graphics/decorations/decor_blastoise_doll.pal19
-rw-r--r--graphics/decorations/decor_blastoise_doll.pngbin0 -> 371 bytes
-rw-r--r--graphics/decorations/decor_blue_brick.pal19
-rw-r--r--graphics/decorations/decor_blue_brick.pngbin0 -> 226 bytes
-rw-r--r--graphics/decorations/decor_blue_tent.pal19
-rw-r--r--graphics/decorations/decor_blue_tent.pngbin0 -> 321 bytes
-rw-r--r--graphics/decorations/decor_breakable_door.pal19
-rw-r--r--graphics/decorations/decor_breakable_door.pngbin0 -> 274 bytes
-rw-r--r--graphics/decorations/decor_brick_desk.pal19
-rw-r--r--graphics/decorations/decor_brick_desk.pngbin0 -> 270 bytes
-rw-r--r--graphics/decorations/decor_camp_desk.pal19
-rw-r--r--graphics/decorations/decor_camp_desk.pngbin0 -> 265 bytes
-rw-r--r--graphics/decorations/decor_charizard_doll.pal19
-rw-r--r--graphics/decorations/decor_charizard_doll.pngbin0 -> 349 bytes
-rw-r--r--graphics/decorations/decor_colorful_plant.pal19
-rw-r--r--graphics/decorations/decor_colorful_plant.pngbin0 -> 371 bytes
-rw-r--r--graphics/decorations/decor_comfort_desk.pal19
-rw-r--r--graphics/decorations/decor_comfort_desk.pngbin0 -> 320 bytes
-rw-r--r--graphics/decorations/decor_fire_blast_mat.pal19
-rw-r--r--graphics/decorations/decor_fire_blast_mat.pngbin0 -> 287 bytes
-rw-r--r--graphics/decorations/decor_fissure_mat.pal19
-rw-r--r--graphics/decorations/decor_fissure_mat.pngbin0 -> 290 bytes
-rw-r--r--graphics/decorations/decor_glass_ornament.pal19
-rw-r--r--graphics/decorations/decor_glass_ornament.pngbin0 -> 292 bytes
-rw-r--r--graphics/decorations/decor_gorgeous_plant.pal19
-rw-r--r--graphics/decorations/decor_gorgeous_plant.pngbin0 -> 332 bytes
-rw-r--r--graphics/decorations/decor_hard_desk.pal19
-rw-r--r--graphics/decorations/decor_hard_desk.pngbin0 -> 325 bytes
-rw-r--r--graphics/decorations/decor_heavy_desk.pal19
-rw-r--r--graphics/decorations/decor_heavy_desk.pngbin0 -> 268 bytes
-rw-r--r--graphics/decorations/decor_lapras_doll.pal19
-rw-r--r--graphics/decorations/decor_lapras_doll.pngbin0 -> 349 bytes
-rw-r--r--graphics/decorations/decor_powder_snow_mat.pal19
-rw-r--r--graphics/decorations/decor_powder_snow_mat.pngbin0 -> 302 bytes
-rw-r--r--graphics/decorations/decor_pretty_desk.pal19
-rw-r--r--graphics/decorations/decor_pretty_desk.pngbin0 -> 296 bytes
-rw-r--r--graphics/decorations/decor_pretty_flowers.pal19
-rw-r--r--graphics/decorations/decor_pretty_flowers.pngbin0 -> 318 bytes
-rw-r--r--graphics/decorations/decor_ragged_desk.pal19
-rw-r--r--graphics/decorations/decor_ragged_desk.pngbin0 -> 257 bytes
-rw-r--r--graphics/decorations/decor_red_brick.pal19
-rw-r--r--graphics/decorations/decor_red_brick.pngbin0 -> 226 bytes
-rw-r--r--graphics/decorations/decor_red_plant.pal19
-rw-r--r--graphics/decorations/decor_red_plant.pngbin0 -> 300 bytes
-rw-r--r--graphics/decorations/decor_red_tent.pal19
-rw-r--r--graphics/decorations/decor_red_tent.pngbin0 -> 317 bytes
-rw-r--r--graphics/decorations/decor_regice_doll.pal19
-rw-r--r--graphics/decorations/decor_regice_doll.pngbin0 -> 346 bytes
-rw-r--r--graphics/decorations/decor_regirock_doll.pal19
-rw-r--r--graphics/decorations/decor_regirock_doll.pngbin0 -> 331 bytes
-rw-r--r--graphics/decorations/decor_registeel_doll.pal19
-rw-r--r--graphics/decorations/decor_registeel_doll.pngbin0 -> 351 bytes
-rw-r--r--graphics/decorations/decor_rhydon_doll.pal19
-rw-r--r--graphics/decorations/decor_rhydon_doll.pngbin0 -> 367 bytes
-rw-r--r--graphics/decorations/decor_sand_ornament.pal19
-rw-r--r--graphics/decorations/decor_sand_ornament.pngbin0 -> 286 bytes
-rw-r--r--graphics/decorations/decor_slide.pal19
-rw-r--r--graphics/decorations/decor_slide.pngbin0 -> 293 bytes
-rw-r--r--graphics/decorations/decor_snorlax_doll.pal19
-rw-r--r--graphics/decorations/decor_snorlax_doll.pngbin0 -> 337 bytes
-rw-r--r--graphics/decorations/decor_solid_board.pal19
-rw-r--r--graphics/decorations/decor_solid_board.pngbin0 -> 221 bytes
-rw-r--r--graphics/decorations/decor_spikes_mat.pal19
-rw-r--r--graphics/decorations/decor_spikes_mat.pngbin0 -> 302 bytes
-rw-r--r--graphics/decorations/decor_stand.pal19
-rw-r--r--graphics/decorations/decor_stand.pngbin0 -> 264 bytes
-rw-r--r--graphics/decorations/decor_surf_mat.pal19
-rw-r--r--graphics/decorations/decor_surf_mat.pngbin0 -> 298 bytes
-rw-r--r--graphics/decorations/decor_thunder_mat.pal19
-rw-r--r--graphics/decorations/decor_thunder_mat.pngbin0 -> 315 bytes
-rw-r--r--graphics/decorations/decor_tire.pal19
-rw-r--r--graphics/decorations/decor_tire.pngbin0 -> 303 bytes
-rw-r--r--graphics/decorations/decor_tropical_plant.pal19
-rw-r--r--graphics/decorations/decor_tropical_plant.pngbin0 -> 307 bytes
-rw-r--r--graphics/decorations/decor_venusaur_doll.pal19
-rw-r--r--graphics/decorations/decor_venusaur_doll.pngbin0 -> 393 bytes
-rw-r--r--graphics/decorations/decor_wailmer_doll.pal19
-rw-r--r--graphics/decorations/decor_wailmer_doll.pngbin0 -> 320 bytes
-rw-r--r--graphics/decorations/decor_yellow_brick.pal19
-rw-r--r--graphics/decorations/decor_yellow_brick.pngbin0 -> 226 bytes
-rw-r--r--graphics/decorations/unk_85a6bb0.pal19
-rw-r--r--graphics/decorations/unk_85a7308.pal19
-rw-r--r--graphics/decorations/unk_85a7328.pal19
-rw-r--r--graphics/misc/decoration_unk_85a7358.pngbin0 -> 87 bytes
-rw-r--r--include/battle.h61
-rw-r--r--include/battle_2.h2
-rw-r--r--include/battle_anim.h79
-rw-r--r--include/battle_controller_player.h7
-rw-r--r--include/battle_controllers.h182
-rw-r--r--include/battle_interface.h36
-rw-r--r--include/battle_util.h1
-rw-r--r--include/contest.h31
-rw-r--r--include/data/decoration/description.h581
-rw-r--r--include/data/decoration/header.h1100
-rw-r--r--include/data/decoration/icon.h132
-rw-r--r--include/data/decoration/tilemaps.h239
-rw-r--r--include/data/decoration/tiles.h646
-rw-r--r--include/decompress.h2
-rw-r--r--include/decoration.h53
-rw-r--r--include/decoration_inventory.h10
-rwxr-xr-xinclude/event_scripts.h4
-rwxr-xr-xinclude/field_map_obj.h1
-rw-r--r--include/field_screen.h12
-rw-r--r--include/fieldmap.h3
-rw-r--r--include/gba/io_reg.h8
-rw-r--r--include/gba/macro.h10
-rw-r--r--include/gba/types.h14
-rw-r--r--include/global.h18
-rw-r--r--include/graphics.h95
-rw-r--r--include/international_string_util.h28
-rw-r--r--include/item_icon.h17
-rw-r--r--include/librfu.h108
-rw-r--r--include/link.h7
-rw-r--r--include/list_menu.h54
-rw-r--r--include/mail_data.h12
-rw-r--r--include/map_object_constants.h239
-rw-r--r--include/menu.h24
-rw-r--r--include/menu_helpers.h20
-rw-r--r--include/menu_indicators.h12
-rw-r--r--include/naming_screen.h2
-rw-r--r--include/new_game.h1
-rw-r--r--include/new_menu_helpers.h7
-rw-r--r--include/overworld.h5
-rw-r--r--include/player_pc.h12
-rw-r--r--include/pokemon.h8
-rw-r--r--include/pokemon_icon.h5
-rw-r--r--include/recorded_battle.h3
-rw-r--r--include/secret_base.h1
-rw-r--r--include/sprite.h2
-rw-r--r--include/strings.h47
-rw-r--r--include/tilesets.h13
-rw-r--r--include/trader.h11
-rw-r--r--include/tv.h1
-rw-r--r--include/walda_phrase.h8
-rw-r--r--ld_script.txt34
-rw-r--r--src/battle_2.c7
-rw-r--r--src/battle_ai_switch_items.c18
-rw-r--r--src/battle_anim.c1850
-rw-r--r--src/battle_controllers.c1551
-rw-r--r--src/battle_interface.c2632
-rw-r--r--src/battle_script_commands.c46
-rwxr-xr-xsrc/clear_save_data_screen.c209
-rw-r--r--src/coins.c2
-rw-r--r--src/decompress.c2
-rw-r--r--src/decoration.c2781
-rw-r--r--src/decoration_inventory.c189
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/international_string_util.c57
-rw-r--r--src/librfu_intr.c4
-rw-r--r--src/librfu_rfu.c109
-rw-r--r--src/librfu_stwi.c687
-rw-r--r--src/mail.c577
-rw-r--r--src/pokemon_1.c16
-rw-r--r--src/pokemon_2.c18
-rw-r--r--src/pokemon_size_record.c2
-rwxr-xr-xsrc/pokemon_summary_screen.c3679
-rw-r--r--src/reshow_battle_screen.c4
-rw-r--r--src/safari_zone.c2
-rw-r--r--src/sprite.c2
-rw-r--r--src/start_menu.c2
-rw-r--r--src/tv.c2
-rw-r--r--src/walda_phrase.c257
-rw-r--r--sym_common.txt2
-rw-r--r--sym_ewram.txt153
234 files changed, 23165 insertions, 36367 deletions
diff --git a/Makefile b/Makefile
index bd764a921..4a1f94352 100644
--- a/Makefile
+++ b/Makefile
@@ -102,7 +102,7 @@ $(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc
$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc
ifeq ($(NODEP),)
-$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) $(C_SUBDIR)/$*.c)
+$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) -I include $(C_SUBDIR)/$*.c)
else
$(C_BUILDDIR)/%.o: c_dep :=
endif
diff --git a/asm/battle_1.s b/asm/battle_1.s
index 416fd87ec..9a981e222 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -1424,8 +1424,8 @@ _0803575A:
.pool
thumb_func_end ApplyPlayerChosenFrameToBattleMenu
- thumb_func_start load_battle_oval_graphics
-load_battle_oval_graphics: @ 8035770
+ thumb_func_start DrawMainBattleBackground
+DrawMainBattleBackground: @ 8035770
push {r4,r5,lr}
ldr r0, =gBattleTypeFlags
ldr r1, [r0]
@@ -1665,7 +1665,7 @@ _08035A8A:
pop {r0}
bx r0
.pool
- thumb_func_end load_battle_oval_graphics
+ thumb_func_end DrawMainBattleBackground
thumb_func_start LoadBattleTextboxAndBackground
LoadBattleTextboxAndBackground: @ 8035AA4
@@ -1686,7 +1686,7 @@ LoadBattleTextboxAndBackground: @ 8035AA4
movs r2, 0x40
bl LoadCompressedPalette
bl ApplyPlayerChosenFrameToBattleMenu
- bl load_battle_oval_graphics
+ bl DrawMainBattleBackground
pop {r0}
bx r0
.pool
diff --git a/asm/battle_5.s b/asm/battle_5.s
index 4d02a5942..f2d6797f9 100644
--- a/asm/battle_5.s
+++ b/asm/battle_5.s
@@ -59,13 +59,13 @@ _08056F3E:
bl AllocZeroed
ldr r1, [r5]
str r0, [r1, 0x1C]
- ldr r4, =gUnknown_020244A0
+ ldr r4, =gLinkBattleSendBuffer
movs r5, 0x80
lsls r5, 5
adds r0, r5, 0
bl AllocZeroed
str r0, [r4]
- ldr r4, =gUnknown_020244A4
+ ldr r4, =gLinkBattleRecvBuffer
adds r0, r5, 0
bl AllocZeroed
str r0, [r4]
@@ -160,11 +160,11 @@ _0805703C:
str r5, [r0, 0x1C]
bl Free
str r5, [r6]
- ldr r4, =gUnknown_020244A0
+ ldr r4, =gLinkBattleSendBuffer
ldr r0, [r4]
bl Free
str r5, [r4]
- ldr r4, =gUnknown_020244A4
+ ldr r4, =gLinkBattleRecvBuffer
ldr r0, [r4]
bl Free
str r5, [r4]
diff --git a/asm/battle_7.s b/asm/battle_7.s
index 36a0bf282..ea6fc40b3 100644
--- a/asm/battle_7.s
+++ b/asm/battle_7.s
@@ -1056,10 +1056,10 @@ _0805D980:
b _0805DA1E
.pool
_0805D9CC:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r2, r10
strb r2, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
mov r1, sp
ldrb r1, [r1]
strb r1, [r0]
@@ -1070,7 +1070,7 @@ _0805D9CC:
ldr r0, =gUnknown_082C9320
adds r1, r5, 0
movs r2, 0
- bl move_something
+ bl DoBattleAnim
ldr r0, =task0A_0803415C
movs r1, 0xA
bl CreateTask
@@ -1180,14 +1180,14 @@ move_anim_start_t4: @ 805DAC4
lsrs r4, 24
lsls r3, 24
lsrs r3, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
strb r1, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
strb r2, [r0]
ldr r0, =gUnknown_082C937C
adds r1, r3, 0
movs r2, 0
- bl move_something
+ bl DoBattleAnim
ldr r0, =task0A_08034248
movs r1, 0xA
bl CreateTask
@@ -1801,7 +1801,7 @@ _0805E056:
movs r4, 0
cmp r4, r5
bcs _0805E076
- ldr r7, =gBanksBySide
+ ldr r7, =gBanksByIdentity
ldr r6, =gUnknown_0832C108
_0805E060:
adds r0, r4, r7
@@ -1874,14 +1874,14 @@ _0805E0F0:
_0805E100:
cmp r4, 0x4
bne _0805E110
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0]
b _0805E198
.pool
_0805E110:
cmp r4, 0x5
bne _0805E1AC
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x1]
b _0805E198
.pool
@@ -1916,28 +1916,28 @@ _0805E150:
_0805E160:
cmp r4, 0x6
bne _0805E170
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0]
b _0805E198
.pool
_0805E170:
cmp r4, 0x7
bne _0805E180
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x1]
b _0805E198
.pool
_0805E180:
cmp r4, 0x8
bne _0805E190
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x2]
b _0805E198
.pool
_0805E190:
cmp r5, 0x9
bne _0805E1AC
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r0, [r0, 0x3]
_0805E198:
lsls r0, 3
@@ -1955,8 +1955,8 @@ _0805E1AE:
bx r1
thumb_func_end BattleLoadAllHealthBoxesGfx
- thumb_func_start load_gfxc_health_bar
-load_gfxc_health_bar: @ 805E1B8
+ thumb_func_start LoadBattleBarGfx
+LoadBattleBarGfx: @ 805E1B8
push {lr}
ldr r0, =gUnknown_08C093F0
ldr r1, =gMonSpritesGfxPtr
@@ -1969,7 +1969,7 @@ load_gfxc_health_bar: @ 805E1B8
pop {r0}
bx r0
.pool
- thumb_func_end load_gfxc_health_bar
+ thumb_func_end LoadBattleBarGfx
thumb_func_start BattleInitAllSprites
BattleInitAllSprites: @ 805E1D8
@@ -2038,7 +2038,7 @@ _0805E252:
_0805E260:
ldrb r0, [r4]
bl SetBankHealthboxSpritePos
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
@@ -2048,7 +2048,7 @@ _0805E260:
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0
- bl nullsub_30
+ bl DummyBattleInterfaceFunc
b _0805E30E
.pool
_0805E288:
@@ -2056,7 +2056,7 @@ _0805E288:
adds r0, r1, r0
ldrb r0, [r0]
movs r1, 0x1
- bl nullsub_30
+ bl DummyBattleInterfaceFunc
b _0805E30E
.pool
_0805E29C:
@@ -2353,7 +2353,7 @@ _0805E51C:
beq _0805E558
movs r0, 0
mov r10, r0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrh r1, [r2, 0x2]
@@ -2857,7 +2857,7 @@ sub_805E990: @ 805E990
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8075060
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2997,7 +2997,7 @@ sub_805EAB4: @ 805EAB4
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8075060
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
pop {r4,r5}
@@ -3111,7 +3111,7 @@ sub_805EB9C: @ 805EB9C
_0805EBC8:
lsls r0, r5, 24
lsrs r0, 24
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _0805EC60
@@ -3329,7 +3329,7 @@ sub_805ED70: @ 805ED70
cmp r0, 0
beq _0805EDAC
adds r0, r4, 0
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
bne _0805EDC0
@@ -3796,7 +3796,7 @@ sub_805F110: @ 805F110
lsls r1, 16
asrs r1, 16
adds r0, r4, 0
- bl sub_8075060
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
deleted file mode 100644
index 5ce9c4cf9..000000000
--- a/asm/battle_anim.s
+++ /dev/null
@@ -1,4205 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80A3934
-sub_80A3934: @ 80A3934
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, =gAnimFramesToWait
- movs r1, 0
- strb r1, [r0]
- ldr r0, =gAnimScriptActive
- strb r1, [r0]
- ldr r0, =gAnimVisualTaskCount
- strb r1, [r0]
- ldr r0, =gAnimSoundTaskCount
- strb r1, [r0]
- ldr r0, =gDisableStructMoveAnim
- movs r1, 0
- str r1, [r0]
- ldr r0, =gMoveDmgMoveAnim
- str r1, [r0]
- ldr r0, =gMovePowerMoveAnim
- movs r2, 0
- strh r1, [r0]
- ldr r0, =gHappinessMoveAnim
- strb r2, [r0]
- ldr r4, =gUnknown_02038430
- ldr r5, =gUnknown_02038432
- ldr r6, =gUnknown_02038433
- ldr r7, =gAnimMoveIndex
- ldr r0, =gAnimationBankAttacker
- mov r12, r0
- ldr r1, =gAnimationBankTarget
- mov r8, r1
- ldr r0, =gUnknown_02038440
- mov r9, r0
- ldr r1, =0x0000ffff
- adds r3, r1, 0
- ldr r1, =gAnimSpriteIndexArray
- movs r2, 0x7
-_080A397E:
- ldrh r0, [r1]
- orrs r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A397E
- ldr r1, =gBattleAnimArgs
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_080A3994:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080A3994
- movs r1, 0
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x1]
- strb r1, [r5]
- strb r1, [r6]
- movs r0, 0
- strh r1, [r7]
- mov r1, r12
- strb r0, [r1]
- mov r1, r8
- strb r0, [r1]
- mov r1, r9
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A3934
-
- thumb_func_start move_anim_start_t1
-move_anim_start_t1: @ 80A3A10
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, =gAnimationBankAttacker
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, =gAnimationBankTarget
- ldr r0, =gBankTarget
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, =gUnknown_082C8D6C
- movs r2, 0x1
- bl move_something
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_start_t1
-
- thumb_func_start move_something
-move_something: @ 80A3A48
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A3AE8
- bl sub_80A8278
- movs r0, 0
- bl sub_8072A88
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r6, =gBattlePartyID
- movs r7, 0x64
- ldr r5, =gUnknown_02038438
-_080A3A84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080A3AA8
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, =gEnemyParty
- b _080A3AAE
- .pool
-_080A3AA8:
- ldrh r0, [r6]
- muls r0, r7
- ldr r1, =gPlayerParty
-_080A3AAE:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- strh r0, [r5]
- adds r6, 0x2
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080A3A84
- ldr r3, =gAnimMoveIndex
- ldr r5, =gUnknown_02038430
- ldr r1, =gAnimScriptActive
- mov r12, r1
- ldr r7, =gAnimScriptCallback
- ldr r6, =move_anim_execute
- b _080A3B10
- .pool
-_080A3AE8:
- ldr r3, =gAnimMoveIndex
- ldr r5, =gUnknown_02038430
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r1, =gAnimScriptActive
- mov r12, r1
- ldr r7, =gAnimScriptCallback
- ldr r6, =move_anim_execute
- ldr r2, =gUnknown_02039F34
- ldr r1, =gUnknown_02038438
- movs r4, 0x3
-_080A3B00:
- ldr r0, [r2]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A3B00
-_080A3B10:
- mov r0, r9
- cmp r0, 0
- bne _080A3B38
- strh r0, [r3]
- b _080A3B3C
- .pool
-_080A3B38:
- mov r1, r8
- strh r1, [r3]
-_080A3B3C:
- ldr r1, =gBattleAnimArgs
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xE
-_080A3B44:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _080A3B44
- movs r0, 0xFF
- strb r0, [r5]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r5, 0x1]
- ldr r0, [sp]
- add r0, r10
- ldr r0, [r0]
- ldr r1, =gBattleAnimScriptPtr
- str r0, [r1]
- movs r0, 0x1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- ldr r1, =gAnimFramesToWait
- strb r0, [r1]
- str r6, [r7]
- ldr r0, =0x0000ffff
- adds r2, r0, 0
- ldr r1, =gAnimSpriteIndexArray
- movs r4, 0x7
-_080A3B76:
- ldrh r0, [r1]
- orrs r0, r2
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A3B76
- mov r1, r9
- cmp r1, 0
- beq _080A3BC2
- movs r4, 0
- ldr r2, =gUnknown_082C8D64
- b _080A3BAA
- .pool
-_080A3BA8:
- adds r4, 0x1
-_080A3BAA:
- lsls r0, r4, 1
- adds r0, r2
- ldrh r0, [r0]
- ldr r1, =0x0000ffff
- cmp r0, r1
- beq _080A3BC2
- cmp r8, r0
- bne _080A3BA8
- ldr r0, =gMPlay_BGM
- movs r2, 0x80
- bl m4aMPlayVolumeControl
-_080A3BC2:
- ldr r0, =gBattle_WIN0H
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_WIN0V
- strh r1, [r0]
- ldr r0, =gBattle_WIN1H
- strh r1, [r0]
- ldr r0, =gBattle_WIN1V
- strh r1, [r0]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_something
-
- thumb_func_start move_anim_8072740
-move_anim_8072740: @ 80A3BFC
- push {r4,lr}
- adds r4, r0, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_8072740
-
- thumb_func_start move_anim_task_del
-move_anim_task_del: @ 80A3C1C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_task_del
-
- thumb_func_start move_anim_related_task_del
-move_anim_related_task_del: @ 80A3C38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_related_task_del
-
- thumb_func_start sub_80A3C54
-sub_80A3C54: @ 80A3C54
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r4, =0x0000ffff
- ldr r1, =gAnimSpriteIndexArray
-_080A3C60:
- ldrh r0, [r1]
- cmp r0, r4
- bne _080A3C74
- strh r3, [r1]
- b _080A3C7C
- .pool
-_080A3C74:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A3C60
-_080A3C7C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3C54
-
- thumb_func_start sub_80A3C84
-sub_80A3C84: @ 80A3C84
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r0, =0x0000ffff
- adds r4, r0, 0
- ldr r1, =gAnimSpriteIndexArray
-_080A3C92:
- ldrh r0, [r1]
- cmp r0, r3
- bne _080A3CA8
- orrs r0, r4
- strh r0, [r1]
- b _080A3CB0
- .pool
-_080A3CA8:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x7
- ble _080A3C92
-_080A3CB0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A3C84
-
- thumb_func_start move_anim_waiter
-move_anim_waiter: @ 80A3CB8
- push {lr}
- ldr r2, =gAnimFramesToWait
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bgt _080A3CDC
- ldr r0, =gAnimScriptCallback
- ldr r1, =move_anim_execute
- str r1, [r0]
- movs r0, 0
- b _080A3CDE
- .pool
-_080A3CDC:
- subs r0, r1, 0x1
-_080A3CDE:
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end move_anim_waiter
-
- thumb_func_start move_anim_execute
-move_anim_execute: @ 80A3CE4
- push {r4,lr}
- ldr r4, =gUnknown_08525E98
-_080A3CE8:
- ldr r0, =gBattleAnimScriptPtr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, =gAnimFramesToWait
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- bne _080A3D0C
- ldr r0, =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A3CE8
-_080A3D0C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end move_anim_execute
-
- thumb_func_start ma00_load_graphics
-ma00_load_graphics: @ 80A3D24
- push {r4-r6,lr}
- ldr r6, =gBattleAnimScriptPtr
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- lsls r5, r4, 3
- ldr r0, =gUnknown_085112B4 + 0x10
- adds r0, r5, r0
- bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_08511A34 + 0x198
- adds r5, r0
- adds r0, r5, 0
- bl LoadCompressedObjectPaletteUsingHeap
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- ldr r0, =0xffffd8f0
- adds r4, r0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80A3C54
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, =gAnimScriptCallback
- ldr r0, =move_anim_waiter
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma00_load_graphics
-
- thumb_func_start ma01_080728D0
-@ void ma01_080728D0()
-ma01_080728D0: @ 80A3D8C
- push {r4-r6,lr}
- ldr r6, =gBattleAnimScriptPtr
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- ldr r1, =gUnknown_08524B44
- ldr r0, =0xffffd8f0
- adds r4, r0
- lsls r0, r4, 3
- adds r0, r1
- ldrh r5, [r0, 0x6]
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80A3C84
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma01_080728D0
-
- thumb_func_start ma02_instanciate_template
-ma02_instanciate_template: @ 80A3DD8
- push {r4-r7,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r1, [r5]
- adds r3, r1, 0x1
- str r3, [r5]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r7, r2, r0
- adds r0, r1, 0x5
- str r0, [r5]
- ldrb r4, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r5]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r5]
- cmp r0, 0
- beq _080A3E28
- adds r6, r5, 0
- ldr r5, =gBattleAnimArgs
- adds r3, r0, 0
-_080A3E10:
- ldr r2, [r6]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r5]
- adds r2, 0x2
- str r2, [r6]
- adds r5, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _080A3E10
-_080A3E28:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _080A3E58
- movs r0, 0x80
- eors r4, r0
- cmp r4, 0x3F
- bls _080A3E48
- adds r0, r4, 0
- subs r0, 0x40
- b _080A3E4A
- .pool
-_080A3E48:
- negs r0, r4
-_080A3E4A:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gAnimationBankTarget
- b _080A3E6A
- .pool
-_080A3E58:
- cmp r4, 0x3F
- bls _080A3E62
- adds r0, r4, 0
- subs r0, 0x40
- b _080A3E64
-_080A3E62:
- negs r0, r4
-_080A3E64:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gAnimationBankAttacker
-_080A3E6A:
- ldrb r0, [r0]
- bl sub_80A82E4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _080A3E88
- movs r6, 0x3
-_080A3E88:
- ldr r5, =gAnimationBankTarget
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_80A5C6C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_80A5C6C
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 24
- lsrs r3, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl CreateSpriteAndAnimate
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma02_instanciate_template
-
- thumb_func_start sub_80A3ECC
-sub_80A3ECC: @ 80A3ECC
- push {r4-r7,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r7, [r1, 0x5]
- adds r0, r1, 0x6
- str r0, [r4]
- ldrb r0, [r1, 0x6]
- adds r1, 0x7
- str r1, [r4]
- cmp r0, 0
- beq _080A3F1C
- adds r5, r4, 0
- ldr r4, =gBattleAnimArgs
- adds r3, r0, 0
-_080A3F04:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _080A3F04
-_080A3F1C:
- adds r0, r6, 0
- adds r1, r7, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A3ECC
-
- thumb_func_start ma04_wait_countdown
-ma04_wait_countdown: @ 80A3F48
- push {r4,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r2, r0, 0x1
- str r2, [r1]
- ldr r3, =gAnimFramesToWait
- ldrb r0, [r0, 0x1]
- strb r0, [r3]
- lsls r0, 24
- cmp r0, 0
- bne _080A3F66
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- strb r0, [r3]
-_080A3F66:
- adds r0, r2, 0x1
- str r0, [r1]
- ldr r1, =gAnimScriptCallback
- ldr r0, =move_anim_waiter
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma04_wait_countdown
-
- thumb_func_start sub_80A3F88
-sub_80A3F88: @ 80A3F88
- push {lr}
- ldr r0, =gAnimVisualTaskCount
- ldrb r2, [r0]
- cmp r2, 0
- bne _080A3FAC
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, =gAnimFramesToWait
- strb r2, [r0]
- b _080A3FB2
- .pool
-_080A3FAC:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
-_080A3FB2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A3F88
-
- thumb_func_start nullsub_6
-nullsub_6: @ 80A3FBC
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start nullsub_7
-nullsub_7: @ 80A3FC0
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start sub_80A3FC4
-sub_80A3FC4: @ 80A3FC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r0, 0
- mov r8, r0
- ldr r0, =gAnimVisualTaskCount
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A3FEC
- ldr r0, =gAnimSoundTaskCount
- ldrb r0, [r0]
- cmp r0, 0
- bne _080A3FEC
- ldr r1, =gUnknown_02038430
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080A3FEC
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _080A4004
-_080A3FEC:
- ldr r1, =gSoundAnimFramesToWait
- movs r0, 0
- strh r0, [r1]
- b _080A401E
- .pool
-_080A4004:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _080A403C
- ldr r1, =gSoundAnimFramesToWait
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bhi _080A4030
-_080A401E:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
- b _080A40A2
- .pool
-_080A4030:
- ldr r0, =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, =gMPlay_SE2
- bl m4aMPlayStop
-_080A403C:
- ldr r1, =gSoundAnimFramesToWait
- movs r0, 0
- strh r0, [r1]
- movs r5, 0
- ldr r7, =0x0000ffff
- ldr r6, =gUnknown_08524B44
- ldr r4, =gAnimSpriteIndexArray
-_080A404A:
- ldrh r0, [r4]
- cmp r0, r7
- beq _080A406E
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4]
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x6]
- bl FreeSpritePaletteByTag
- ldrh r1, [r4]
- adds r0, r7, 0
- orrs r0, r1
- strh r0, [r4]
-_080A406E:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- ble _080A404A
- mov r1, r8
- cmp r1, 0
- bne _080A40A2
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A409C
- bl sub_80A8278
- movs r0, 0x1
- bl sub_8072A88
-_080A409C:
- ldr r0, =gAnimScriptActive
- mov r1, r8
- strb r1, [r0]
-_080A40A2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A3FC4
-
- thumb_func_start ma09_play_sound
-ma09_play_sound: @ 80A40CC
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r0, [r4]
- adds r1, r0, 0x1
- str r1, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma09_play_sound
-
- thumb_func_start sub_80A40F4
-sub_80A40F4: @ 80A40F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- mov r8, r1
- adds r6, r0, r1
- ldr r1, =gBankSpriteIds
- movs r2, 0
- ldrsh r0, [r6, r2]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r3, 0x4
- ldrsh r0, [r6, r3]
- cmp r0, 0
- bne _080A4148
- adds r0, r7, 0
- bl move_anim_task_del
- b _080A41BE
- .pool
-_080A4148:
- ldr r0, =task_pA_ma0A_obj_to_bg_pal
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- mov r1, r8
- subs r1, 0x8
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r5, [r1, 0x8]
- ldrh r0, [r4, 0x24]
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r1, 0xA]
- ldrh r0, [r4, 0x26]
- ldrh r4, [r4, 0x22]
- adds r0, r4
- strh r0, [r1, 0xC]
- movs r3, 0x2
- ldrsh r0, [r6, r3]
- cmp r0, 0
- bne _080A4190
- ldr r0, =gBattle_BG1_X
- ldrh r0, [r0]
- strh r0, [r1, 0xE]
- ldr r0, =gBattle_BG1_Y
- b _080A4198
- .pool
-_080A4190:
- ldr r0, =gBattle_BG2_X
- ldrh r0, [r0]
- strh r0, [r1, 0xE]
- ldr r0, =gBattle_BG2_Y
-_080A4198:
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r6, 0x2]
- strh r1, [r0, 0x12]
- ldrh r1, [r6]
- strh r1, [r0, 0x14]
- ldr r1, =gUnknown_02038430
- movs r3, 0x6
- ldrsh r0, [r6, r3]
- adds r0, r1
- strb r2, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_080A41BE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A40F4
-
- thumb_func_start sub_80A41D8
-sub_80A41D8: @ 80A41D8
- push {r4,r5,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A41F8
- ldr r0, =gAnimationBankTarget
- b _080A41FA
- .pool
-_080A41F8:
- ldr r0, =gAnimationBankAttacker
-_080A41FA:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4266
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4226
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4230
-_080A4226:
- movs r5, 0
- b _080A4232
- .pool
-_080A4230:
- movs r5, 0x1
-_080A4232:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_80A438C
- ldr r0, =sub_80A40F4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r4, [r0, 0x8]
- strh r5, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0xC]
- strh r2, [r0, 0xE]
-_080A4266:
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A42D8
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4294
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A42A4
-_080A4294:
- movs r5, 0
- b _080A42A6
- .pool
-_080A42A4:
- movs r5, 0x1
-_080A42A6:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_80A438C
- ldr r0, =sub_80A40F4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gAnimVisualTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r5, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
-_080A42D8:
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, =gAnimScriptCallback
- ldr r0, =move_anim_waiter
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A41D8
-
- thumb_func_start b_side_obj__get_some_boolean
-b_side_obj__get_some_boolean: @ 80A4310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4330
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- cmp r4, r0
- beq _080A4374
- b _080A4384
- .pool
-_080A4330:
- adds r0, r4, 0
- bl sub_80A6A90
- lsls r0, 24
- cmp r0, 0
- beq _080A4384
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A4374
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4374
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _080A4384
-_080A4374:
- movs r0, 0x1
- b _080A4386
- .pool
-_080A4384:
- movs r0, 0
-_080A4386:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end b_side_obj__get_some_boolean
-
- thumb_func_start sub_80A438C
-sub_80A438C: @ 80A438C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- cmp r1, 0
- beq _080A43AA
- b _080A455E
-_080A43AA:
- bl IsContest
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A43DC
- ldr r1, =0x06008000
- movs r2, 0x80
- lsls r2, 6
- movs r0, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldr r1, =0x0600f000
- movs r2, 0x80
- lsls r2, 5
- movs r0, 0xFF
- movs r3, 0
- bl RequestDma3Fill
- b _080A43F8
- .pool
-_080A43DC:
- ldr r1, =0x06004000
- movs r2, 0x80
- lsls r2, 6
- movs r0, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldr r1, =0x0600e000
- movs r2, 0x80
- lsls r2, 5
- movs r0, 0xFF
- movs r3, 0
- bl RequestDma3Fill
-_080A43F8:
- add r0, sp, 0x10
- bl sub_80A6B30
- add r0, sp, 0x20
- movs r1, 0
- strh r1, [r0]
- ldr r1, [sp, 0x10]
- ldr r2, =0x01000800
- bl CpuSet
- mov r0, sp
- adds r0, 0x22
- movs r1, 0xFF
- strh r1, [r0]
- ldr r1, [sp, 0x14]
- ldr r2, =0x01000400
- bl CpuSet
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x2
- bl lcd_bg_operations
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl lcd_bg_operations
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl lcd_bg_operations
- ldr r0, =gBankSpriteIds
- adds r0, r6, r0
- ldrb r4, [r0]
- ldr r5, =gBattle_BG1_X
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A447A
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- bl sub_80DB2A8
- lsls r0, 24
- cmp r0, 0
- beq _080A447A
- ldrh r0, [r5]
- subs r0, 0x1
- strh r0, [r5]
-_080A447A:
- ldr r5, =gBattle_BG1_Y
- ldr r2, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- mov r0, r9
- cmp r0, 0
- beq _080A44B0
- ldr r0, =gBankSpriteIds
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080A44B0:
- ldr r0, =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldrh r1, [r5]
- movs r0, 0x16
- bl SetGpuReg
- lsls r4, r6, 5
- ldr r0, =gPlttBufferUnfaded + 0x200
- adds r4, r0
- add r0, sp, 0x10
- ldrb r1, [r0, 0x8]
- lsls r1, 4
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- add r0, sp, 0x10
- ldrb r1, [r0, 0x8]
- lsls r1, 5
- movs r0, 0xA0
- lsls r0, 19
- adds r1, r0
- ldr r2, =0x04000008
- adds r0, r4, 0
- bl CpuSet
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4524
- movs r3, 0
- b _080A452E
- .pool
-_080A4524:
- adds r0, r6, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r3, r0, 24
-_080A452E:
- add r0, sp, 0x10
- ldrb r0, [r0, 0x8]
- str r0, [sp]
- ldr r0, [sp, 0x10]
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x14]
- str r0, [sp, 0x8]
- add r0, sp, 0x10
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0xC]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl sub_8118FBC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A4558
- b _080A4666
-_080A4558:
- bl sub_80A46A0
- b _080A4666
-_080A455E:
- ldr r1, =0x06006000
- movs r2, 0x80
- lsls r2, 6
- movs r0, 0
- movs r3, 0x1
- bl RequestDma3Fill
- ldr r1, =0x0600f000
- movs r7, 0x80
- lsls r7, 5
- movs r0, 0
- adds r2, r7, 0
- movs r3, 0x1
- bl RequestDma3Fill
- add r0, sp, 0x10
- movs r1, 0x2
- bl sub_80A6B90
- add r0, sp, 0x24
- movs r4, 0
- strh r4, [r0]
- ldr r1, [sp, 0x10]
- adds r1, r7
- ldr r2, =0x01000800
- bl CpuSet
- mov r0, sp
- adds r0, 0x26
- strh r4, [r0]
- ldr r1, [sp, 0x14]
- movs r2, 0x80
- lsls r2, 4
- mov r8, r2
- add r1, r8
- ldr r2, =0x01000400
- bl CpuSet
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl lcd_bg_operations
- movs r0, 0x2
- movs r1, 0
- movs r2, 0x1
- bl lcd_bg_operations
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- bl lcd_bg_operations
- ldr r0, =gBankSpriteIds
- adds r2, r5, r0
- ldrb r4, [r2]
- ldr r5, =gBattle_BG2_X
- ldr r3, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r1, 0x24]
- ldrh r4, [r1, 0x20]
- adds r0, r4
- negs r0, r0
- adds r0, 0x20
- strh r0, [r5]
- ldr r4, =gBattle_BG2_Y
- ldrh r0, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- negs r0, r0
- adds r0, 0x20
- strh r0, [r4]
- mov r0, r9
- cmp r0, 0
- beq _080A460E
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080A460E:
- ldrh r1, [r5]
- movs r0, 0x18
- bl SetGpuReg
- ldrh r1, [r4]
- movs r0, 0x1A
- bl SetGpuReg
- lsls r4, r6, 5
- ldr r0, =gPlttBufferUnfaded + 0x200
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x90
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =0x05000120
- ldr r2, =0x04000008
- adds r0, r4, 0
- bl CpuSet
- adds r0, r6, 0
- bl GetBankIdentity
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- add r0, sp, 0x10
- ldrb r0, [r0, 0x8]
- str r0, [sp]
- ldr r0, [sp, 0x10]
- adds r0, r7
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x14]
- add r0, r8
- str r0, [sp, 0x8]
- add r0, sp, 0x10
- ldrh r0, [r0, 0xA]
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl sub_8118FBC
-_080A4666:
- add sp, 0x28
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A438C
-
- thumb_func_start sub_80A46A0
-sub_80A46A0: @ 80A46A0
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r0, =gUnknown_02039F34
- ldr r0, [r0]
- ldr r0, [r0, 0x18]
- ldrh r0, [r0]
- bl sub_80DB2A8
- lsls r0, 24
- cmp r0, 0
- beq _080A4712
- mov r0, sp
- bl sub_80A6B30
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_080A46C6:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_080A46D0:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _080A46D0
- movs r0, 0x20
- add r12, r0
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _080A46C6
- movs r5, 0
- movs r1, 0x80
- lsls r1, 3
- adds r3, r1, 0
-_080A46F6:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_080A46FE:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _080A46FE
- adds r5, r2, 0
- cmp r5, 0x7
- ble _080A46F6
-_080A4712:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A46A0
-
- thumb_func_start sub_80A4720
-sub_80A4720: @ 80A4720
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- adds r6, r2, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r3, 24
- movs r0, 0x40
- mov r12, r0
- cmp r3, 0
- bne _080A473C
- movs r1, 0x20
- mov r12, r1
-_080A473C:
- lsls r0, r5, 28
- lsrs r5, r0, 16
- movs r0, 0
- cmp r0, r12
- bge _080A476C
- ldr r7, =0x00000fff
-_080A4748:
- adds r4, r0, 0x1
- lsls r0, 6
- mov r1, r8
- adds r3, r0, r1
- movs r2, 0x1F
-_080A4752:
- ldrh r1, [r3]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- adds r0, r6
- strh r0, [r3]
- adds r3, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080A4752
- adds r0, r4, 0
- cmp r0, r12
- blt _080A4748
-_080A476C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4720
-
- thumb_func_start sub_80A477C
-sub_80A477C: @ 80A477C
- push {r4,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80A6B30
- cmp r4, 0
- beq _080A479C
- bl IsContest
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080A47B8
-_080A479C:
- movs r0, 0x1
- bl sub_80A6C68
- ldr r0, =gBattle_BG1_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gBattle_BG1_Y
- strh r1, [r0]
- b _080A47C6
- .pool
-_080A47B8:
- movs r0, 0x2
- bl sub_80A6C68
- ldr r0, =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, =gBattle_BG2_Y
- strh r4, [r0]
-_080A47C6:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A477C
-
- thumb_func_start task_pA_ma0A_obj_to_bg_pal
-@ void task_pA_ma0A_obj_to_bg_pal(int task_id)
-task_pA_ma0A_obj_to_bg_pal: @ 80A47D8
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r4, [r5, 0x8]
- ldrb r6, [r5, 0x14]
- mov r0, sp
- bl sub_80A6B30
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x24]
- ldrh r0, [r1, 0x20]
- adds r2, r0
- ldrh r0, [r5, 0xA]
- subs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r2, [r1, 0x26]
- ldrh r1, [r1, 0x22]
- adds r2, r1
- ldrh r0, [r5, 0xC]
- subs r0, r2
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x12
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080A4870
- ldr r1, =gBattle_BG1_X
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, =gBattle_BG1_Y
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r0, r6, 5
- ldr r2, =gPlttBufferFaded + 0x200
- adds r0, r2
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 5
- ldr r3, =0xfffffe00
- adds r2, r3
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _080A4896
- .pool
-_080A4870:
- ldr r1, =gBattle_BG2_X
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r3, [r5, 0xE]
- adds r0, r3
- strh r0, [r1]
- ldr r1, =gBattle_BG2_Y
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r5, [r5, 0x10]
- adds r0, r5
- strh r0, [r1]
- lsls r0, r6, 5
- ldr r1, =gPlttBufferFaded + 0x200
- adds r0, r1
- subs r1, 0xE0
- ldr r2, =0x04000008
- bl CpuSet
-_080A4896:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_pA_ma0A_obj_to_bg_pal
-
- thumb_func_start ma0B_0807324C
-ma0B_0807324C: @ 80A48B0
- push {r4,r5,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r4, [r2, 0x1]
- cmp r4, 0
- bne _080A48C8
- movs r4, 0x2
- b _080A48D2
- .pool
-_080A48C8:
- cmp r4, 0x1
- bne _080A48CE
- movs r4, 0x3
-_080A48CE:
- cmp r4, 0
- beq _080A48D6
-_080A48D2:
- cmp r4, 0x2
- bne _080A48E0
-_080A48D6:
- ldr r0, =gAnimationBankAttacker
- b _080A48E2
- .pool
-_080A48E0:
- ldr r0, =gAnimationBankTarget
-_080A48E2:
- ldrb r5, [r0]
- ldr r3, =gUnknown_02038430
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _080A4908
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r5, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080A4908:
- cmp r4, 0x1
- bls _080A4948
- ldrb r0, [r3, 0x1]
- cmp r0, 0xFF
- beq _080A4948
- ldr r3, =gSprites
- ldr r2, =gBankSpriteIds
- movs r1, 0x2
- adds r0, r5, 0
- eors r0, r1
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080A494A
- .pool
-_080A4948:
- movs r4, 0
-_080A494A:
- ldr r0, =sub_80A4980
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xC]
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0B_0807324C
-
- thumb_func_start sub_80A4980
-sub_80A4980: @ 80A4980
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080A4A0A
- ldrb r0, [r1, 0xC]
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A49BC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A49C4
-_080A49BC:
- movs r4, 0
- b _080A49C6
- .pool
-_080A49C4:
- movs r4, 0x1
-_080A49C6:
- ldr r6, =gUnknown_02038430
- ldrb r0, [r6]
- cmp r0, 0xFF
- beq _080A49DE
- adds r0, r4, 0
- bl sub_80A477C
- ldrb r0, [r6]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6]
-_080A49DE:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080A4A04
- movs r0, 0x1
- eors r4, r0
- adds r0, r4, 0
- bl sub_80A477C
- ldrb r0, [r6, 0x1]
- bl DestroyTask
- movs r0, 0xFF
- strb r0, [r6, 0x1]
-_080A4A04:
- adds r0, r5, 0
- bl DestroyTask
-_080A4A0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4980
-
- thumb_func_start sub_80A4A18
-sub_80A4A18: @ 80A4A18
- push {r4,r5,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080A4A30
- movs r5, 0x2
- b _080A4A3A
- .pool
-_080A4A30:
- cmp r5, 0x1
- bne _080A4A36
- movs r5, 0x3
-_080A4A36:
- cmp r5, 0
- beq _080A4A3E
-_080A4A3A:
- cmp r5, 0x2
- bne _080A4A48
-_080A4A3E:
- ldr r0, =gAnimationBankAttacker
- b _080A4A4A
- .pool
-_080A4A48:
- ldr r0, =gAnimationBankTarget
-_080A4A4A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4A8A
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4A76
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4A80
-_080A4A76:
- movs r1, 0
- b _080A4A82
- .pool
-_080A4A80:
- movs r1, 0x1
-_080A4A82:
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A438C
-_080A4A8A:
- movs r0, 0x2
- eors r4, r0
- cmp r5, 0x1
- bls _080A4ACA
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4ACA
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4ABC
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4AC0
-_080A4ABC:
- movs r1, 0
- b _080A4AC2
-_080A4AC0:
- movs r1, 0x1
-_080A4AC2:
- adds r0, r4, 0
- movs r2, 0
- bl sub_80A438C
-_080A4ACA:
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4A18
-
- thumb_func_start ma23_8073484
-ma23_8073484: @ 80A4ADC
- push {r4-r6,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r2, [r0]
- adds r1, r2, 0x1
- str r1, [r0]
- ldrb r5, [r2, 0x1]
- cmp r5, 0
- bne _080A4AF4
- movs r5, 0x2
- b _080A4AFE
- .pool
-_080A4AF4:
- cmp r5, 0x1
- bne _080A4AFA
- movs r5, 0x3
-_080A4AFA:
- cmp r5, 0
- beq _080A4B02
-_080A4AFE:
- cmp r5, 0x2
- bne _080A4B0C
-_080A4B02:
- ldr r0, =gAnimationBankAttacker
- b _080A4B0E
- .pool
-_080A4B0C:
- ldr r0, =gAnimationBankTarget
-_080A4B0E:
- ldrb r6, [r0]
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4B38
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080A4B38:
- cmp r5, 0x1
- bls _080A4B78
- movs r0, 0x2
- adds r4, r6, 0
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4B78
- ldr r2, =gSprites
- ldr r0, =gBankSpriteIds
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- b _080A4B7A
- .pool
-_080A4B78:
- movs r5, 0
-_080A4B7A:
- ldr r0, =sub_80A4BB0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- strh r6, [r1, 0xC]
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma23_8073484
-
- thumb_func_start sub_80A4BB0
-sub_80A4BB0: @ 80A4BB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- beq _080A4C3E
- ldrb r4, [r1, 0xC]
- adds r0, r4, 0
- bl GetBankIdentity
- lsls r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x1
- bls _080A4BEE
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4BF8
-_080A4BEE:
- movs r5, 0
- b _080A4BFA
- .pool
-_080A4BF8:
- movs r5, 0x1
-_080A4BFA:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4C0C
- adds r0, r5, 0
- bl sub_80A477C
-_080A4C0C:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- ble _080A4C38
- movs r0, 0x2
- eors r4, r0
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _080A4C38
- movs r0, 0x1
- eors r5, r0
- adds r0, r5, 0
- bl sub_80A477C
-_080A4C38:
- adds r0, r6, 0
- bl DestroyTask
-_080A4C3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4BB0
-
- thumb_func_start ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
-ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument: @ 80A4C48
- push {r4,r5,lr}
- ldr r2, =gBattleAnimScriptPtr
- ldr r0, [r2]
- adds r1, r0, 0x1
- str r1, [r2]
- ldrb r5, [r0, 0x1]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r4, [r1, 0x1]
- lsls r4, 8
- adds r0, 0x1
- str r0, [r2]
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- orrs r5, r4
- movs r0, 0x52
- adds r1, r5, 0
- bl SetGpuReg
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
-
- thumb_func_start ma1E_set_BLDCNT
-ma1E_set_BLDCNT: @ 80A4C80
- push {lr}
- ldr r3, =gBattleAnimScriptPtr
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- adds r0, r2, 0x1
- str r0, [r3]
- ldrb r2, [r2, 0x1]
- lsls r2, 8
- adds r0, 0x1
- str r0, [r3]
- orrs r1, r2
- movs r0, 0x50
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1E_set_BLDCNT
-
- thumb_func_start ma0D_reset_BLDCNT_and_BLDALPHA
-ma0D_reset_BLDCNT_and_BLDALPHA: @ 80A4CA8
- push {lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0D_reset_BLDCNT_and_BLDALPHA
-
- thumb_func_start ma0E_call
-ma0E_call: @ 80A4CCC
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldr r2, =gBattleAnimScriptRetAddr
- adds r0, r1, 0x5
- str r0, [r2]
- ldrb r1, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma0E_call
-
- thumb_func_start sub_80A4D00
-sub_80A4D00: @ 80A4D00
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, =gBattleAnimScriptRetAddr
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .pool
- thumb_func_end sub_80A4D00
-
- thumb_func_start ma10_080736AC
-ma10_080736AC: @ 80A4D14
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r1, [r5]
- adds r0, r1, 0x1
- str r0, [r5]
- ldrb r2, [r1, 0x1]
- adds r3, r0, 0x1
- str r3, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r4, r0
- adds r1, 0x4
- str r1, [r5]
- ldr r0, =gBattleAnimArgs
- lsls r2, 1
- adds r2, r0
- strh r4, [r2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma10_080736AC
-
- thumb_func_start ma11_if_else
-ma11_if_else: @ 80A4D48
- push {lr}
- ldr r3, =gBattleAnimScriptPtr
- ldr r2, [r3]
- adds r0, r2, 0x1
- str r0, [r3]
- ldr r0, =gUnknown_02038432
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080A4D62
- adds r0, r2, 0x5
- str r0, [r3]
-_080A4D62:
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma11_if_else
-
- thumb_func_start ma12_cond_if
-ma12_cond_if: @ 80A4D88
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r4, [r5]
- adds r2, r4, 0x1
- str r2, [r5]
- ldrb r1, [r4, 0x1]
- adds r3, r2, 0x1
- str r3, [r5]
- ldr r0, =gUnknown_02038432
- ldrb r0, [r0]
- cmp r1, r0
- bne _080A4DC0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _080A4DC4
- .pool
-_080A4DC0:
- adds r0, r4, 0x6
- str r0, [r5]
-_080A4DC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end ma12_cond_if
-
- thumb_func_start ma13_goto
-ma13_goto: @ 80A4DCC
- ldr r3, =gBattleAnimScriptPtr
- ldr r0, [r3]
- adds r2, r0, 0x1
- str r2, [r3]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .pool
- thumb_func_end ma13_goto
-
- thumb_func_start IsContest
-IsContest: @ 80A4DF0
- push {lr}
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080A4E10
- movs r0, 0
- b _080A4E12
- .pool
-_080A4E10:
- movs r0, 0x1
-_080A4E12:
- pop {r1}
- bx r1
- thumb_func_end IsContest
-
- thumb_func_start ma14_load_background
-ma14_load_background: @ 80A4E18
- push {r4,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r2, [r1]
- adds r0, r2, 0x1
- str r0, [r1]
- ldrb r4, [r2, 0x1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma14_load_background
-
- thumb_func_start sub_80A4E5C
-sub_80A4E5C: @ 80A4E5C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, =gBattleAnimScriptPtr
- ldr r1, [r2]
- adds r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r1, 0x1]
- mov r8, r3
- ldrb r7, [r0, 0x1]
- ldrb r6, [r0, 0x2]
- adds r1, 0x4
- str r1, [r2]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A4EA8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
- b _080A4EDA
- .pool
-_080A4EA8:
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A4ECC
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x8]
- b _080A4EDA
- .pool
-_080A4ECC:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x8]
-_080A4EDA:
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4E5C
-
- thumb_func_start task_p5_load_battle_screen_elements
-task_p5_load_battle_screen_elements: @ 80A4EF4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r6, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r3, [r4, r0]
- adds r7, r1, 0
- cmp r3, 0
- bne _080A4F2C
- str r3, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- b _080A4FBC
- .pool
-_080A4F2C:
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080A4FBC
- cmp r3, 0x1
- bne _080A4F50
- adds r0, r6, 0x1
- strh r0, [r4, 0x1C]
- ldr r1, =gUnknown_02038433
- movs r0, 0x2
- strb r0, [r1]
- b _080A4F94
- .pool
-_080A4F50:
- cmp r3, 0x2
- bne _080A4F94
- ldrh r0, [r4, 0x8]
- lsls r2, r0, 16
- asrs r1, r2, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A4F68
- bl dp01t_11_3_message_for_player_only
- b _080A4F6E
-_080A4F68:
- lsrs r0, r2, 16
- bl sub_80A4FC8
-_080A4F6E:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xE8
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- adds r1, 0x1
- strh r1, [r0, 0x1C]
- b _080A4FBC
- .pool
-_080A4F94:
- ldrb r1, [r2, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080A4FBC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x1C
- ldrsh r0, [r0, r1]
- cmp r0, 0x3
- bne _080A4FBC
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, =gUnknown_02038433
- strb r4, [r0]
-_080A4FBC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_p5_load_battle_screen_elements
-
- thumb_func_start sub_80A4FC8
-sub_80A4FC8: @ 80A4FC8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5050
- ldr r6, =gUnknown_08525D54
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r0, r6, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r5, =0x0201c000
- adds r1, r5, 0
- bl LZDecompressWram
- bl sub_80A6D94
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- adds r1, r5, 0
- movs r3, 0
- bl sub_80A4720
- ldr r1, =0x0600d000
- ldr r0, =0x040000d4
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, =0x84000200
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- adds r0, r4, r6
- ldr r0, [r0]
- ldr r1, =0x06002000
- bl LZDecompressVram
- adds r6, 0x4
- adds r4, r6
- ldr r4, [r4]
- bl sub_80A6D94
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 20
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- b _080A507E
- .pool
-_080A5050:
- ldr r5, =gUnknown_08525D54
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, =0x0600d000
- bl LZDecompressVram
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, =0x06008000
- bl LZDecompressVram
- adds r5, 0x4
- adds r4, r5
- ldr r0, [r4]
- movs r1, 0x20
- movs r2, 0x20
- bl LoadCompressedPalette
-_080A507E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A4FC8
-
- thumb_func_start dp01t_11_3_message_for_player_only
-dp01t_11_3_message_for_player_only: @ 80A5090
- push {lr}
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A50A2
- bl sub_80D7724
- b _080A50A6
-_080A50A2:
- bl load_battle_oval_graphics
-_080A50A6:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_3_message_for_player_only
-
- thumb_func_start ma15_load_battle_screen_elements
-ma15_load_battle_screen_elements: @ 80A50AC
- push {lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, =task_p5_load_battle_screen_elements
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x8]
- ldr r1, =gUnknown_02038433
- movs r0, 0x1
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma15_load_battle_screen_elements
-
- thumb_func_start ma16_wait_for_battle_screen_elements_s2
-ma16_wait_for_battle_screen_elements_s2: @ 80A50F0
- push {lr}
- ldr r0, =gUnknown_02038433
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080A5114
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r1, =gAnimFramesToWait
- movs r0, 0
- b _080A5118
- .pool
-_080A5114:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
-_080A5118:
- strb r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma16_wait_for_battle_screen_elements_s2
-
- thumb_func_start sub_80A5124
-sub_80A5124: @ 80A5124
- push {lr}
- ldr r0, =gUnknown_02038433
- ldrb r2, [r0]
- cmp r2, 0
- bne _080A5148
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, =gAnimFramesToWait
- strb r2, [r0]
- b _080A514E
- .pool
-_080A5148:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
-_080A514E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A5124
-
- thumb_func_start ma18_load_background_probably
-ma18_load_background_probably: @ 80A5158
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- ldrb r0, [r1, 0x1]
- bl sub_80A4FC8
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma18_load_background_probably
-
- thumb_func_start BattleAnimGetPanControl
-BattleAnimGetPanControl: @ 80A5178
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A51C0
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gAnimationBankAttacker
- ldrb r2, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A51C0
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080A5252
- movs r4, 0x3F
- b _080A5252
- .pool
-_080A51C0:
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A51E8
- ldr r0, =gAnimationBankAttacker
- ldr r1, =gAnimationBankTarget
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080A524C
- cmp r0, 0x2
- bne _080A524C
- cmp r4, 0x3F
- beq _080A525E
- b _080A524C
- .pool
-_080A51E8:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5226
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A5252
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0x3F
- bne _080A5218
- movs r4, 0xC0
- b _080A5252
- .pool
-_080A5218:
- movs r0, 0x40
- negs r0, r0
- cmp r1, r0
- beq _080A5252
- negs r0, r1
- lsls r0, 24
- b _080A5250
-_080A5226:
- ldr r0, =gAnimationBankTarget
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080A524C
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bne _080A5252
- movs r4, 0x3F
- b _080A5252
- .pool
-_080A524C:
- lsls r0, r4, 24
- negs r0, r0
-_080A5250:
- lsrs r4, r0, 24
-_080A5252:
- lsls r0, r4, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _080A525E
- movs r4, 0x3F
- b _080A526C
-_080A525E:
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- bge _080A526C
- movs r4, 0xC0
-_080A526C:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end BattleAnimGetPanControl
-
- thumb_func_start sub_80A5278
-sub_80A5278: @ 80A5278
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A52C0
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, =gAnimationBankAttacker
- ldrb r2, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080A52C0
- adds r0, r2, 0
- bl GetBankSide
- lsls r0, 24
- movs r4, 0xC0
- cmp r0, 0
- beq _080A52DE
- movs r4, 0x3F
- b _080A52DE
- .pool
-_080A52C0:
- ldr r0, =gAnimationBankAttacker
- ldrb r0, [r0]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080A52D8
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A52DE
-_080A52D8:
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_080A52DE:
- lsls r0, r4, 24
- asrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A5278
-
- thumb_func_start sub_80A52EC
-sub_80A52EC: @ 80A52EC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x3F
- ble _080A52FC
- movs r1, 0x3F
- b _080A5306
-_080A52FC:
- movs r0, 0x40
- negs r0, r0
- cmp r2, r0
- bge _080A5306
- ldr r1, =0x0000ffc0
-_080A5306:
- lsls r0, r1, 16
- asrs r0, 16
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80A52EC
-
- thumb_func_start sub_80A5314
-sub_80A5314: @ 80A5314
- push {lr}
- lsls r2, 16
- lsrs r2, 16
- adds r3, r2, 0
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _080A5332
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A5342
- b _080A5340
-_080A5332:
- cmp r0, r1
- ble _080A5348
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0
- bge _080A5340
- negs r0, r0
-_080A5340:
- negs r0, r0
-_080A5342:
- lsls r0, 16
- lsrs r0, 16
- b _080A534A
-_080A5348:
- movs r0, 0
-_080A534A:
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_80A5314
-
- thumb_func_start ma19_08073BC8
-ma19_08073BC8: @ 80A5354
- push {r4,r5,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r0, [r5]
- adds r1, r0, 0x1
- str r1, [r5]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlaySE12WithPanning
- ldr r0, [r5]
- adds r0, 0x3
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma19_08073BC8
-
- thumb_func_start ma1A_8073C00
-ma1A_8073C00: @ 80A538C
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r0, r1, 0x1
- str r0, [r4]
- movs r0, 0x1
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- lsls r0, 24
- asrs r0, 24
- bl SE12PanpotControl
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1A_8073C00
-
- thumb_func_start ma1B_8073C2C
-ma1B_8073C2C: @ 80A53B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gBattleAnimScriptPtr
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl BattleAnimGetPanControl
- mov r8, r0
- lsls r5, 24
- asrs r5, 24
- mov r0, r8
- lsls r0, 24
- asrs r0, 24
- mov r8, r0
- lsls r6, 24
- asrs r6, 24
- adds r0, r5, 0
- mov r1, r8
- adds r2, r6, 0
- bl sub_80A5314
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- mov r2, r8
- strh r2, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r5, [r1, 0x10]
- mov r0, r9
- adds r1, r5, 0
- bl PlaySE12WithPanning
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1B_8073C2C
-
- thumb_func_start c3_08073CEC
-c3_08073CEC: @ 80A5478
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xE
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080A54FC
- strh r7, [r2, 0x18]
- ldrh r6, [r2, 0x8]
- ldrh r3, [r2, 0xA]
- movs r4, 0x10
- ldrsh r0, [r2, r4]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- strh r4, [r2, 0x10]
- cmp r1, 0
- bne _080A54C0
- lsls r2, r3, 16
- b _080A54E4
- .pool
-_080A54C0:
- lsls r1, r6, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- adds r2, r0, 0
- cmp r1, r2
- bge _080A54D6
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- blt _080A54E0
- b _080A54E4
-_080A54D6:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- bgt _080A54E0
- movs r7, 0x1
-_080A54E0:
- cmp r7, 0
- beq _080A54F4
-_080A54E4:
- lsrs r4, r2, 16
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080A54F4:
- lsls r0, r4, 24
- asrs r0, 24
- bl SE12PanpotControl
-_080A54FC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c3_08073CEC
-
- thumb_func_start sub_80A5508
-sub_80A5508: @ 80A5508
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- ldr r0, =gBattleAnimScriptPtr
- mov r9, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r9
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r8, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r8
- orrs r2, r0
- mov r8, r2
- ldrb r4, [r1, 0x2]
- ldrb r5, [r1, 0x3]
- ldrb r6, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- mov r10, r1
- ldr r0, =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0xC]
- mov r0, r10
- strh r0, [r1, 0xE]
- strh r4, [r1, 0x10]
- mov r0, r8
- adds r1, r4, 0
- bl PlaySE12WithPanning
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A5508
-
- thumb_func_start sub_80A559C
-sub_80A559C: @ 80A559C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gBattleAnimScriptPtr
- mov r10, r0
- ldr r0, [r0]
- adds r1, r0, 0x1
- mov r2, r10
- str r1, [r2]
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- mov r9, r2
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- mov r8, r0
- ldrb r7, [r1, 0x5]
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl sub_80A5278
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- asrs r4, 24
- adds r0, r4, 0
- bl sub_80A5278
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- mov r0, r8
- bl sub_80A5278
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =c3_08073CEC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- lsls r6, 24
- asrs r6, 24
- strh r6, [r1, 0x8]
- lsls r5, 24
- asrs r5, 24
- strh r5, [r1, 0xA]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xC]
- strh r7, [r1, 0xE]
- strh r6, [r1, 0x10]
- mov r0, r9
- adds r1, r6, 0
- bl PlaySE12WithPanning
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r2, r10
- ldr r0, [r2]
- adds r0, 0x6
- str r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A559C
-
- thumb_func_start ma1C_8073ED0
-ma1C_8073ED0: @ 80A565C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r6, =gBattleAnimScriptPtr
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- ldrb r2, [r1, 0x4]
- mov r9, r2
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80A56E4
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r2, r8
- strh r2, [r1, 0xC]
- mov r2, r9
- strh r2, [r1, 0xE]
- mov r2, r8
- strh r2, [r1, 0x18]
- ldr r1, [r1]
- bl _call_via_r1
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x5
- str r0, [r6]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1C_8073ED0
-
- thumb_func_start sub_80A56E4
-sub_80A56E4: @ 80A56E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x18]
- adds r1, r0, 0x1
- strh r1, [r2, 0x18]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _080A5732
- movs r0, 0
- strh r0, [r2, 0x18]
- ldrh r0, [r2, 0x8]
- ldrb r1, [r2, 0xA]
- ldrh r4, [r2, 0xE]
- subs r4, 0x1
- strh r4, [r2, 0xE]
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- cmp r4, 0
- bne _080A5732
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080A5732:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A56E4
-
- thumb_func_start ma1D_08073FB4
-ma1D_08073FB4: @ 80A5740
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r6, =gBattleAnimScriptPtr
- ldr r0, [r6]
- adds r1, r0, 0x1
- str r1, [r6]
- ldrb r5, [r0, 0x1]
- ldrb r0, [r1, 0x1]
- lsls r0, 8
- orrs r5, r0
- ldrb r0, [r1, 0x3]
- mov r8, r0
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- bl BattleAnimGetPanControl
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80A57B4
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x8]
- lsls r4, 24
- asrs r4, 24
- strh r4, [r1, 0xA]
- mov r0, r8
- strh r0, [r1, 0xC]
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x4
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma1D_08073FB4
-
- thumb_func_start sub_80A57B4
-sub_80A57B4: @ 80A57B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0xC]
- subs r1, r0, 0x1
- strh r1, [r2, 0xC]
- lsls r0, 16
- cmp r0, 0
- bgt _080A57E8
- ldrh r0, [r2, 0x8]
- movs r1, 0xA
- ldrsb r1, [r2, r1]
- bl PlaySE12WithPanning
- adds r0, r4, 0
- bl DestroyTask
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_080A57E8:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A57B4
-
- thumb_func_start sub_80A57F8
-sub_80A57F8: @ 80A57F8
- push {r4-r6,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r1, [r4]
- adds r3, r1, 0x1
- str r3, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x2]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 24
- adds r6, r2, r0
- adds r0, r1, 0x5
- str r0, [r4]
- ldrb r0, [r1, 0x5]
- adds r1, 0x6
- str r1, [r4]
- cmp r0, 0
- beq _080A5842
- adds r5, r4, 0
- ldr r4, =gBattleAnimArgs
- adds r3, r0, 0
-_080A582A:
- ldr r2, [r5]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r4]
- adds r2, 0x2
- str r2, [r5]
- adds r4, 0x2
- subs r3, 0x1
- cmp r3, 0
- bne _080A582A
-_080A5842:
- adds r0, r6, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r6
- ldr r1, =gAnimSoundTaskCount
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A57F8
-
- thumb_func_start ma20_wait_for_something
-ma20_wait_for_something: @ 80A586C
- push {r4,r5,lr}
- ldr r0, =gAnimSoundTaskCount
- ldrb r5, [r0]
- cmp r5, 0
- bne _080A58B4
- bl IsSEPlaying
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080A58CC
- ldr r4, =gSoundAnimFramesToWait
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5A
- bls _080A58BA
- ldr r0, =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, =gMPlay_SE2
- bl m4aMPlayStop
- strh r5, [r4]
- b _080A58DE
- .pool
-_080A58B4:
- ldr r1, =gSoundAnimFramesToWait
- movs r0, 0
- strh r0, [r1]
-_080A58BA:
- ldr r1, =gAnimFramesToWait
- movs r0, 0x1
- strb r0, [r1]
- b _080A58DE
- .pool
-_080A58CC:
- ldr r0, =gSoundAnimFramesToWait
- movs r2, 0
- strh r1, [r0]
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, =gAnimFramesToWait
- strb r2, [r0]
-_080A58DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma20_wait_for_something
-
- thumb_func_start ma21_08074164
-ma21_08074164: @ 80A58F0
- push {r4-r6,lr}
- ldr r5, =gBattleAnimScriptPtr
- ldr r4, [r5]
- adds r3, r4, 0x1
- str r3, [r5]
- ldrb r2, [r4, 0x1]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, =gBattleAnimArgs
- lsls r2, 1
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bne _080A5938
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- adds r1, r0
- str r1, [r5]
- b _080A593E
- .pool
-_080A5938:
- adds r0, r4, 0
- adds r0, 0x8
- str r0, [r5]
-_080A593E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ma21_08074164
-
- thumb_func_start sub_80A5944
-sub_80A5944: @ 80A5944
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- beq _080A5978
- ldr r2, [r4]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- adds r1, r0
- str r1, [r4]
- b _080A597E
- .pool
-_080A5978:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
-_080A597E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5944
-
- thumb_func_start sub_80A5984
-sub_80A5984: @ 80A5984
- push {r4,lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, [r0]
- ldrb r2, [r1, 0x1]
- adds r1, 0x2
- str r1, [r0]
- cmp r2, 0
- beq _080A59A0
- ldr r0, =gAnimationBankTarget
- b _080A59A2
- .pool
-_080A59A0:
- ldr r0, =gAnimationBankAttacker
-_080A59A2:
- ldrb r0, [r0]
- bl GetBankIdentity
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A59D2
- cmp r4, 0
- beq _080A59BE
- cmp r4, 0x3
- bne _080A59D2
-_080A59BE:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl lcd_bg_operations
-_080A59D2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A5984
-
- thumb_func_start sub_80A59DC
-sub_80A59DC: @ 80A59DC
- push {lr}
- ldr r0, =gBattleAnimScriptPtr
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5A04
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl lcd_bg_operations
-_080A5A04:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A59DC
-
- thumb_func_start sub_80A5A0C
-sub_80A5A0C: @ 80A5A0C
- push {r4-r7,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- ldrb r6, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- ldr r7, =gAnimationBankAttacker
- ldrb r0, [r7]
- bl GetBankSide
- adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080A5A78
- cmp r6, 0
- beq _080A5A48
- ldrb r0, [r5]
- b _080A5A4A
- .pool
-_080A5A48:
- ldrb r0, [r7]
-_080A5A4A:
- bl GetBankIdentity
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5A78
- cmp r4, 0
- beq _080A5A64
- cmp r4, 0x3
- bne _080A5A78
-_080A5A64:
- movs r0, 0x1
- movs r1, 0x4
- movs r2, 0x1
- bl lcd_bg_operations
- movs r0, 0x2
- movs r1, 0x4
- movs r2, 0x2
- bl lcd_bg_operations
-_080A5A78:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5A0C
-
- thumb_func_start ma2B_make_side_invisible
-ma2B_make_side_invisible: @ 80A5A80
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080A5AA8
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_080A5AA8:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma2B_make_side_invisible
-
- thumb_func_start ma2C_make_side_visible
-ma2C_make_side_visible: @ 80A5ABC
- push {r4,lr}
- ldr r4, =gBattleAnimScriptPtr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080A5AE6
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_080A5AE6:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma2C_make_side_visible
-
- thumb_func_start sub_80A5AFC
-sub_80A5AFC: @ 80A5AFC
- push {r4-r7,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5BA6
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080A5BA6
- ldr r6, =gAnimationBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080A5BA6
- cmp r7, 0
- bne _080A5B54
- ldrb r0, [r6]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _080A5B60
- .pool
-_080A5B54:
- ldrb r0, [r5]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_080A5B60:
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080A5BA6
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- cmp r4, 0x2
- bne _080A5B90
- ldrb r0, [r2, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r2, 0x5]
-_080A5B90:
- cmp r4, 0x1
- bne _080A5BA0
- movs r0, 0
- bl sub_80A477C
- b _080A5BA6
- .pool
-_080A5BA0:
- movs r0, 0x1
- bl sub_80A477C
-_080A5BA6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80A5AFC
-
- thumb_func_start sub_80A5BAC
-sub_80A5BAC: @ 80A5BAC
- push {r4-r7,lr}
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- ldrb r7, [r0, 0x1]
- adds r0, 0x2
- str r0, [r1]
- bl IsContest
- lsls r0, 24
- cmp r0, 0
- bne _080A5C38
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080A5C38
- ldr r6, =gAnimationBankAttacker
- ldrb r0, [r6]
- bl GetBankSide
- adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
- ldrb r0, [r5]
- bl GetBankSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080A5C38
- cmp r7, 0
- bne _080A5C04
- ldrb r0, [r6]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- b _080A5C10
- .pool
-_080A5C04:
- ldrb r0, [r5]
- bl GetBankIdentity_permutated
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
-_080A5C10:
- bl GetAnimBankSpriteId
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080A5C38
- cmp r4, 0x2
- bne _080A5C38
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
-_080A5C38:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80A5BAC
-
- thumb_func_start ma2F_stop_music
-ma2F_stop_music: @ 80A5C44
- push {lr}
- ldr r0, =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, =gMPlay_SE2
- bl m4aMPlayStop
- ldr r1, =gBattleAnimScriptPtr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end ma2F_stop_music
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s
index ca6572e1a..9b2939673 100644
--- a/asm/battle_anim_80A9C70.s
+++ b/asm/battle_anim_80A9C70.s
@@ -26,9 +26,9 @@ sub_80A9C70: @ 80A9C70
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, =gUnknown_08524F84
+ ldr r0, =gBattleAnimPicTable + 0x440
bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_0852588C
+ ldr r0, =gBattleAnimPaletteTable + 0x440
bl LoadCompressedObjectPaletteUsingHeap
ldr r1, =gTasks
mov r2, r8
@@ -331,7 +331,7 @@ sub_80A9EF4: @ 80A9EF4
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -616,7 +616,7 @@ _080AA16C:
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080AA186:
pop {r4}
pop {r0}
@@ -829,7 +829,7 @@ _080AA322:
b _080AA330
_080AA328:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080AA352
_080AA330:
ldr r0, =gBattleAnimArgs
@@ -863,13 +863,13 @@ move_anim_start_t2: @ 80AA364
lsrs r4, 24
lsls r1, 24
lsrs r1, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
strb r4, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
strb r4, [r0]
ldr r0, =gUnknown_082C92FC
movs r2, 0
- bl move_something
+ bl DoBattleAnim
ldr r0, =task0A_80788BC
movs r1, 0xA
bl CreateTask
diff --git a/asm/battle_anim_80D51AC.s b/asm/battle_anim_80D51AC.s
index 52b599c4c..3ee1786ad 100755
--- a/asm/battle_anim_80D51AC.s
+++ b/asm/battle_anim_80D51AC.s
@@ -18,7 +18,7 @@ sub_80D51AC: @ 80D51AC
cmp r2, 0xFF
bne _080D51D0
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D520C
.pool
_080D51D0:
@@ -140,7 +140,7 @@ _080D5288:
adds r0, r6
strh r3, [r0, 0x26]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D52CA
_080D52C6:
subs r0, 0x1
@@ -204,7 +204,7 @@ _080D5326:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080D533C
@@ -216,7 +216,7 @@ _080D533C:
.pool
_080D5348:
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
_080D5350:
@@ -226,7 +226,7 @@ _080D5352:
beq _080D5368
_080D5356:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D53A6
.pool
_080D5368:
@@ -359,7 +359,7 @@ _080D5436:
adds r0, r7
strh r2, [r0, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D5478
_080D5474:
subs r0, r2, 0x1
@@ -385,7 +385,7 @@ sub_80D5484: @ 80D5484
cmp r3, 0xFF
bne _080D54A8
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D54F6
.pool
_080D54A8:
@@ -584,7 +584,7 @@ _080D55F8:
strh r0, [r2, 0x26]
_080D5630:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D563C
_080D5638:
subs r0, r2, 0x1
@@ -705,7 +705,7 @@ _080D56F6:
cmp r0, 0
bne _080D5728
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D5728:
pop {r4-r7}
pop {r0}
@@ -829,7 +829,7 @@ _080D5810:
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D5822:
pop {r4-r6}
pop {r0}
@@ -842,7 +842,7 @@ sub_80D5830: @ 80D5830
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -871,7 +871,7 @@ sub_80D5860: @ 80D5860
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -892,7 +892,7 @@ _080D5894:
strh r2, [r4, 0x2E]
strh r0, [r4, 0x32]
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -919,7 +919,7 @@ sub_80D58D4: @ 80D58D4
strh r1, [r0, 0x30]
ldr r1, =sub_80A6630
str r1, [r0, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@@ -970,7 +970,7 @@ sub_80D5944: @ 80D5944
strh r1, [r0, 0x32]
ldr r1, =sub_80A6630
str r1, [r0, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@@ -988,12 +988,12 @@ sub_80D5968: @ 80D5968
cmp r0, 0
bne _080D598C
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080D5990
.pool
_080D598C:
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080D5990:
ldrb r0, [r0]
adds r0, r1
@@ -1093,7 +1093,7 @@ _080D5A56:
strh r1, [r3, 0x26]
_080D5A58:
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _080D5A8E
.pool
_080D5A64:
@@ -1133,11 +1133,11 @@ sub_80D5A94: @ 80D5A94
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D5AB0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080D5AB2
.pool
_080D5AB0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080D5AB2:
ldrb r2, [r0]
ldr r0, =gBankSpriteIds
@@ -1192,7 +1192,7 @@ _080D5ADC:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6680
@@ -1218,11 +1218,11 @@ sub_80D5B48: @ 80D5B48
ldrsh r0, [r0, r1]
cmp r0, 0
bne _080D5B70
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080D5B72
.pool
_080D5B70:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080D5B72:
ldrb r1, [r0]
ldr r0, =gBankSpriteIds
@@ -1281,7 +1281,7 @@ _080D5B9C:
lsls r0, 16
cmp r0, 0
bne _080D5C04
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
b _080D5C0C
@@ -1318,7 +1318,7 @@ sub_80D5C20: @ 80D5C20
lsls r1, 2
adds r1, r4
strh r3, [r1, 0x26]
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -1338,7 +1338,7 @@ sub_80D5C50: @ 80D5C50
bl __divsi3
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1485,7 +1485,7 @@ _080D5D70:
cmp r0, 0
bne _080D5DA4
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D5DA4:
pop {r4,r5}
pop {r0}
@@ -1518,16 +1518,16 @@ _080D5DD8:
beq _080D5DE8
b _080D5E10
_080D5DDE:
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
b _080D5DEA
.pool
_080D5DE8:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
_080D5DEA:
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080D5E10
@@ -1540,7 +1540,7 @@ _080D5DEA:
.pool
_080D5E10:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D5E58
_080D5E18:
ldr r1, =gTasks
@@ -1549,7 +1549,7 @@ _080D5E18:
lsls r0, 3
adds r5, r0, r1
strh r2, [r5, 0x8]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1609,7 +1609,7 @@ sub_80D5E6C: @ 80D5E6C
cmp r1, r0
bls _080D5EAA
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D5EAA:
pop {r4}
pop {r0}
@@ -1622,7 +1622,7 @@ sub_80D5EB8: @ 80D5EB8
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -1660,7 +1660,7 @@ _080D5ED4:
b _080D5F18
.pool
_080D5F14:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
_080D5F18:
strh r0, [r2, 0x12]
@@ -1817,7 +1817,7 @@ _080D601E:
strh r3, [r0, 0x24]
strh r3, [r0, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D6050:
pop {r3,r4}
mov r8, r3
@@ -1923,7 +1923,7 @@ _080D6120:
adds r0, r6, 0
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D612C:
pop {r4-r6}
pop {r0}
@@ -1995,11 +1995,11 @@ _080D61B8:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080D61C8
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080D61CA
.pool
_080D61C8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080D61CA:
ldrb r0, [r0]
bl GetBankSide
@@ -2076,11 +2076,11 @@ sub_80D622C: @ 80D622C
ldrsh r0, [r4, r1]
cmp r0, 0
bne _080D6274
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080D6276
.pool
_080D6274:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080D6276:
ldrb r0, [r0]
bl GetBankSide
@@ -2201,7 +2201,7 @@ _080D6364:
bl sub_80A7344
_080D636A:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080D6382
_080D6372:
movs r0, 0
@@ -2236,7 +2236,7 @@ sub_80D6388: @ 80D6388
adds r0, r5, r7
lsls r0, 3
adds r6, r0, r4
- ldr r0, =gMovePowerMoveAnim
+ ldr r0, =gAnimMovePower
ldrh r0, [r0]
movs r1, 0xC
bl __udivsi3
@@ -2248,7 +2248,7 @@ _080D63C0:
adds r0, r5, r7
lsls r0, 3
adds r6, r0, r4
- ldr r0, =gMoveDmgMoveAnim
+ ldr r0, =gAnimMoveDmg
ldr r0, [r0]
movs r1, 0xC
bl __divsi3
@@ -2435,7 +2435,7 @@ _080D6518:
adds r0, r2
strh r4, [r0, 0x26]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080D654A:
pop {r4,r5}
pop {r0}
diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s
index 4ecdcbf68..dc927cacc 100644
--- a/asm/battle_anim_80FE840.s
+++ b/asm/battle_anim_80FE840.s
@@ -22,7 +22,7 @@ sub_80FE840: @ 80FE840
strh r0, [r4, 0x2E]
ldrh r0, [r5, 0x6]
strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -80,7 +80,7 @@ sub_80FE898: @ 80FE898
b _080FE8DA
_080FE8D4:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FE8DA:
pop {r4}
pop {r0}
@@ -96,7 +96,7 @@ sub_80FE8E0: @ 80FE8E0
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -132,7 +132,7 @@ sub_80FE930: @ 80FE930
bl StartSpriteAnim
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -147,7 +147,7 @@ sub_80FE930: @ 80FE930
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -167,7 +167,7 @@ sub_80FE988: @ 80FE988
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -212,14 +212,14 @@ _080FE9FA:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
ble _080FEA14
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
b _080FEA1E
.pool
_080FEA14:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x6
@@ -287,7 +287,7 @@ sub_80FEA58: @ 80FEA58
strh r0, [r1, 0x4]
strh r2, [r1, 0x6]
ldr r4, =gUnknown_08592210
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
adds r3, r0, 0
@@ -304,7 +304,7 @@ _080FEAB2:
cmp r0, 0xF
bne _080FEAC0
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080FEAC0:
pop {r4-r6}
pop {r0}
@@ -321,7 +321,7 @@ sub_80FEAD8: @ 80FEAD8
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x6]
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -355,7 +355,7 @@ sub_80FEB28: @ 80FEB28
cmp r0, 0
beq _080FEB3C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FEB3C:
pop {r4}
pop {r0}
@@ -374,7 +374,7 @@ sub_80FEB44: @ 80FEB44
ands r1, r0
adds r0, r5, 0
bl StartSpriteAnim
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -410,7 +410,7 @@ _080FEB94:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -454,7 +454,7 @@ sub_80FEBFC: @ 80FEBFC
cmp r0, 0
beq _080FEC12
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _080FEC42
_080FEC12:
movs r1, 0x38
@@ -494,7 +494,7 @@ sub_80FEC48: @ 80FEC48
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -508,7 +508,7 @@ _080FEC68:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -583,7 +583,7 @@ sub_80FECF0: @ 80FECF0
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -655,7 +655,7 @@ sub_80FED74: @ 80FED74
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEDC8
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -669,7 +669,7 @@ sub_80FED74: @ 80FED74
b _080FEDEC
.pool
_080FEDC8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
adds r0, 0x1
@@ -704,7 +704,7 @@ _080FEDEC:
cmp r0, r1
bne _080FEE10
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FEE10:
pop {r4}
pop {r0}
@@ -727,12 +727,12 @@ sub_80FEE1C: @ 80FEE1C
bne _080FEE3E
_080FEE36:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080FEE70
_080FEE3E:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -740,17 +740,17 @@ _080FEE3E:
movs r0, 0x2
movs r1, 0x4
movs r2, 0x3
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
b _080FEE6A
.pool
_080FEE60:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_080FEE6A:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080FEE70:
pop {r4}
pop {r0}
@@ -771,7 +771,7 @@ sub_80FEE78: @ 80FEE78
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -823,14 +823,14 @@ sub_80FEECC: @ 80FEECC
lsrs r0, 16
cmp r0, 0x7F
bhi _080FEF18
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
b _080FEF22
.pool
_080FEF18:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
@@ -847,7 +847,7 @@ _080FEF22:
.pool
_080FEF38:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FEF3E:
pop {r4}
pop {r0}
@@ -868,7 +868,7 @@ sub_80FEF44: @ 80FEF44
strh r0, [r4, 0x32]
ldrh r0, [r4, 0x22]
strh r0, [r4, 0x34]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -939,7 +939,7 @@ _080FEFE4:
b _080FEFF6
_080FEFF0:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FEFF6:
pop {r4}
pop {r0}
@@ -950,7 +950,7 @@ _080FEFF6:
sub_80FEFFC: @ 80FEFFC
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -1026,7 +1026,7 @@ _080FF08C:
sub_80FF090: @ 80FF090
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1067,7 +1067,7 @@ _080FF0DE:
cmp r0, 0x50
ble _080FF0EC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF0EC:
pop {r4}
pop {r0}
@@ -1080,7 +1080,7 @@ sub_80FF0F4: @ 80FF0F4
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1098,7 +1098,7 @@ _080FF114:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF154
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -1117,7 +1117,7 @@ _080FF114:
b _080FF174
.pool
_080FF154:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -1139,11 +1139,11 @@ _080FF174:
strh r0, [r5, 0x38]
adds r0, r5, 0
bl sub_80A68D4
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -1249,7 +1249,7 @@ _080FF256:
cmp r7, 0
beq _080FF260
adds r0, r6, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF260:
pop {r4-r7}
pop {r0}
@@ -1265,7 +1265,7 @@ sub_80FF268: @ 80FF268
lsrs r0, 24
cmp r0, 0x1
bne _080FF28A
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -1350,7 +1350,7 @@ _080FF2F8:
ldrsh r0, [r4, r1]
cmp r0, 0x7F
bgt _080FF338
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -1359,7 +1359,7 @@ _080FF2F8:
b _080FF346
.pool
_080FF338:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -1382,7 +1382,7 @@ _080FF346:
cmp r0, 0
bne _080FF36A
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF36A:
pop {r4,r5}
pop {r0}
@@ -1500,7 +1500,7 @@ _080FF424:
b _080FF452
_080FF44C:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF452:
pop {r4}
pop {r0}
@@ -1534,7 +1534,7 @@ sub_80FF458: @ 80FF458
cmp r0, 0
bge _080FF498
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080FF51C
.pool
_080FF498:
@@ -1550,7 +1550,7 @@ _080FF498:
lsls r0, 28
lsrs r0, 30
strh r0, [r6, 0x24]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
mov r9, r0
ldrb r0, [r0]
bl sub_80A8328
@@ -1639,7 +1639,7 @@ sub_80FF53C: @ 80FF53C
lsls r1, 16
asrs r1, 24
strh r1, [r5, 0x24]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1765,7 +1765,7 @@ _080FF674:
cmp r0, 0x3
bne _080FF68E
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080FF68E:
pop {r4-r7}
pop {r0}
@@ -1785,7 +1785,7 @@ sub_80FF698: @ 80FF698
beq _080FF704
b _080FF756
_080FF6AA:
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -1845,7 +1845,7 @@ _080FF704:
bl ChangeSpriteAffineAnim
movs r0, 0x19
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -1860,7 +1860,7 @@ _080FF704:
strh r0, [r5, 0x36]
ldr r0, =sub_80A70C0
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_080FF756:
@@ -1878,7 +1878,7 @@ sub_80FF768: @ 80FF768
ldrsh r0, [r5, r1]
cmp r0, 0
bne _080FF7D4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -1941,7 +1941,7 @@ sub_80FF7EC: @ 80FF7EC
push {r4-r6}
sub sp, 0x4
mov r9, r0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -1956,7 +1956,7 @@ sub_80FF7EC: @ 80FF7EC
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -2081,7 +2081,7 @@ _080FF91C:
cmp r1, r0
ble _080FF92E
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF92E:
pop {r0}
bx r0
@@ -2095,7 +2095,7 @@ sub_80FF934: @ 80FF934
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FF974
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -2144,7 +2144,7 @@ _080FF974:
cmp r1, r0
ble _080FF9AA
adds r0, r6, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FF9AA:
pop {r4-r6}
pop {r0}
@@ -2284,7 +2284,7 @@ _080FFA98:
cmp r0, 0x32
ble _080FFAAC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FFAAC:
pop {r4}
pop {r0}
@@ -2349,7 +2349,7 @@ sub_80FFB18: @ 80FFB18
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -2360,7 +2360,7 @@ sub_80FFB18: @ 80FFB18
bl sub_80A5C6C
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2442,7 +2442,7 @@ _080FFBBA:
strh r5, [r4, 0x26]
strh r5, [r4, 0x2E]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FFBEC:
pop {r4,r5}
pop {r0}
@@ -2453,7 +2453,7 @@ _080FFBEC:
sub_80FFBF4: @ 80FFBF4
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A5C6C
@@ -2537,7 +2537,7 @@ _080FFC8A:
cmp r0, 0
beq _080FFCAA
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FFCAA:
pop {r4}
pop {r0}
@@ -2551,7 +2551,7 @@ sub_80FFCB4: @ 80FFCB4
adds r5, r0, 0
movs r1, 0
bl sub_80A6980
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -2562,7 +2562,7 @@ sub_80FFCB4: @ 80FFCB4
bl sub_80A5C6C
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -2640,7 +2640,7 @@ _080FFD56:
cmp r0, 0
bne _080FFD8A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2658,7 +2658,7 @@ _080FFD8A:
str r0, [r4, 0x1C]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2915,7 +2915,7 @@ sub_80FFF7C: @ 80FFF7C
cmp r0, 0x14
ble _080FFF8E
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080FFF8E:
movs r0, 0x2E
ldrsh r1, [r4, r0]
@@ -2954,7 +2954,7 @@ sub_80FFFC0: @ 80FFFC0
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
bl sub_80A82E4
lsls r0, 24
@@ -3017,7 +3017,7 @@ _08100028:
cmp r0, 0x40
bne _08100060
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08100060:
ldr r4, =gSprites
movs r0, 0xC
@@ -3581,7 +3581,7 @@ _081004D6:
cmp r0, 0
bne _081004FC
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081004FC
_081004E6:
ldrh r0, [r6, 0xA]
@@ -3772,11 +3772,11 @@ sub_8100640: @ 8100640
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810065C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810065E
.pool
_0810065C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810065E:
ldrb r6, [r0]
adds r0, r6, 0
@@ -3857,7 +3857,7 @@ _081006E4:
strb r0, [r4, 0x5]
b _08100738
_08100700:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -4047,7 +4047,7 @@ _08100876:
cmp r1, r0
bne _0810088A
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810088A:
pop {r4-r7}
pop {r0}
@@ -4066,7 +4066,7 @@ sub_8100898: @ 8100898
cmp r0, 0
bne _081008B4
adds r0, r6, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810098E
.pool
_081008B4:
@@ -4074,11 +4074,11 @@ _081008B4:
ldrsh r0, [r1, r3]
cmp r0, 0
bne _081008C4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _081008C6
.pool
_081008C4:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_081008C6:
ldrb r0, [r4]
movs r1, 0x2
@@ -4227,7 +4227,7 @@ sub_81009DC: @ 81009DC
cmp r0, 0
beq _081009F2
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081009F2:
pop {r0}
bx r0
@@ -4237,7 +4237,7 @@ _081009F2:
sub_81009F8: @ 81009F8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4264,7 +4264,7 @@ _08100A2C:
strh r0, [r4, 0x22]
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -4277,7 +4277,7 @@ _08100A2C:
sub_8100A50: @ 8100A50
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4343,7 +4343,7 @@ sub_8100A94: @ 8100A94
sub_8100AE0: @ 8100AE0
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -4439,7 +4439,7 @@ sub_8100B88: @ 8100B88
b _08100C24
.pool
_08100BA8:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
@@ -4453,7 +4453,7 @@ _08100BA8:
b _08100C34
.pool
_08100BC8:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -4469,7 +4469,7 @@ _08100BC8:
mov r8, r2
mov r1, r8
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08100C3E
@@ -4494,7 +4494,7 @@ _08100BC8:
b _08100C3E
.pool
_08100C24:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -4509,7 +4509,7 @@ _08100C34:
_08100C3E:
strh r7, [r6, 0x20]
strh r4, [r6, 0x22]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4619,7 +4619,7 @@ _08100CF2:
asrs r0, 16
cmp r0, 0x14
bne _08100D28
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
movs r0, 0x3
@@ -4739,7 +4739,7 @@ _08100DE0:
adds r0, r4
bl DestroySprite
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08100E10:
pop {r4,r5}
pop {r0}
@@ -4754,7 +4754,7 @@ sub_8100E1C: @ 8100E1C
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4846,7 +4846,7 @@ _08100EB2:
cmp r0, r1
bne _08100EE8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08100EE8:
pop {r4}
pop {r0}
@@ -4866,7 +4866,7 @@ sub_8100EF0: @ 8100EF0
adds r0, 0x8
strh r0, [r1, 0x2]
_08100F06:
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r1, 0
bl sub_80A60AC
@@ -5090,7 +5090,7 @@ _081010C2:
sub_81010CC: @ 81010CC
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -5309,7 +5309,7 @@ _0810127A:
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08101290:
pop {r4}
pop {r0}
@@ -5406,7 +5406,7 @@ _08101320:
strh r0, [r4, 0x30]
ldrh r0, [r5, 0x8]
strh r0, [r4, 0x32]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
@@ -5426,11 +5426,11 @@ sub_810135C: @ 810135C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08101378
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810137A
.pool
_08101378:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810137A:
ldrb r6, [r0]
bl IsDoubleBattle
@@ -5440,7 +5440,7 @@ _0810137A:
movs r1, 0x2
adds r0, r6, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081013C4
@@ -5507,7 +5507,7 @@ _08101414:
strh r0, [r5, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r5, 0x32]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
@@ -5523,7 +5523,7 @@ sub_8101440: @ 8101440
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5599,7 +5599,7 @@ _081014D8:
cmp r0, 0
beq _081014EC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081014EC:
pop {r4}
pop {r0}
@@ -5611,7 +5611,7 @@ sub_81014F4: @ 81014F4
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5778,7 +5778,7 @@ _08101604:
adds r0, r1
strh r0, [r5, 0x38]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -5885,7 +5885,7 @@ _08101718:
strh r1, [r5, 0x24]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -5975,7 +5975,7 @@ _081017A4:
movs r2, 0x4
bl LoadPalette
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -6052,7 +6052,7 @@ _0810187C:
cmp r0, 0x8
bne _08101890
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08101890:
pop {r4}
pop {r0}
@@ -6199,7 +6199,7 @@ sub_8101998: @ 8101998
adds r4, r0, 0
movs r0, 0x6
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6238,7 +6238,7 @@ sub_81019E8: @ 81019E8
cmp r6, 0
bne _08101A24
ldr r1, =gBankSpriteIds
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6301,7 +6301,7 @@ sub_8101A74: @ 8101A74
adds r4, r0, 0
movs r0, 0x4
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -6361,7 +6361,7 @@ sub_8101AE8: @ 8101AE8
cmp r0, 0
bne _08101B38
ldr r1, =gBankSpriteIds
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
@@ -6431,7 +6431,7 @@ _08101B78:
thumb_func_start sub_8101B84
sub_8101B84: @ 8101B84
push {lr}
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r0}
bx r0
thumb_func_end sub_8101B84
@@ -6466,7 +6466,7 @@ _08101BB6:
_08101BBC:
strh r5, [r4, 0x30]
ldr r1, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6558,7 +6558,7 @@ _08101C4C:
lsrs r0, 24
bl sub_80A7344
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08101C8E:
pop {r4,r5}
pop {r0}
@@ -6576,7 +6576,7 @@ sub_8101C94: @ 8101C94
lsls r0, 3
adds r5, r0, r1
ldr r1, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -6596,7 +6596,7 @@ sub_8101C94: @ 8101C94
cmp r1, 0x1
beq _08101D04
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08101D22
.pool
_08101CE8:
@@ -6864,7 +6864,7 @@ _08101ED4:
.pool
_08101EE0:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08101EE6:
pop {r4}
pop {r0}
@@ -6906,7 +6906,7 @@ _08101F2C:
ldrb r0, [r4, 0x8]
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08101F38:
pop {r4,r5}
pop {r0}
@@ -6922,11 +6922,11 @@ sub_8101F40: @ 8101F40
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08101F5C
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _08101F5E
.pool
_08101F5C:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_08101F5E:
ldrb r0, [r4]
movs r1, 0x2
@@ -6962,7 +6962,7 @@ _08101F5E:
sub_8101FA8: @ 8101FA8
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -6992,7 +6992,7 @@ sub_8101FA8: @ 8101FA8
sub_8101FF0: @ 8101FF0
push {r4-r6,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -7100,7 +7100,7 @@ sub_810208C: @ 810208C
cmp r0, 0x8
ble _081020D4
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081020D4:
pop {r0}
bx r0
@@ -7115,11 +7115,11 @@ sub_81020D8: @ 81020D8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081020F4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _081020F6
.pool
_081020F4:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_081020F6:
ldrb r0, [r4]
movs r1, 0
@@ -7181,7 +7181,7 @@ _0810215C:
cmp r0, 0
beq _08102178
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08102178:
pop {r0}
bx r0
@@ -7191,7 +7191,7 @@ _08102178:
sub_810217C: @ 810217C
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -7213,7 +7213,7 @@ sub_810217C: @ 810217C
strh r5, [r4, 0x34]
strh r5, [r4, 0x36]
subs r0, 0x42
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x38]
@@ -7301,7 +7301,7 @@ _08102238:
cmp r0, 0
beq _08102262
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08102262:
pop {r4}
pop {r0}
@@ -7316,7 +7316,7 @@ sub_8102268: @ 8102268
ldrsh r0, [r6, r1]
cmp r0, 0
bne _081022B2
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -7352,7 +7352,7 @@ _081022B2:
cmp r1, r0
bne _081022C2
adds r0, r6, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081022C2:
pop {r4-r6}
pop {r0}
@@ -7383,7 +7383,7 @@ _08102300:
cmp r0, 0x2
bne _0810230C
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08102344
_0810230C:
ldrh r0, [r4, 0x8]
@@ -7465,7 +7465,7 @@ _08102390:
strb r0, [r2]
movs r0, 0x1E
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -7480,7 +7480,7 @@ _08102390:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_081023CC:
@@ -7525,7 +7525,7 @@ sub_81023E0: @ 81023E0
cmp r0, 0x10
bne _08102428
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08102428:
pop {r4,r5}
pop {r0}
@@ -7582,7 +7582,7 @@ _08102482:
bcc _08102448
_08102490:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
@@ -7610,7 +7610,7 @@ _081024C2:
cmp r4, r0
bcc _081024B2
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -7663,7 +7663,7 @@ sub_8102528: @ 8102528
cmp r0, 0
beq _0810253A
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810253A:
pop {r0}
bx r0
@@ -7673,7 +7673,7 @@ _0810253A:
sub_8102540: @ 8102540
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x2
bl sub_80A5C6C
@@ -7729,7 +7729,7 @@ _081025AE:
cmp r0, 0
beq _081025BC
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081025BC:
pop {r0}
bx r0
@@ -8034,7 +8034,7 @@ _08102820:
cmp r0, 0
bne _08102832
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08102832:
add sp, 0x4
pop {r3}
@@ -8068,7 +8068,7 @@ _08102862:
strh r0, [r5, 0x2E]
ldrh r0, [r6, 0x4]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -8113,7 +8113,7 @@ _08102862:
b _081028FA
.pool
_081028D4:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -8216,7 +8216,7 @@ _081029A2:
cmp r0, 0
bne _081029B0
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081029B0:
pop {r0}
bx r0
@@ -8333,9 +8333,9 @@ _08102A88:
_08102A9A:
ldr r0, =sub_8102AE0
str r0, [r6]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8374,9 +8374,9 @@ sub_8102AE0: @ 8102AE0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08102B32
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -8396,7 +8396,7 @@ _08102B26:
ldr r0, =0x00002771
bl FreeSpritePaletteByTag
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08102B32:
pop {r4}
pop {r0}
@@ -8481,7 +8481,7 @@ _08102BC2:
sub_8102BCC: @ 8102BCC
push {r4,lr}
adds r4, r0, 0
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
@@ -8575,7 +8575,7 @@ _08102C7A:
cmp r4, 0x3
bls _08102C32
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r3,r4}
mov r8, r3
mov r9, r4
@@ -8605,7 +8605,7 @@ _08102CAA:
cmp r4, 0x3
bls _08102CAA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -8657,7 +8657,7 @@ _08102D10:
b _08102D4E
.pool
_08102D34:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -8855,7 +8855,7 @@ _08102EA6:
sub_8102EB0: @ 8102EB0
push {r4-r7,lr}
adds r6, r0, 0
- ldr r7, =gAnimationBankAttacker
+ ldr r7, =gAnimBankAttacker
ldrb r0, [r7]
bl GetBankSide
lsls r0, 24
@@ -9002,7 +9002,7 @@ sub_8102FB8: @ 8102FB8
_08102FDC:
ldr r6, =0x0000fff0
_08102FDE:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -9021,7 +9021,7 @@ _08102FDE:
strh r0, [r5, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
@@ -9135,7 +9135,7 @@ _081030DC:
b _08103106
_08103100:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08103106:
pop {r4}
pop {r0}
@@ -9197,11 +9197,11 @@ sub_8103164: @ 8103164
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103180
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08103182
.pool
_08103180:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08103182:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9242,7 +9242,7 @@ sub_81031D0: @ 81031D0
lsls r0, 16
cmp r0, 0
bne _081031F8
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldrh r1, [r4, 0x30]
@@ -9268,11 +9268,11 @@ sub_8103208: @ 8103208
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08103224
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08103226
.pool
_08103224:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08103226:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9325,11 +9325,11 @@ sub_8103284: @ 8103284
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081032A0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _081032A2
.pool
_081032A0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_081032A2:
ldrb r5, [r0]
adds r0, r5, 0
@@ -9463,11 +9463,11 @@ sub_8103390: @ 8103390
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081033AC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _081033AE
.pool
_081033AC:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_081033AE:
ldrb r4, [r0]
adds r0, r4, 0
@@ -9541,7 +9541,7 @@ sub_810342C: @ 810342C
cmp r0, 0x5
ble _08103444
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08103444:
pop {r0}
bx r0
@@ -9591,11 +9591,11 @@ sub_8103498: @ 8103498
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081034B4
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _081034B6
.pool
_081034B4:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_081034B6:
ldrb r0, [r0]
adds r1, r4, 0
@@ -9664,7 +9664,7 @@ _08103524:
cmp r0, 0x40
bne _08103538
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08103538:
pop {r0}
bx r0
@@ -9716,7 +9716,7 @@ _0810357A:
sub_810358C: @ 810358C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -9730,7 +9730,7 @@ sub_810358C: @ 810358C
lsrs r0, 24
strh r0, [r5, 0x22]
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -9830,7 +9830,7 @@ sub_8103680: @ 8103680
cmp r0, 0
bne _08103696
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810369A
_08103696:
subs r0, r2, 0x1
@@ -9847,7 +9847,7 @@ sub_81036A0: @ 81036A0
lsls r4, 24
lsrs r4, 24
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
@@ -9872,7 +9872,7 @@ sub_81036DC: @ 81036DC
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r1, r0, r1
ldrb r4, [r1]
@@ -9974,7 +9974,7 @@ _081037AA:
adds r0, r4, 0
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081037D0
.pool
_081037CC:
@@ -9992,7 +9992,7 @@ sub_81037D8: @ 81037D8
push {r4,r5,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10018,7 +10018,7 @@ _08103810:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10054,7 +10054,7 @@ _0810384C:
_08103860:
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -10092,7 +10092,7 @@ sub_81038A0: @ 81038A0
strh r1, [r0, 0x36]
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@@ -10117,7 +10117,7 @@ sub_81038C8: @ 81038C8
b _0810390E
.pool
_081038EC:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -10137,7 +10137,7 @@ _0810390E:
adds r0, r5, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -10201,7 +10201,7 @@ _08103980:
strh r7, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
@@ -10507,7 +10507,7 @@ sub_8103BE4: @ 8103BE4
cmp r0, 0
bne _08103C02
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08103C02:
pop {r0}
bx r0
@@ -10604,7 +10604,7 @@ _08103C90:
strh r0, [r4, 0xA]
movs r0, 0x3F
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10676,8 +10676,8 @@ _08103D54:
strh r0, [r3, 0x4]
b _08103DB6
_08103D5C:
- ldr r1, =gBanksBySide
- ldr r0, =gAnimationBankTarget
+ ldr r1, =gBanksByIdentity
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -10716,7 +10716,7 @@ _08103DB0:
_08103DB4:
strh r0, [r2, 0x4]
_08103DB6:
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -10742,11 +10742,11 @@ _08103DB6:
ands r0, r1
cmp r0, 0
beq _08103E20
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08103E20
@@ -10759,7 +10759,7 @@ _08103DB6:
.pool
_08103E20:
mov r5, sp
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -10897,7 +10897,7 @@ _08103F28:
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -10914,7 +10914,7 @@ _08103F78:
asrs r0, 16
cmp r0, 0x3F
ble _08103FA0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -10927,7 +10927,7 @@ _08103F78:
b _08103FB0
.pool
_08103FA0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -11035,7 +11035,7 @@ _08104050:
cmp r0, 0x18
bne _0810407C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810407C:
pop {r4-r7}
pop {r0}
@@ -11050,7 +11050,7 @@ sub_8104088: @ 8104088
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -11066,7 +11066,7 @@ sub_8104088: @ 8104088
adds r0, r1
lsls r0, 16
lsrs r7, r0, 16
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11112,7 +11112,7 @@ _081040CC:
strh r7, [r5, 0x36]
ldr r0, =sub_80A7000
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
@@ -11145,7 +11145,7 @@ sub_8104154: @ 8104154
lsls r0, 16
asrs r0, 24
strh r0, [r4, 0x24]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11184,7 +11184,7 @@ _08104178:
cmp r0, 0x2
bne _081041B8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081041B8:
pop {r4}
pop {r0}
@@ -11200,7 +11200,7 @@ sub_81041C4: @ 81041C4
bl sub_80A69CC
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -11235,7 +11235,7 @@ sub_810421C: @ 810421C
push {r4,lr}
adds r4, r0, 0
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -11339,7 +11339,7 @@ _081042BE:
cmp r0, 0x1
bne _081042FE
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081042FE:
pop {r4}
pop {r0}
@@ -11352,7 +11352,7 @@ sub_8104304: @ 8104304
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11375,7 +11375,7 @@ _08104322:
strh r0, [r4, 0x36]
ldr r0, =sub_80A62EC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, [r4, 0x1C]
@@ -11423,7 +11423,7 @@ _08104390:
strh r0, [r5, 0x22]
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -11462,7 +11462,7 @@ sub_81043F8: @ 81043F8
cmp r0, 0
beq _0810440E
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810440E:
pop {r0}
bx r0
@@ -11510,7 +11510,7 @@ _08104448:
movs r0, 0x6
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -11664,7 +11664,7 @@ sub_8104594: @ 8104594
cmp r0, 0
beq _081045A8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081045A8:
pop {r4}
pop {r0}
@@ -11752,7 +11752,7 @@ sub_8104614: @ 8104614
movs r1, 0x1
bl sub_80A750C
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08104664:
pop {r4,r5}
pop {r0}
@@ -11786,7 +11786,7 @@ sub_8104674: @ 8104674
strh r0, [r4, 0x10]
strh r5, [r4, 0x12]
strh r5, [r4, 0x14]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -11946,7 +11946,7 @@ _081047D8:
movs r1, 0
strh r1, [r0, 0x26]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081047F6:
pop {r4,r5}
pop {r0}
@@ -12124,7 +12124,7 @@ sub_8104938: @ 8104938
cmp r0, 0
bne _08104964
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0810498A
.pool
_08104964:
@@ -12276,7 +12276,7 @@ _08104A64:
adds r0, r2
strh r5, [r0, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08104AA8
.pool
_08104A9C:
@@ -12333,7 +12333,7 @@ sub_8104AF0: @ 8104AF0
cmp r0, 0
bne _08104B10
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08104B10:
pop {r4}
pop {r0}
@@ -12345,7 +12345,7 @@ _08104B10:
sub_8104B1C: @ 8104B1C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -12378,7 +12378,7 @@ _08104B50:
ldr r0, =0x0000ffc0
_08104B6A:
strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -12391,7 +12391,7 @@ _08104B6A:
strh r1, [r4, 0x32]
strh r1, [r4, 0x34]
strh r1, [r4, 0x36]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A656C
@@ -12411,11 +12411,11 @@ sub_8104BAC: @ 8104BAC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08104BC8
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08104BCA
.pool
_08104BC8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08104BCA:
ldrb r5, [r0]
adds r0, r5, 0
@@ -12509,7 +12509,7 @@ sub_8104C78: @ 8104C78
cmp r0, 0
bne _08104C98
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08104C98:
pop {r4}
pop {r0}
@@ -12559,7 +12559,7 @@ sub_8104CA4: @ 8104CA4
strh r2, [r4, 0x18]
movs r0, 0x2
strh r0, [r4, 0x1A]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12741,7 +12741,7 @@ _08104E48:
strh r1, [r0, 0x22]
_08104E66:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08104E6C:
pop {r4,r5}
pop {r0}
@@ -12759,7 +12759,7 @@ sub_8104E74: @ 8104E74
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
bl sub_80A6190
lsls r0, 24
@@ -12777,7 +12777,7 @@ sub_8104E74: @ 8104E74
bl sub_80A861C
strh r0, [r5, 0x26]
ldrb r0, [r4]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -12947,7 +12947,7 @@ _08104FF0:
movs r0, 0x3
strb r0, [r1, 0x15]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810500E:
pop {r4}
pop {r0}
@@ -12959,7 +12959,7 @@ _0810500E:
sub_810501C: @ 810501C
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_80A5C6C
@@ -12986,7 +12986,7 @@ sub_810501C: @ 810501C
adds r0, 0x2
strh r0, [r4, 0x38]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x3A]
@@ -13169,7 +13169,7 @@ _0810519A:
ands r0, r1
strb r0, [r2]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081051BC:
pop {r4}
pop {r0}
@@ -13194,11 +13194,11 @@ sub_81051C4: @ 81051C4
adds r1, r0, 0
cmp r2, 0
bne _081051F0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _081051F2
.pool
_081051F0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_081051F2:
ldrb r5, [r0]
ldrb r1, [r1, 0x6]
@@ -13212,7 +13212,7 @@ _081051F2:
movs r1, 0x2
adds r0, r5, 0
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810526A
@@ -13278,7 +13278,7 @@ sub_8105284: @ 8105284
adds r0, r4, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810529E:
pop {r4}
pop {r0}
@@ -13305,15 +13305,15 @@ sub_81052A4: @ 81052A4
ldrsh r0, [r0, r2]
cmp r0, 0
bne _081052DC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r7, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
b _081052E2
.pool
_081052DC:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r7, [r0]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
_081052E2:
ldrb r0, [r0]
mov r8, r0
@@ -13354,7 +13354,7 @@ _08105310:
mov r4, r8
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810535C
@@ -13389,7 +13389,7 @@ _0810536C:
adds r4, r7, 0
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081053E4
@@ -13457,7 +13457,7 @@ _081053FA:
movs r1, 0x2
mov r0, r8
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810544C
@@ -13581,7 +13581,7 @@ sub_8105538: @ 8105538
adds r4, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -13622,7 +13622,7 @@ sub_810557C: @ 810557C
strh r0, [r4, 0x24]
subs r2, 0x20
strh r2, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -13836,7 +13836,7 @@ sub_810571C: @ 810571C
b _08105752
.pool
_08105750:
- ldr r0, =move_anim_8072740
+ ldr r0, =DestroyAnimSprite
_08105752:
str r0, [r3, 0x1C]
_08105754:
@@ -13856,7 +13856,7 @@ sub_810575C: @ 810575C
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -13925,7 +13925,7 @@ sub_81057B8: @ 81057B8
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08105802:
pop {r4,r5}
pop {r0}
@@ -13950,7 +13950,7 @@ sub_8105810: @ 8105810
strh r0, [r4, 0xE]
movs r0, 0x3
strh r0, [r4, 0x20]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -14124,7 +14124,7 @@ _08105962:
cmp r0, 0
bne _08105992
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08105992:
pop {r4,r5}
pop {r0}
@@ -14263,7 +14263,7 @@ _08105A88:
ands r1, r2
strb r1, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08105AA6:
pop {r4-r6}
pop {r0}
@@ -14292,7 +14292,7 @@ sub_8105AAC: @ 8105AAC
strh r0, [r4, 0x16]
strh r0, [r4, 0x18]
strh r0, [r4, 0x22]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -14469,7 +14469,7 @@ _08105C34:
cmp r0, 0
bne _08105C42
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08105C42:
pop {r4-r6}
pop {r0}
@@ -14603,7 +14603,7 @@ _08105D00:
movs r1, 0
str r1, [r0]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -14626,7 +14626,7 @@ _08105D6A:
cmp r4, 0
bge _08105D6A
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -14684,7 +14684,7 @@ sub_8105DE8: @ 8105DE8
adds r5, r0, 0
movs r1, 0
bl sub_80A69CC
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -14716,7 +14716,7 @@ _08105E08:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
@@ -14765,7 +14765,7 @@ _08105E7A:
cmp r0, 0x3C
bne _08105EAA
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08105EAA:
pop {r4}
pop {r0}
@@ -14923,7 +14923,7 @@ _08105FD8:
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810600C:
add sp, 0xC
pop {r4,r5}
@@ -14989,7 +14989,7 @@ _0810607C:
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081060A4:
pop {r4-r6}
pop {r0}
@@ -15054,7 +15054,7 @@ _0810610C:
strh r0, [r4, 0x24]
strh r0, [r4, 0x26]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08106134:
pop {r4-r6}
pop {r0}
@@ -15072,7 +15072,7 @@ sub_8106140: @ 8106140
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -15120,7 +15120,7 @@ sub_810618C: @ 810618C
b _081061BC
_081061B6:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081061BC:
pop {r4}
pop {r0}
@@ -15190,7 +15190,7 @@ _08106236:
cmp r0, 0x78
ble _08106244
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106244:
pop {r4}
pop {r0}
@@ -15268,7 +15268,7 @@ sub_810627C: @ 810627C
cmp r5, 0x40
bgt _081062E2
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081062E2:
pop {r4,r5}
pop {r0}
@@ -15291,11 +15291,11 @@ sub_81062E8: @ 81062E8
movs r0, 0x1
movs r1, 0x4
movs r2, 0x3
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -15303,7 +15303,7 @@ sub_81062E8: @ 81062E8
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810632A:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -15489,7 +15489,7 @@ _081064BC:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_081064D0:
movs r0, 0x50
movs r1, 0
@@ -15500,9 +15500,9 @@ _081064D0:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081064F0:
add sp, 0x10
pop {r4,r5}
@@ -15526,11 +15526,11 @@ sub_81064F8: @ 81064F8
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -15538,7 +15538,7 @@ sub_81064F8: @ 81064F8
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810653A:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -15561,7 +15561,7 @@ _0810653A:
b _0810658A
.pool
_08106578:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -15747,7 +15747,7 @@ _081066FC:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08106710:
movs r0, 0x50
movs r1, 0
@@ -15758,9 +15758,9 @@ _08106710:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08106730:
add sp, 0x10
pop {r4,r5}
@@ -15773,7 +15773,7 @@ _08106730:
sub_810673C: @ 810673C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -15912,7 +15912,7 @@ _08106858:
cmp r1, r0
bne _08106868
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106868:
pop {r4}
pop {r0}
@@ -15924,7 +15924,7 @@ _08106868:
sub_8106878: @ 8106878
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -15991,7 +15991,7 @@ sub_81068CC: @ 81068CC
bge _08106910
_0810690A:
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106910:
pop {r0}
bx r0
@@ -16019,7 +16019,7 @@ sub_8106914: @ 8106914
cmp r0, r1
blt _08106940
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106940:
pop {r0}
bx r0
@@ -16029,7 +16029,7 @@ _08106940:
sub_8106944: @ 8106944
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -16074,7 +16074,7 @@ sub_810699C: @ 810699C
cmp r0, 0
beq _081069B2
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081069B2:
pop {r0}
bx r0
@@ -16164,7 +16164,7 @@ _08106A50:
cmp r2, 0x64
ble _08106A5A
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106A5A:
pop {r4,r5}
pop {r0}
@@ -16222,7 +16222,7 @@ _08106ABA:
cmp r0, 0x1E
ble _08106AC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106AC8:
pop {r4}
pop {r0}
@@ -16314,7 +16314,7 @@ sub_8106B54: @ 8106B54
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -16439,7 +16439,7 @@ _08106C6A:
cmp r0, 0x5A
ble _08106C78
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106C78:
pop {r4}
pop {r0}
@@ -16480,7 +16480,7 @@ _08106CB4:
cmp r0, 0
beq _08106CC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106CC8:
pop {r4}
pop {r0}
@@ -16497,7 +16497,7 @@ sub_8106CD0: @ 8106CD0
cmp r0, 0
bne _08106CEC
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _08106D50
.pool
_08106CEC:
@@ -16505,11 +16505,11 @@ _08106CEC:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08106CFC
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _08106CFE
.pool
_08106CFC:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_08106CFE:
ldrb r0, [r4]
movs r1, 0x2
@@ -16579,7 +16579,7 @@ sub_8106D5C: @ 8106D5C
b _08106D8C
_08106D86:
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106D8C:
pop {r0}
bx r0
@@ -16628,7 +16628,7 @@ sub_8106DD4: @ 8106DD4
cmp r0, 0
bne _08106DF4
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08106DF4:
pop {r4}
pop {r0}
@@ -16645,11 +16645,11 @@ sub_8106E00: @ 8106E00
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08106E1C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08106E1E
.pool
_08106E1C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08106E1E:
ldrb r6, [r0]
adds r0, r6, 0
@@ -16754,7 +16754,7 @@ sub_8106EC8: @ 8106EC8
cmp r0, 0x10
ble _08106EFC
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106EFC:
pop {r0}
bx r0
@@ -16803,7 +16803,7 @@ _08106F40:
cmp r1, r0
bne _08106F54
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08106F54:
pop {r4}
pop {r0}
@@ -16968,14 +16968,14 @@ _08107066:
orrs r0, r1
strb r0, [r3]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08107098:
movs r1, 0x36
ldrsh r0, [r4, r1]
cmp r0, 0x4
bne _081070A6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081070A6:
pop {r4}
pop {r0}
@@ -16992,11 +16992,11 @@ sub_81070AC: @ 81070AC
ands r0, r1
cmp r0, 0
beq _081070F8
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081070F8
@@ -17016,7 +17016,7 @@ sub_81070AC: @ 81070AC
b _08107118
.pool
_081070F8:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -17040,7 +17040,7 @@ _08107118:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -17055,13 +17055,13 @@ sub_8107144: @ 8107144
lsls r0, 24
lsrs r0, 24
ldr r3, =gBattleAnimArgs
- ldr r1, =gDisableStructMoveAnim
+ ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r2, [r1, 0x10]
movs r1, 0x1
ands r1, r2
strh r1, [r3, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -17073,11 +17073,11 @@ update_fury_cutter_counter_copy: @ 8107168
lsls r0, 24
lsrs r0, 24
ldr r2, =gBattleAnimArgs
- ldr r1, =gDisableStructMoveAnim
+ ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r1, [r1, 0x10]
strh r1, [r2, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -17144,7 +17144,7 @@ _081071F8:
cmp r1, r0
bne _0810720A
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810720A:
pop {r4-r6}
pop {r0}
@@ -17196,7 +17196,7 @@ _0810725A:
sub_8107260: @ 8107260
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -17237,7 +17237,7 @@ _081072A2:
movs r1, 0x40
orrs r0, r1
strb r0, [r2]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -17253,7 +17253,7 @@ _081072D8:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -17422,7 +17422,7 @@ sub_810744C: @ 810744C
adds r5, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -17445,7 +17445,7 @@ _08107482:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -17507,7 +17507,7 @@ _08107506:
cmp r0, 0
beq _08107518
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08107518:
pop {r4}
pop {r0}
@@ -17603,7 +17603,7 @@ _081075BE:
cmp r1, r0
bne _081075DE
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081075DE:
pop {r4-r7}
pop {r0}
@@ -17621,7 +17621,7 @@ sub_81075EC: @ 81075EC
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -17683,7 +17683,7 @@ sub_8107674: @ 8107674
cmp r0, 0
beq _08107688
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08107688:
ldrh r0, [r4, 0x3A]
lsls r0, 16
@@ -17762,7 +17762,7 @@ sub_81076F4: @ 81076F4
cmp r1, 0
bne _08107722
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08107722:
pop {r0}
bx r0
@@ -17773,7 +17773,7 @@ _08107722:
sub_8107730: @ 8107730
push {r4-r7,lr}
adds r4, r0, 0
- ldr r7, =gAnimationBankAttacker
+ ldr r7, =gAnimBankAttacker
ldrb r0, [r7]
movs r1, 0
bl sub_80A5C6C
@@ -17836,7 +17836,7 @@ sub_81077A4: @ 81077A4
cmp r0, 0
beq _081077BA
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081077BA:
pop {r0}
bx r0
@@ -17846,11 +17846,11 @@ _081077BA:
sub_81077C0: @ 81077C0
push {r4-r7,lr}
adds r6, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -17898,7 +17898,7 @@ _0810781E:
_08107828:
adds r0, r6, 0
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -17910,7 +17910,7 @@ _08107828:
_08107842:
ldrh r0, [r5, 0x8]
strh r0, [r6, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -17929,7 +17929,7 @@ _08107842:
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r7}
@@ -17956,7 +17956,7 @@ sub_8107894: @ 8107894
strh r1, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -18026,7 +18026,7 @@ sub_810790C: @ 810790C
cmp r0, r1
bne _0810794C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810794C:
pop {r4}
pop {r0}
@@ -18054,11 +18054,11 @@ sub_8107954: @ 8107954
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
mov r0, sp
bl sub_80A6B30
bl IsContest
@@ -18068,8 +18068,8 @@ sub_8107954: @ 8107954
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
- ldr r0, =gAnimationBankAttacker
+ bl SetAnimBgAttribute
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18174,7 +18174,7 @@ _08107A32:
b _08107B0E
.pool
_08107AB4:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -18454,7 +18454,7 @@ _08107D08:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08107D1C:
movs r0, 0
strh r0, [r7]
@@ -18475,7 +18475,7 @@ _08107D1C:
ldr r1, =0x0000ffff
strh r1, [r0, 0x26]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08107D4A:
pop {r3}
mov r8, r3
@@ -18945,7 +18945,7 @@ _081080C0:
cmp r0, 0x15
bne _081080DE
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081080DE:
pop {r4}
pop {r0}
@@ -19267,7 +19267,7 @@ _0810836C:
cmp r0, 0
bne _0810837A
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810837A:
add sp, 0xC
pop {r4-r6}
@@ -19278,7 +19278,7 @@ _0810837A:
thumb_func_start sub_8108384
sub_8108384: @ 8108384
push {r4,r5,lr}
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -19350,7 +19350,7 @@ sub_8108408: @ 8108408
lsls r1, 24
lsrs r1, 24
str r1, [sp]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -19576,7 +19576,7 @@ sub_81085C8: @ 81085C8
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0xA]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -19721,7 +19721,7 @@ _08108704:
cmp r0, 0
bne _08108712
adds r0, r1, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08108712:
pop {r3}
mov r8, r3
@@ -19956,7 +19956,7 @@ sub_81088E4: @ 81088E4
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -20171,7 +20171,7 @@ _08108AAA:
b _08108AB8
_08108AB2:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08108AB8:
pop {r4}
pop {r0}
@@ -20371,7 +20371,7 @@ sub_8108C08: @ 8108C08
cmp r0, 0
bne _08108C4C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08108C4C:
pop {r4}
pop {r0}
@@ -20418,7 +20418,7 @@ sub_8108C94: @ 8108C94
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -20495,7 +20495,7 @@ _08108D34:
cmp r1, r0
bne _08108D46
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08108D46:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
@@ -20593,7 +20593,7 @@ _08108DE2:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -20648,7 +20648,7 @@ _08108E58:
strh r0, [r4, 0x2E]
mov r0, r9
strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
@@ -20698,7 +20698,7 @@ sub_8108EC8: @ 8108EC8
movs r0, 0xFE
lsls r0, 8
strh r0, [r4, 0x36]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
@@ -20732,7 +20732,7 @@ sub_8108F08: @ 8108F08
strh r0, [r4, 0x32]
ldr r0, =sub_80A656C
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -20746,7 +20746,7 @@ sub_8108F4C: @ 8108F4C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -20798,7 +20798,7 @@ _08108F9E:
sub_8108FBC: @ 8108FBC
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -20886,7 +20886,7 @@ sub_8109064: @ 8109064
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21026,7 +21026,7 @@ sub_810916C: @ 810916C
strh r1, [r0, 0x36]
ldr r1, =sub_80A6EEC
str r1, [r0, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@@ -21037,11 +21037,11 @@ sub_810916C: @ 810916C
sub_8109198: @ 8109198
push {r4-r6,lr}
adds r6, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -21128,7 +21128,7 @@ sub_8109244: @ 8109244
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -21164,7 +21164,7 @@ sub_810929C: @ 810929C
beq _081092E4
movs r4, 0
strh r4, [r6, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -21224,7 +21224,7 @@ sub_8109314: @ 8109314
cmp r0, 0x1F
bne _08109330
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08109330:
pop {r4}
pop {r0}
@@ -21274,7 +21274,7 @@ sub_8109364: @ 8109364
strh r0, [r4, 0x30]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x32]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A653C
@@ -21371,7 +21371,7 @@ sub_810940C: @ 810940C
cmp r0, r1
bne _08109458
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08109458:
pop {r4}
pop {r0}
@@ -21407,7 +21407,7 @@ sub_8109460: @ 8109460
adds r0, r2
ldrh r0, [r0, 0x22]
strh r0, [r4, 0x10]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21785,7 +21785,7 @@ _0810979C:
cmp r0, 0
bne _081097AA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081097AA:
add sp, 0xC
pop {r4,r5}
@@ -21820,7 +21820,7 @@ sub_81097B4: @ 81097B4
lsls r0, 2
adds r0, r1
ldrh r4, [r0, 0x20]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -21992,7 +21992,7 @@ sub_8109930: @ 8109930
adds r0, r2
lsls r0, 16
lsrs r4, r0, 16
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22214,7 +22214,7 @@ _08109AE0:
cmp r0, 0x10
ble _08109AF4
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08109AF4:
pop {r4}
pop {r0}
@@ -22248,7 +22248,7 @@ _08109B18:
bl StartSpriteAnim
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x3C]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22261,7 +22261,7 @@ _08109B48:
ldr r0, =0x0000fffc
_08109B4A:
strh r0, [r5, 0x36]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -22279,7 +22279,7 @@ _08109B70:
ldrh r0, [r5, 0x30]
adds r0, 0xC0
strh r0, [r5, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22356,7 +22356,7 @@ _08109BCE:
lsls r0, 1
strh r0, [r5, 0x2E]
strh r1, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -22426,7 +22426,7 @@ _08109C82:
.pool
_08109CA4:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08109CAA:
pop {r4}
pop {r0}
@@ -22485,7 +22485,7 @@ _08109CC8:
lsrs r0, 16
cmp r0, 0x83
bls _08109D3C
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -22500,7 +22500,7 @@ _08109CC8:
b _08109D80
.pool
_08109D3C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
@@ -22561,7 +22561,7 @@ _08109DA8:
cmp r0, 0x1E
bne _08109DB6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08109DB6:
pop {r4}
pop {r0}
@@ -22578,7 +22578,7 @@ sub_8109DBC: @ 8109DBC
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -22590,11 +22590,11 @@ sub_8109DBC: @ 8109DBC
movs r1, 0x1
_08109DE2:
strh r1, [r4, 0x20]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
adds r0, 0x1
@@ -22906,7 +22906,7 @@ _0810A024:
blt _0810A024
_0810A04E:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810A054:
pop {r4-r7}
pop {r0}
@@ -22932,7 +22932,7 @@ sub_810A060: @ 810A060
movs r1, 0x10
bl BlendPalette
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0x10
pop {r4}
pop {r0}
@@ -22974,7 +22974,7 @@ _0810A0CA:
adds r0, 0x1
strh r0, [r2, 0x8]
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
@@ -23059,7 +23059,7 @@ _0810A16E:
strh r1, [r0, 0x24]
strh r1, [r0, 0x26]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810A194:
pop {r3-r5}
mov r8, r3
@@ -23075,7 +23075,7 @@ _0810A194:
sub_810A1A8: @ 810A1A8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23119,7 +23119,7 @@ sub_810A1F8: @ 810A1F8
cmp r0, 0
beq _0810A20E
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810A20E:
pop {r0}
bx r0
@@ -23129,7 +23129,7 @@ _0810A20E:
sub_810A214: @ 810A214
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23178,7 +23178,7 @@ _0810A26E:
sub_810A274: @ 810A274
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -23191,7 +23191,7 @@ sub_810A274: @ 810A274
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23261,15 +23261,15 @@ _0810A324:
beq _0810A35C
b _0810A380
_0810A32E:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810A382
.pool
_0810A338:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0810A354
@@ -23282,21 +23282,21 @@ _0810A354:
eors r4, r0
b _0810A384
_0810A35C:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810A380
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
eors r4, r0
b _0810A384
.pool
_0810A380:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810A382:
ldrb r4, [r0]
_0810A384:
@@ -23417,7 +23417,7 @@ sub_810A46C: @ 810A46C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -23517,7 +23517,7 @@ sub_810A4F4: @ 810A4F4
b _0810A564
_0810A55E:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810A564:
pop {r4}
pop {r0}
@@ -23562,7 +23562,7 @@ _0810A5A4:
cmp r0, 0
bgt _0810A5B6
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810A5B6:
pop {r0}
bx r0
@@ -23576,7 +23576,7 @@ sub_810A5BC: @ 810A5BC
lsls r0, 24
cmp r0, 0
bne _0810A5D8
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -23588,7 +23588,7 @@ _0810A5D8:
negs r0, r0
strh r0, [r1, 0x2]
_0810A5E0:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -23633,11 +23633,11 @@ sub_810A628: @ 810A628
ands r0, r1
cmp r0, 0
beq _0810A64C
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
b _0810A64E
.pool
_0810A64C:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
_0810A64E:
ldrb r6, [r0]
bl IsContest
@@ -23756,7 +23756,7 @@ _0810A742:
cmp r0, 0
bgt _0810A754
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810A754:
pop {r4}
pop {r0}
@@ -23812,7 +23812,7 @@ _0810A7B6:
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -23827,7 +23827,7 @@ sub_810A7DC: @ 810A7DC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_80A5C6C
@@ -24012,7 +24012,7 @@ _0810A952:
.pool
_0810A970:
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0810A9BC
_0810A978:
cmp r7, 0
@@ -24199,7 +24199,7 @@ _0810AAE4:
cmp r0, 0x33
bne _0810AAF8
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810AAF8:
pop {r0}
bx r0
@@ -24220,11 +24220,11 @@ sub_810AAFC: @ 810AAFC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AB28
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810AB2A
.pool
_0810AB28:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810AB2A:
ldrb r0, [r4]
movs r1, 0x2
@@ -24383,7 +24383,7 @@ _0810AC78:
cmp r0, 0
bne _0810AC86
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810AC86:
pop {r4-r7}
pop {r0}
@@ -24440,11 +24440,11 @@ sub_810ACD8: @ 810ACD8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810ACF4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810ACF6
.pool
_0810ACF4:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810ACF6:
ldrb r0, [r4]
movs r1, 0x2
@@ -24478,11 +24478,11 @@ sub_810AD30: @ 810AD30
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810AD4C
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810AD4E
.pool
_0810AD4C:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810AD4E:
ldrb r0, [r4]
movs r1, 0x2
@@ -24501,7 +24501,7 @@ _0810AD4E:
strh r0, [r5, 0x24]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x26]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
@@ -24518,7 +24518,7 @@ sub_810AD98: @ 810AD98
adds r5, r0, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -24646,7 +24646,7 @@ _0810AE90:
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x26]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -24783,7 +24783,7 @@ _0810AFA0:
ands r1, r2
strb r1, [r0]
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810AFC0:
pop {r4-r6}
pop {r0}
@@ -24820,7 +24820,7 @@ _0810AFF4:
_0810AFFA:
b _0810B14E
_0810AFFC:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -24878,7 +24878,7 @@ _0810B070:
movs r0, 0x78
subs r0, r1
strh r0, [r5, 0xE]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x3
bl sub_80A5C6C
@@ -24981,7 +24981,7 @@ _0810B140:
cmp r0, 0
bne _0810B14E
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810B14E:
pop {r4-r6}
pop {r0}
@@ -25124,7 +25124,7 @@ sub_810B23C: @ 810B23C
beq _0810B280
b _0810B294
_0810B24E:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -25191,7 +25191,7 @@ _0810B2C8:
.4byte _0810B404
.4byte _0810B414
_0810B2DC:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -25206,7 +25206,7 @@ _0810B2DC:
strh r0, [r5, 0x16]
movs r0, 0x4
strh r0, [r5, 0x18]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_80A5C6C
@@ -25228,12 +25228,12 @@ _0810B2DC:
movs r0, 0xC
strh r0, [r5, 0x1E]
subs r0, 0x4C
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x20]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0x22]
@@ -25338,7 +25338,7 @@ _0810B404:
cmp r0, 0
bne _0810B428
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0810B428
_0810B414:
ldrh r1, [r5, 0x1E]
@@ -25539,7 +25539,7 @@ _0810B584:
beq _0810B600
b _0810B60E
_0810B58A:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_80A5C6C
@@ -25561,7 +25561,7 @@ _0810B5A4:
bgt _0810B5A4
strh r1, [r5, 0x24]
_0810B5B4:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -25603,7 +25603,7 @@ _0810B600:
cmp r0, 0
bne _0810B60E
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810B60E:
pop {r4,r5}
pop {r0}
@@ -25721,7 +25721,7 @@ sub_810B6C4: @ 810B6C4
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x4]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -25734,7 +25734,7 @@ sub_810B6C4: @ 810B6C4
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -25934,7 +25934,7 @@ sub_810B848: @ 810B848
b _0810B8A6
_0810B8A0:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810B8A6:
pop {r4}
pop {r0}
@@ -25957,7 +25957,7 @@ sub_810B8AC: @ 810B8AC
movs r0, 0xFE
lsls r0, 8
strh r0, [r4, 0x36]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
@@ -25976,14 +25976,14 @@ sub_810B8EC: @ 810B8EC
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x2
bl sub_80A5C6C
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x32]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26003,7 +26003,7 @@ _0810B92C:
adds r0, r1
strh r0, [r4, 0x32]
_0810B936:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -26015,7 +26015,7 @@ _0810B936:
strh r0, [r4, 0x36]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6EEC
@@ -26041,7 +26041,7 @@ sub_810B974: @ 810B974
b _0810B9C6
.pool
_0810B990:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -26049,7 +26049,7 @@ _0810B990:
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26130,7 +26130,7 @@ sub_810BA24: @ 810BA24
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810BA74
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -26148,7 +26148,7 @@ sub_810BA24: @ 810BA24
b _0810BA86
.pool
_0810BA74:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -26157,7 +26157,7 @@ _0810BA74:
movs r1, 0x1
bl sub_80A8924
_0810BA86:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26277,7 +26277,7 @@ sub_810BB60: @ 810BB60
strh r5, [r4, 0x24]
movs r0, 0x80
strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26312,7 +26312,7 @@ _0810BB90:
sub_810BBC8: @ 810BBC8
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26406,7 +26406,7 @@ sub_810BC4C: @ 810BC4C
bge _0810BC8E
_0810BC88:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810BC8E:
pop {r4}
pop {r0}
@@ -26431,7 +26431,7 @@ sub_810BC94: @ 810BC94
ldrsh r0, [r1, r2]
cmp r0, 0
bne _0810BCE0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -26447,7 +26447,7 @@ sub_810BC94: @ 810BC94
b _0810BCF2
.pool
_0810BCE0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -26456,7 +26456,7 @@ _0810BCE0:
movs r1, 0x1
bl sub_80A8924
_0810BCF2:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26619,7 +26619,7 @@ _0810BDEC:
bge _0810BE42
_0810BE3C:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810BE42:
pop {r4}
pop {r0}
@@ -26645,7 +26645,7 @@ sub_810BE48: @ 810BE48
b _0810BEA2
.pool
_0810BE6C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -26653,7 +26653,7 @@ _0810BE6C:
adds r3, 0x22
movs r1, 0
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26686,7 +26686,7 @@ _0810BEB4:
cmp r0, 0
beq _0810BEC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810BEC8:
pop {r4,r5}
pop {r0}
@@ -26712,7 +26712,7 @@ sub_810BED0: @ 810BED0
b _0810BF32
.pool
_0810BEF4:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -26742,7 +26742,7 @@ _0810BF26:
adds r0, r1
strh r0, [r5, 0x22]
_0810BF32:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810BF90
.pool
_0810BF40:
@@ -26755,7 +26755,7 @@ _0810BF40:
bl sub_80A6980
b _0810BF8E
_0810BF52:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
adds r2, r5, 0
adds r2, 0x20
@@ -26785,7 +26785,7 @@ _0810BF82:
adds r0, r1
strh r0, [r5, 0x22]
_0810BF8E:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810BF90:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -26806,7 +26806,7 @@ _0810BFB4:
movs r0, 0x40
_0810BFB6:
strh r0, [r5, 0x3A]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -26911,7 +26911,7 @@ _0810C086:
b _0810C098
_0810C092:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810C098:
pop {r4}
pop {r0}
@@ -26934,11 +26934,11 @@ sub_810C0A0: @ 810C0A0
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -26946,7 +26946,7 @@ sub_810C0A0: @ 810C0A0
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810C0E2:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -27148,7 +27148,7 @@ _0810C29C:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810C2B0:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -27164,9 +27164,9 @@ _0810C2B0:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810C2DA:
add sp, 0x10
pop {r4,r5}
@@ -27179,7 +27179,7 @@ _0810C2DA:
sub_810C2F0: @ 810C2F0
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -27216,11 +27216,11 @@ sub_810C324: @ 810C324
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -27228,7 +27228,7 @@ sub_810C324: @ 810C324
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810C366:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -27420,7 +27420,7 @@ _0810C50C:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0810C520:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -27436,9 +27436,9 @@ _0810C520:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810C54A:
add sp, 0x10
pop {r4,r5}
@@ -27456,13 +27456,13 @@ sub_810C560: @ 810C560
ldr r6, =gBattleAnimArgs
ldrh r0, [r6]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
bl sub_80A5C6C
adds r4, r0, 0
- ldr r7, =gAnimationBankTarget
+ ldr r7, =gAnimBankTarget
ldrb r0, [r7]
movs r1, 0x2
bl sub_80A5C6C
@@ -27474,7 +27474,7 @@ sub_810C560: @ 810C560
lsls r0, 8
strh r0, [r5, 0x3C]
_0810C594:
- ldr r3, =gBanksBySide
+ ldr r3, =gBanksByIdentity
ldrb r0, [r7]
adds r0, r3
ldrb r1, [r0]
@@ -27523,7 +27523,7 @@ _0810C5F0:
movs r0, 0x1
strh r0, [r5, 0x3A]
_0810C5F4:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -27545,7 +27545,7 @@ _0810C5F4:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -27567,7 +27567,7 @@ _0810C65C:
ldrh r1, [r5, 0x20]
adds r0, r1
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -27676,7 +27676,7 @@ _0810C728:
_0810C736:
movs r5, 0x50
strh r5, [r4, 0x2E]
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0
bl sub_80A5C6C
@@ -27699,7 +27699,7 @@ _0810C736:
lsls r0, 24
cmp r0, 0
bne _0810C78C
- ldr r1, =gBanksBySide
+ ldr r1, =gBanksByIdentity
ldrb r0, [r6]
adds r0, r1
ldrb r1, [r0]
@@ -27843,8 +27843,8 @@ _0810C85A:
lsls r0, 24
cmp r0, 0
bne _0810C8B4
- ldr r1, =gBanksBySide
- ldr r0, =gAnimationBankTarget
+ ldr r1, =gBanksByIdentity
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -28011,7 +28011,7 @@ _0810C9CE:
cmp r0, 0
bne _0810C9DC
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810C9DC:
pop {r4,r5}
pop {r0}
@@ -28054,7 +28054,7 @@ sub_810C9E4: @ 810C9E4
lsls r0, 24
lsrs r5, r0, 24
adds r0, r5, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810CAD0
@@ -28349,7 +28349,7 @@ _0810CC7C:
unc_080B06FC: @ 810CC88
push {r4-r6,lr}
adds r5, r0, 0
- ldr r0, =gDisableStructMoveAnim
+ ldr r0, =gAnimDisableStructPtr
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
@@ -28371,7 +28371,7 @@ _0810CCA6:
ldr r6, =gBattleAnimArgs
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28381,7 +28381,7 @@ _0810CCA6:
negs r0, r0
strh r0, [r6, 0x4]
_0810CCCE:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -28423,7 +28423,7 @@ sub_810CD1C: @ 810CD1C
bl StartSpriteAnim
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
_0810CD3E:
@@ -28515,7 +28515,7 @@ _0810CDD8:
cmp r0, 0x15
bne _0810CDF6
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810CDF6:
pop {r4}
pop {r0}
@@ -28531,7 +28531,7 @@ sub_810CDFC: @ 810CDFC
ldrb r3, [r1]
lsls r3, 1
adds r3, r1
- ldr r1, =gDisableStructMoveAnim
+ ldr r1, =gAnimDisableStructPtr
ldr r1, [r1]
ldrb r1, [r1, 0x11]
lsrs r2, r1, 4
@@ -28540,7 +28540,7 @@ sub_810CDFC: @ 810CDFC
subs r2, r1
subs r2, 0x1
strh r2, [r3]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -28563,7 +28563,7 @@ unc_080B08A0: @ 810CE2C
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -28581,7 +28581,7 @@ sub_810CE68: @ 810CE68
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810CE90
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -28658,7 +28658,7 @@ _0810CF0C:
strh r0, [r5, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -28680,11 +28680,11 @@ sub_810CF30: @ 810CF30
mov r9, r0
cmp r1, 0
bne _0810CF54
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810CF56
.pool
_0810CF54:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810CF56:
ldrb r0, [r0]
mov r8, r0
@@ -28771,7 +28771,7 @@ _0810D000:
negs r0, r0
lsrs r4, r0, 16
_0810D012:
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
add r0, r8
ldrb r1, [r0]
adds r0, r7, 0
@@ -28875,7 +28875,7 @@ sub_810D0B8: @ 810D0B8
bl DestroySprite
_0810D0F4:
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810D104
.pool
_0810D100:
@@ -28960,7 +28960,7 @@ sub_810D164: @ 810D164
strh r6, [r5, 0x24]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
_0810D1A4:
@@ -28974,10 +28974,10 @@ _0810D1A4:
sub_810D1B4: @ 810D1B4
push {r4-r6,lr}
adds r6, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
eors r0, r1
ldrb r1, [r2]
cmp r0, r1
@@ -28997,7 +28997,7 @@ _0810D1E0:
adds r0, r6, 0
movs r1, 0x1
bl sub_80A6980
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -29059,7 +29059,7 @@ sub_810D240: @ 810D240
b _0810D272
_0810D26C:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D272:
pop {r4}
pop {r0}
@@ -29105,7 +29105,7 @@ sub_810D2B0: @ 810D2B0
strh r0, [r4, 0x2E]
ldr r0, =sub_80A64B0
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -29146,7 +29146,7 @@ sub_810D308: @ 810D308
bne _0810D34C
movs r0, 0x6
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -29178,7 +29178,7 @@ sub_810D360: @ 810D360
strh r1, [r0, 0x2E]
ldr r1, =sub_80A64B0
str r1, [r0, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@@ -29251,7 +29251,7 @@ _0810D3F6:
cmp r0, 0x78
ble _0810D404
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D404:
pop {r4}
pop {r0}
@@ -29267,11 +29267,11 @@ sub_810D40C: @ 810D40C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0810D428
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810D42A
.pool
_0810D428:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810D42A:
ldrb r0, [r4]
movs r1, 0
@@ -29332,7 +29332,7 @@ _0810D48E:
cmp r0, 0
bne _0810D4AA
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810D4EC
_0810D4AA:
ldrh r0, [r1, 0x2E]
@@ -29370,7 +29370,7 @@ _0810D4DA:
cmp r0, 0
bne _0810D4EC
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D4EC:
pop {r0}
bx r0
@@ -29386,7 +29386,7 @@ sub_810D4F4: @ 810D4F4
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810D520
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -29397,7 +29397,7 @@ sub_810D4F4: @ 810D4F4
b _0810D532
.pool
_0810D520:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -29473,7 +29473,7 @@ _0810D5C0:
b _0810D5CE
_0810D5C6:
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810D5D2
_0810D5CE:
ldr r0, =sub_810D5DC
@@ -29505,7 +29505,7 @@ sub_810D5DC: @ 810D5DC
cmp r0, 0x28
ble _0810D604
adds r0, r1, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D604:
pop {r0}
bx r0
@@ -29533,7 +29533,7 @@ sub_810D608: @ 810D608
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -29545,11 +29545,11 @@ sub_810D608: @ 810D608
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
b _0810D680
.pool
_0810D664:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -29561,7 +29561,7 @@ _0810D664:
ands r0, r2
orrs r0, r1
strb r0, [r5, 0x5]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
_0810D680:
ldrb r0, [r0]
strh r0, [r5, 0x3C]
@@ -29704,7 +29704,7 @@ sub_810D770: @ 810D770
cmp r4, r0
bge _0810D7BA
adds r0, r7, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0810D818
_0810D7BA:
ldrh r0, [r7, 0x2E]
@@ -29712,7 +29712,7 @@ _0810D7BA:
strh r0, [r7, 0x2E]
b _0810D818
_0810D7C2:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -29725,7 +29725,7 @@ _0810D7C2:
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0x2
@@ -29793,7 +29793,7 @@ sub_810D830: @ 810D830
ble _0810D870
_0810D86A:
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D870:
pop {r0}
bx r0
@@ -29821,15 +29821,15 @@ sub_810D874: @ 810D874
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x22]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r4, [r0]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810D8BE
.pool
_0810D8B8:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r4, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810D8BE:
ldrb r0, [r0]
bl sub_80A8328
@@ -29893,7 +29893,7 @@ _0810D918:
strh r0, [r5, 0x36]
adds r0, r5, 0
bl obj_translate_based_on_private_1_2_3_4
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A6F98
@@ -29915,7 +29915,7 @@ sub_810D960: @ 810D960
cmp r1, r0
bne _0810D976
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810D976:
ldrh r0, [r4, 0x2E]
adds r0, 0x1
@@ -29929,7 +29929,7 @@ _0810D976:
sub_810D984: @ 810D984
push {r4-r6,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -29951,7 +29951,7 @@ sub_810D984: @ 810D984
strh r0, [r5, 0x34]
ldrh r0, [r1, 0x4]
strh r0, [r5, 0x36]
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
ldrb r6, [r0]
ldrb r0, [r4]
bl GetBankSide
@@ -30018,7 +30018,7 @@ _0810DA34:
bl StartSpriteAnim
b _0810DA5E
_0810DA48:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30030,7 +30030,7 @@ _0810DA48:
_0810DA5E:
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -30067,7 +30067,7 @@ sub_810DA7C: @ 810DA7C
cmp r0, 0x28
ble _0810DAB6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DAB6:
pop {r4}
pop {r0}
@@ -30128,7 +30128,7 @@ _0810DB1A:
ldrh r1, [r4, 0x1C]
adds r0, r1
strh r0, [r4, 0x1C]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30179,7 +30179,7 @@ _0810DB60:
movs r0, 0x1
bl sub_80A6DAC
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810DB98:
pop {r4-r7}
pop {r0}
@@ -30205,7 +30205,7 @@ _0810DBC2:
bl sub_80A69CC
ldrh r0, [r4, 0x4]
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -30239,7 +30239,7 @@ sub_810DC10: @ 810DC10
cmp r0, 0
beq _0810DC24
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DC24:
pop {r4}
pop {r0}
@@ -30263,7 +30263,7 @@ _0810DC44:
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
mov r6, sp
adds r6, 0x2
@@ -30271,7 +30271,7 @@ _0810DC44:
mov r2, sp
adds r3, r6, 0
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30314,7 +30314,7 @@ sub_810DCB4: @ 810DCB4
cmp r0, 0
beq _0810DCC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DCC8:
pop {r4}
pop {r0}
@@ -30378,7 +30378,7 @@ sub_810DD24: @ 810DD24
cmp r0, 0
bne _0810DD4A
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DD4A:
pop {r4}
pop {r0}
@@ -30389,7 +30389,7 @@ _0810DD4A:
sub_810DD50: @ 810DD50
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -30397,7 +30397,7 @@ sub_810DD50: @ 810DD50
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30426,7 +30426,7 @@ _0810DD7C:
strh r1, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -30450,7 +30450,7 @@ sub_810DDC4: @ 810DDC4
b _0810DE16
.pool
_0810DDE0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -30458,7 +30458,7 @@ _0810DDE0:
adds r3, 0x22
movs r1, 0x1
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30514,7 +30514,7 @@ sub_810DE2C: @ 810DE2C
cmp r0, 0
beq _0810DE68
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DE68:
pop {r4}
pop {r0}
@@ -30569,7 +30569,7 @@ sub_810DE98: @ 810DE98
cmp r0, 0x47
bne _0810DED2
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810DED2:
pop {r4}
pop {r0}
@@ -30666,7 +30666,7 @@ _0810DF76:
cmp r1, 0
bne _0810DF90
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810DF90:
pop {r4-r7}
pop {r0}
@@ -30680,7 +30680,7 @@ sub_810DFA8: @ 810DFA8
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30696,7 +30696,7 @@ _0810DFC8:
strh r0, [r6, 0x2E]
ldrh r0, [r6, 0x20]
strh r0, [r6, 0x30]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -30737,7 +30737,7 @@ sub_810E028: @ 810E028
cmp r0, 0
beq _0810E03C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810E03C:
pop {r4}
pop {r0}
@@ -30748,7 +30748,7 @@ _0810E03C:
sub_810E044: @ 810E044
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -30805,7 +30805,7 @@ _0810E088:
ldrsh r0, [r2, r3]
cmp r0, 0
bne _0810E0EC
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -30821,7 +30821,7 @@ _0810E088:
b _0810E0FE
.pool
_0810E0EC:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -30841,7 +30841,7 @@ _0810E0FE:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldrb r1, [r4, 0xA]
@@ -30919,7 +30919,7 @@ _0810E1AA:
cmp r0, r1
bge _0810E1C2
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810E1C2:
pop {r0}
bx r0
@@ -30929,7 +30929,7 @@ _0810E1C2:
sub_810E1C8: @ 810E1C8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -30955,7 +30955,7 @@ _0810E1FE:
strh r0, [r5, 0x2E]
ldrh r0, [r5, 0x20]
strh r0, [r5, 0x30]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -31036,7 +31036,7 @@ _0810E296:
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810E2BC:
pop {r4}
pop {r0}
@@ -31099,11 +31099,11 @@ sub_810E314: @ 810E314
ands r0, r1
cmp r0, 0
beq _0810E33C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0810E33E
.pool
_0810E33C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0810E33E:
ldrb r6, [r0]
adds r0, r6, 0
@@ -32049,7 +32049,7 @@ _0810EA36:
sub_810EA4C: @ 810EA4C
push {r4,r5,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A8328
movs r1, 0x3
@@ -32061,7 +32061,7 @@ sub_810EA4C: @ 810EA4C
ands r0, r2
orrs r0, r1
strb r0, [r4, 0x5]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -32106,7 +32106,7 @@ _0810EAC4:
ldrsh r0, [r4, r2]
cmp r0, 0
bne _0810EADC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32117,7 +32117,7 @@ _0810EADC:
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0810EAF8
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -32189,7 +32189,7 @@ _0810EB6A:
cmp r0, r1
bne _0810EB82
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810EB82:
pop {r4}
pop {r0}
@@ -32237,7 +32237,7 @@ sub_810EB88: @ 810EB88
strh r0, [r4, 0x6]
ldr r0, =gUnknown_085973E8
mov r8, r0
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -32263,7 +32263,7 @@ _0810EC02:
cmp r0, 0xFF
ble _0810EC16
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810EC16:
pop {r3}
mov r8, r3
@@ -32316,7 +32316,7 @@ _0810EC78:
cmp r0, 0
beq _0810EC8C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810EC8C:
pop {r4}
pop {r0}
@@ -32341,7 +32341,7 @@ _0810ECAA:
beq _0810ECE0
b _0810ED1E
_0810ECB0:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_80A5C6C
@@ -32394,7 +32394,7 @@ _0810ECE0:
ands r0, r2
strb r0, [r1]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810ED1E:
pop {r4}
pop {r0}
@@ -32521,7 +32521,7 @@ _0810EE00:
cmp r0, 0
ble _0810EE0E
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810EE0E:
pop {r0}
bx r0
@@ -32545,11 +32545,11 @@ _0810EE28:
ldrsh r0, [r0, r2]
cmp r0, 0
bne _0810EE40
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810EE42
.pool
_0810EE40:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810EE42:
ldrb r0, [r4]
movs r1, 0
@@ -32631,7 +32631,7 @@ _0810EECC:
adds r0, r5, 0
bl sub_80A749C
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810EEEC:
add sp, 0x4
pop {r4,r5}
@@ -32700,11 +32700,11 @@ _0810EF60:
ldrsh r0, [r2, r1]
cmp r0, 0
bne _0810EF74
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0810EF76
.pool
_0810EF74:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0810EF76:
ldrb r0, [r4]
movs r1, 0
@@ -32773,7 +32773,7 @@ _0810EFEA:
cmp r0, 0x1F
bne _0810EFFE
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810EFFE:
pop {r4}
pop {r0}
@@ -32845,7 +32845,7 @@ _0810F02A:
b _0810F07E
_0810F078:
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810F07E:
pop {r0}
bx r0
@@ -32861,7 +32861,7 @@ sub_810F084: @ 810F084
mov r8, r0
ldrh r4, [r0, 0x20]
ldrh r5, [r0, 0x22]
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -33021,7 +33021,7 @@ _0810F1BC:
_0810F1DA:
strb r0, [r1]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -33038,7 +33038,7 @@ sub_810F1EC: @ 810F1EC
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -33069,7 +33069,7 @@ _0810F22E:
lsrs r4, r0, 24
adds r7, r4, 0
adds r0, r4, 0
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -33078,7 +33078,7 @@ _0810F22E:
orrs r1, r0
lsrs r6, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F264
@@ -33091,7 +33091,7 @@ _0810F264:
adds r4, r0, 0
eors r4, r7
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F284
@@ -33109,7 +33109,7 @@ _0810F284:
lsls r0, 24
cmp r0, 0
beq _0810F2B8
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -33126,7 +33126,7 @@ _0810F2B0:
movs r0, 0x28
b _0810F2F2
_0810F2B8:
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -33205,7 +33205,7 @@ sub_810F340: @ 810F340
b _0810F3B6
_0810F35C:
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F382
@@ -33226,7 +33226,7 @@ _0810F382:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F3AC
@@ -33375,7 +33375,7 @@ sub_810F46C: @ 810F46C
lsrs r4, r0, 24
adds r6, r4, 0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F4D4
@@ -33398,7 +33398,7 @@ _0810F4D4:
adds r4, r0, 0
eors r4, r6
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F502
@@ -33445,7 +33445,7 @@ sub_810F524: @ 810F524
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -33454,7 +33454,7 @@ sub_810F524: @ 810F524
orrs r1, r0
lsrs r5, r1, 31
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F562
@@ -33464,7 +33464,7 @@ _0810F562:
movs r0, 0x2
eors r4, r0
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0810F57C
@@ -33473,7 +33473,7 @@ _0810F562:
adds r0, r5, 0
bl sub_80A477C
_0810F57C:
- ldr r0, =move_anim_8072740
+ ldr r0, =DestroyAnimSprite
str r0, [r6, 0x1C]
pop {r4-r6}
pop {r0}
@@ -33505,7 +33505,7 @@ _0810F5A6:
lsls r0, 24
cmp r0, 0
beq _0810F5EE
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -33568,7 +33568,7 @@ _0810F62C:
sub_810F634: @ 810F634
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -33608,7 +33608,7 @@ _0810F684:
movs r0, 0x1
_0810F692:
strh r0, [r5, 0x30]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
@@ -33623,7 +33623,7 @@ _0810F692:
sub_810F6B0: @ 810F6B0
push {r4-r7,lr}
adds r5, r0, 0
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x1
bl sub_80A861C
@@ -33756,7 +33756,7 @@ _0810F7B4:
cmp r0, r1
bne _0810F7CC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810F7CC:
pop {r4}
pop {r0}
@@ -33805,7 +33805,7 @@ sub_810F810: @ 810F810
cmp r0, 0
bne _0810F830
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810F830:
pop {r4}
pop {r0}
@@ -33831,7 +33831,7 @@ sub_810F83C: @ 810F83C
strh r0, [r4, 0x8]
strh r1, [r4, 0xA]
strh r1, [r4, 0xC]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -33930,7 +33930,7 @@ _0810F900:
ldrb r0, [r4, 0x8]
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810F936:
pop {r4,r5}
pop {r0}
@@ -33952,7 +33952,7 @@ sub_810F940: @ 810F940
movs r0, 0x10
strh r0, [r5, 0xE]
strh r1, [r5, 0x10]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -34203,7 +34203,7 @@ _0810FB44:
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810FB5A:
pop {r4-r6}
pop {r0}
@@ -34241,7 +34241,7 @@ _0810FB8A:
cmp r1, r0
bne _0810FB9C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0810FB9C:
ldrh r0, [r4, 0x30]
adds r0, 0x1
@@ -34260,7 +34260,7 @@ sub_810FBA8: @ 810FBA8
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0810FBD4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -34305,7 +34305,7 @@ sub_810FBF0: @ 810FBF0
bne _0810FC60
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34316,7 +34316,7 @@ sub_810FBF0: @ 810FBF0
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34331,7 +34331,7 @@ sub_810FBF0: @ 810FBF0
_0810FC60:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34342,7 +34342,7 @@ _0810FC60:
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34357,7 +34357,7 @@ _0810FC94:
bne _0810FCE8
ldr r0, =0x0000fff6
strh r0, [r5, 0x1C]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34368,7 +34368,7 @@ _0810FC94:
bl sub_80A861C
adds r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x4
bl sub_80A861C
@@ -34383,7 +34383,7 @@ _0810FC94:
_0810FCE8:
movs r0, 0xA
strh r0, [r5, 0x1C]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34394,7 +34394,7 @@ _0810FCE8:
bl sub_80A861C
subs r0, 0x8
strh r0, [r5, 0x20]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x5
bl sub_80A861C
@@ -34497,7 +34497,7 @@ _0810FDD4:
cmp r0, 0x11
ble _0810FDE8
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0810FDE8:
pop {r4,r5}
pop {r0}
@@ -34535,7 +34535,7 @@ sub_810FE14: @ 810FE14
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -34590,9 +34590,9 @@ _0810FE86:
movs r0, 0
strh r0, [r4, 0x24]
_0810FE92:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -34786,7 +34786,7 @@ _08110014:
.pool
_08110020:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08110026:
pop {r3,r4}
mov r8, r3
@@ -34819,7 +34819,7 @@ sub_8110034: @ 8110034
cmp r6, 0xFF
bne _0811006C
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08110116
.pool
_0811006C:
@@ -34835,7 +34835,7 @@ _0811006C:
adds r0, r5, 0
bl FreeOamMatrix
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08110116
.pool
_08110094:
@@ -35035,7 +35035,7 @@ _08110228:
lsrs r0, 24
bl FreeOamMatrix
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08110238:
pop {r4,r5}
pop {r0}
@@ -35062,7 +35062,7 @@ _08110256:
beq _0811034A
b _08110360
_08110260:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -35110,7 +35110,7 @@ _081102B8:
beq _08110360
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -35181,7 +35181,7 @@ _0811034A:
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08110360:
pop {r4,r5}
pop {r0}
@@ -35209,7 +35209,7 @@ sub_8110368: @ 8110368
b _081103C4
.pool
_08110394:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35232,7 +35232,7 @@ _08110394:
negs r0, r0
strh r0, [r1]
_081103C4:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
@@ -35270,7 +35270,7 @@ _081103C4:
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
@@ -35297,7 +35297,7 @@ sub_8110438: @ 8110438
b _08110478
.pool
_0811045C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35311,7 +35311,7 @@ _0811045C:
negs r1, r1
strh r1, [r0]
_08110478:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A60AC
@@ -35345,7 +35345,7 @@ _08110478:
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
@@ -35384,7 +35384,7 @@ _08110500:
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08110548
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -35400,7 +35400,7 @@ _08110500:
b _0811055A
.pool
_08110548:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x32
@@ -35431,7 +35431,7 @@ sub_811057C: @ 811057C
cmp r0, 0
beq _08110592
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _081105AE
_08110592:
movs r1, 0x3A
@@ -35457,7 +35457,7 @@ _081105AE:
sub_81105B4: @ 81105B4
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r4, 0
adds r2, 0x20
@@ -35465,7 +35465,7 @@ sub_81105B4: @ 81105B4
adds r3, 0x22
movs r1, 0
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35490,7 +35490,7 @@ _081105FC:
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x22]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35545,7 +35545,7 @@ _08110664:
cmp r0, 0x33
bne _08110678
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08110678:
pop {r0}
bx r0
@@ -35633,7 +35633,7 @@ sub_8110700: @ 8110700
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -35655,7 +35655,7 @@ sub_8110720: @ 8110720
b _08110762
.pool
_08110740:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35676,11 +35676,11 @@ _08110762:
lsls r0, 24
cmp r0, 0
bne _081107B2
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
bl GetBankSide
lsls r4, 24
@@ -35712,7 +35712,7 @@ _081107B2:
adds r0, r7, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -35764,7 +35764,7 @@ _081107B2:
strh r5, [r7, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r7, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r7, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
@@ -35780,7 +35780,7 @@ sub_8110850: @ 8110850
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -35794,7 +35794,7 @@ _08110870:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -35849,7 +35849,7 @@ sub_81108CC: @ 81108CC
cmp r0, 0
beq _081108F8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _08110988
_081108F8:
movs r0, 0x2E
@@ -35941,11 +35941,11 @@ sub_8110994: @ 8110994
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081109B0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _081109B2
.pool
_081109B0:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_081109B2:
ldrb r0, [r4]
movs r1, 0x2
@@ -35980,7 +35980,7 @@ sub_81109F0: @ 81109F0
ldrsh r0, [r6, r1]
cmp r0, 0
beq _08110A10
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r2, r5, 0
adds r2, 0x20
@@ -36064,7 +36064,7 @@ sub_8110AB4: @ 8110AB4
bl StartSpriteAnim
adds r0, r5, 0
bl AnimateSprite
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -36183,7 +36183,7 @@ sub_8110B80: @ 8110B80
cmp r0, r1
bne _08110BC6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08110BC6:
pop {r4}
pop {r0}
@@ -36207,11 +36207,11 @@ sub_8110BCC: @ 8110BCC
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -36219,7 +36219,7 @@ sub_8110BCC: @ 8110BCC
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08110C10:
ldr r0, =gBattle_BG1_X
strh r5, [r0]
@@ -36254,7 +36254,7 @@ _08110C10:
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08110C6E
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -36440,7 +36440,7 @@ _08110DFC:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08110E10:
ldr r0, =gBattle_BG1_X
movs r1, 0
@@ -36456,9 +36456,9 @@ _08110E10:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08110E3A:
add sp, 0x10
pop {r4,r5}
@@ -36480,7 +36480,7 @@ sub_8110E4C: @ 8110E4C
ldrsh r0, [r4, r2]
cmp r0, 0
beq _08110E98
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -36568,7 +36568,7 @@ _08110F0E:
cmp r0, r1
bge _08110F24
_08110F20:
- ldr r0, =move_anim_8072740
+ ldr r0, =DestroyAnimSprite
str r0, [r5, 0x1C]
_08110F24:
pop {r4,r5}
@@ -36597,7 +36597,7 @@ sub_8110F30: @ 8110F30
strh r0, [r4, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -36620,7 +36620,7 @@ sub_8110F74: @ 8110F74
lsls r1, 3
ldr r0, =gTasks
adds r6, r1, r0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -36636,7 +36636,7 @@ sub_8110F74: @ 8110F74
lsls r1, 13
adds r0, r1
lsrs r7, r0, 16
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -36713,13 +36713,13 @@ _0811101E:
strh r4, [r6, 0x16]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
asrs r4, 8
lsrs r4, 16
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
strh r4, [r6, 0x22]
asrs r0, 24
@@ -36926,7 +36926,7 @@ _081111FE:
cmp r0, 0
bne _0811120C
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811120C:
pop {r4}
pop {r0}
@@ -37090,7 +37090,7 @@ _0811134E:
thumb_func_start sub_811135C
sub_811135C: @ 811135C
push {lr}
- ldr r0, =gDisableStructMoveAnim
+ ldr r0, =gAnimDisableStructPtr
ldr r0, [r0]
ldrb r1, [r0, 0x11]
lsrs r0, r1, 4
@@ -37183,7 +37183,7 @@ _08111400:
cmp r0, 0
bne _08111412
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08111412:
pop {r0}
bx r0
@@ -37193,7 +37193,7 @@ _08111412:
sub_8111418: @ 8111418
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -37216,7 +37216,7 @@ _08111434:
sub_8111444: @ 8111444
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -37286,7 +37286,7 @@ sub_811149C: @ 811149C
cmp r0, 0x8C
ble _081114E6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081114E6:
pop {r4}
pop {r0}
@@ -37298,7 +37298,7 @@ sub_81114EC: @ 81114EC
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gMoveDmgMoveAnim
+ ldr r2, =gAnimMoveDmg
ldr r0, [r2]
cmp r0, 0x20
bgt _08111500
@@ -37322,7 +37322,7 @@ _08111510:
strh r0, [r1, 0xE]
_0811151A:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -37365,7 +37365,7 @@ _0811154E:
movs r0, 0x1
bl sub_80A6DAC
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811157A:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -37424,7 +37424,7 @@ _081115BC:
movs r0, 0x1
bl sub_80A6DAC
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081115F4:
pop {r4-r6}
pop {r0}
@@ -37443,7 +37443,7 @@ sub_811160C: @ 811160C
strh r0, [r4, 0x2E]
ldrh r0, [r4, 0x20]
strh r0, [r4, 0x30]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -37748,7 +37748,7 @@ _08111852:
cmp r0, 0x3D
bne _08111884
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08111884:
pop {r4}
pop {r0}
@@ -37902,7 +37902,7 @@ _081119BC:
adds r0, r1, 0
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
movs r0, 0x50
movs r1, 0
bl SetGpuReg
@@ -37925,7 +37925,7 @@ sub_81119E0: @ 81119E0
adds r4, r0, 0
ldrh r5, [r4, 0x20]
ldrh r6, [r4, 0x22]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -38042,7 +38042,7 @@ _08111AD2:
lsls r0, 16
cmp r0, 0
bgt _08111B96
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -38104,7 +38104,7 @@ _08111B3C:
lsls r0, 16
cmp r0, 0
bgt _08111B96
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -38223,7 +38223,7 @@ _08111C38:
cmp r6, 0
beq _08111C44
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _08111C4A
_08111C44:
ldrh r0, [r3, 0x30]
@@ -38254,7 +38254,7 @@ sub_8111C50: @ 8111C50
cmp r0, 0
bge _08111C80
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08111D5C
.pool
_08111C80:
@@ -38285,7 +38285,7 @@ _08111C80:
adds r0, r4
movs r1, 0x50
strh r1, [r0, 0x2E]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -38470,7 +38470,7 @@ _08111E1C:
b _08111E48
_08111E42:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08111E48:
pop {r4}
pop {r0}
@@ -38510,9 +38510,9 @@ sub_8111E78: @ 8111E78
lsls r0, 3
ldr r1, =gTasks
adds r5, r0, r1
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -38557,7 +38557,7 @@ _08111ED0:
bl FreeSpritePaletteByTag
_08111EFE:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081120CC
.pool
_08111F0C:
@@ -38604,7 +38604,7 @@ _08111F0C:
adds r2, r4
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -38864,9 +38864,9 @@ sub_8112170: @ 8112170
lsls r0, 3
ldr r1, =gTasks
adds r4, r0, r1
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r6, r0, 24
movs r1, 0x26
@@ -38956,7 +38956,7 @@ _08112248:
bl SetGpuRegBits
_08112252:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08112258:
ldrh r0, [r4, 0x26]
adds r0, 0x1
@@ -38979,7 +38979,7 @@ sub_8112264: @ 8112264
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081122AC
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -38994,11 +38994,11 @@ sub_8112264: @ 8112264
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
b _081122D0
.pool
_081122AC:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -39013,7 +39013,7 @@ _081122AC:
lsls r2, 13
adds r0, r2
lsrs r5, r0, 16
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
_081122D0:
ldrb r0, [r4]
movs r1, 0
@@ -39166,7 +39166,7 @@ sub_81123C4: @ 81123C4
ldr r2, =gBattleAnimArgs
ldrh r0, [r2]
strh r0, [r1, 0x1C]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -39189,7 +39189,7 @@ _08112434:
_08112436:
lsls r1, r4, 16
asrs r3, r1, 16
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r2, [r0]
str r1, [sp, 0x10]
cmp r3, r2
@@ -39201,7 +39201,7 @@ _08112436:
lsls r0, r4, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08112502
@@ -39565,7 +39565,7 @@ _0811273C:
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08112752:
pop {r4,r5}
pop {r0}
@@ -39594,7 +39594,7 @@ sub_8112758: @ 8112758
movs r0, 0x54
movs r1, 0x10
bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -39855,7 +39855,7 @@ sub_8112994: @ 8112994
movs r1, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081129DA:
pop {r4,r5}
pop {r0}
@@ -39869,7 +39869,7 @@ sub_81129F0: @ 81129F0
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40048,7 +40048,7 @@ sub_8112B44: @ 8112B44
ldr r0, =gBattle_WIN0V
strh r1, [r0]
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -40064,7 +40064,7 @@ sub_8112B78: @ 8112B78
movs r1, 0xC
bl Sin
strh r0, [r5, 0x24]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40171,7 +40171,7 @@ sub_8112C4C: @ 8112C4C
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -40195,7 +40195,7 @@ sub_8112C6C: @ 8112C6C
mov r8, r0
mov r0, r8
strh r0, [r4, 0xA]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -40301,7 +40301,7 @@ _08112D56:
lsls r0, 2
adds r5, r0, r1
strh r7, [r5, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
movs r1, 0
@@ -40445,7 +40445,7 @@ _08112E80:
movs r1, 0
bl SetGpuReg
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08112E96:
pop {r4-r7}
pop {r0}
@@ -40562,7 +40562,7 @@ sub_8112F60: @ 8112F60
orrs r1, r2
strb r1, [r3]
ldr r2, =gBankSpriteIds
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r1, [r1]
@@ -40679,7 +40679,7 @@ _08113054:
sub_8113064: @ 8113064
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -40752,7 +40752,7 @@ sub_8113100: @ 8113100
push {r4,r5,lr}
adds r5, r0, 0
bl sub_80A6838
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -40765,7 +40765,7 @@ sub_8113100: @ 8113100
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0x36]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40834,11 +40834,11 @@ sub_81131B4: @ 81131B4
ldrsh r0, [r0, r1]
cmp r0, 0
bne _081131D0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _081131D2
.pool
_081131D0:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_081131D2:
ldrb r0, [r4]
movs r1, 0
@@ -40876,7 +40876,7 @@ _081131D2:
sub_8113224: @ 8113224
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -40898,7 +40898,7 @@ _0811323E:
sub_8113250: @ 8113250
push {r4-r7,lr}
adds r6, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -41088,7 +41088,7 @@ _081133CE:
cmp r0, 0x14
ble _081133E2
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081133E2:
pop {r4,r5}
pop {r0}
@@ -41106,9 +41106,9 @@ sub_81133E8: @ 81133E8
lsls r1, 3
ldr r0, =gTasks
adds r4, r1, r0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -41133,7 +41133,7 @@ _0811342A:
strb r0, [r1, 0x8]
mov r0, sp
strb r5, [r0, 0x9]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -41274,7 +41274,7 @@ _08113556:
.pool
_08113568:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811356E:
pop {r0}
bx r0
@@ -41354,7 +41354,7 @@ sub_81135EC: @ 81135EC
movs r1, 0x5
bl __divsi3
adds r6, r0, 0
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
mov r8, r1
ldrb r0, [r1]
movs r1, 0x2
@@ -41453,7 +41453,7 @@ sub_811369C: @ 811369C
cmp r0, r1
ble _081136E0
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081136E0:
pop {r4}
pop {r0}
@@ -41473,14 +41473,14 @@ sub_81136E8: @ 81136E8
ldr r1, =gBattleAnimArgs
ldrh r1, [r1]
strh r1, [r0, 0x8]
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
ldrb r4, [r1]
movs r1, 0x10
strh r1, [r0, 0xA]
movs r0, 0x52
bl SetGpuReg
adds r0, r4, 0
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -41545,7 +41545,7 @@ sub_811375C: @ 811375C
bne _081137DE
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -41559,7 +41559,7 @@ sub_811375C: @ 811375C
orrs r1, r2
strb r1, [r0]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081137DE
.pool
_081137D8:
@@ -41639,7 +41639,7 @@ sub_811381C: @ 811381C
movs r1, 0
bl SetGpuReg
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08113882
.pool
_0811387C:
@@ -41661,9 +41661,9 @@ sub_8113888: @ 8113888
lsls r1, 5
movs r0, 0x52
bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -41679,7 +41679,7 @@ _081138BC:
bl SetGpuReg
_081138C4:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -41690,14 +41690,14 @@ _081138C4:
sub_81138D4: @ 81138D4
push {r4-r6,lr}
adds r4, r0, 0
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x30]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -41805,7 +41805,7 @@ _081139C2:
cmp r0, 0
bne _081139D4
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081139D4:
pop {r4-r6}
pop {r0}
@@ -41918,11 +41918,11 @@ sub_8113A90: @ 8113A90
adds r3, r0, 0
cmp r1, 0
bne _08113AAC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08113AAE
.pool
_08113AAC:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08113AAE:
ldrb r5, [r0]
movs r6, 0x14
@@ -42054,7 +42054,7 @@ sub_8113BAC: @ 8113BAC
lsls r1, 3
ldr r0, =gTasks
adds r5, r1, r0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A5C6C
@@ -42096,9 +42096,9 @@ _08113C1C:
ldr r0, =0x0000ffc0
_08113C1E:
strh r0, [r5, 0x18]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -42355,7 +42355,7 @@ _08113E5E:
.pool
_08113E6C:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08113E72:
pop {r4}
pop {r0}
@@ -42411,13 +42411,13 @@ _08113EBC:
adds r1, r4, 0
bl SetGpuReg
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081140A6
.pool
_08113EF8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r5, 0xE]
@@ -42472,7 +42472,7 @@ _08113F78:
b _08114044
.pool
_08113F84:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x1
bl sub_80A5C6C
@@ -42795,7 +42795,7 @@ _08114210:
adds r1, r4, 0
bl SetGpuReg
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08114232:
pop {r4,r5}
pop {r0}
@@ -43014,9 +43014,9 @@ sub_81143C0: @ 81143C0
lsls r0, 24
lsrs r0, 24
mov r10, r0
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -43049,7 +43049,7 @@ sub_81143C0: @ 81143C0
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811444E
@@ -43075,7 +43075,7 @@ sub_81143C0: @ 81143C0
strb r1, [r0]
_0811444E:
mov r0, r10
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r3-r5}
mov r8, r3
mov r9, r4
@@ -43091,9 +43091,9 @@ sub_8114470: @ 8114470
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@@ -43106,7 +43106,7 @@ sub_8114470: @ 8114470
ldrb r1, [r4]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _081144AC
@@ -43116,7 +43116,7 @@ sub_8114470: @ 8114470
bl sub_80A477C
_081144AC:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -43141,7 +43141,7 @@ sub_81144BC: @ 81144BC
bl StartSpriteAnim
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -43180,11 +43180,11 @@ sub_81144F8: @ 81144F8
movs r0, 0x1
movs r1, 0x4
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -43192,7 +43192,7 @@ sub_81144F8: @ 81144F8
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0811455C:
bl IsDoubleBattle
lsls r0, 24
@@ -43202,7 +43202,7 @@ _0811455C:
lsls r0, 24
cmp r0, 0
bne _081145D6
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankIdentity
lsls r0, 24
@@ -43218,7 +43218,7 @@ _0811458C:
ldrb r0, [r4]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -43248,21 +43248,21 @@ _0811458C:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r6, 0x1
_081145D6:
bl IsContest
lsls r0, 24
cmp r0, 0
beq _08114614
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _0811465C
.pool
_08114614:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -43299,7 +43299,7 @@ _0811465C:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -43458,7 +43458,7 @@ _081147B8:
cmp r0, 0x1
bne _08114886
ldr r2, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -43503,7 +43503,7 @@ _08114824:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08114856:
movs r0, 0
bl GetGpuReg
@@ -43523,7 +43523,7 @@ _08114856:
movs r1, 0
bl SetGpuReg
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08114886:
add sp, 0x10
pop {r4-r6}
@@ -43590,7 +43590,7 @@ _08114908:
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811492C
@@ -43617,7 +43617,7 @@ _0811492E:
bl sub_80A750C
_0811494A:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -43629,7 +43629,7 @@ sub_8114960: @ 8114960
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gUnknown_02038432
+ ldr r2, =gAnimMoveTurn
ldrb r0, [r2]
cmp r0, 0x1
bhi _08114974
@@ -43645,7 +43645,7 @@ _08114974:
strh r0, [r1, 0xE]
_08114980:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -43655,7 +43655,7 @@ _08114980:
sub_8114994: @ 8114994
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -43670,7 +43670,7 @@ sub_8114994: @ 8114994
strh r0, [r4, 0x22]
movs r0, 0x14
strh r0, [r4, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -43716,7 +43716,7 @@ sub_81149FC: @ 81149FC
strh r1, [r5, 0x24]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -43751,7 +43751,7 @@ sub_8114A60: @ 8114A60
cmp r0, 0
beq _08114A74
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08114A74:
pop {r4}
pop {r0}
@@ -43764,7 +43764,7 @@ sub_8114A7C: @ 8114A7C
adds r6, r0, 0
movs r1, 0x1
bl sub_80A6980
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -43778,7 +43778,7 @@ _08114A9C:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -43797,7 +43797,7 @@ _08114A9C:
strh r0, [r6, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r6, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
pop {r4-r6}
@@ -43814,7 +43814,7 @@ sub_8114AF0: @ 8114AF0
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A60AC
@@ -43890,7 +43890,7 @@ sub_8114B80: @ 8114B80
ldrsh r0, [r6, r1]
cmp r0, 0
bne _08114BF4
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -43964,7 +43964,7 @@ _08114C2E:
cmp r0, r1
bge _08114C46
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08114C46:
pop {r0}
bx r0
@@ -44025,7 +44025,7 @@ _08114C74:
cmp r0, 0xA
bne _08114CB6
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08114CB6:
pop {r0}
bx r0
@@ -44096,9 +44096,9 @@ _08114D3C:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -44118,7 +44118,7 @@ _08114D70:
_08114D78:
ldrh r0, [r0]
strh r0, [r4, 0x22]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -44246,7 +44246,7 @@ _08114E7E:
.pool
_08114E8C:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
ldr r2, =gSprites
movs r0, 0x1C
ldrsh r1, [r4, r0]
@@ -44289,9 +44289,9 @@ sub_8114EB4: @ 8114EB4
movs r4, 0
strh r4, [r1, 0x24]
strh r4, [r1, 0x26]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -44304,7 +44304,7 @@ _08114F00:
_08114F02:
strh r4, [r0]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -44402,7 +44402,7 @@ _08114F78:
.pool
_08114FCC:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08114FD2:
pop {r4,r5}
pop {r0}
@@ -44442,9 +44442,9 @@ _08115018:
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1C]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x1E]
@@ -44458,7 +44458,7 @@ _08115044:
_08115046:
ldrh r0, [r0]
strh r0, [r4, 0x20]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A6190
lsls r0, 24
@@ -44521,7 +44521,7 @@ _081150C2:
.pool
_081150D4:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081150DA:
pop {r4}
pop {r0}
@@ -44634,11 +44634,11 @@ sub_81151A0: @ 81151A0
adds r7, r0, 0
cmp r1, 0
bne _081151BC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _081151BE
.pool
_081151BC:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_081151BE:
ldrb r4, [r0]
movs r6, 0x18
@@ -44698,7 +44698,7 @@ sub_8115228: @ 8115228
cmp r0, 0
beq _0811523C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0811523C:
pop {r4}
pop {r0}
@@ -44714,11 +44714,11 @@ sub_8115244: @ 8115244
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08115260
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08115262
.pool
_08115260:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08115262:
ldrb r5, [r0]
adds r0, r5, 0
@@ -44754,7 +44754,7 @@ _08115262:
ands r0, r2
orrs r0, r1
strh r0, [r6, 0x4]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r6, 0
bl StoreSpriteCallbackInData6
ldrh r0, [r4, 0x4]
@@ -44788,7 +44788,7 @@ sub_81152DC: @ 81152DC
b _08115314
.pool
_08115308:
- ldr r0, =gMovePowerMoveAnim
+ ldr r0, =gAnimMovePower
ldrh r0, [r0]
movs r1, 0xA
bl __udivsi3
@@ -44818,7 +44818,7 @@ _08115340:
_08115346:
lsls r0, r5, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08115370
@@ -44853,7 +44853,7 @@ _08115380:
cmp r0, 0xFF
bne _08115398
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _081153A0
_08115398:
movs r0, 0x1
@@ -44991,7 +44991,7 @@ _08115490:
ldrh r0, [r3, 0x22]
strh r0, [r1]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811549C:
pop {r0}
bx r0
@@ -45110,7 +45110,7 @@ _08115554:
blt _08115554
_08115578:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811557E:
pop {r4-r7}
pop {r0}
@@ -45191,7 +45191,7 @@ sub_8115600: @ 8115600
lsrs r1, r0, 24
ldr r3, =gBattleAnimArgs
movs r2, 0
- ldr r0, =gMovePowerMoveAnim
+ ldr r0, =gAnimMovePower
ldrh r0, [r0]
cmp r0, 0x63
bls _08115614
@@ -45199,7 +45199,7 @@ sub_8115600: @ 8115600
_08115614:
strh r2, [r3, 0x1E]
adds r0, r1, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -45217,11 +45217,11 @@ sub_8115628: @ 8115628
adds r6, r2, 0
cmp r0, 0
beq _08115648
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
b _0811564A
.pool
_08115648:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
_0811564A:
ldrb r0, [r0]
adds r5, r0, 0
@@ -45271,7 +45271,7 @@ _0811565A:
ldrh r0, [r6, 0x4]
strh r0, [r4, 0xE]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
@@ -45333,7 +45333,7 @@ sub_811572C: @ 811572C
strh r0, [r4, 0x22]
ldrh r0, [r5, 0x4]
strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -45415,7 +45415,7 @@ _081157D2:
cmp r0, r1
bne _081157F6
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081157F6:
pop {r4}
pop {r0}
@@ -45503,7 +45503,7 @@ sub_8115884: @ 8115884
cmp r0, 0
bne _0811589A
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0811589A:
pop {r0}
bx r0
@@ -45638,7 +45638,7 @@ sub_8115984: @ 8115984
movs r2, 0
bl BlendPalettes
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081159AA:
pop {r4}
pop {r0}
@@ -45810,7 +45810,7 @@ _08115AF8:
b _08115B06
_08115B00:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08115B06:
pop {r4-r6}
pop {r0}
@@ -45852,9 +45852,9 @@ sub_8115B0C: @ 8115B0C
mov r8, r2
cmp r5, r1
bge _08115B74
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r3, [r0]
- ldr r7, =gAnimationBankTarget
+ ldr r7, =gAnimBankTarget
movs r0, 0x1
mov r12, r0
adds r2, r1, 0
@@ -45996,7 +45996,7 @@ _08115C6C:
b _08115C7A
_08115C74:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08115C7A:
pop {r4-r6}
pop {r0}
@@ -46135,7 +46135,7 @@ _08115D80:
b _08115D8E
_08115D88:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08115D8E:
pop {r4-r6}
pop {r0}
@@ -46317,7 +46317,7 @@ sub_8115EB8: @ 8115EB8
movs r3, 0
bl BeginNormalPaletteFade
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08115EFE:
add sp, 0x4
pop {r4,r5}
@@ -46336,9 +46336,9 @@ sub_8115F10: @ 8115F10
lsrs r0, 24
mov r8, r0
movs r2, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r6, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r7, [r0]
ldr r4, =gBattleAnimArgs
ldrh r1, [r4]
@@ -46380,7 +46380,7 @@ _08115F6E:
adds r0, r2, 0
bl InvertPlttBuffer
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r3}
mov r8, r3
@@ -46429,10 +46429,10 @@ _08115FD6:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
mov r9, r0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
mov r10, r0
ldrh r1, [r4, 0xC]
@@ -46507,7 +46507,7 @@ _08116050:
adds r0, r5, 0
bl UnfadePlttBuffer
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0811607A:
pop {r3-r5}
mov r8, r3
@@ -46679,7 +46679,7 @@ _081161BA:
bcc _081161BA
_081161DC:
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_081161E2:
pop {r4-r7}
pop {r0}
@@ -46692,7 +46692,7 @@ sub_81161F4: @ 81161F4
push {r4-r6,lr}
ldr r6, =gSprites
ldr r4, =gBankSpriteIds
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -46707,7 +46707,7 @@ sub_81161F4: @ 81161F4
adds r0, r2, 0
ands r0, r3
strb r0, [r1]
- ldr r3, =gAnimationBankTarget
+ ldr r3, =gAnimBankTarget
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
@@ -46873,7 +46873,7 @@ _08116358:
strh r1, [r6]
strh r1, [r2]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08116382
_0811637E:
subs r0, r2, 0x1
@@ -46907,7 +46907,7 @@ _081163AC:
_081163B4:
ldr r0, =sub_80A67BC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -46955,7 +46955,7 @@ _081163FC:
sub_8116420: @ 8116420
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -47113,7 +47113,7 @@ _08116584:
ldr r0, =gBattleAnimArgs
ldrh r0, [r0, 0x6]
strh r0, [r4, 0x2E]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A64B0
@@ -47180,7 +47180,7 @@ sub_81165E4: @ 81165E4
cmp r0, 0xC
ble _0811661A
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0811661A:
pop {r0}
bx r0
@@ -47256,14 +47256,14 @@ _081166B8:
movs r5, 0
_081166BA:
mov r0, sp
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
b _081166CA
.pool
_081166C4:
movs r5, 0
_081166C6:
mov r0, sp
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
_081166CA:
ldrb r1, [r1]
strb r1, [r0]
@@ -47271,10 +47271,10 @@ _081166CA:
.pool
_081166D4:
mov r1, sp
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
strb r0, [r1]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
strb r0, [r1, 0x1]
b _0811670E
@@ -47287,13 +47287,13 @@ _081166EC:
_081166F4:
movs r5, 0
mov r2, sp
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08116706
.pool
_08116700:
movs r5, 0
mov r2, sp
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08116706:
ldrb r0, [r0]
movs r1, 0x2
@@ -47310,7 +47310,7 @@ _08116712:
cmp r4, r0
beq _0811673C
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811673C
@@ -47558,7 +47558,7 @@ _0811693C:
b _08116954
_08116946:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08116954
_0811694E:
mov r0, r8
@@ -47614,7 +47614,7 @@ sub_81169A0: @ 81169A0
cmp r0, 0
bne _081169B8
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081169B8:
pop {r0}
bx r0
@@ -47750,7 +47750,7 @@ _08116ABC:
cmp r0, 0
bne _08116ACA
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08116ACA:
pop {r4-r6}
pop {r0}
@@ -47867,7 +47867,7 @@ _08116BA2:
lsls r0, 24
cmp r0, 0
bne _08116C26
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankIdentity
lsls r0, 24
@@ -47883,7 +47883,7 @@ _08116BD2:
ldrb r0, [r5]
movs r6, 0x2
eors r0, r6
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -47925,14 +47925,14 @@ _08116C26:
lsls r0, 24
cmp r0, 0
beq _08116C64
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r5, [r0]
b _08116CAC
.pool
_08116C64:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -47969,7 +47969,7 @@ _08116CAC:
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r1, r4, 0
adds r2, r5, 0
@@ -48138,7 +48138,7 @@ _08116DF6:
cmp r0, 0x1
bne _08116E7C
ldr r2, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r1, [r0]
movs r0, 0x2
eors r0, r1
@@ -48164,7 +48164,7 @@ _08116E7C:
mov r2, r8
strh r2, [r7]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08116E86:
add sp, 0x14
pop {r3}
@@ -48223,11 +48223,11 @@ sub_8116F04: @ 8116F04
ldrsh r0, [r1, r2]
cmp r0, 0
bne _08116F24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08116F26
.pool
_08116F24:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08116F26:
ldrb r0, [r0]
strb r0, [r1]
@@ -48247,7 +48247,7 @@ _08116F26:
cmp r0, 0
beq _08116F5C
ldrb r0, [r1, 0x1]
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08116F5C
@@ -48281,11 +48281,11 @@ _08116F5C:
movs r0, 0x1
movs r1, 0x4
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -48293,7 +48293,7 @@ _08116F5C:
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_08116FBA:
bl IsDoubleBattle
lsls r0, 24
@@ -48320,7 +48320,7 @@ _08116FBA:
_08116FEC:
ldr r0, [r4]
ldrb r0, [r0, 0x1]
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x1
@@ -48350,7 +48350,7 @@ _08116FEC:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
ldr r0, [r4]
strb r5, [r0, 0x2]
_08117036:
@@ -48360,7 +48360,7 @@ _08117036:
beq _08117078
ldr r0, =gUnknown_0203A110
ldr r1, [r0]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r0, [r0]
@@ -48614,7 +48614,7 @@ _08117280:
bne _081172CC
movs r0, 0x40
negs r0, r0
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -48625,7 +48625,7 @@ _08117280:
_081172CC:
movs r0, 0x40
negs r0, r0
- bl sub_80A5278
+ bl BattleAnimAdjustPanning2
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -48765,7 +48765,7 @@ _081173B6:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_081173E6:
movs r0, 0
bl GetGpuReg
@@ -48833,7 +48833,7 @@ _08117466:
movs r0, 0
str r0, [r4]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08117478:
pop {r4-r6}
pop {r0}
@@ -48987,7 +48987,7 @@ _081175AC:
.pool
_081175B8:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081175BE:
pop {r4-r6}
pop {r0}
@@ -49044,7 +49044,7 @@ sub_8117610: @ 8117610
lsrs r6, r0, 24
movs r4, 0
movs r2, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r3, [r0]
movs r5, 0x1
_08117620:
@@ -49096,7 +49096,7 @@ sub_8117660: @ 8117660
ldrsh r0, [r4, r1]
cmp r0, 0
beq _0811769C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -49125,7 +49125,7 @@ _0811769C:
adds r0, 0x1
strh r0, [r1, 0x8]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -49196,7 +49196,7 @@ sub_8117754: @ 8117754
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
ldr r1, =gBattleAnimArgs
@@ -49204,7 +49204,7 @@ sub_8117754: @ 8117754
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -49217,7 +49217,7 @@ sub_8117780: @ 8117780
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
ldr r1, =gBattleAnimArgs
@@ -49225,7 +49225,7 @@ sub_8117780: @ 8117780
lsrs r0, 24
strh r0, [r1, 0xE]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -49239,10 +49239,10 @@ sub_81177AC: @ 81177AC
lsrs r3, r0, 24
ldr r5, =gBattleAnimArgs
movs r4, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r2, [r0]
movs r0, 0x2
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
@@ -49251,7 +49251,7 @@ sub_81177AC: @ 81177AC
_081177C8:
strh r4, [r5, 0xE]
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -49266,13 +49266,13 @@ sub_81177E4: @ 81177E4
movs r4, 0
ldr r6, =gSprites
_081177EE:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
cmp r4, r0
beq _0811782C
lsls r0, r4, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _0811782C
@@ -49303,7 +49303,7 @@ _0811782C:
cmp r4, 0x3
bls _081177EE
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r7}
pop {r0}
bx r0
@@ -49355,7 +49355,7 @@ sub_8117854: @ 8117854
cmp r1, 0
beq _081178BA
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _081178BA
@@ -49423,7 +49423,7 @@ _08117930:
lsls r0, 24
cmp r0, 0
beq _08117964
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r4, [r0]
@@ -49744,7 +49744,7 @@ _08117BB2:
bl DestroySprite
_08117C06:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08117C0C:
add sp, 0x4
pop {r4-r6}
@@ -49762,7 +49762,7 @@ sub_8117C24: @ 8117C24
ldr r1, =gBattleTerrain
ldrb r1, [r1]
strh r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -49784,7 +49784,7 @@ sub_8117C44: @ 8117C44
adds r1, r2
str r0, [r1]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -49809,7 +49809,7 @@ sub_8117C70: @ 8117C70
movs r1, 0
str r1, [r0]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -49854,13 +49854,13 @@ _08117CD2:
_08117CE4:
cmp r0, 0x1
bne _08117CF0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08117CF6
.pool
_08117CF0:
cmp r0, 0x2
bne _08117CFC
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08117CF6:
ldrb r0, [r0]
adds r4, r0, 0
@@ -49883,7 +49883,7 @@ _08117CFC:
movs r2, 0x20
bl memcpy
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -49929,13 +49929,13 @@ _08117D6E:
_08117D80:
cmp r0, 0x1
bne _08117D8C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08117D92
.pool
_08117D8C:
cmp r0, 0x2
bne _08117D98
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08117D92:
ldrb r0, [r0]
adds r4, r0, 0
@@ -49958,7 +49958,7 @@ _08117D98:
movs r2, 0x20
bl memcpy
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -50004,13 +50004,13 @@ _08117E0A:
_08117E1C:
cmp r0, 0x1
bne _08117E28
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08117E2E
.pool
_08117E28:
cmp r0, 0x2
bne _08117E34
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08117E2E:
ldrb r0, [r0]
adds r4, r0, 0
@@ -50024,7 +50024,7 @@ _08117E34:
movs r2, 0x20
bl memcpy
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -50052,7 +50052,7 @@ _08117E80:
strh r1, [r0, 0xE]
_08117E84:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -50064,15 +50064,15 @@ sub_8117E94: @ 8117E94
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldr r1, =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -50083,11 +50083,11 @@ sub_8117EC4: @ 8117EC4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r4, 24
@@ -50104,7 +50104,7 @@ _08117EF8:
_08117EFC:
strh r0, [r1, 0xE]
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -50116,11 +50116,11 @@ sub_8117F10: @ 8117F10
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldr r1, =gBankTarget
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -50131,15 +50131,15 @@ sub_8117F30: @ 8117F30
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldr r1, =gBankAttacker
ldrb r1, [r1]
strb r1, [r2]
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -50155,7 +50155,7 @@ sub_8117F60: @ 8117F60
cmp r0, 0
beq _08117F78
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08117FB4
_08117F78:
ldr r0, =gTasks
@@ -50165,7 +50165,7 @@ _08117F78:
adds r3, r0
ldr r0, =gBattleSpritesDataPtr
ldr r4, [r0]
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
ldr r1, [r4]
lsls r0, 2
@@ -50209,7 +50209,7 @@ sub_8117FD0: @ 8117FD0
bne _08118014
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r3, [r0]
ldr r0, [r1]
lsls r3, 2
@@ -50237,8 +50237,8 @@ _08118014:
.pool
thumb_func_end sub_8117FD0
- thumb_func_start lcd_bg_operations
-lcd_bg_operations: @ 811802C
+ thumb_func_start SetAnimBgAttribute
+SetAnimBgAttribute: @ 811802C
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
@@ -50364,7 +50364,7 @@ _08118132:
pop {r0}
bx r0
.pool
- thumb_func_end lcd_bg_operations
+ thumb_func_end SetAnimBgAttribute
thumb_func_start sub_8118140
sub_8118140: @ 8118140
diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s
index fc21f001f..69835bf4e 100755
--- a/asm/battle_anim_815A0D4.s
+++ b/asm/battle_anim_815A0D4.s
@@ -75,7 +75,7 @@ sub_815A114: @ 815A114
b _0815A15A
_0815A154:
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815A15A:
pop {r0}
bx r0
@@ -87,7 +87,7 @@ sub_815A160: @ 815A160
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -112,7 +112,7 @@ sub_815A160: @ 815A160
movs r2, 0
bl sub_807521C
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4-r6}
pop {r0}
bx r0
@@ -196,7 +196,7 @@ sub_815A234: @ 815A234
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -207,7 +207,7 @@ sub_815A254: @ 815A254
push {r4-r7,lr}
sub sp, 0x4
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -261,7 +261,7 @@ _0815A2B2:
strh r6, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
add sp, 0x4
@@ -537,7 +537,7 @@ _0815A4E0:
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815A4FE:
pop {r4}
pop {r0}
@@ -768,7 +768,7 @@ sub_815A6C4: @ 815A6C4
adds r4, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
mov r5, sp
adds r5, 0x2
@@ -776,7 +776,7 @@ sub_815A6C4: @ 815A6C4
mov r2, sp
adds r3, r5, 0
bl sub_80A8924
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -869,7 +869,7 @@ _0815A798:
cmp r0, 0x10
bne _0815A7AC
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815A7AC:
pop {r0}
bx r0
@@ -891,7 +891,7 @@ sub_815A7B0: @ 815A7B0
strh r0, [r4, 0x22]
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
@@ -919,7 +919,7 @@ sub_815A7EC: @ 815A7EC
lsls r0, 24
cmp r0, 0
bne _0815A840
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -988,7 +988,7 @@ _0815A84C:
cmp r0, 0xF0
bls _0815A8A4
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815A8A4:
pop {r4,r5}
pop {r0}
@@ -1006,7 +1006,7 @@ sub_815A8AC: @ 815A8AC
cmp r0, 0
beq _0815A8C2
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815A8C2:
pop {r0}
bx r0
@@ -1017,7 +1017,7 @@ sub_815A8C8: @ 815A8C8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -1034,7 +1034,7 @@ _0815A8EC:
_0815A8F0:
strh r0, [r1, 0xE]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -1046,7 +1046,7 @@ sub_815A904: @ 815A904
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gMoveDmgMoveAnim
+ ldr r0, =gAnimMoveDmg
ldr r0, [r0]
cmp r0, 0
ble _0815A920
@@ -1060,7 +1060,7 @@ _0815A920:
_0815A924:
strh r0, [r1, 0xE]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -1235,7 +1235,7 @@ sub_815AA6C: @ 815AA6C
movs r0, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -1251,7 +1251,7 @@ sub_815AAA4: @ 815AAA4
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815AAD0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -1349,7 +1349,7 @@ sub_815AB5C: @ 815AB5C
bne _0815ABBA
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -1380,7 +1380,7 @@ _0815ABBA:
cmp r0, 0
bne _0815ABC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815ABC8:
pop {r4}
pop {r0}
@@ -1456,7 +1456,7 @@ _0815AC40:
bl SetGpuRegBits
_0815AC70:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -1486,7 +1486,7 @@ sub_815AC8C: @ 815AC8C
bl ClearGpuRegBits
_0815ACB8:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -1502,11 +1502,11 @@ sub_815ACD0: @ 815ACD0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815ACEC
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0815ACEE
.pool
_0815ACEC:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0815ACEE:
ldrb r0, [r4]
movs r1, 0
@@ -1585,7 +1585,7 @@ sub_815AD4C: @ 815AD4C
cmp r0, r1
bge _0815ADAA
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
b _0815ADAA
.pool
_0815AD98:
@@ -1596,7 +1596,7 @@ _0815AD98:
cmp r0, r1
ble _0815ADAA
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815ADAA:
pop {r0}
bx r0
@@ -1618,18 +1618,18 @@ sub_815ADB0: @ 815ADB0
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815ADDC
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0815ADDE
.pool
_0815ADDC:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0815ADDE:
ldrb r0, [r4]
bl sub_80A6190
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r4]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r7, r0, 24
adds r0, r6, 0
@@ -1882,7 +1882,7 @@ _0815AFC4:
strb r0, [r1, 0x15]
_0815AFDA:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815AFE0:
pop {r4-r7}
pop {r0}
@@ -1903,7 +1903,7 @@ sub_815AFF0: @ 815AFF0
movs r5, 0
strh r5, [r4, 0x8]
strh r5, [r4, 0xA]
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r1, 0x2
bl sub_80A5C6C
@@ -2004,7 +2004,7 @@ _0815B0BC:
lsrs r4, r0, 24
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -2162,7 +2162,7 @@ _0815B220:
cmp r0, 0
bne _0815B22E
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815B22E:
add sp, 0x8
pop {r3}
@@ -2262,7 +2262,7 @@ _0815B2D8:
ldrsh r0, [r5, r1]
cmp r0, 0x3D
bne _0815B324
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldrh r0, [r5, 0x24]
@@ -2278,7 +2278,7 @@ _0815B2D8:
strh r1, [r5, 0x26]
movs r0, 0x14
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -2339,7 +2339,7 @@ _0815B37C:
cmp r0, 0
bne _0815B38E
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815B38E:
pop {r4,r5}
pop {r0}
@@ -2370,7 +2370,7 @@ _0815B3B4:
beq _0815B478
b _0815B496
_0815B3BE:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -2471,7 +2471,7 @@ _0815B478:
cmp r0, r1
bge _0815B496
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815B496:
pop {r4-r6}
pop {r0}
@@ -2482,7 +2482,7 @@ _0815B496:
sub_815B49C: @ 815B49C
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2513,7 +2513,7 @@ sub_815B4D4: @ 815B4D4
ldrh r0, [r4, 0x2E]
adds r0, 0x48
strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -2578,7 +2578,7 @@ _0815B54C:
cmp r0, r1
bls _0815B566
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815B566:
pop {r4,r5}
pop {r0}
@@ -2747,7 +2747,7 @@ _0815B69C:
cmp r0, 0
bne _0815B6AE
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815B6AE:
pop {r4,r5}
pop {r0}
@@ -2789,7 +2789,7 @@ _0815B6F4:
cmp r0, 0
bne _0815B706
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815B706:
pop {r4,r5}
pop {r0}
@@ -2814,7 +2814,7 @@ _0815B71E:
movs r0, 0x90
lsls r0, 4
strh r0, [r4, 0x30]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -2845,7 +2845,7 @@ _0815B748:
cmp r0, r1
ble _0815B770
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815B770:
pop {r4}
pop {r0}
@@ -2887,7 +2887,7 @@ _0815B7B8:
cmp r0, 0
bne _0815B7CA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815B7CA:
pop {r4,r5}
pop {r0}
@@ -2933,9 +2933,9 @@ _0815B81C:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -2943,14 +2943,14 @@ _0815B81C:
movs r0, 0x1
movs r1, 0x2
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
b _0815B84E
.pool
_0815B844:
movs r0, 0x2
movs r1, 0x2
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815B84E:
ldr r0, =gTasks
mov r6, r8
@@ -2996,9 +2996,9 @@ _0815B886:
_0815B8A6:
b _0815BA7A
_0815B8A8:
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
ldrb r1, [r1]
mov r2, r8
lsls r4, r2, 2
@@ -3030,7 +3030,7 @@ _0815B8EA:
adds r2, 0x4
adds r2, r0
ldr r1, =gBattleMonForms
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -3051,16 +3051,16 @@ _0815B8EA:
lsls r0, 24
cmp r0, 0
beq _0815BA1C
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0, 0x18]
ldrh r0, [r0]
- bl sub_80DB2A8
+ bl IsSpeciesNotUnown
adds r4, r0, 0
ldr r0, [r5]
ldr r0, [r0, 0x18]
ldrh r0, [r0, 0x2]
- bl sub_80DB2A8
+ bl IsSpeciesNotUnown
lsls r4, 24
lsls r0, 24
cmp r4, r0
@@ -3113,17 +3113,17 @@ _0815B988:
cmp r5, 0x7
ble _0815B980
_0815B99C:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r0, [r0, 0x2]
- bl sub_80DB2A8
+ bl IsSpeciesNotUnown
lsls r0, 24
cmp r0, 0
beq _0815B9EC
ldr r3, =gSprites
ldr r4, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3139,7 +3139,7 @@ _0815B99C:
_0815B9EC:
ldr r3, =gSprites
ldr r4, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r4
ldrb r1, [r0]
@@ -3209,9 +3209,9 @@ _0815BA82:
movs r0, 0x4C
movs r1, 0
bl SetGpuReg
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -3219,20 +3219,20 @@ _0815BA82:
movs r0, 0x1
movs r1, 0x2
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
b _0815BAB6
.pool
_0815BAAC:
movs r0, 0x2
movs r1, 0x2
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815BAB6:
bl IsContest
lsls r0, 24
cmp r0, 0
bne _0815BAF6
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -3259,7 +3259,7 @@ _0815BAB6:
bl SetBankEnemyShadowSpriteCallback
_0815BAF6:
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815BAFC:
add sp, 0x10
pop {r3,r4}
@@ -3279,7 +3279,7 @@ c3_80DFBE4: @ 815BB18
ldr r4, =gBattleAnimArgs
ldr r3, =gSprites
ldr r2, =gBankSpriteIds
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
ldrb r1, [r1]
adds r1, r2
ldrb r2, [r1]
@@ -3292,7 +3292,7 @@ c3_80DFBE4: @ 815BB18
lsls r1, 29
lsrs r1, 31
strh r1, [r4, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -3305,14 +3305,14 @@ sub_815BB58: @ 815BB58
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
ldrb r1, [r1]
movs r2, 0x1
bl sub_805E448
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -3361,11 +3361,11 @@ _0815BBC8:
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -3373,7 +3373,7 @@ _0815BBC8:
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815BC02:
mov r0, sp
bl sub_80A6B30
@@ -3390,7 +3390,7 @@ _0815BC02:
b _0815BC5C
.pool
_0815BC34:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3551,7 +3551,7 @@ _0815BD8E:
strh r0, [r1, 0x8]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -3571,12 +3571,12 @@ _0815BDA6:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815BDC8:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
@@ -3589,7 +3589,7 @@ _0815BDC8:
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815BDF2:
add sp, 0x10
pop {r4}
@@ -3621,7 +3621,7 @@ sub_815BE04: @ 815BE04
lsls r0, 16
lsrs r5, r0, 16
_0815BE2E:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A5C6C
@@ -3870,7 +3870,7 @@ sub_815BFF4: @ 815BFF4
adds r0, r5
bl DestroySprite
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815C040:
pop {r4-r6}
pop {r0}
@@ -3966,11 +3966,11 @@ _0815C0EC:
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
bl IsContest
lsls r0, 24
cmp r0, 0
@@ -3978,7 +3978,7 @@ _0815C0EC:
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815C124:
mov r0, sp
bl sub_80A6B30
@@ -3996,7 +3996,7 @@ _0815C124:
b _0815C1CA
.pool
_0815C15C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankIdentity
lsls r0, 24
@@ -4085,7 +4085,7 @@ _0815C224:
adds r5, r0, r1
movs r0, 0
strh r0, [r5, 0xE]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4229,12 +4229,12 @@ _0815C34A:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0815C36C:
movs r0, 0x1
movs r1, 0x4
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
ldr r0, =gBattle_BG1_X
movs r1, 0
strh r1, [r0]
@@ -4247,7 +4247,7 @@ _0815C36C:
movs r1, 0
bl SetGpuReg
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815C396:
add sp, 0x10
pop {r4-r6}
@@ -4291,7 +4291,7 @@ _0815C3E8:
cmp r0, 0
bne _0815C3FA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815C3FA:
pop {r4,r5}
pop {r0}
@@ -4325,7 +4325,7 @@ _0815C41E:
ldrh r0, [r4, 0x32]
adds r0, 0x80
strh r0, [r4, 0x32]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4354,7 +4354,7 @@ _0815C456:
cmp r0, 0x40
ble _0815C472
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815C472:
pop {r4}
pop {r0}
@@ -4377,7 +4377,7 @@ sub_815C478: @ 815C478
cmp r0, 0
bne _0815C4A4
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0815C538
.pool
_0815C4A4:
@@ -4427,11 +4427,11 @@ _0815C4BC:
ldrsh r0, [r5, r1]
cmp r0, 0
bne _0815C508
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815C50A
.pool
_0815C508:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815C50A:
ldrb r0, [r0]
bl GetBankSide
@@ -4632,7 +4632,7 @@ _0815C698:
lsrs r0, 24
bl sub_80A7344
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815C6A8:
pop {r4-r6}
pop {r0}
@@ -4643,7 +4643,7 @@ _0815C6A8:
sub_815C6B0: @ 815C6B0
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4683,7 +4683,7 @@ sub_815C700: @ 815C700
ldrh r0, [r4, 0x2E]
adds r0, 0x3
strh r0, [r4, 0x2E]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4700,7 +4700,7 @@ sub_815C700: @ 815C700
cmp r1, 0xF0
ble _0815C732
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815C732:
ldrh r1, [r4, 0x2E]
movs r0, 0xFF
@@ -4720,7 +4720,7 @@ _0815C744:
cmp r1, 0
bge _0815C75C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815C75C:
ldrh r1, [r4, 0x2E]
movs r0, 0xFF
@@ -4909,7 +4909,7 @@ _0815C8C8:
lsrs r0, 24
bl sub_80A7344
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0815C950
_0815C8DA:
ldrh r0, [r7, 0x26]
@@ -4991,7 +4991,7 @@ sub_815C95C: @ 815C95C
ldrsh r0, [r6, r2]
cmp r0, 0
bne _0815C990
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -5070,7 +5070,7 @@ _0815C9FA:
cmp r0, 0
beq _0815CA1A
adds r0, r5, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815CA1A:
pop {r4-r6}
pop {r0}
@@ -5100,11 +5100,11 @@ sub_815CA20: @ 815CA20
mov r8, r0
cmp r1, 0
bne _0815CA5C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815CA5E
.pool
_0815CA5C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815CA5E:
ldrb r0, [r0]
strh r0, [r2, 0x1E]
@@ -5239,7 +5239,7 @@ _0815CB50:
strh r4, [r0, 0x24]
strh r4, [r0, 0x26]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815CB78:
pop {r3}
mov r8, r3
@@ -5379,7 +5379,7 @@ _0815CC7A:
cmp r0, 0x1F
bne _0815CC8E
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815CC8E:
pop {r4}
pop {r0}
@@ -5516,7 +5516,7 @@ _0815CD82:
movs r0, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815CDAA:
pop {r4}
pop {r0}
@@ -5528,7 +5528,7 @@ _0815CDAA:
sub_815CDB4: @ 815CDB4
push {r4,r5,lr}
adds r4, r0, 0
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -5586,14 +5586,14 @@ sub_815CDFC: @ 815CDFC
cmp r0, 0xC3
ble _0815CE48
_0815CE36:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
subs r0, 0x1
b _0815CE52
.pool
_0815CE48:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
adds r0, 0x1
@@ -5654,7 +5654,7 @@ _0815CE98:
cmp r0, r1
bne _0815CEC8
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815CEC8:
pop {r4}
pop {r0}
@@ -5681,7 +5681,7 @@ sub_815CED8: @ 815CED8
beq _0815CF18
movs r0, 0x1
str r0, [sp, 0x1C]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldr r1, [r0, 0x10]
@@ -5693,7 +5693,7 @@ sub_815CED8: @ 815CED8
b _0815D058
.pool
_0815CF18:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5702,7 +5702,7 @@ _0815CF18:
movs r0, 0
str r0, [sp, 0x1C]
ldr r6, =gBattlePartyID
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5770,7 +5770,7 @@ _0815CFC4:
movs r2, 0x1
str r2, [sp, 0x1C]
ldr r6, =gBattlePartyID
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
lsls r0, 1
adds r0, r6
@@ -5834,12 +5834,12 @@ _0815D056:
_0815D058:
mov r10, r3
_0815D05A:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A8328
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -5864,7 +5864,7 @@ _0815D05A:
str r3, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
str r0, [sp, 0x10]
movs r0, 0x1
@@ -6072,11 +6072,11 @@ sub_815D240: @ 815D240
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815D26C
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815D26E
.pool
_0815D26C:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815D26E:
ldrb r5, [r0]
movs r6, 0
@@ -6123,7 +6123,7 @@ _0815D2B4:
lsrs r0, 24
strh r0, [r4, 0x26]
adds r0, r5, 0
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6218,7 +6218,7 @@ sub_815D398: @ 815D398
ldr r1, =gTasks
adds r6, r0, r1
ldrb r0, [r6, 0x12]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -6536,7 +6536,7 @@ _0815D62E:
b _0815D63C
_0815D636:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815D63C:
add sp, 0x14
pop {r3-r5}
@@ -6643,7 +6643,7 @@ _0815D708:
cmp r0, 0
bne _0815D720
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815D720:
pop {r4-r6}
pop {r0}
@@ -6827,7 +6827,7 @@ sub_815D870: @ 815D870
ldrb r1, [r6]
adds r0, r5, 0
bl StartSpriteAffineAnim
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6837,7 +6837,7 @@ sub_815D870: @ 815D870
negs r0, r0
strh r0, [r6, 0x2]
_0815D896:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -7238,7 +7238,7 @@ sub_815DB90: @ 815DB90
mov r1, r8
adds r4, r0, r1
ldr r1, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
@@ -7361,7 +7361,7 @@ sub_815DCA4: @ 815DCA4
cmp r0, 0
bne _0815DCC4
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815DCC4:
movs r0, 0
strh r0, [r5, 0x8]
@@ -7373,11 +7373,11 @@ _0815DCC4:
ldrsh r0, [r4, r1]
cmp r0, 0
bne _0815DCE8
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815DCEA
.pool
_0815DCE8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815DCEA:
ldrb r4, [r0]
adds r0, r4, 0
@@ -7485,7 +7485,7 @@ _0815DDCC:
cmp r0, 0
bne _0815DDDA
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815DDDA:
pop {r4,r5}
pop {r0}
@@ -7731,7 +7731,7 @@ _0815DFB4:
movs r3, 0
bl BlendPalette
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815DFC6:
pop {r4,r5}
pop {r0}
@@ -7746,7 +7746,7 @@ sub_815DFCC: @ 815DFCC
lsrs r0, 24
movs r2, 0xD0
lsls r2, 1
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
ldrb r3, [r1]
ldr r1, =gBattleAnimArgs
ldrb r1, [r1]
@@ -7775,7 +7775,7 @@ sub_815DFCC: @ 815DFCC
sub_815E01C: @ 815E01C
push {r4-r6,lr}
adds r5, r0, 0
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
bl GetBankSide
lsls r0, 24
@@ -7837,7 +7837,7 @@ _0815E09A:
lsls r0, 2
strh r0, [r5, 0x2E]
_0815E0A8:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -7887,7 +7887,7 @@ sub_815E0DC: @ 815E0DC
cmp r0, 0xE
bne _0815E110
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815E110:
pop {r0}
bx r0
@@ -7923,7 +7923,7 @@ _0815E144:
strh r0, [r6, 0x14]
strh r1, [r6, 0x16]
_0815E14E:
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
bl GetBankSide
lsls r0, 24
@@ -7968,7 +7968,7 @@ _0815E1A8:
subs r0, r4, r0
_0815E1AC:
strh r0, [r6, 0x1E]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x3
bl sub_80A5C6C
@@ -7987,7 +7987,7 @@ _0815E1D0:
asrs r0, 2
subs r0, r4, r0
strh r0, [r6, 0x20]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -8163,7 +8163,7 @@ _0815E330:
cmp r0, 0
bne _0815E33E
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815E33E:
add sp, 0x14
pop {r3}
@@ -8319,7 +8319,7 @@ sub_815E444: @ 815E444
strh r0, [r4, 0x36]
ldrh r0, [r1, 0x8]
strh r0, [r4, 0x2E]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A70C0
@@ -8345,7 +8345,7 @@ sub_815E47C: @ 815E47C
lsls r0, 3
ldr r1, =gTasks
adds r7, r0, r1
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8360,7 +8360,7 @@ sub_815E47C: @ 815E47C
lsls r0, 24
lsrs r0, 24
strh r0, [r7, 0x20]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
mov r8, r0
ldrb r0, [r0]
movs r1, 0x2
@@ -8471,7 +8471,7 @@ _0815E596:
.pool
_0815E5B8:
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815E5BE:
pop {r3-r5}
mov r8, r3
@@ -8609,7 +8609,7 @@ _0815E6BE:
.pool
_0815E6CC:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815E6D2:
pop {r4,r5}
pop {r0}
@@ -8626,11 +8626,11 @@ sub_815E6D8: @ 815E6D8
adds r6, r0, 0
cmp r1, 0
bne _0815E6F4
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815E6F6
.pool
_0815E6F4:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815E6F6:
ldrb r5, [r0]
ldrh r2, [r4, 0x4]
@@ -8798,7 +8798,7 @@ _0815E802:
b _0815E83C
_0815E836:
adds r0, r2, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815E83C:
pop {r0}
bx r0
@@ -8815,7 +8815,7 @@ sub_815E840: @ 815E840
cmp r0, 0
bne _0815E85C
adds r0, r1, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0815E884
.pool
_0815E85C:
@@ -8926,7 +8926,7 @@ _0815E8F2:
.pool
_0815E948:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815E94E:
pop {r4-r6}
pop {r0}
@@ -8942,11 +8942,11 @@ sub_815E954: @ 815E954
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0815E970
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
b _0815E972
.pool
_0815E970:
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
_0815E972:
ldrb r0, [r4]
movs r1, 0x2
@@ -9023,7 +9023,7 @@ sub_815E9BC: @ 815E9BC
cmp r0, 0
bne _0815EA10
adds r0, r3, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815EA10:
pop {r0}
bx r0
@@ -9308,7 +9308,7 @@ _0815EC1E:
cmp r0, 0x5
bne _0815EC40
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815EC40:
pop {r4}
pop {r0}
@@ -9339,7 +9339,7 @@ sub_815EC48: @ 815EC48
lsrs r7, r0, 24
cmp r7, 0x1
bne _0815ECB4
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -9363,7 +9363,7 @@ _0815ECAC:
b _0815ECD2
.pool
_0815ECB4:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -9586,7 +9586,7 @@ _0815EE60:
movs r1, 0
strh r1, [r0, 0x24]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815EE78:
pop {r4}
pop {r0}
@@ -9606,11 +9606,11 @@ sub_815EE84: @ 815EE84
adds r0, r4, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _0815EEAA
.pool
_0815EEA8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_0815EEAA:
ldrb r0, [r0]
strh r0, [r4, 0x3C]
@@ -9915,7 +9915,7 @@ _0815F0F8:
b _0815F106
_0815F100:
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815F106:
pop {r4,r5}
pop {r0}
@@ -9976,7 +9976,7 @@ _0815F16A:
cmp r1, r0
bne _0815F17C
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815F17C:
ldrh r0, [r4, 0x38]
adds r0, 0x1
@@ -9991,7 +9991,7 @@ _0815F17C:
sub_815F18C: @ 815F18C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -10126,7 +10126,7 @@ _0815F2A0:
b _0815F310
.pool
_0815F2AC:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl refresh_graphics_maybe
@@ -10271,7 +10271,7 @@ _0815F3CE:
bne _0815F482
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10341,14 +10341,14 @@ _0815F460:
bne _0815F482
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x7D
bl PlaySE12WithPanning
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815F482:
pop {r4-r6}
pop {r0}
@@ -10360,7 +10360,7 @@ _0815F482:
sub_815F48C: @ 815F48C
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -10384,7 +10384,7 @@ _0815F4B8:
strb r0, [r1]
ldr r4, =0x0000ffa0
_0815F4C8:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x3
bl sub_80A5C6C
@@ -10431,7 +10431,7 @@ _0815F520:
cmp r0, 0
blt _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10460,7 +10460,7 @@ _0815F544:
cmp r1, 0x7F
ble _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10502,7 +10502,7 @@ _0815F5B4:
cmp r0, 0x8
ble _0815F61A
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
@@ -10543,7 +10543,7 @@ _0815F5E0:
cmp r0, 0x7
bne _0815F61A
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815F61A:
pop {r4,r5}
pop {r0}
@@ -10589,7 +10589,7 @@ sub_815F620: @ 815F620
bl obj_delete_but_dont_free_vram
_0815F66E:
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0815F780
.pool
_0815F67C:
@@ -10639,7 +10639,7 @@ _0815F67C:
strh r1, [r0, 0x8]
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -10742,7 +10742,7 @@ sub_815F79C: @ 815F79C
cmp r0, 0
bne _0815F7BA
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815F7BA:
pop {r0}
bx r0
@@ -10764,7 +10764,7 @@ sub_815F7C4: @ 815F7C4
strh r0, [r4, 0x30]
ldr r0, =gBattleSpritesDataPtr
ldr r1, [r0]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
ldr r1, [r1]
lsls r0, 2
@@ -10869,7 +10869,7 @@ sub_815F8A0: @ 815F8A0
ldr r3, =gBattleAnimArgs
movs r2, 0
strh r2, [r3, 0xE]
- ldr r1, =gHappinessMoveAnim
+ ldr r1, =gAnimFriendship
ldrb r0, [r1]
ldrb r1, [r1]
adds r0, r1, 0
@@ -10899,7 +10899,7 @@ _0815F8D4:
strh r0, [r3, 0xE]
_0815F8E0:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -10958,7 +10958,7 @@ _0815F940:
ldrh r1, [r6, 0xA]
adds r0, r1
strh r0, [r6, 0xA]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11028,7 +11028,7 @@ _0815F9F4:
lsls r0, 24
cmp r0, 0
beq _0815FA28
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldr r2, [r0, 0x8]
@@ -11036,7 +11036,7 @@ _0815F9F4:
ldr r3, [r0, 0xC]
mov r9, r3
ldrh r6, [r0]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_80A82E4
lsls r0, 24
@@ -11045,7 +11045,7 @@ _0815F9F4:
b _0815FB4E
.pool
_0815FA28:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
bl GetBankSide
lsls r0, 24
@@ -11177,7 +11177,7 @@ _0815FB2E:
_0815FB4E:
ldr r5, =0x0000ffe0
_0815FB50:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_80A5C6C
@@ -11191,7 +11191,7 @@ _0815FB50:
str r4, [sp, 0x8]
mov r0, r9
str r0, [sp, 0xC]
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
str r0, [sp, 0x10]
movs r0, 0
@@ -11253,7 +11253,7 @@ _0815FBE8:
ldrh r2, [r6, 0xA]
adds r0, r2
strh r0, [r6, 0xA]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11307,7 +11307,7 @@ _0815FC56:
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0815FCD6
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11315,7 +11315,7 @@ _0815FC56:
bne _0815FCB4
lsls r4, r5, 16
asrs r4, 16
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_80A5C6C
@@ -11328,7 +11328,7 @@ _0815FC56:
_0815FCB4:
lsls r4, r5, 16
asrs r4, 16
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_80A5C6C
@@ -11383,7 +11383,7 @@ _0815FD08:
ldr r5, =gSprites
adds r0, r5
bl sub_80A8610
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11440,7 +11440,7 @@ _0815FD8C:
ldrh r3, [r2, 0xA]
adds r0, r3
strh r0, [r2, 0xA]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r10, r0
ldrb r0, [r0]
str r2, [sp, 0x18]
@@ -11524,7 +11524,7 @@ _0815FE44:
cmp r0, 0
bne _0815FE68
mov r0, r8
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815FE68:
add sp, 0x1C
pop {r3-r5}
@@ -11557,13 +11557,13 @@ _0815FE92:
cmp r1, r0
bne _0815FF2C
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
movs r0, 0x7A
bl PlaySE12WithPanning
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0x1
bl sub_80A5C6C
@@ -11583,7 +11583,7 @@ _0815FE92:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11652,7 +11652,7 @@ _0815FF6E:
ldrh r1, [r4, 0x32]
adds r0, r1
strh r0, [r4, 0x32]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -11683,7 +11683,7 @@ _0815FFA8:
cmp r0, 0x2
bne _0815FFBC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_0815FFBC:
pop {r4}
pop {r0}
@@ -11721,14 +11721,14 @@ _0815FFF4:
.4byte _081600CC
.4byte _08160132
_08160008:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
movs r1, 0
bl sub_80A5C6C
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_80A5C6C
@@ -11756,7 +11756,7 @@ _0816003E:
.pool
_08160058:
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11812,7 +11812,7 @@ _081600B4:
b _08160150
_081600CC:
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11862,7 +11862,7 @@ _0816012A:
b _08160150
_08160132:
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
@@ -11874,7 +11874,7 @@ _08160132:
movs r1, 0
strh r1, [r0, 0x24]
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08160150:
pop {r4,r5}
pop {r0}
@@ -11898,7 +11898,7 @@ sub_8160164: @ 8160164
lsrs r0, 24
movs r5, 0
strh r0, [r4, 0xE]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12061,7 +12061,7 @@ _081602C4:
.pool
_081602D4:
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081602DA:
pop {r4-r6}
pop {r0}
@@ -12072,7 +12072,7 @@ _081602DA:
sub_81602E0: @ 81602E0
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12100,7 +12100,7 @@ sub_81602E0: @ 81602E0
cmp r0, 0
beq _08160326
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08160326:
ldrh r0, [r4, 0x32]
adds r0, 0x1
@@ -12115,7 +12115,7 @@ _08160326:
sub_8160338: @ 8160338
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -12166,7 +12166,7 @@ _08160396:
sub_81603A8: @ 81603A8
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -12377,7 +12377,7 @@ _08160536:
strh r0, [r2, 0xE]
_08160538:
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
thumb_func_end sub_81604F0
@@ -12477,7 +12477,7 @@ _08160600:
cmp r0, 0
bne _08160618
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08160618:
pop {r4-r6}
pop {r0}
diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s
index dd992a8cd..8de82c629 100644
--- a/asm/battle_anim_8170478.s
+++ b/asm/battle_anim_8170478.s
@@ -16,7 +16,7 @@ sub_8170478: @ 8170478
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r4, [r0]
ldr r0, =gBattle_WIN0H
movs r1, 0
@@ -43,19 +43,19 @@ sub_8170478: @ 8170478
movs r0, 0x1
movs r1, 0x4
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x1
movs r1, 0x3
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
ldr r0, =gHealthBoxesIds
adds r4, r0
ldrb r0, [r4]
@@ -212,7 +212,7 @@ sub_8170660: @ 8170660
push {r7}
lsls r0, 24
lsrs r7, r0, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
mov r8, r0
ldr r1, =gTasks
@@ -335,7 +335,7 @@ _08170708:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_0817076C:
movs r0, 0
bl GetGpuReg
@@ -372,7 +372,7 @@ _0817076C:
movs r0, 0x1
movs r1, 0x1
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
ldr r0, =gHealthBoxesIds
add r0, r8
ldrb r0, [r0]
@@ -412,7 +412,7 @@ _0817076C:
orrs r2, r5
strb r2, [r0, 0x5]
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08170814:
pop {r3}
mov r8, r3
@@ -540,12 +540,12 @@ sub_8170920: @ 8170920
lsrs r4, 24
mov r1, sp
adds r1, 0x1
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r2, [r0]
mov r0, sp
bl sub_8170834
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
add sp, 0x4
pop {r4}
pop {r0}
@@ -628,11 +628,11 @@ sub_81709EC: @ 81709EC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl sub_817094C
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -752,7 +752,7 @@ _08170AD6:
cmp r0, 0
bne _08170AF8
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08170AF8:
pop {r4-r6}
pop {r0}
@@ -766,7 +766,7 @@ sub_8170B04: @ 8170B04
lsls r0, 24
lsrs r6, r0, 24
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r5, [r0]
@@ -834,7 +834,7 @@ _08170B84:
orrs r1, r2
strb r1, [r0]
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08170BA4:
pop {r4-r6}
pop {r0}
@@ -852,7 +852,7 @@ sub_8170BB0: @ 8170BB0
lsls r0, 24
lsrs r5, r0, 24
ldr r1, =gBankSpriteIds
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
adds r1, r0, r1
ldrb r1, [r1]
@@ -904,7 +904,7 @@ _08170C08:
b _08170CEE
.pool
_08170C44:
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0
bl sub_80A5C6C
@@ -979,7 +979,7 @@ _08170CC4:
cmp r0, 0
bne _08170CEE
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08170CEE:
add sp, 0xC
pop {r3,r4}
@@ -1003,7 +1003,7 @@ sub_8170CFC: @ 8170CFC
lsrs r0, 24
bl sub_8076A78
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -1023,7 +1023,7 @@ sub_8170D24: @ 8170D24
lsrs r0, 24
bl sub_8076AE8
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -1051,7 +1051,7 @@ _08170D70:
_08170D74:
strh r0, [r1, 0xE]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -1162,7 +1162,7 @@ sub_8170E04: @ 8170E04
adds r6, r4, r1
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
mov r8, r2
ldrb r0, [r2]
movs r1, 0
@@ -1246,7 +1246,7 @@ sub_8170EF0: @ 8170EF0
cmp r1, r0
bne _08170F1A
adds r0, r3, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08170F1A:
pop {r0}
bx r0
@@ -1313,7 +1313,7 @@ _08170F54:
adds r6, r4, r0
movs r0, 0x22
strh r0, [r6, 0x2E]
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
mov r8, r1
ldrb r0, [r1]
movs r1, 0
@@ -1550,7 +1550,7 @@ _08171188:
movs r2, 0x1
movs r3, 0x1C
bl sub_8171D98
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r1, [r0]
movs r0, 0
movs r2, 0xE
@@ -1585,7 +1585,7 @@ sub_81711E8: @ 81711E8
str r0, [r4, 0x1C]
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -1607,7 +1607,7 @@ sub_8171240: @ 8171240
push {r4-r7,lr}
adds r7, r0, 0
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r0, r1
ldrb r4, [r0]
@@ -2333,7 +2333,7 @@ sub_81717F8: @ 81717F8
push {r7}
sub sp, 0x4
adds r6, r0, 0
- ldr r7, =gAnimationBankTarget
+ ldr r7, =gAnimBankTarget
ldrh r0, [r6, 0x36]
adds r0, 0x1
movs r1, 0
@@ -2379,7 +2379,7 @@ _0817185A:
movs r1, 0
strb r1, [r0]
movs r0, 0x1
- bl sub_8072A88
+ bl UpdateOamPriorityInAllHealthboxes
bl m4aMPlayAllStop
ldr r0, =0x00000213
bl PlaySE
@@ -2715,7 +2715,7 @@ sub_8171AE4: @ 8171AE4
movs r2, 0x1
movs r3, 0x1C
bl sub_8171D98
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0xE
@@ -2724,7 +2724,7 @@ sub_8171AE4: @ 8171AE4
_08171B36:
ldr r6, =gSprites
ldr r5, =gBankSpriteIds
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
@@ -2792,7 +2792,7 @@ sub_8171BAC: @ 8171BAC
_08171BCA:
ldr r4, =gSprites
ldr r3, =gBankSpriteIds
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2841,7 +2841,7 @@ _08171C24:
beq _08171C8A
ldr r4, =gSprites
ldr r3, =gBankSpriteIds
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -2879,7 +2879,7 @@ _08171C24:
ldr r0, =gDoingBattleAnim
strb r6, [r0]
movs r0, 0x1
- bl sub_8072A88
+ bl UpdateOamPriorityInAllHealthboxes
_08171C8A:
pop {r4-r7}
pop {r0}
@@ -2974,7 +2974,7 @@ _08171D3E:
movs r0, 0
strb r0, [r1]
movs r0, 0x1
- bl sub_8072A88
+ bl UpdateOamPriorityInAllHealthboxes
_08171D52:
pop {r4}
pop {r0}
@@ -4730,7 +4730,7 @@ sub_8172BF0: @ 8172BF0
movs r0, 0
mov r8, r0
ldr r0, =gBankSpriteIds
- ldr r3, =gAnimationBankAttacker
+ ldr r3, =gAnimBankAttacker
ldrb r2, [r3]
adds r0, r2, r0
ldrb r6, [r0]
@@ -4877,7 +4877,7 @@ _08172D28:
adds r0, r1
ldrb r1, [r0, 0x8]
strh r1, [r0, 0x8]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -4914,7 +4914,7 @@ _08172D7E:
beq _08172D8A
_08172D84:
adds r0, r7, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08172D8A:
pop {r3}
mov r8, r3
@@ -4949,9 +4949,9 @@ _08172DC0:
beq _08172E4E
b _08172E84
_08172DC6:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -5010,7 +5010,7 @@ _08172E14:
b _08172E84
_08172E4E:
ldr r1, =gBankSpriteIds
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
@@ -5032,7 +5032,7 @@ _08172E4E:
ldrb r0, [r4]
bl sub_805E974
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08172E84:
pop {r4,r5}
pop {r0}
@@ -5048,7 +5048,7 @@ sub_8172E9C: @ 8172E9C
ldr r3, =gBattleAnimArgs
ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
ldrb r1, [r1]
ldr r2, [r2]
lsls r1, 2
@@ -5057,7 +5057,7 @@ sub_8172E9C: @ 8172E9C
lsls r1, 29
lsrs r1, 31
strh r1, [r3, 0xE]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -5068,11 +5068,11 @@ sub_8172ED0: @ 8172ED0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, =gAnimationBankTarget
+ ldr r2, =gAnimBankTarget
ldr r1, =gEffectBank
ldrb r1, [r1]
strb r1, [r2]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -5108,7 +5108,7 @@ sub_8172EF0: @ 8172EF0
bl GetMonData
adds r4, r0, 0
adds r0, r6, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _08172FC8
@@ -5134,9 +5134,9 @@ _08172F4E:
lsrs r0, 16
cmp r0, r7
bne _08172F6E
- ldr r0, =gUnknown_0852528C
+ ldr r0, =gBattleAnimPicTable + 0x748
bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_08525B94
+ ldr r0, =gBattleAnimPaletteTable + 0x748
bl LoadCompressedObjectPaletteUsingHeap
_08172F6E:
ldr r5, =sub_8172FEC
@@ -5533,14 +5533,14 @@ sub_81732B0: @ 81732B0
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, =gUnknown_085253AC
+ ldr r0, =gBattleAnimPicTable + 0x868
bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_08525CB4
+ ldr r0, =gBattleAnimPaletteTable + 0x868
bl LoadCompressedObjectPaletteUsingHeap
ldr r0, =0x0000281d
bl IndexOfSpritePaletteTag
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -5559,7 +5559,7 @@ sub_81732E4: @ 81732E4
adds r0, r5, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -5603,7 +5603,7 @@ sub_817330C: @ 817330C
bl sub_80A68D4
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5628,7 +5628,7 @@ sub_817339C: @ 817339C
adds r3, r0, 0
ldr r2, =gSprites
ldr r1, =gBankSpriteIds
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
@@ -5679,7 +5679,7 @@ sub_8173400: @ 8173400
adds r4, r0, 0
ldr r5, =gSprites
ldr r3, =gBankSpriteIds
- ldr r2, =gAnimationBankAttacker
+ ldr r2, =gAnimBankAttacker
ldrb r0, [r2]
adds r0, r3
ldrb r1, [r0]
@@ -5708,7 +5708,7 @@ sub_8173400: @ 8173400
movs r1, 0
bl StartSpriteAnim
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_08173448:
pop {r4,r5}
pop {r0}
@@ -5733,7 +5733,7 @@ sub_817345C: @ 817345C
_08173478:
movs r0, 0
bl GetBankByIdentity
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
strb r0, [r1]
movs r0, 0x1
b _08173498
@@ -5741,16 +5741,16 @@ _08173478:
_0817348C:
movs r0, 0x1
bl GetBankByIdentity
- ldr r1, =gAnimationBankAttacker
+ ldr r1, =gAnimBankAttacker
strb r0, [r1]
movs r0, 0
_08173498:
bl GetBankByIdentity
- ldr r1, =gAnimationBankTarget
+ ldr r1, =gAnimBankTarget
strb r0, [r1]
_081734A0:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -5801,7 +5801,7 @@ _08173508:
_0817350C:
strh r0, [r1]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -5812,18 +5812,18 @@ sub_817351C: @ 817351C
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, =gAnimationBankAttacker
+ ldr r3, =gAnimBankAttacker
ldr r1, =gBattleSpritesDataPtr
ldr r2, [r1]
ldr r1, [r2, 0x8]
ldrh r1, [r1]
strb r1, [r3]
- ldr r3, =gAnimationBankTarget
+ ldr r3, =gAnimBankTarget
ldr r1, [r2, 0x8]
ldrh r1, [r1]
lsrs r1, 8
strb r1, [r3]
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
diff --git a/asm/battle_anim_sound_tasks.s b/asm/battle_anim_sound_tasks.s
index 698230802..4bfd7ae68 100644
--- a/asm/battle_anim_sound_tasks.s
+++ b/asm/battle_anim_sound_tasks.s
@@ -22,12 +22,12 @@ sub_8158B30: @ 8158B30
strh r0, [r6, 0xA]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
@@ -36,7 +36,7 @@ sub_8158B30: @ 8158B30
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
- bl sub_80A5314
+ bl CalculatePanIncrement
strh r4, [r6, 0xC]
strh r5, [r6, 0xE]
lsls r0, 24
@@ -128,7 +128,7 @@ sub_8158C04: @ 8158C04
movs r0, 0
strh r0, [r4, 0x1C]
movs r0, 0x3F
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
ldrh r0, [r4, 0xA]
lsls r1, 24
@@ -142,7 +142,7 @@ sub_8158C04: @ 8158C04
cmp r0, 0x2
bne _08158C4C
adds r0, r5, 0
- bl move_anim_related_task_del
+ bl DestroyAnimSoundTask
_08158C4C:
pop {r4,r5}
pop {r0}
@@ -175,14 +175,14 @@ mas_80DCF38: @ 8158C58
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
@@ -193,7 +193,7 @@ mas_80DCF38: @ 8158C58
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
- bl sub_80A5314
+ bl CalculatePanIncrement
ldr r2, =gTasks
mov r3, r8
lsls r1, r3, 2
@@ -264,7 +264,7 @@ sub_8158D08: @ 8158D08
cmp r0, 0
bne _08158D50
adds r0, r5, 0
- bl move_anim_related_task_del
+ bl DestroyAnimSoundTask
b _08158D82
.pool
_08158D50:
@@ -307,7 +307,7 @@ sub_8158D8C: @ 8158D8C
movs r4, 0
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r6, r0, 24
bl IsContest
@@ -319,7 +319,7 @@ sub_8158D8C: @ 8158D8C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08158DC8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r4, [r0]
@@ -327,7 +327,7 @@ sub_8158D8C: @ 8158D8C
.pool
_08158DC8:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08158E76
_08158DD0:
ldr r0, =gBattleAnimArgs
@@ -336,25 +336,25 @@ _08158DD0:
adds r2, r0, 0
cmp r1, 0
bne _08158DEC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r4, [r0]
b _08158E12
.pool
_08158DEC:
cmp r1, 0x1
bne _08158DFC
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r4, [r0]
b _08158E12
.pool
_08158DFC:
cmp r1, 0x2
bne _08158E08
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08158E0A
.pool
_08158E08:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08158E0A:
ldrb r1, [r0]
movs r0, 0x2
@@ -369,12 +369,12 @@ _08158E12:
bne _08158E38
_08158E1E:
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08158E38
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08158E8C
.pool
_08158E38:
@@ -416,7 +416,7 @@ _08158E76:
bl PlayCry3
_08158E86:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08158E8C:
pop {r4-r6}
pop {r0}
@@ -432,7 +432,7 @@ sub_8158E9C: @ 8158E9C
movs r4, 0
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
@@ -444,7 +444,7 @@ sub_8158E9C: @ 8158E9C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08158ED8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r4, [r0]
@@ -452,7 +452,7 @@ sub_8158E9C: @ 8158E9C
.pool
_08158ED8:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08158F86
_08158EE0:
ldr r0, =gBattleAnimArgs
@@ -461,25 +461,25 @@ _08158EE0:
adds r2, r0, 0
cmp r1, 0
bne _08158EFC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r4, [r0]
b _08158F22
.pool
_08158EFC:
cmp r1, 0x1
bne _08158F0C
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r4, [r0]
b _08158F22
.pool
_08158F0C:
cmp r1, 0x2
bne _08158F18
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _08158F1A
.pool
_08158F18:
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_08158F1A:
ldrb r1, [r0]
movs r0, 0x2
@@ -494,12 +494,12 @@ _08158F22:
bne _08158F48
_08158F2E:
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _08158F48
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _08158FEE
.pool
_08158F48:
@@ -571,7 +571,7 @@ _08158FD0:
.pool
_08158FE8:
adds r0, r6, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08158FEE:
pop {r4-r6}
pop {r0}
@@ -620,7 +620,7 @@ _08159028:
movs r2, 0xA
bl PlayCry3
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _0815906A
_0815904E:
bl IsCryPlaying
@@ -633,7 +633,7 @@ _0815904E:
movs r2, 0x8
bl PlayCry3
mov r0, r9
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815906A:
pop {r3,r4}
mov r8, r3
@@ -669,7 +669,7 @@ _081590A0:
cmp r0, 0
bne _081590B0
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_081590B0:
pop {r4}
pop {r0}
@@ -691,21 +691,21 @@ sub_81590B8: @ 81590B8
strh r1, [r0, 0x1C]
movs r0, 0x40
negs r0, r0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
lsls r0, 24
cmp r0, 0
beq _081590F8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
b _08159102
.pool
_081590F8:
- ldr r1, =gUnknown_02038438
- ldr r0, =gAnimationBankAttacker
+ ldr r1, =gAnimSpeciesByBanks
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
@@ -728,7 +728,7 @@ _08159102:
.pool
_08159130:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08159136:
pop {r4,r5}
pop {r0}
@@ -829,7 +829,7 @@ _081591F2:
bl PlayCry3
_081591FE:
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_08159204:
pop {r3}
mov r8, r3
@@ -849,14 +849,14 @@ sub_8159210: @ 8159210
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r5, 0
bl PlaySE1WithPanning
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -874,14 +874,14 @@ sub_8159244: @ 8159244
ldrb r0, [r0, 0x2]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r1, r0, 0
lsls r1, 24
asrs r1, 24
adds r0, r5, 0
bl PlaySE2WithPanning
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4,r5}
pop {r0}
bx r0
@@ -906,14 +906,14 @@ sub_8159278: @ 8159278
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
lsls r5, 24
asrs r5, 24
adds r0, r5, 0
- bl BattleAnimGetPanControl
+ bl BattleAnimAdjustPanning
adds r5, r0, 0
lsls r4, 24
asrs r4, 24
@@ -924,7 +924,7 @@ sub_8159278: @ 8159278
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
- bl sub_80A5314
+ bl CalculatePanIncrement
ldr r2, =gTasks
mov r3, r8
lsls r1, r3, 2
@@ -995,7 +995,7 @@ _08159342:
cmp r1, r0
bne _0815935A
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_0815935A:
pop {r4,r5}
pop {r0}
diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s
index bf350a8bc..d4e248d8c 100644
--- a/asm/battle_controller_linkopponent.s
+++ b/asm/battle_controller_linkopponent.s
@@ -276,7 +276,7 @@ _080645CA:
ldrb r1, [r7]
movs r0, 0x2
eors r0, r1
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _0806469C
@@ -985,7 +985,7 @@ sub_8064BC0: @ 8064BC0
adds r0, r5
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _08064C0C
.pool
_08064C08:
@@ -1572,7 +1572,7 @@ _0806513A:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl LinkOpponentBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -4721,7 +4721,7 @@ _08066D32:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
@@ -4729,7 +4729,7 @@ _08066D32:
ldrb r0, [r1]
mov r1, r8
strb r0, [r1]
- ldr r3, =gMovePowerMoveAnim
+ ldr r3, =gAnimMovePower
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4743,7 +4743,7 @@ _08066D32:
lsls r0, 8
orrs r2, r0
strh r2, [r3]
- ldr r3, =gMoveDmgMoveAnim
+ ldr r3, =gAnimMoveDmg
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4769,7 +4769,7 @@ _08066D32:
lsls r0, 24
orrs r2, r0
str r2, [r3]
- ldr r2, =gHappinessMoveAnim
+ ldr r2, =gAnimFriendship
ldrb r0, [r5]
lsls r0, 9
mov r1, r12
@@ -4791,7 +4791,7 @@ _08066D32:
lsls r0, 8
orrs r2, r0
strh r2, [r4]
- ldr r7, =gDisableStructMoveAnim
+ ldr r7, =gAnimDisableStructPtr
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4928,7 +4928,7 @@ _08066F08:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -5124,7 +5124,7 @@ sub_80670A0: @ 80670A0
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -5171,7 +5171,7 @@ sub_80670A0: @ 80670A0
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0806715A
.pool
_08067130:
@@ -5193,7 +5193,7 @@ _08067130:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
_0806715A:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -5954,7 +5954,7 @@ _080677B4:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -6080,7 +6080,7 @@ sub_80678D0: @ 80678D0
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _08067916
diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s
index b26943cf5..adc5cdb84 100644
--- a/asm/battle_controller_linkpartner.s
+++ b/asm/battle_controller_linkpartner.s
@@ -509,7 +509,7 @@ bx_t4_healthbar_update: @ 814B2D0
adds r0, r6
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _0814B332
.pool
_0814B318:
@@ -1113,7 +1113,7 @@ _0814B872:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl LinkPartnerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -4030,7 +4030,7 @@ _0814D2CE:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
@@ -4038,7 +4038,7 @@ _0814D2CE:
ldrb r0, [r1]
mov r1, r8
strb r0, [r1]
- ldr r3, =gMovePowerMoveAnim
+ ldr r3, =gAnimMovePower
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4052,7 +4052,7 @@ _0814D2CE:
lsls r0, 8
orrs r2, r0
strh r2, [r3]
- ldr r3, =gMoveDmgMoveAnim
+ ldr r3, =gAnimMoveDmg
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4078,7 +4078,7 @@ _0814D2CE:
lsls r0, 24
orrs r2, r0
str r2, [r3]
- ldr r2, =gHappinessMoveAnim
+ ldr r2, =gAnimFriendship
ldrb r0, [r5]
lsls r0, 9
mov r1, r12
@@ -4100,7 +4100,7 @@ _0814D2CE:
lsls r0, 8
orrs r2, r0
strh r2, [r4]
- ldr r7, =gDisableStructMoveAnim
+ ldr r7, =gAnimDisableStructPtr
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -4237,7 +4237,7 @@ _0814D4A4:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4433,7 +4433,7 @@ sub_814D63C: @ 814D63C
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -4480,7 +4480,7 @@ sub_814D63C: @ 814D63C
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0814D6F6
.pool
_0814D6CC:
@@ -4502,7 +4502,7 @@ _0814D6CC:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
_0814D6F6:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -5349,7 +5349,7 @@ _0814DE08:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -5474,7 +5474,7 @@ sub_814DF40: @ 814DF40
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _0814DF86
diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s
index 424e4159d..b66e373ca 100644
--- a/asm/battle_controller_opponent.s
+++ b/asm/battle_controller_opponent.s
@@ -1079,7 +1079,7 @@ sub_805FA70: @ 805FA70
adds r0, r5
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _0805FABC
.pool
_0805FAB8:
@@ -1666,7 +1666,7 @@ _0805FFEA:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl OpponentBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -2607,7 +2607,7 @@ _08060806:
ldrb r1, [r0]
movs r0, 0x1
adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl OpponentBufferExecCompleted
add sp, 0x58
pop {r4-r7}
@@ -4871,13 +4871,13 @@ _08061C8A:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, =gMovePowerMoveAnim
+ ldr r4, =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4891,7 +4891,7 @@ _08061C8A:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, =gMoveDmgMoveAnim
+ ldr r4, =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4917,7 +4917,7 @@ _08061C8A:
lsls r1, 24
orrs r3, r1
str r3, [r4]
- ldr r3, =gHappinessMoveAnim
+ ldr r3, =gAnimFriendship
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
@@ -4939,7 +4939,7 @@ _08061C8A:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, =gDisableStructMoveAnim
+ ldr r3, =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -5068,7 +5068,7 @@ _08061E48:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -5243,7 +5243,7 @@ sub_8061FB8: @ 8061FB8
movs r0, 0x1
movs r1, 0xA
_08061FD6:
- bl EmitCmd_x21
+ bl EmitCmd33
_08061FDA:
bl OpponentBufferExecCompleted
b _08062156
@@ -5347,7 +5347,7 @@ _0806209C:
movs r0, 0x1
movs r1, 0xA
adds r2, r4, 0
- bl EmitCmd_x21
+ bl EmitCmd33
b _08061FDA
.pool
_080620C4:
@@ -5378,7 +5378,7 @@ _080620C6:
movs r0, 0x1
movs r1, 0xA
adds r2, r4, 0
- bl EmitCmd_x21
+ bl EmitCmd33
b _08062152
.pool
_08062108:
@@ -5401,7 +5401,7 @@ _08062108:
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
b _08062152
.pool
_0806213C:
@@ -5413,7 +5413,7 @@ _0806213C:
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
_08062152:
bl OpponentBufferExecCompleted
_08062156:
@@ -5435,7 +5435,7 @@ sub_806215C: @ 806215C
adds r0, 0xC0
ldrb r1, [r0]
movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
+ bl EmitCmd35
bl OpponentBufferExecCompleted
pop {r0}
bx r0
@@ -5550,7 +5550,7 @@ _0806225A:
lsrs r1, 24
movs r0, 0x1
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl OpponentBufferExecCompleted
pop {r4-r7}
pop {r0}
@@ -5574,7 +5574,7 @@ sub_8062294: @ 8062294
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -5621,7 +5621,7 @@ sub_8062294: @ 8062294
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0806234E
.pool
_08062324:
@@ -5643,7 +5643,7 @@ _08062324:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
_0806234E:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -6409,7 +6409,7 @@ _080629B4:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -6535,7 +6535,7 @@ sub_8062AD0: @ 8062AD0
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _08062B16
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 047c62f6b..10b675714 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -226,7 +226,7 @@ _0805764C:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
b _080577C2
_08057658:
movs r0, 0x20
@@ -393,7 +393,7 @@ _080577B2:
movs r1, 0xC
_080577BC:
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
_080577C2:
bl PlayerBufferExecCompleted
b _080577E8
@@ -403,7 +403,7 @@ _080577DC:
ands r0, r2
cmp r0, 0
beq _080577E8
- bl sub_8073314
+ bl SwapHpBarsWithHpText
_080577E8:
pop {r4-r7}
pop {r0}
@@ -518,7 +518,7 @@ _080578A0:
orrs r2, r0
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
@@ -1086,7 +1086,7 @@ _08057E14:
_08057E1C:
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
bl PlayerBufferExecCompleted
b _08057F9E
.pool
@@ -3278,7 +3278,7 @@ bx_t1_healthbar_update: @ 8059130
adds r0, r6
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _08059192
.pool
_08059178:
@@ -3413,7 +3413,7 @@ _080591FE:
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
- bl EmitCmd_x21
+ bl EmitCmd33
strb r5, [r4]
bl IsDoubleBattle
lsls r0, 24
@@ -3557,7 +3557,7 @@ sub_8059330: @ 8059330
negs r0, r0
str r0, [sp]
mov r0, r10
- bl sub_807294C
+ bl SetBattleBarStruct
movs r0, 0x21
bl PlaySE
ldr r0, =sub_8059400
@@ -3686,7 +3686,7 @@ _08059430:
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
- bl EmitCmd_x21
+ bl EmitCmd33
strb r5, [r4]
ldr r0, =sub_8059544
str r0, [r6]
@@ -4059,14 +4059,14 @@ sub_8059828: @ 8059828
ldrb r1, [r0]
ldr r2, =gUnknown_0203CF00
movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
b _0805987A
.pool
_08059870:
movs r0, 0x1
movs r1, 0x6
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
_0805987A:
ldr r1, =gBattleBufferA
ldr r0, =gActiveBank
@@ -4130,7 +4130,7 @@ sub_80598E0: @ 80598E0
ldr r0, =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
+ bl EmitCmd35
bl PlayerBufferExecCompleted
_08059906:
pop {r0}
@@ -4291,14 +4291,14 @@ _08059A2C:
movs r0, 0x1
movs r1, 0xE
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
b _08059A76
.pool
_08059A6C:
movs r0, 0x1
movs r1, 0xD
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
_08059A76:
bl PlayerBufferExecCompleted
_08059A7A:
@@ -4772,7 +4772,7 @@ _08059E4E:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl PlayerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -5713,7 +5713,7 @@ _0805A66A:
ldrb r1, [r0]
movs r0, 0x1
adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl PlayerBufferExecCompleted
add sp, 0x58
pop {r4-r7}
@@ -8134,7 +8134,7 @@ _0805BCBE:
ldrb r0, [r0]
lsls r0, 8
orrs r6, r0
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
mov r8, r0
mov r0, r12
adds r0, 0x3
@@ -8142,7 +8142,7 @@ _0805BCBE:
ldrb r0, [r1]
mov r1, r8
strb r0, [r1]
- ldr r3, =gMovePowerMoveAnim
+ ldr r3, =gAnimMovePower
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -8156,7 +8156,7 @@ _0805BCBE:
lsls r0, 8
orrs r2, r0
strh r2, [r3]
- ldr r3, =gMoveDmgMoveAnim
+ ldr r3, =gAnimMoveDmg
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -8182,7 +8182,7 @@ _0805BCBE:
lsls r0, 24
orrs r2, r0
str r2, [r3]
- ldr r2, =gHappinessMoveAnim
+ ldr r2, =gAnimFriendship
ldrb r0, [r5]
lsls r0, 9
mov r1, r12
@@ -8204,7 +8204,7 @@ _0805BCBE:
lsls r0, 8
orrs r2, r0
strh r2, [r4]
- ldr r7, =gDisableStructMoveAnim
+ ldr r7, =gAnimDisableStructPtr
ldrb r1, [r5]
lsls r1, 9
mov r0, r12
@@ -8341,7 +8341,7 @@ _0805BE94:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -8658,7 +8658,7 @@ sub_805C158: @ 805C158
lsrs r2, 16
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
bl PlayerBufferExecCompleted
_0805C194:
pop {r0}
@@ -8826,7 +8826,7 @@ _0805C2C8:
lsrs r1, 24
movs r0, 0x1
mov r2, r12
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl PlayerBufferExecCompleted
b _0805C3BC
.pool
@@ -8936,7 +8936,7 @@ sub_805C410: @ 805C410
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -8992,7 +8992,7 @@ _0805C44A:
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0805C4F2
.pool
_0805C4B4:
@@ -9016,14 +9016,14 @@ _0805C4B4:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
mov r2, r9
ldrb r0, [r2]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
_0805C4F2:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -9067,7 +9067,7 @@ sub_805C528: @ 805C528
.pool
_0805C560:
movs r0, 0x1
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
@@ -9378,7 +9378,7 @@ sub_805C80C: @ 805C80C
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl PlayerBufferExecCompleted
pop {r0}
bx r0
@@ -9390,7 +9390,7 @@ sub_805C820: @ 805C820
movs r0, 0x1
movs r1, 0
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl PlayerBufferExecCompleted
pop {r0}
bx r0
@@ -9401,7 +9401,7 @@ sub_805C834: @ 805C834
push {lr}
movs r0, 0x1
movs r1, 0
- bl dp01_build_cmdbuf_x23_aa_0
+ bl EmitCmd35
bl PlayerBufferExecCompleted
pop {r0}
bx r0
@@ -9412,7 +9412,7 @@ sub_805C848: @ 805C848
push {lr}
movs r0, 0x1
movs r1, 0
- bl dp01_build_cmdbuf_x24_aa_0
+ bl EmitCmd36
bl PlayerBufferExecCompleted
pop {r0}
bx r0
@@ -10038,7 +10038,7 @@ _0805CDA4:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -10172,7 +10172,7 @@ dp01t_33_1_enemy_move: @ 805CEF4
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _0805CF3A
diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s
index 35ee3a733..f82e1c3c3 100644
--- a/asm/battle_controller_player_partner.s
+++ b/asm/battle_controller_player_partner.s
@@ -510,7 +510,7 @@ bx_t3_healthbar_update: @ 81BB214
adds r0, r6
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _081BB276
.pool
_081BB25C:
@@ -645,7 +645,7 @@ _081BB2E2:
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
- bl EmitCmd_x21
+ bl EmitCmd33
strb r5, [r4]
bl IsDoubleBattle
lsls r0, 24
@@ -789,7 +789,7 @@ sub_81BB414: @ 81BB414
negs r0, r0
str r0, [sp]
mov r0, r10
- bl sub_807294C
+ bl SetBattleBarStruct
movs r0, 0x21
bl PlaySE
ldr r0, =sub_81BB4E4
@@ -918,7 +918,7 @@ _081BB514:
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
- bl EmitCmd_x21
+ bl EmitCmd33
strb r5, [r4]
ldr r0, =sub_81BB628
str r0, [r6]
@@ -1688,7 +1688,7 @@ _081BBCBE:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl PlayerPartnerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -4652,13 +4652,13 @@ _081BD7A2:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, =gMovePowerMoveAnim
+ ldr r4, =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4672,7 +4672,7 @@ _081BD7A2:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, =gMoveDmgMoveAnim
+ ldr r4, =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4698,7 +4698,7 @@ _081BD7A2:
lsls r1, 24
orrs r3, r1
str r3, [r4]
- ldr r3, =gHappinessMoveAnim
+ ldr r3, =gAnimFriendship
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
@@ -4720,7 +4720,7 @@ _081BD7A2:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, =gDisableStructMoveAnim
+ ldr r3, =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4849,7 +4849,7 @@ _081BD960:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -5068,7 +5068,7 @@ _081BDB3C:
orrs r2, r5
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
bl PlayerPartnerBufferExecCompleted
pop {r4-r6}
pop {r0}
@@ -5138,7 +5138,7 @@ _081BDBD0:
lsrs r1, 24
movs r0, 0x1
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl PlayerPartnerBufferExecCompleted
pop {r4-r6}
pop {r0}
@@ -5162,7 +5162,7 @@ sub_81BDC10: @ 81BDC10
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -5209,7 +5209,7 @@ sub_81BDC10: @ 81BDC10
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _081BDCCA
.pool
_081BDCA0:
@@ -5231,7 +5231,7 @@ _081BDCA0:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
_081BDCCA:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -5275,7 +5275,7 @@ sub_81BDD00: @ 81BDD00
.pool
_081BDD38:
movs r0, 0x1
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
@@ -6082,7 +6082,7 @@ _081BE404:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -6207,7 +6207,7 @@ sub_81BE53C: @ 81BE53C
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _081BE582
diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s
index 562b55d4d..f98c10a6c 100644
--- a/asm/battle_controller_recorded_opponent.s
+++ b/asm/battle_controller_recorded_opponent.s
@@ -966,7 +966,7 @@ sub_8186D04: @ 8186D04
adds r0, r5
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _08186D50
.pool
_08186D4C:
@@ -1553,7 +1553,7 @@ _0818727E:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl RecordedOpponentBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -4408,13 +4408,13 @@ _08188BE6:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, =gMovePowerMoveAnim
+ ldr r4, =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4428,7 +4428,7 @@ _08188BE6:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, =gMoveDmgMoveAnim
+ ldr r4, =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4454,7 +4454,7 @@ _08188BE6:
lsls r1, 24
orrs r3, r1
str r3, [r4]
- ldr r3, =gHappinessMoveAnim
+ ldr r3, =gAnimFriendship
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
@@ -4476,7 +4476,7 @@ _08188BE6:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, =gDisableStructMoveAnim
+ ldr r3, =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4605,7 +4605,7 @@ _08188DA4:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4754,7 +4754,7 @@ sub_8188EF0: @ 8188EF0
lsrs r1, 24
movs r0, 0x1
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl RecordedOpponentBufferExecCompleted
pop {r0}
bx r0
@@ -4785,7 +4785,7 @@ sub_8188F20: @ 8188F20
lsrs r2, 16
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
b _08188F6C
.pool
_08188F48:
@@ -4803,7 +4803,7 @@ _08188F48:
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
_08188F6C:
bl RecordedOpponentBufferExecCompleted
pop {r4,r5}
@@ -4839,7 +4839,7 @@ sub_8188F88: @ 8188F88
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl RecordedOpponentBufferExecCompleted
pop {r4}
pop {r0}
@@ -4863,7 +4863,7 @@ sub_8188FD0: @ 8188FD0
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -4910,7 +4910,7 @@ sub_8188FD0: @ 8188FD0
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0818908A
.pool
_08189060:
@@ -4932,7 +4932,7 @@ _08189060:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
_0818908A:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -5693,7 +5693,7 @@ _081896E4:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -5819,7 +5819,7 @@ sub_8189800: @ 8189800
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _08189846
diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s
index f7dfc0fed..6f3976205 100644
--- a/asm/battle_controller_recorded_player.s
+++ b/asm/battle_controller_recorded_player.s
@@ -885,7 +885,7 @@ sub_818A0A4: @ 818A0A4
adds r0, r6
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _0818A106
.pool
_0818A0EC:
@@ -1489,7 +1489,7 @@ _0818A646:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl RecordedPlayerBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -4508,13 +4508,13 @@ _0818C192:
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, =gMovePowerMoveAnim
+ ldr r4, =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4528,7 +4528,7 @@ _0818C192:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, =gMoveDmgMoveAnim
+ ldr r4, =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4554,7 +4554,7 @@ _0818C192:
lsls r1, 24
orrs r3, r1
str r3, [r4]
- ldr r3, =gHappinessMoveAnim
+ ldr r3, =gAnimFriendship
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
@@ -4576,7 +4576,7 @@ _0818C192:
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, =gDisableStructMoveAnim
+ ldr r3, =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -4705,7 +4705,7 @@ _0818C350:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -4861,7 +4861,7 @@ sub_818C49C: @ 818C49C
lsrs r1, 24
movs r0, 0x1
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl RecordedPlayerBufferExecCompleted
_0818C4C6:
pop {r0}
@@ -4897,7 +4897,7 @@ _0818C508:
lsrs r1, 24
movs r0, 0x1
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl RecordedPlayerBufferExecCompleted
_0818C522:
pop {r0}
@@ -4929,7 +4929,7 @@ sub_818C538: @ 818C538
lsrs r2, 16
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
b _0818C584
.pool
_0818C560:
@@ -4947,7 +4947,7 @@ _0818C560:
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
_0818C584:
bl RecordedPlayerBufferExecCompleted
pop {r4,r5}
@@ -4983,7 +4983,7 @@ sub_818C5A0: @ 818C5A0
ldrb r1, [r0]
movs r0, 0x1
movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl EmitCmd34
bl RecordedPlayerBufferExecCompleted
pop {r4}
pop {r0}
@@ -5007,7 +5007,7 @@ sub_818C5E8: @ 818C5E8
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -5054,7 +5054,7 @@ sub_818C5E8: @ 818C5E8
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0818C6B2
.pool
_0818C678:
@@ -5076,14 +5076,14 @@ _0818C678:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
mov r1, r9
ldrb r0, [r1]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
_0818C6B2:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -5878,7 +5878,7 @@ _0818CD60:
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
@@ -6003,7 +6003,7 @@ sub_818CE98: @ 818CE98
push {r4,lr}
ldr r4, =gActiveBank
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _0818CEDE
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index a45ae6cee..d7efd69fe 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -103,13 +103,13 @@ _0815942A:
movs r1, 0x7
_0815942E:
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
b _08159440
_08159436:
movs r0, 0x1
movs r1, 0x8
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
_08159440:
bl SafariBufferExecCompleted
b _0815954E
@@ -399,7 +399,7 @@ sub_8159698: @ 8159698
ldr r0, =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
+ bl EmitCmd35
bl SafariBufferExecCompleted
_081596BE:
pop {r0}
diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s
index de17547a1..e1d92de0d 100644
--- a/asm/battle_controller_wally.s
+++ b/asm/battle_controller_wally.s
@@ -153,7 +153,7 @@ _081684CE:
movs r1, 0x9
_081684E4:
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl WallyBufferExecCompleted
ldr r1, [r4]
adds r1, 0x94
@@ -208,7 +208,7 @@ _08168540:
movs r0, 0x1
movs r1, 0x1
movs r2, 0
- bl EmitCmd_x21
+ bl EmitCmd33
bl WallyBufferExecCompleted
_08168564:
pop {r4,r5}
@@ -311,7 +311,7 @@ sub_8168610: @ 8168610
ldr r0, =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
+ bl EmitCmd35
bl WallyBufferExecCompleted
_08168636:
pop {r0}
@@ -676,7 +676,7 @@ sub_8168934: @ 8168934
adds r0, r6
ldrb r0, [r0]
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
b _08168996
.pool
_0816897C:
@@ -975,7 +975,7 @@ _08168BFA:
lsrs r1, 16
movs r0, 0x1
mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl EmitDataTransfer
bl WallyBufferExecCompleted
add sp, 0x100
pop {r4-r6}
@@ -3316,13 +3316,13 @@ sub_816A144: @ 816A144
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
- ldr r5, =gUnknown_02038432
+ ldr r5, =gAnimMoveTurn
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
- ldr r4, =gMovePowerMoveAnim
+ ldr r4, =gAnimMovePower
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -3336,7 +3336,7 @@ sub_816A144: @ 816A144
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r4, =gMoveDmgMoveAnim
+ ldr r4, =gAnimMoveDmg
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -3362,7 +3362,7 @@ sub_816A144: @ 816A144
lsls r1, 24
orrs r3, r1
str r3, [r4]
- ldr r3, =gHappinessMoveAnim
+ ldr r3, =gAnimFriendship
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
@@ -3384,7 +3384,7 @@ sub_816A144: @ 816A144
lsls r1, 8
orrs r3, r1
strh r3, [r4]
- ldr r3, =gDisableStructMoveAnim
+ ldr r3, =gAnimDisableStructPtr
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
@@ -3505,7 +3505,7 @@ _0816A2F6:
movs r0, 0
bl sub_805EB9C
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
@@ -3777,7 +3777,7 @@ _0816A550:
lsls r2, 1
movs r0, 0x1
movs r1, 0xA
- bl EmitCmd_x21
+ bl EmitCmd33
bl WallyBufferExecCompleted
_0816A574:
pop {r4}
@@ -3836,7 +3836,7 @@ sub_816A5D4: @ 816A5D4
push {r6,r7}
sub sp, 0x4
movs r0, 0
- bl load_gfxc_health_bar
+ bl LoadBattleBarGfx
ldr r3, =gBattleBufferA
ldr r0, =gActiveBank
mov r9, r0
@@ -3883,7 +3883,7 @@ sub_816A5D4: @ 816A5D4
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
- bl sub_807294C
+ bl SetBattleBarStruct
b _0816A69E
.pool
_0816A664:
@@ -3905,14 +3905,14 @@ _0816A664:
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
- bl sub_807294C
+ bl SetBattleBarStruct
mov r1, r9
ldrb r0, [r1]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
movs r2, 0
- bl heathbar_draw_hp
+ bl UpdateHpTextInHealthbox
_0816A69E:
ldr r1, =gBattleBankFunc
ldr r0, =gActiveBank
@@ -4645,7 +4645,7 @@ _0816ACA8:
subs r3, 0x2
adds r4, r3
ldrb r3, [r4]
- bl sub_80735DC
+ bl CreatePartyStatusSummarySprites
ldr r2, =gUnknown_020244B4
ldrb r1, [r5]
adds r1, r2
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
deleted file mode 100755
index 1f1185032..000000000
--- a/asm/battle_interface.s
+++ /dev/null
@@ -1,5734 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8072304
-sub_8072304: @ 8072304
- movs r0, 0x9
- bx lr
- thumb_func_end sub_8072304
-
- thumb_func_start sub_8072308
-sub_8072308: @ 8072308
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r3, 0
- movs r2, 0
-_08072324:
- lsls r0, r3, 24
- asrs r0, 24
- mov r3, sp
- adds r1, r3, r0
- strb r2, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _08072324
- movs r3, 0x3
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- mov r8, sp
-_08072344:
- lsls r0, r5, 16
- asrs r6, r0, 16
- cmp r6, 0
- ble _08072372
- lsls r4, r3, 24
- asrs r4, 24
- mov r1, sp
- adds r5, r1, r4
- adds r0, r6, 0
- movs r1, 0xA
- bl __modsi3
- strb r0, [r5]
- adds r0, r6, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 16
- lsrs r5, r0, 16
- subs r4, 0x1
- lsls r4, 24
- lsrs r3, r4, 24
- b _08072344
-_08072372:
- lsls r1, r3, 24
- asrs r0, r1, 24
- cmp r0, r9
- ble _08072396
- movs r4, 0xFF
- movs r3, 0x1
- negs r3, r3
-_08072380:
- asrs r2, r1, 24
- mov r5, sp
- adds r1, r5, r2
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- subs r2, 0x1
- lsls r1, r2, 24
- asrs r0, r1, 24
- cmp r0, r3
- bgt _08072380
-_08072396:
- mov r1, r8
- ldrb r0, [r1, 0x3]
- cmp r0, 0xFF
- bne _080723A2
- movs r0, 0
- strb r0, [r1, 0x3]
-_080723A2:
- mov r2, r10
- cmp r2, 0
- bne _08072432
- movs r3, 0
- movs r1, 0
- movs r6, 0xFC
- lsls r6, 8
- movs r5, 0x1E
- mov r12, r5
-_080723B4:
- lsls r1, 24
- asrs r2, r1, 24
- mov r0, sp
- adds r5, r0, r2
- ldrb r0, [r5]
- mov r8, r1
- cmp r0, 0xFF
- bne _080723EA
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r2, r12
- orrs r0, r2
- strh r0, [r1]
- lsls r3, 24
- asrs r1, r3, 23
- adds r1, r7
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- mov r5, r12
- orrs r0, r5
- strh r0, [r1]
- b _0807241A
-_080723EA:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- lsls r4, r3, 24
- asrs r3, r4, 24
- lsls r2, r3, 1
- adds r2, r7
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r6, 0
- ands r1, r0
- mov r5, sp
- adds r0, r5, r3
- ldrb r0, [r0]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
- adds r3, r4, 0
-_0807241A:
- movs r0, 0x80
- lsls r0, 17
- add r0, r8
- lsrs r1, r0, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r3, r2
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _080723B4
- b _08072496
-_08072432:
- movs r3, 0
- movs r4, 0xFC
- lsls r4, 8
- movs r6, 0x1E
-_0807243A:
- lsls r1, r3, 24
- asrs r2, r1, 24
- mov r3, sp
- adds r5, r3, r2
- ldrb r0, [r5]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _08072466
- lsls r1, r2, 1
- adds r1, r7
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- adds r1, 0x40
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r6
- strh r0, [r1]
- b _08072488
-_08072466:
- lsls r2, 1
- adds r2, r7
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x14
- orrs r1, r0
- strh r1, [r2]
- adds r2, 0x40
- ldrh r0, [r2]
- adds r1, r4, 0
- ands r1, r0
- ldrb r0, [r5]
- adds r0, 0x34
- orrs r1, r0
- strh r1, [r2]
-_08072488:
- movs r5, 0x80
- lsls r5, 17
- adds r0, r3, r5
- lsrs r3, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _0807243A
-_08072496:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8072308
-
- thumb_func_start sub_80724A8
-sub_80724A8: @ 80724A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- movs r1, 0x1E
- strh r1, [r5, 0x8]
- lsls r0, 16
- asrs r0, 16
- adds r1, r5, 0
- movs r2, 0
- bl sub_8072308
- lsls r4, 16
- asrs r4, 16
- adds r5, 0xA
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8072308
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80724A8
-
- thumb_func_start CreateBankHealthboxSprites
-CreateBankHealthboxSprites: @ 80724DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r0, 0
- str r0, [sp]
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080725F0
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072574
- ldr r4, =gUnknown_0832C140
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gSprites
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r4
- ldrb r0, [r2, 0x1]
- ands r3, r0
- strb r3, [r2, 0x1]
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- b _080725BA
- .pool
-_08072574:
- ldr r4, =gUnknown_0832C170
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gSprites
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- movs r0, 0x2
- str r0, [sp]
-_080725BA:
- ldr r2, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r2
- strh r7, [r0, 0x6]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r1, r0, r2
- strh r6, [r1, 0x38]
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_8072924
- str r1, [r0]
- b _08072718
- .pool
-_080725F0:
- mov r0, r10
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072694
- mov r0, r10
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, =gUnknown_0832C140
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, =sub_8072924
- str r0, [r2]
- movs r0, 0x1
- b _08072716
- .pool
-_08072694:
- mov r0, r10
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r4, =gUnknown_0832C170
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r10
- bl GetBankIdentity
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 25
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x6]
- lsls r2, r7, 4
- adds r2, r7
- lsls r2, 2
- adds r3, r2, r4
- strh r6, [r3, 0x38]
- ldrh r1, [r3, 0x4]
- mov r8, r1
- mov r5, r8
- lsls r1, r5, 22
- lsrs r1, 22
- adds r1, 0x20
- ldr r5, =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, =0xfffffc00
- mov r5, r8
- ands r0, r5
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r4, 0x1C
- adds r2, r4
- ldr r0, =sub_8072924
- str r0, [r2]
- movs r0, 0x2
-_08072716:
- str r0, [sp]
-_08072718:
- ldr r0, =gBanksBySide
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, =gUnknown_0832C1C0
- adds r0, r1
- movs r1, 0x8C
- movs r2, 0x3C
- movs r3, 0
- bl CreateSpriteAtEnd
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, =gSprites
- mov r8, r1
- add r4, r8
- mov r0, r10
- bl GetBankSide
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 21
- ldr r0, =gUnknown_0832C28C
- adds r1, r0
- adds r0, r4, 0
- bl SetSubspriteTables
- adds r2, r4, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r2, 0x4
- mov r9, r2
- mov r1, r9
- orrs r0, r1
- strb r0, [r4, 0x5]
- movs r0, 0x1
- bl sub_80728A4
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000010
- bl CpuSet
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- strh r5, [r0, 0x38]
- mov r2, r10
- strh r2, [r0, 0x3A]
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r5, r9
- orrs r1, r5
- strb r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r5
- strb r1, [r0]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x3A]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- adds r0, r6, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateBankHealthboxSprites
-
- thumb_func_start CreateSafariPlayerHealthboxSprites
-CreateSafariPlayerHealthboxSprites: @ 8072804
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, =gUnknown_0832C1A0
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x1
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSprites
- mov r9, r1
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- add r4, r9
- ldrb r3, [r4, 0x1]
- movs r2, 0x3F
- adds r1, r2, 0
- ands r1, r3
- strb r1, [r4, 0x1]
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- mov r7, r9
- adds r5, r3, r7
- ldrb r1, [r5, 0x1]
- ands r2, r1
- strb r2, [r5, 0x1]
- ldrh r1, [r5, 0x4]
- mov r8, r1
- mov r7, r8
- lsls r2, r7, 22
- lsrs r2, 22
- adds r2, 0x40
- ldr r7, =0x000003ff
- adds r1, r7, 0
- ands r2, r1
- ldr r1, =0xfffffc00
- mov r7, r8
- ands r1, r7
- orrs r1, r2
- strh r1, [r5, 0x4]
- strh r0, [r4, 0x6]
- strh r6, [r5, 0x38]
- movs r0, 0x1C
- add r9, r0
- add r3, r9
- ldr r0, =sub_8072924
- str r0, [r3]
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateSafariPlayerHealthboxSprites
-
- thumb_func_start sub_80728A4
-sub_80728A4: @ 80728A4
- lsls r0, 24
- lsrs r0, 19
- ldr r1, =gUnknown_08C11BDC
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_80728A4
-
- thumb_func_start sub_80728B4
-sub_80728B4: @ 80728B4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080728E4
- cmp r0, 0x1
- bgt _080728F8
- cmp r0, 0
- bne _080728F8
- ldr r2, =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08072906
- .pool
-_080728E4:
- ldr r2, =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x10
- b _08072906
- .pool
-_080728F8:
- ldr r2, =gSprites
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0x8
-_08072906:
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- strh r1, [r4, 0x24]
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80728B4
-
- thumb_func_start sub_8072924
-sub_8072924: @ 8072924
- ldrh r1, [r0, 0x38]
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r2, 0x20]
- adds r1, 0x40
- strh r1, [r0, 0x20]
- ldrh r1, [r2, 0x22]
- strh r1, [r0, 0x22]
- ldrh r1, [r2, 0x24]
- strh r1, [r0, 0x24]
- ldrh r1, [r2, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .pool
- thumb_func_end sub_8072924
-
- thumb_func_start sub_807294C
-sub_807294C: @ 807294C
- push {r4-r7,lr}
- ldr r7, [sp, 0x14]
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gBattleSpritesDataPtr
- ldr r4, [r6]
- ldr r5, [r4, 0xC]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 2
- adds r5, r4, r5
- strb r1, [r5]
- ldr r0, [r6]
- ldr r0, [r0, 0xC]
- adds r4, r0
- str r2, [r4, 0x4]
- str r3, [r4, 0x8]
- str r7, [r4, 0xC]
- ldr r0, =0xffff8000
- str r0, [r4, 0x10]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_807294C
-
- thumb_func_start SetHealthboxSpriteInvisible
-SetHealthboxSpriteInvisible: @ 8072984
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetHealthboxSpriteInvisible
-
- thumb_func_start SetHealthboxSpriteVisible
-SetHealthboxSpriteVisible: @ 80729D0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- adds r4, r2, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- movs r0, 0x38
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r4, [r0]
- adds r1, r3, 0
- ands r1, r4
- strb r1, [r0]
- ldrh r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetHealthboxSpriteVisible
-
- thumb_func_start sub_8072A24
-sub_8072A24: @ 8072A24
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- strh r1, [r3, 0x20]
- strh r2, [r3, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8072A24
-
- thumb_func_start sub_8072A44
-sub_8072A44: @ 8072A44
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gSprites
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r5
- ldrh r1, [r4, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl DestroySprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8072A44
-
- thumb_func_start nullsub_30
-nullsub_30: @ 8072A84
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start sub_8072A88
-sub_8072A88: @ 8072A88
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- ldr r1, =gNoOfAllBanks
- mov r8, r1
- ldrb r2, [r1]
- cmp r6, r2
- bge _08072B00
- ldr r1, =gSprites
- mov r12, r1
- movs r1, 0x3
- ands r0, r1
- lsls r5, r0, 2
- movs r7, 0xD
- negs r7, r7
- ldr r2, =gHealthBoxesIds
- mov r9, r2
-_08072AB2:
- mov r1, r9
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r4, [r1, 0x6]
- ldrh r3, [r1, 0x38]
- lsls r3, 24
- lsrs r3, 24
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
- adds r6, 0x1
- mov r2, r8
- ldrb r2, [r2]
- cmp r6, r2
- blt _08072AB2
-_08072B00:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8072A88
-
- thumb_func_start SetBankHealthboxSpritePos
-SetBankHealthboxSpritePos: @ 8072B18
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r4, 0
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08072B44
- adds r0, r6, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _08072B3E
- movs r5, 0x2C
- movs r4, 0x1E
- b _08072B7C
-_08072B3E:
- movs r5, 0x9E
- movs r4, 0x58
- b _08072B7C
-_08072B44:
- adds r0, r6, 0
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08072B72
- cmp r0, 0x1
- bgt _08072B5C
- cmp r0, 0
- beq _08072B66
- b _08072B7C
-_08072B5C:
- cmp r0, 0x2
- beq _08072B6C
- cmp r0, 0x3
- beq _08072B78
- b _08072B7C
-_08072B66:
- movs r5, 0x9F
- movs r4, 0x4C
- b _08072B7C
-_08072B6C:
- movs r5, 0xAB
- movs r4, 0x65
- b _08072B7C
-_08072B72:
- movs r5, 0x2C
- movs r4, 0x13
- b _08072B7C
-_08072B78:
- movs r5, 0x20
- movs r4, 0x2C
-_08072B7C:
- ldr r0, =gHealthBoxesIds
- adds r0, r6, r0
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8072A24
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetBankHealthboxSpritePos
-
- thumb_func_start healthbar_draw_level
-healthbar_draw_level: @ 8072B94
- push {r4,r5,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- add r2, sp, 0x4
- movs r0, 0xF9
- strb r0, [r2]
- movs r0, 0x5
- strb r0, [r2, 0x1]
- mov r0, sp
- adds r0, 0x6
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r1, r0, 0
- subs r1, 0x2
- add r0, sp, 0x4
- subs r1, r0
- movs r0, 0x3
- subs r0, r1
- lsls r1, r0, 2
- adds r1, r0
- add r0, sp, 0x14
- str r0, [sp]
- add r0, sp, 0x4
- movs r2, 0x3
- movs r3, 0x2
- bl write_to_rbox
- adds r5, r0, 0
- ldr r0, =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r4, r0, 17
- ldrh r0, [r1, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072C18
- bl IsDoubleBattle
- lsls r0, 24
- ldr r2, =0x06010420
- adds r1, r4, r2
- cmp r0, 0
- bne _08072C1C
- ldr r0, =0x06010820
- adds r1, r4, r0
- b _08072C1C
- .pool
-_08072C18:
- ldr r2, =0x06010400
- adds r1, r4, r2
-_08072C1C:
- adds r0, r1, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_8075198
- ldr r0, [sp, 0x14]
- bl sub_807512C
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end healthbar_draw_level
-
- thumb_func_start heathbar_draw_hp
-heathbar_draw_hp: @ 8072C38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r1, =gSprites
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r4, r0, r1
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072D10
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08072D10
- ldrh r0, [r4, 0x4]
- lsls r0, 22
- lsrs r5, r0, 17
- mov r0, r8
- cmp r0, 0
- beq _08072CB8
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- add r0, sp, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- add r0, sp, 0x24
- str r0, [sp]
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0x5
- movs r3, 0x2
- bl write_to_rbox
- adds r4, r0, 0
- ldr r1, =0x06010b40
- adds r0, r5, r1
- adds r1, r4, 0
- b _08072CF8
- .pool
-_08072CB8:
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- add r0, sp, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- add r1, sp, 0x4
- movs r0, 0xBA
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- add r0, sp, 0x24
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0x4
- movs r2, 0x5
- movs r3, 0x2
- bl write_to_rbox
- adds r4, r0, 0
- ldr r1, =0x060103e0
- adds r0, r5, r1
- adds r1, r4, 0
- movs r2, 0x1
- bl sub_8075170
- ldr r2, =0x06010b00
- adds r0, r5, r2
- adds r1, r4, 0
- adds r1, 0x20
-_08072CF8:
- movs r2, 0x2
- bl sub_8075170
- ldr r0, [sp, 0x24]
- bl sub_807512C
- b _08072DEA
- .pool
-_08072D10:
- ldr r1, =gUnknown_0832C3C4
- add r0, sp, 0x4
- movs r2, 0x14
- bl memcpy
- ldr r1, =gSprites
- lsls r4, r7, 4
- adds r0, r4, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r5, r0, 24
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- mov r10, r4
- cmp r0, 0x1
- beq _08072D46
- adds r0, r5, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08072D60
-_08072D46:
- mov r0, r9
- lsls r1, r0, 16
- asrs r1, 16
- adds r0, r7, 0
- mov r2, r8
- bl sub_8072E0C
- b _08072DEA
- .pool
-_08072D60:
- ldrh r0, [r6, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072D7C
- movs r6, 0x59
- mov r1, r8
- cmp r1, 0
- bne _08072D86
- movs r6, 0x1D
- b _08072D86
-_08072D7C:
- movs r6, 0x30
- mov r2, r8
- cmp r2, 0
- bne _08072D86
- movs r6, 0x14
-_08072D86:
- mov r0, sp
- adds r0, 0xA
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x9
- add r2, sp, 0x4
- bl RenderTextFont9
- movs r4, 0
- ldr r1, =gSprites
- mov r2, r10
- adds r0, r2, r7
- lsls r0, 2
- adds r5, r0, r1
-_08072DB8:
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- lsls r1, r4, 6
- adds r1, 0x20
- ldr r0, [r0]
- adds r0, r1
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r6
- adds r1, r4
- lsls r1, 5
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08072DB8
-_08072DEA:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end heathbar_draw_hp
-
- thumb_func_start sub_8072E0C
-sub_8072E0C: @ 8072E0C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x30
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r4, r1, 16
- mov r10, r4
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- ldr r5, =gSprites
- lsls r0, 4
- add r0, r9
- lsls r0, 2
- adds r7, r0, r5
- ldrh r0, [r7, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08072F28
- ldr r0, =gBattleSpritesDataPtr
- ldr r1, [r0]
- movs r2, 0x3A
- ldrsh r0, [r7, r2]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08072E5E
- b _080730B8
-_08072E5E:
- movs r3, 0x38
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r5, r0, 17
- ldr r0, =0x06010000
- adds r6, r5, r0
- mov r0, r8
- cmp r0, 0
- beq _08072EDC
- lsls r1, r4, 16
- asrs r1, 16
- add r0, sp, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- add r0, sp, 0x28
- str r0, [sp]
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0x5
- movs r3, 0
- bl write_to_rbox
- adds r4, r0, 0
- ldr r1, =0x060100c0
- adds r0, r5, r1
- adds r1, r4, 0
- movs r2, 0x2
- bl sub_8075170
- ldr r0, [sp, 0x28]
- bl sub_807512C
- movs r0, 0x74
- bl sub_80728A4
- ldrh r1, [r7, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, =0x06010680
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _080730B8
- .pool
-_08072EDC:
- lsls r1, r4, 16
- asrs r1, 16
- add r0, sp, 0x4
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- add r1, sp, 0x4
- movs r0, 0xBA
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- add r0, sp, 0x28
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0x4
- movs r2, 0x5
- movs r3, 0
- bl write_to_rbox
- adds r4, r0, 0
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0x3
- bl sub_807513C
- ldr r3, =0x06010060
- adds r0, r5, r3
- adds r1, r4, 0
- movs r2, 0x3
- bl sub_8075170
- ldr r0, [sp, 0x28]
- bl sub_807512C
- b _080730B8
- .pool
-_08072F28:
- ldr r1, =gUnknown_0832C3D8
- add r0, sp, 0x4
- movs r2, 0x14
- bl memcpy
- ldrh r0, [r7, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x2C]
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- ldr r2, [sp, 0x2C]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08072F52
- b _080730B8
-_08072F52:
- movs r6, 0x4
- mov r3, r8
- negs r0, r3
- orrs r0, r3
- asrs r0, 31
- ands r6, r0
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, sp
- adds r0, 0xA
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r3, r8
- cmp r3, 0
- bne _08072F82
- ldr r1, =gText_Slash
- bl StringCopy
-_08072F82:
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x9
- add r2, sp, 0x4
- bl RenderTextFont9
- adds r4, r6, 0
- adds r0, r4, 0x3
- cmp r4, r0
- bge _08073024
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r5, r0, r5
-_08072FA6:
- cmp r4, 0x2
- bhi _08072FF0
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r2, 0xBA
- lsls r2, 1
- adds r0, r2
- subs r1, r4, r6
- lsls r1, 6
- adds r1, 0x20
- ldr r0, [r0]
- adds r0, r1
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r4, 0x1
- adds r1, r4
- lsls r1, 5
- ldr r3, =0x06010000
- adds r1, r3
- ldr r2, =0x04000008
- bl CpuSet
- b _0807301A
- .pool
-_08072FF0:
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- subs r1, r4, r6
- lsls r1, 6
- adds r1, 0x20
- ldr r0, [r0]
- adds r0, r1
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r4, r1
- lsls r1, 5
- ldr r2, =0x06010020
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- adds r4, 0x1
-_0807301A:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x3
- cmp r4, r0
- blt _08072FA6
-_08073024:
- mov r3, r8
- cmp r3, 0
- bne _08073084
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- movs r1, 0xBA
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- adds r0, 0xE0
- ldr r1, =gSprites
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r4, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- adds r1, 0x80
- ldr r5, =0x06010000
- adds r1, r5
- ldr r2, =0x04000008
- bl CpuSet
- mov r2, r8
- str r2, [sp, 0x24]
- add r0, sp, 0x24
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- adds r1, r5
- ldr r2, =0x05000008
- bl CpuSet
- b _080730B8
- .pool
-_08073084:
- ldr r0, [sp, 0x2C]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080730B8
- movs r0, 0x74
- bl sub_80728A4
- ldr r2, =gSprites
- mov r3, r9
- lsls r1, r3, 4
- add r1, r9
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0xD0
- lsls r2, 3
- adds r1, r2
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_080730B8:
- add sp, 0x30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8072E0C
-
- thumb_func_start sub_80730D4
-sub_80730D4: @ 80730D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r1, =gUnknown_0832C3C4
- mov r0, sp
- movs r2, 0x14
- bl memcpy
- ldr r1, =gSprites
- ldr r2, [sp, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankIdentity
- ldr r1, =gMonSpritesGfxPtr
- ldr r2, [r1]
- movs r3, 0xBA
- lsls r3, 1
- adds r2, r3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 7
- movs r0, 0xA4
- lsls r0, 3
- adds r1, r0
- ldr r0, [r2]
- adds r6, r0, r1
- movs r1, 0x5
- mov r8, r1
- adds r0, r4, 0
- bl GetNature
- lsls r0, 24
- mov r4, sp
- adds r4, 0x6
- ldr r1, =gNatureNamePointers
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0x9
- mov r2, sp
- bl RenderTextFont9
- movs r7, 0x6
- movs r5, 0
- mov r2, sp
- adds r2, 0x9
- str r2, [sp, 0x1C]
-_08073158:
- mov r3, sp
- adds r0, r3, r7
- ldrb r1, [r0]
- adds r0, r1, 0
- subs r0, 0x37
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bls _08073176
- adds r0, r1, 0
- adds r0, 0x79
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _0807318C
-_08073176:
- movs r0, 0x2C
- b _080731AA
- .pool
-_0807318C:
- adds r0, r1, 0
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _080731A4
- adds r0, r1, 0
- adds r0, 0x65
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _080731A8
-_080731A4:
- movs r0, 0x2D
- b _080731AA
-_080731A8:
- movs r0, 0x2B
-_080731AA:
- bl sub_80728A4
- lsls r1, r5, 6
- adds r1, r6, r1
- ldr r2, =0x04000008
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x1
- cmp r5, r8
- bcc _08073158
- movs r7, 0x1
- ldr r0, [sp, 0x14]
- lsls r0, 4
- str r0, [sp, 0x18]
- movs r1, 0x1
- add r1, r8
- mov r9, r1
- cmp r7, r9
- bge _08073236
- ldr r1, =gSprites
- ldr r2, =0x04000008
- mov r10, r2
- ldr r3, [sp, 0x14]
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- mov r8, r0
-_080731E6:
- mov r1, r8
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r5, r7, 0
- cmp r7, 0
- bge _080731F6
- adds r5, r7, 0x7
-_080731F6:
- asrs r5, 3
- lsls r4, r5, 3
- subs r4, r7, r4
- adds r0, r4
- lsls r5, 6
- adds r0, r5
- lsls r0, 5
- ldr r2, =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- mov r3, r8
- ldrh r0, [r3, 0x4]
- lsls r0, 22
- lsrs r0, 22
- adds r4, 0x8
- adds r0, r4
- adds r0, r5
- lsls r0, 5
- ldr r2, =0x06010000
- adds r1, r0, r2
- adds r0, r6, 0
- mov r2, r10
- bl CpuSet
- adds r6, 0x20
- adds r7, 0x1
- cmp r7, r9
- blt _080731E6
-_08073236:
- ldr r6, =gSprites
- ldr r3, [sp, 0x18]
- ldr r1, [sp, 0x14]
- adds r0, r3, r1
- lsls r0, 2
- adds r0, r6
- ldrh r4, [r0, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gBattleStruct
- ldr r0, [r5]
- adds r0, 0x7C
- ldrb r1, [r0]
- mov r0, sp
- adds r0, 0x6
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, [r5]
- adds r0, 0x7B
- ldrb r1, [r0]
- ldr r0, [sp, 0x1C]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0xBA
- strb r0, [r1, 0x8]
- ldr r5, =gMonSpritesGfxPtr
- ldr r0, [r5]
- movs r2, 0xBA
- lsls r2, 1
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0x9
- mov r2, sp
- bl RenderTextFont9
- movs r7, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r6, r0, r6
- movs r4, 0x20
-_08073296:
- cmp r7, 0x1
- bgt _080732D4
- ldr r0, [r5]
- movs r3, 0xBA
- lsls r3, 1
- adds r0, r3
- ldr r0, [r0]
- adds r0, r4
- ldrh r1, [r6, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r7, 0x2
- adds r1, r2
- lsls r1, 5
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _080732F4
- .pool
-_080732D4:
- ldr r0, [r5]
- movs r3, 0xBA
- lsls r3, 1
- adds r0, r3
- ldr r0, [r0]
- adds r0, r4
- ldrh r1, [r6, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r7, r1
- lsls r1, 5
- ldr r2, =0x060100c0
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_080732F4:
- adds r4, 0x40
- adds r7, 0x1
- cmp r7, 0x4
- ble _08073296
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80730D4
-
- thumb_func_start sub_8073314
-sub_8073314: @ 8073314
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r0, 0
- mov r9, r0
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r9, r0
- blt _0807332E
- b _080735BA
-_0807332E:
- ldr r1, =gSprites
- mov r10, r1
- ldr r2, =gBattlePartyID
- mov r8, r2
-_08073336:
- ldr r0, =gHealthBoxesIds
- mov r1, r9
- adds r6, r1, r0
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =SpriteCallbackDummy
- cmp r1, r0
- beq _08073354
- b _080735A8
-_08073354:
- mov r2, r9
- lsls r0, r2, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807336A
- b _080735A8
-_0807336A:
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08073382
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08073382
- b _080735A8
-_08073382:
- ldr r5, =gBattleSpritesDataPtr
- ldr r0, [r5]
- ldr r3, [r0]
- mov r0, r9
- lsls r4, r0, 2
- adds r3, r4, r3
- ldr r0, [r3]
- lsls r0, 27
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- lsls r2, 4
- mov r12, r2
- ldrb r0, [r3]
- movs r2, 0x11
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- mov r1, r12
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- ldr r0, [r0]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 27
- lsrs r4, r0, 31
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080734B0
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _080733D0
- b _080735A8
-_080733D0:
- ldr r0, =gBattleTypeFlags
- ldr r2, [r0]
- movs r0, 0x80
- ands r2, r0
- cmp r2, 0
- beq _080733DE
- b _080735A8
-_080733DE:
- cmp r4, 0x1
- bne _08073468
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, =0x06010000
- adds r1, r2
- mov r0, sp
- ldr r2, =0x05000040
- bl CpuSet
- ldrb r4, [r6]
- mov r1, r8
- ldrh r0, [r1]
- movs r2, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8072E0C
- ldrb r4, [r6]
- mov r2, r8
- ldrh r0, [r2]
- movs r1, 0x64
- muls r0, r1
- ldr r2, =gPlayerParty
- b _08073536
- .pool
-_08073468:
- ldrb r0, [r6]
- bl draw_status_ailment_maybe
- ldrb r0, [r6]
- mov r2, r8
- ldrh r1, [r2]
- movs r2, 0x64
- muls r1, r2
- ldr r2, =gPlayerParty
- adds r1, r2
- movs r2, 0x5
- bl UpdateHealthboxAttribute
- movs r0, 0x75
- bl sub_80728A4
- ldrb r2, [r6]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r10
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, =0x06010680
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _08073592
- .pool
-_080734B0:
- cmp r4, 0x1
- bne _0807355C
- ldr r0, =gBattleTypeFlags
- ldr r2, [r0]
- movs r0, 0x80
- ands r2, r0
- cmp r2, 0
- beq _080734DC
- ldrb r0, [r6]
- mov r2, r8
- ldrh r1, [r2]
- movs r2, 0x64
- muls r1, r2
- ldr r2, =gEnemyParty
- adds r1, r2
- bl sub_80730D4
- b _08073592
- .pool
-_080734DC:
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r1, r0, 24
- str r2, [sp]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r0, =0x06010000
- adds r1, r0
- mov r0, sp
- ldr r2, =0x05000040
- bl CpuSet
- ldrb r4, [r6]
- mov r1, r8
- ldrh r0, [r1]
- movs r2, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8072E0C
- ldrb r4, [r6]
- mov r2, r8
- ldrh r0, [r2]
- movs r1, 0x64
- muls r0, r1
- ldr r2, =gEnemyParty
-_08073536:
- adds r0, r2
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_8072E0C
- b _08073592
- .pool
-_0807355C:
- ldrb r0, [r6]
- bl draw_status_ailment_maybe
- ldrb r0, [r6]
- mov r2, r8
- ldrh r1, [r2]
- movs r5, 0x64
- muls r1, r5
- ldr r4, =gEnemyParty
- adds r1, r4
- movs r2, 0x5
- bl UpdateHealthboxAttribute
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08073592
- ldrb r0, [r6]
- mov r2, r8
- ldrh r1, [r2]
- muls r1, r5
- adds r1, r4
- movs r2, 0x4
- bl UpdateHealthboxAttribute
-_08073592:
- ldr r0, =gHealthBoxesIds
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r1, [r0, 0x3C]
- movs r2, 0x1
- eors r1, r2
- strh r1, [r0, 0x3C]
-_080735A8:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r9, r0
- bge _080735BA
- b _08073336
-_080735BA:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8073314
-
- thumb_func_start sub_80735DC
-sub_80735DC: @ 80735DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- adds r4, r2, 0
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- cmp r4, 0
- beq _0807360C
- bl GetBankIdentity
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0807365C
-_0807360C:
- ldr r0, [sp, 0x8]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08073630
- movs r0, 0
- mov r9, r0
- movs r5, 0x88
- movs r4, 0x60
- movs r1, 0x64
- mov r10, r1
- ldr r2, =0x0000fffb
- mov r8, r2
- b _0807366C
- .pool
-_08073630:
- movs r3, 0x1
- mov r9, r3
- cmp r4, 0
- beq _08073642
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _08073648
-_08073642:
- movs r5, 0x68
- movs r4, 0x28
- b _0807364C
-_08073648:
- movs r5, 0x68
- movs r4, 0x10
-_0807364C:
- ldr r6, =0x0000ff9c
- mov r10, r6
- movs r0, 0x5
- mov r8, r0
- b _0807366C
- .pool
-_0807365C:
- movs r1, 0x1
- mov r9, r1
- movs r5, 0x68
- movs r4, 0x28
- ldr r2, =0x0000ff9c
- mov r10, r2
- movs r3, 0x5
- mov r8, r3
-_0807366C:
- ldr r0, =gUnknown_0832C334
- bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_0832C34C
- bl LoadSpriteSheet
- ldr r0, =gUnknown_0832C33C
- bl LoadSpritePalette
- ldr r0, =gUnknown_0832C344
- bl LoadSpritePalette
- mov r0, r9
- lsls r6, r0, 1
- adds r0, r6, r0
- lsls r0, 3
- ldr r1, =gUnknown_0832C364
- adds r0, r1
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- lsls r0, 4
- ldr r1, [sp, 0x14]
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r7, r0, r1
- ldr r1, =gUnknown_0832C2C4
- adds r0, r7, 0
- bl SetSubspriteTables
- mov r2, r10
- strh r2, [r7, 0x24]
- mov r3, r8
- strh r3, [r7, 0x2E]
- str r5, [sp, 0x1C]
- str r4, [sp, 0x20]
- mov r5, r9
- cmp r5, 0
- beq _08073700
- ldrh r0, [r7, 0x20]
- subs r0, 0x60
- strh r0, [r7, 0x20]
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r7, 0x3]
- b _08073706
- .pool
-_08073700:
- ldrh r0, [r7, 0x20]
- adds r0, 0x60
- strh r0, [r7, 0x20]
-_08073706:
- movs r0, 0
- mov r8, r0
- ldr r1, =gSprites
- mov r10, r1
- mov r7, sp
- mov r2, r9
- adds r0, r6, r2
- lsls r0, 3
- str r0, [sp, 0x18]
- movs r6, 0xA
- movs r5, 0
-_0807371C:
- ldr r0, =gUnknown_0832C394
- ldr r3, [sp, 0x20]
- ldr r1, =0xfffc0000
- adds r2, r3, r1
- ldr r3, [sp, 0x18]
- adds r0, r3, r0
- ldr r3, [sp, 0x1C]
- asrs r1, r3, 16
- asrs r2, 16
- movs r3, 0x9
- bl CreateSpriteAtEnd
- strb r0, [r7]
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _0807374C
- ldrb r0, [r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r2, =gSprites + 0x1C
- adds r1, r2
- ldr r0, =sub_80741C8
- str r0, [r1]
-_0807374C:
- ldr r4, =gSprites
- mov r3, r9
- cmp r3, 0
- bne _0807376E
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- strh r3, [r0, 0x24]
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, r9
- strh r1, [r0, 0x26]
-_0807376E:
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0
- mov r2, sp
- ldrh r2, [r2, 0x14]
- strh r2, [r0, 0x2E]
- mov r3, r9
- cmp r3, 0
- bne _080737C8
- ldrb r0, [r7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x20]
- adds r0, 0x18
- adds r0, r5
- strh r0, [r1, 0x20]
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r6, [r0, 0x30]
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x78
- b _0807380A
- .pool
-_080737C8:
- ldrb r0, [r7]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x20]
- subs r3, 0x18
- movs r1, 0x5
- mov r0, r8
- subs r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- subs r3, r0
- strh r3, [r2, 0x20]
- ldrb r0, [r7]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r1, 0x6
- mov r3, r8
- subs r1, r3
- lsls r0, r1, 3
- subs r0, r1
- adds r0, 0xA
- strh r0, [r2, 0x30]
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =0x0000ff88
-_0807380A:
- strh r1, [r0, 0x24]
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x32]
- adds r7, 0x1
- adds r6, 0x7
- adds r5, 0xA
- movs r2, 0x1
- add r8, r2
- mov r3, r8
- cmp r3, 0x5
- bgt _0807382C
- b _0807371C
-_0807382C:
- ldr r0, [sp, 0x8]
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _0807383A
- b _080739E8
-_0807383A:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x40
- ands r1, r2
- cmp r1, 0
- beq _080738F4
- ldr r5, =0x0000ffff
- mov r10, r5
- ldr r6, =gSprites
- ldr r0, =0x000003ff
- adds r7, r0, 0
- ldr r1, =0xfffffc00
- mov r9, r1
- mov r4, sp
- ldr r5, [sp, 0xC]
- movs r2, 0x5
- mov r8, r2
-_0807385C:
- ldrh r0, [r5]
- cmp r0, r10
- bne _080738A8
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- ands r1, r7
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _080738E2
- .pool
-_080738A8:
- cmp r0, 0
- bne _080738C0
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _080738D8
-_080738C0:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _080738E2
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_080738D8:
- ands r1, r7
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_080738E2:
- adds r4, 0x1
- adds r5, 0x8
- movs r3, 0x1
- negs r3, r3
- add r8, r3
- mov r0, r8
- cmp r0, 0
- bge _0807385C
- b _08073B9A
-_080738F4:
- movs r1, 0x5
- mov r10, r1
- movs r7, 0
- ldr r2, =gSprites
- mov r8, r2
- ldr r3, =0x000003ff
- mov r9, r3
- ldr r5, =0xfffffc00
- mov r12, r5
- ldr r6, [sp, 0xC]
- mov r5, sp
-_0807390A:
- ldrh r0, [r6]
- ldr r1, =0x0000ffff
- cmp r0, r1
- bne _08073958
- mov r4, sp
- add r4, r10
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r9
- ands r1, r0
- mov r0, r12
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- subs r1, 0x2
- add r10, r1
- b _080739DE
- .pool
-_08073958:
- cmp r0, 0
- bne _08073970
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _080739D0
-_08073970:
- ldr r1, =gBattleTypeFlags
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- beq _080739B8
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- movs r2, 0xA8
- lsls r2, 2
- adds r0, r2
- ldrb r1, [r0]
- ldr r2, =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080739B8
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _080739D0
- .pool
-_080739B8:
- ldr r0, [r6, 0x4]
- cmp r0, 0
- beq _080739DC
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r8
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_080739D0:
- mov r0, r9
- ands r1, r0
- mov r0, r12
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_080739DC:
- adds r5, 0x1
-_080739DE:
- adds r6, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0807390A
- b _08073B9A
-_080739E8:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- ldr r2, =0x00008040
- ands r1, r2
- cmp r1, 0
- beq _08073AA4
- ldr r1, =0x0000ffff
- mov r10, r1
- ldr r6, =gSprites
- ldr r2, =0x000003ff
- adds r7, r2, 0
- ldr r3, =0xfffffc00
- mov r9, r3
- ldr r5, [sp, 0xC]
- mov r4, sp
- adds r4, 0x5
- movs r0, 0x5
- mov r8, r0
-_08073A0C:
- ldrh r0, [r5]
- cmp r0, r10
- bne _08073A58
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- ands r1, r7
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- b _08073A92
- .pool
-_08073A58:
- cmp r0, 0
- bne _08073A70
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08073A88
-_08073A70:
- ldr r0, [r5, 0x4]
- cmp r0, 0
- beq _08073A92
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08073A88:
- ands r1, r7
- mov r0, r9
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08073A92:
- subs r4, 0x1
- adds r5, 0x8
- movs r1, 0x1
- negs r1, r1
- add r8, r1
- mov r2, r8
- cmp r2, 0
- bge _08073A0C
- b _08073B9A
-_08073AA4:
- movs r3, 0
- mov r8, r3
- movs r7, 0
- ldr r5, =gSprites
- mov r9, r5
- ldr r6, =0x000003ff
- mov r12, r6
- ldr r0, =0xfffffc00
- mov r10, r0
- ldr r6, [sp, 0xC]
- mov r5, sp
- adds r5, 0x5
-_08073ABC:
- ldrh r0, [r6]
- ldr r1, =0x0000ffff
- cmp r0, r1
- bne _08073B08
- mov r4, sp
- add r4, r8
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x1
- mov r0, r12
- ands r1, r0
- mov r0, r10
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- add r8, r1
- b _08073B92
- .pool
-_08073B08:
- cmp r0, 0
- bne _08073B20
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08073B84
-_08073B20:
- ldr r1, =gBattleTypeFlags
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- beq _08073B6C
- ldr r2, =gBattleStruct
- ldr r0, [r2]
- ldr r3, =0x000002a1
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r7, 2
- ldr r2, =gBitTable
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08073B6C
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x3
- b _08073B84
- .pool
-_08073B6C:
- ldr r0, [r6, 0x4]
- cmp r0, 0
- beq _08073B90
- ldrb r0, [r5]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- add r2, r9
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x2
-_08073B84:
- mov r0, r12
- ands r1, r0
- mov r0, r10
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08073B90:
- subs r5, 0x1
-_08073B92:
- adds r6, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08073ABC
-_08073B9A:
- ldr r0, =TaskDummy
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, =gTasks
- lsls r3, r4, 2
- adds r1, r3, r4
- lsls r1, 3
- adds r0, r1, r2
- mov r5, sp
- ldrh r5, [r5, 0x8]
- strh r5, [r0, 0x8]
- mov r6, sp
- ldrh r6, [r6, 0x14]
- strh r6, [r0, 0xA]
- movs r0, 0
- mov r8, r0
- adds r0, r2, 0
- adds r0, 0xE
- adds r1, r0
-_08073BC6:
- mov r0, sp
- add r0, r8
- ldrb r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- movs r5, 0x1
- add r8, r5
- mov r6, r8
- cmp r6, 0x5
- ble _08073BC6
- adds r0, r3, r4
- lsls r0, 3
- adds r0, r2
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x1C]
- ldr r2, [sp, 0x10]
- cmp r2, 0
- beq _08073C0A
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r3, [r0, 0x8]
- ldrb r2, [r3, 0x9]
- lsls r1, r2, 27
- lsrs r1, 29
- adds r1, 0x1
- movs r0, 0x7
- ands r1, r0
- lsls r1, 2
- movs r0, 0x1D
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
-_08073C0A:
- movs r0, 0x72
- movs r1, 0
- bl PlaySE12WithPanning
- adds r0, r4, 0
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80735DC
-
- thumb_func_start sub_8073C30
-sub_8073C30: @ 8073C30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, =gTasks
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r0, r1, r2
- ldrb r7, [r0, 0x1C]
- ldrb r4, [r0, 0xA]
- mov r10, r4
- ldrb r0, [r0, 0x8]
- str r0, [sp, 0x8]
- movs r5, 0
- str r3, [sp, 0xC]
- adds r2, 0xE
- adds r2, r1, r2
-_08073C5E:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08073C5E
- movs r1, 0xFD
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0x10
- bl SetGpuReg
- ldr r1, =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x10
- strh r1, [r0, 0x26]
- movs r5, 0
- mov r1, r10
- lsls r1, 4
- str r1, [sp, 0x10]
- ldr r3, =gSprites
- movs r6, 0xD
- negs r6, r6
- mov r12, r3
- movs r4, 0x4
-_08073CA0:
- mov r2, sp
- adds r0, r2, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _08073CA0
- ldr r2, [sp, 0x10]
- add r2, r10
- lsls r2, 2
- add r2, r12
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x1]
- cmp r7, 0
- bne _08073CDA
- b _08073DE0
-_08073CDA:
- movs r5, 0
- mov r6, r12
- mov r9, r5
- adds r3, r6, 0
- adds r3, 0x1C
- mov r4, sp
- movs r7, 0
-_08073CE8:
- ldr r0, [sp, 0x8]
- str r3, [sp, 0x14]
- bl GetBankSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, [sp, 0x14]
- cmp r2, 0
- beq _08073D4C
- movs r0, 0x5
- subs r0, r5
- mov r1, sp
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x34]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, =sub_8074158
- str r1, [r0]
- ldr r2, =gSprites
- mov r12, r2
- b _08073D82
- .pool
-_08073D4C:
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r7, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x34]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strh r2, [r0, 0x36]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, =sub_8074158
- str r1, [r0]
- ldr r0, =gSprites
- mov r12, r0
-_08073D82:
- adds r4, 0x1
- adds r7, 0x7
- adds r5, 0x1
- cmp r5, 0x5
- ble _08073CE8
- ldr r3, [sp, 0x10]
- add r3, r10
- lsls r3, 2
- mov r1, r12
- adds r0, r3, r1
- movs r2, 0x2E
- ldrsh r1, [r0, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- movs r2, 0
- strh r1, [r0, 0x2E]
- strh r2, [r0, 0x30]
- mov r1, r12
- adds r1, 0x1C
- adds r3, r1
- ldr r1, =sub_8074090
- str r1, [r3]
- ldr r1, =gUnknown_0832C2CC
- bl SetSubspriteTables
- ldr r1, =gTasks
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, =task_battle_throw_own_ball
- str r1, [r0]
- b _08073DEE
- .pool
-_08073DE0:
- ldr r0, =gTasks
- ldr r1, [sp, 0xC]
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_8073F98
- str r0, [r1]
-_08073DEE:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8073C30
-
- thumb_func_start task_battle_throw_own_ball
-task_battle_throw_own_ball: @ 8073E08
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08073E48
- ldrh r0, [r4, 0x26]
- subs r1, r0, 0x1
- strh r1, [r4, 0x26]
- lsls r0, r1, 16
- cmp r0, 0
- blt _08073E54
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
-_08073E48:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08073E54
- ldr r0, =sub_8073E64
- str r0, [r4]
-_08073E54:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_battle_throw_own_ball
-
- thumb_func_start sub_8073E64
-sub_8073E64: @ 8073E64
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r7, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r3, r0, 3
- adds r4, r3, r7
- ldrb r2, [r4, 0x8]
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08073F54
- ldrb r5, [r4, 0xA]
- movs r4, 0
- ldr r6, =gBattleSpritesDataPtr
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r3, r0
-_08073E96:
- mov r0, sp
- adds r1, r0, r4
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _08073E96
- ldr r0, [r6]
- ldr r3, [r0, 0x8]
- ldrb r2, [r3, 0x9]
- lsls r1, r2, 27
- lsrs r1, 29
- subs r1, 0x1
- movs r0, 0x7
- ands r1, r0
- lsls r1, 2
- movs r0, 0x1D
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- ldrb r1, [r0, 0x9]
- movs r0, 0x1C
- ands r0, r1
- cmp r0, 0
- bne _08073EFC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- b _08073F32
- .pool
-_08073EFC:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r5, =gSprites
- adds r4, r5
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl FreeSpriteOamMatrix
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08073F32:
- movs r4, 0x1
- ldr r5, =gSprites
-_08073F36:
- mov r1, sp
- adds r0, r1, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r4, 0x1
- cmp r4, 0x5
- ble _08073F36
- b _08073F8A
- .pool
-_08073F54:
- movs r0, 0x3
- negs r0, r0
- cmp r1, r0
- bne _08073F8A
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- bl DestroyTask
-_08073F8A:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8073E64
-
- thumb_func_start sub_8073F98
-sub_8073F98: @ 8073F98
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r7, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r6, r0, 3
- adds r3, r6, r7
- ldrb r5, [r3, 0x8]
- ldrh r0, [r3, 0x26]
- subs r1, r0, 0x1
- strh r1, [r3, 0x26]
- lsls r0, r1, 16
- asrs r2, r0, 16
- cmp r2, 0
- blt _08073FD4
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x52
- bl SetGpuReg
- b _0807406A
- .pool
-_08073FD4:
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- bne _08074034
- ldrb r3, [r3, 0xA]
- movs r5, 0
- adds r0, r7, 0
- adds r0, 0xE
- adds r2, r6, r0
-_08073FE6:
- mov r0, sp
- adds r1, r0, r5
- ldrh r0, [r2]
- strb r0, [r1]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x5
- ble _08073FE6
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySpriteAndFreeResources
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySpriteAndFreeResources
- movs r5, 0x1
-_08074016:
- mov r1, sp
- adds r0, r1, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r5, 0x1
- cmp r5, 0x5
- ble _08074016
- b _0807406A
- .pool
-_08074034:
- movs r0, 0x3
- negs r0, r0
- cmp r2, r0
- bne _0807406A
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- adds r0, r4, 0
- bl DestroyTask
-_0807406A:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8073F98
-
- thumb_func_start sub_8074078
-sub_8074078: @ 8074078
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x24]
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0807408C
- ldrh r0, [r1, 0x2E]
- adds r0, r2, r0
- strh r0, [r1, 0x24]
-_0807408C:
- pop {r0}
- bx r0
- thumb_func_end sub_8074078
-
- thumb_func_start sub_8074090
-sub_8074090: @ 8074090
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0
- adds r1, 0x20
- strh r1, [r2, 0x30]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _080740AE
- lsls r0, r1, 16
- asrs r0, 20
- ldrh r1, [r2, 0x24]
- adds r0, r1
- b _080740B6
-_080740AE:
- lsls r1, 16
- asrs r1, 20
- ldrh r0, [r2, 0x24]
- subs r0, r1
-_080740B6:
- strh r0, [r2, 0x24]
- ldrh r1, [r2, 0x30]
- movs r0, 0xF
- ands r0, r1
- strh r0, [r2, 0x30]
- pop {r0}
- bx r0
- thumb_func_end sub_8074090
-
- thumb_func_start sub_80740C4
-sub_80740C4: @ 80740C4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _080740D8
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _0807414E
-_080740D8:
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r3, r0, 24
- ldrh r2, [r4, 0x34]
- adds r0, r2, 0
- adds r0, 0x38
- lsls r1, r0, 16
- lsrs r2, r1, 16
- ldr r0, =0x0000fff0
- ands r2, r0
- strh r2, [r4, 0x34]
- cmp r3, 0
- beq _0807410C
- lsrs r0, r1, 20
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- ble _0807411C
- movs r0, 0
- strh r0, [r4, 0x24]
- b _0807411C
- .pool
-_0807410C:
- lsrs r1, 20
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _0807411C
- strh r3, [r4, 0x24]
-_0807411C:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0807414E
- movs r1, 0x3F
- cmp r3, 0
- beq _0807412C
- movs r1, 0xC0
-_0807412C:
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08074140
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x74
- bl PlaySE2WithPanning
- b _0807414A
-_08074140:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x73
- bl PlaySE1WithPanning
-_0807414A:
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0807414E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80740C4
-
- thumb_func_start sub_8074158
-sub_8074158: @ 8074158
- push {r4,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- ble _0807416C
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _080741BC
-_0807416C:
- ldrh r0, [r3, 0x32]
- lsls r0, 24
- ldrh r2, [r3, 0x34]
- adds r1, r2, 0
- adds r1, 0x38
- lsls r4, r1, 16
- lsrs r2, r4, 16
- ldr r1, =0x0000fff0
- ands r2, r1
- strh r2, [r3, 0x34]
- cmp r0, 0
- beq _08074190
- lsrs r0, r4, 20
- ldrh r1, [r3, 0x24]
- adds r0, r1
- b _08074196
- .pool
-_08074190:
- lsrs r1, r4, 20
- ldrh r0, [r3, 0x24]
- subs r0, r1
-_08074196:
- strh r0, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x80
- lsls r1, 1
- cmp r0, r1
- bls _080741BC
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, =SpriteCallbackDummy
- str r0, [r3, 0x1C]
-_080741BC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8074158
-
- thumb_func_start sub_80741C8
-sub_80741C8: @ 80741C8
- ldrh r2, [r0, 0x2E]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- strh r2, [r0, 0x24]
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- bx lr
- .pool
- thumb_func_end sub_80741C8
-
- thumb_func_start sub_80741E8
-sub_80741E8: @ 80741E8
- push {r4-r7,lr}
- sub sp, 0x14
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gDisplayedStringBattle
- ldr r1, =gText_HighlightDarkGrey
- adds r0, r5, 0
- bl StringCopy
- adds r0, r4, 0
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- add r0, sp, 0x4
- bl StringGetEnd10
- adds r0, r5, 0
- add r1, sp, 0x4
- bl StringAppend
- adds r5, r0, 0
- adds r0, r4, 0
- bl GetMonGender
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x1D
- beq _08074236
- cmp r0, 0x20
- bne _0807424A
-_08074236:
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- add r0, sp, 0x4
- bl StringCompare
- cmp r0, 0
- bne _0807424A
- movs r6, 0x64
-_0807424A:
- cmp r6, 0
- beq _08074268
- cmp r6, 0xFE
- beq _08074270
- ldr r1, =gText_DynColor2
- b _08074272
- .pool
-_08074268:
- ldr r1, =gText_DynColor2Male
- b _08074272
- .pool
-_08074270:
- ldr r1, =gText_DynColor1Female
-_08074272:
- adds r0, r5, 0
- bl StringCopy
- ldr r0, =gDisplayedStringBattle
- add r1, sp, 0x10
- str r1, [sp]
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl write_to_rbox
- adds r6, r0, 0
- ldr r0, =gSprites
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r4, r0, 17
- ldrh r0, [r1, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _080742F0
- ldr r1, =0x06010040
- adds r0, r4, r1
- adds r1, r6, 0
- movs r2, 0x6
- bl sub_8075198
- bl IsDoubleBattle
- lsls r0, 24
- ldr r1, =0x06010400
- adds r5, r4, r1
- cmp r0, 0
- bne _080742C8
- ldr r0, =0x06010800
- adds r5, r4, r0
-_080742C8:
- adds r1, r6, 0
- adds r1, 0xC0
- adds r0, r5, 0
- movs r2, 0x1
- bl sub_8075198
- b _080742FC
- .pool
-_080742F0:
- ldr r1, =0x06010020
- adds r0, r4, r1
- adds r1, r6, 0
- movs r2, 0x7
- bl sub_8075198
-_080742FC:
- ldr r0, [sp, 0x10]
- bl sub_807512C
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80741E8
-
- thumb_func_start sub_8074310
-sub_8074310: @ 8074310
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _080743E6
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- bne _080743E6
- ldr r6, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r6
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080743E6
- ldr r1, =gBattlePartyID
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _080743E6
- ldrh r0, [r5, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r7, 0
- beq _080743C4
- movs r0, 0x46
- bl sub_80728A4
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r6
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _080743E6
- .pool
-_080743C4:
- str r7, [sp]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x4]
- lsls r1, 22
- lsrs r1, 17
- movs r0, 0x80
- lsls r0, 1
- adds r1, r0
- ldr r0, =0x06010000
- adds r1, r0
- ldr r2, =0x05000008
- mov r0, sp
- bl CpuSet
-_080743E6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8074310
-
- thumb_func_start draw_status_ailment_maybe
-draw_status_ailment_maybe: @ 80743F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, =gSprites
- mov r2, r9
- lsls r1, r2, 4
- add r1, r9
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x3A]
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r1, 0x38]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- bne _08074468
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x37
- bl GetMonData
- adds r4, r0, 0
- bl IsDoubleBattle
- lsls r0, 24
- movs r3, 0x12
- mov r8, r3
- cmp r0, 0
- bne _08074484
- movs r0, 0x1A
- mov r8, r0
- b _08074484
- .pool
-_08074468:
- ldr r1, =gBattlePartyID
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0x37
- bl GetMonData
- adds r4, r0, 0
- movs r1, 0x11
- mov r8, r1
-_08074484:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _080744AC
- movs r0, 0x1B
- adds r1, r7, 0
- bl sub_80746A8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80728A4
- adds r6, r0, 0
- movs r0, 0x2
- b _080745B8
- .pool
-_080744AC:
- movs r0, 0x88
- ands r0, r4
- cmp r0, 0
- beq _080744CA
- movs r0, 0x15
- adds r1, r7, 0
- bl sub_80746A8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80728A4
- adds r6, r0, 0
- movs r0, 0
- b _080745B8
-_080744CA:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _080744E8
- movs r0, 0x21
- adds r1, r7, 0
- bl sub_80746A8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80728A4
- adds r6, r0, 0
- movs r0, 0x4
- b _080745B8
-_080744E8:
- movs r0, 0x20
- ands r0, r4
- cmp r0, 0
- beq _08074506
- movs r0, 0x1E
- adds r1, r7, 0
- bl sub_80746A8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80728A4
- adds r6, r0, 0
- movs r0, 0x3
- b _080745B8
-_08074506:
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- beq _08074524
- movs r0, 0x18
- adds r1, r7, 0
- bl sub_80746A8
- lsls r0, 24
- lsrs r0, 24
- bl sub_80728A4
- adds r6, r0, 0
- movs r0, 0x1
- b _080745B8
-_08074524:
- movs r0, 0x27
- bl sub_80728A4
- adds r6, r0, 0
- movs r4, 0
- mov r2, r9
- lsls r0, r2, 4
- mov r3, r8
- lsls r3, 16
- mov r8, r3
- lsls r7, 2
- ldr r1, =gSprites
- add r0, r9
- lsls r0, 2
- adds r5, r0, r1
-_08074542:
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- mov r2, r8
- asrs r0, r2, 16
- adds r1, r0
- adds r1, r4
- lsls r1, 5
- ldr r3, =0x06010000
- adds r1, r3
- adds r0, r6, 0
- ldr r2, =0x04000008
- bl CpuSet
- adds r4, 0x1
- cmp r4, 0x2
- ble _08074542
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r7, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08074598
- movs r0, 0x1
- bl sub_80728A4
- ldr r2, =gSprites
- mov r3, r10
- lsls r1, r3, 4
- add r1, r10
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000010
- bl CpuSet
-_08074598:
- mov r0, r9
- movs r1, 0x1
- bl sub_8074310
- b _0807467A
- .pool
-_080745B8:
- mov r1, r9
- lsls r5, r1, 4
- add r5, r9
- lsls r5, 2
- ldr r2, =gSprites
- adds r5, r2
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- adds r4, 0xC
- adds r4, r7
- ldr r1, =gUnknown_0832C3EC
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r4, r3
- movs r2, 0x2
- bl FillPalette
- lsls r4, 1
- ldr r0, =gPlttBufferUnfaded + 0x200
- adds r0, r4, r0
- ldr r1, =0x05000200
- adds r4, r1
- adds r1, r4, 0
- movs r2, 0x1
- bl CpuSet
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- add r1, r8
- lsls r1, 5
- ldr r2, =0x06010000
- mov r8, r2
- add r1, r8
- ldr r2, =0x04000018
- adds r0, r6, 0
- bl CpuSet
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08074626
- adds r0, r7, 0
- bl GetBankSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08074672
-_08074626:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r7, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08074672
- movs r0, 0
- bl sub_80728A4
- mov r3, r10
- lsls r4, r3, 4
- add r4, r10
- lsls r4, 2
- ldr r1, =gSprites
- adds r4, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- add r1, r8
- ldr r5, =0x04000008
- adds r2, r5, 0
- bl CpuSet
- movs r0, 0x41
- bl sub_80728A4
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- adds r1, 0x20
- add r1, r8
- adds r2, r5, 0
- bl CpuSet
-_08074672:
- mov r0, r9
- movs r1, 0
- bl sub_8074310
-_0807467A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end draw_status_ailment_maybe
-
- thumb_func_start sub_80746A8
-sub_80746A8: @ 80746A8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsrs r2, r0, 24
- adds r0, r2, 0
- subs r0, 0x15
- cmp r0, 0xC
- bhi _08074768
- lsls r0, 2
- ldr r1, =_080746C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080746C8:
- .4byte _080746FC
- .4byte _08074768
- .4byte _08074768
- .4byte _08074712
- .4byte _08074768
- .4byte _08074768
- .4byte _08074728
- .4byte _08074768
- .4byte _08074768
- .4byte _0807473E
- .4byte _08074768
- .4byte _08074768
- .4byte _08074754
-_080746FC:
- movs r2, 0x15
- cmp r3, 0
- beq _08074768
- movs r2, 0x47
- cmp r3, 0x1
- beq _08074768
- movs r2, 0x65
- cmp r3, 0x2
- bne _08074768
- movs r2, 0x56
- b _08074768
-_08074712:
- movs r2, 0x18
- cmp r3, 0
- beq _08074768
- movs r2, 0x4A
- cmp r3, 0x1
- beq _08074768
- movs r2, 0x68
- cmp r3, 0x2
- bne _08074768
- movs r2, 0x59
- b _08074768
-_08074728:
- movs r2, 0x1B
- cmp r3, 0
- beq _08074768
- movs r2, 0x4D
- cmp r3, 0x1
- beq _08074768
- movs r2, 0x6B
- cmp r3, 0x2
- bne _08074768
- movs r2, 0x5C
- b _08074768
-_0807473E:
- movs r2, 0x1E
- cmp r3, 0
- beq _08074768
- movs r2, 0x50
- cmp r3, 0x1
- beq _08074768
- movs r2, 0x6E
- cmp r3, 0x2
- bne _08074768
- movs r2, 0x5F
- b _08074768
-_08074754:
- movs r2, 0x21
- cmp r3, 0
- beq _08074768
- movs r2, 0x53
- cmp r3, 0x1
- beq _08074768
- movs r2, 0x71
- cmp r3, 0x2
- bne _08074768
- movs r2, 0x62
-_08074768:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80746A8
-
- thumb_func_start sub_8074770
-sub_8074770: @ 8074770
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gText_SafariBalls
- add r1, sp, 0x4
- str r1, [sp]
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl write_to_rbox
- adds r5, r0, 0
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x4]
- lsls r4, 22
- lsrs r4, 17
- ldr r1, =0x06010040
- adds r0, r4, r1
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_8075198
- ldr r0, =0x06010800
- adds r4, r0
- adds r5, 0xC0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_8075198
- ldr r0, [sp, 0x4]
- bl sub_807512C
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8074770
-
- thumb_func_start sub_80747D8
-sub_80747D8: @ 80747D8
- push {r4,r5,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gText_SafariBallLeft
- add r0, sp, 0x4
- bl StringCopy
- ldr r1, =gNumSafariBalls
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0
- add r1, sp, 0x4
- movs r2, 0x2F
- bl GetStringRightAlignXOffset
- adds r1, r0, 0
- add r0, sp, 0x14
- str r0, [sp]
- add r0, sp, 0x4
- movs r2, 0x3
- movs r3, 0x2
- bl write_to_rbox
- adds r5, r0, 0
- ldr r1, =gSprites
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r4, [r0, 0x4]
- lsls r4, 22
- lsrs r4, 17
- ldr r1, =0x060102c0
- adds r0, r4, r1
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80751E4
- ldr r0, =0x06010a00
- adds r4, r0
- adds r5, 0x40
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80751E4
- ldr r0, [sp, 0x14]
- bl sub_807512C
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80747D8
-
- thumb_func_start UpdateHealthboxAttribute
-UpdateHealthboxAttribute: @ 8074860
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r1
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r1, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r7, 0
- bne _0807489C
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- bne _0807489C
- mov r0, r9
- bl GetBankSide
-_0807489C:
- ldr r1, =gSprites
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- bl GetBankSide
- lsls r0, 24
- cmp r0, 0
- beq _080748B8
- b _08074A18
-_080748B8:
- cmp r7, 0x3
- beq _080748C0
- cmp r7, 0
- bne _080748D4
-_080748C0:
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl healthbar_draw_level
-_080748D4:
- cmp r7, 0x1
- bhi _080748EE
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r6, 0
- movs r2, 0
- bl heathbar_draw_hp
-_080748EE:
- cmp r7, 0x2
- beq _080748F6
- cmp r7, 0
- bne _0807490C
-_080748F6:
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r6, 0
- movs r2, 0x1
- bl heathbar_draw_hp
-_0807490C:
- cmp r7, 0x5
- beq _08074914
- cmp r7, 0
- bne _08074948
-_08074914:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_807294C
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8074AA0
-_08074948:
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0
- bne _080749CE
- cmp r7, 0x6
- beq _0807495E
- cmp r7, 0
- bne _080749CE
-_0807495E:
- movs r0, 0x3
- bl load_gfxc_health_bar
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r8
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r0, =gExperienceTables
- mov r12, r0
- lsls r1, r4, 2
- ldr r2, =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- add r1, r12
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- add r4, r12
- ldr r2, [r4]
- subs r2, r1
- mov r0, r10
- str r0, [sp]
- mov r0, r9
- adds r1, r6, 0
- bl sub_807294C
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8074AA0
-_080749CE:
- cmp r7, 0x4
- beq _080749D6
- cmp r7, 0
- bne _080749DE
-_080749D6:
- adds r0, r6, 0
- mov r1, r8
- bl sub_80741E8
-_080749DE:
- cmp r7, 0x9
- beq _080749E6
- cmp r7, 0
- bne _080749EC
-_080749E6:
- adds r0, r6, 0
- bl draw_status_ailment_maybe
-_080749EC:
- cmp r7, 0xA
- bne _080749F6
- adds r0, r6, 0
- bl sub_8074770
-_080749F6:
- adds r0, r7, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08074A8E
- adds r0, r6, 0
- bl sub_80747D8
- b _08074A8E
- .pool
-_08074A18:
- cmp r7, 0x3
- beq _08074A20
- cmp r7, 0
- bne _08074A34
-_08074A20:
- mov r0, r8
- movs r1, 0x38
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl healthbar_draw_level
-_08074A34:
- cmp r7, 0x5
- beq _08074A3C
- cmp r7, 0
- bne _08074A70
-_08074A3C:
- movs r0, 0
- bl load_gfxc_health_bar
- mov r0, r8
- movs r1, 0x3A
- bl GetMonData
- adds r4, r0, 0
- mov r0, r8
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- movs r0, 0
- str r0, [sp]
- mov r0, r9
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_807294C
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0
- bl sub_8074AA0
-_08074A70:
- cmp r7, 0x4
- beq _08074A78
- cmp r7, 0
- bne _08074A80
-_08074A78:
- adds r0, r6, 0
- mov r1, r8
- bl sub_80741E8
-_08074A80:
- cmp r7, 0x9
- beq _08074A88
- cmp r7, 0
- bne _08074A8E
-_08074A88:
- adds r0, r6, 0
- bl draw_status_ailment_maybe
-_08074A8E:
- 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 UpdateHealthboxAttribute
-
- thumb_func_start sub_8074AA0
-sub_8074AA0: @ 8074AA0
- 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
- mov r8, r0
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- cmp r2, 0
- bne _08074AEC
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- mov r1, r8
- lsls r5, r1, 2
- adds r3, r5, r1
- lsls r3, 2
- adds r3, r0
- ldr r0, [r3, 0x4]
- ldr r1, [r3, 0x8]
- ldr r2, [r3, 0xC]
- adds r3, 0x10
- movs r4, 0x6
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- bl sub_8074DB8
- adds r4, r0, 0
- adds r7, r5, 0
- b _08074B48
- .pool
-_08074AEC:
- ldr r2, =gBattleSpritesDataPtr
- mov r10, r2
- ldr r0, [r2]
- ldr r2, [r0, 0xC]
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r6, r0, 2
- adds r2, r6, r2
- ldr r0, [r2, 0x8]
- ldr r1, [r2, 0xC]
- ldr r2, [r2, 0x4]
- movs r3, 0x8
- bl sub_8074FE8
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r4, 0
- cmp r5, 0
- bne _08074B16
- movs r5, 0x1
-_08074B16:
- mov r1, r10
- ldr r0, [r1]
- ldr r0, [r0, 0xC]
- adds r4, r6, r0
- ldr r6, [r4, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- bl __divsi3
- cmp r0, 0
- bge _08074B2E
- negs r0, r0
-_08074B2E:
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4, 0x4]
- ldr r1, [r4, 0x8]
- adds r3, r4, 0
- adds r3, 0x10
- movs r2, 0x8
- str r2, [sp]
- str r5, [sp, 0x4]
- adds r2, r6, 0
- bl sub_8074DB8
- adds r4, r0, 0
-_08074B48:
- mov r2, r9
- cmp r2, 0x1
- beq _08074B64
- cmp r2, 0
- bne _08074B6C
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r7, r0
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08074B6C
-_08074B64:
- mov r0, r8
- mov r1, r9
- bl sub_8074B9C
-_08074B6C:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _08074B86
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0xC]
- mov r2, r8
- adds r0, r7, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- str r1, [r0, 0x10]
-_08074B86:
- adds r0, r4, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8074AA0
-
- thumb_func_start sub_8074B9C
-sub_8074B9C: @ 8074B9C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _08074BB8
- cmp r1, 0x1
- beq _08074CA0
- b _08074D9E
-_08074BB8:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- adds r3, r0
- ldr r0, [r3, 0x4]
- ldr r1, [r3, 0x8]
- ldr r2, [r3, 0xC]
- adds r3, 0x10
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_8074E8C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- mov r9, r1
- adds r7, r5, 0
- cmp r0, 0x18
- bhi _08074BF4
- movs r2, 0x38
- mov r9, r2
- cmp r0, 0x9
- bls _08074BF4
- movs r4, 0x2F
- mov r9, r4
-_08074BF4:
- movs r5, 0
- ldr r0, =gSprites
- mov r8, r0
-_08074BFA:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0xC]
- adds r0, r7, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x38]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0x1
- bhi _08074C5C
- mov r0, r9
- bl sub_80728A4
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r8
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0x2
- adds r1, r2
- lsls r1, 5
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _08074C8A
- .pool
-_08074C5C:
- mov r0, r9
- bl sub_80728A4
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- add r1, r8
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r4, =0x06010040
- adds r1, r4
- ldr r2, =0x04000008
- bl CpuSet
-_08074C8A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08074BFA
- b _08074D9E
- .pool
-_08074CA0:
- ldr r0, =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0xC]
- lsls r5, r6, 2
- adds r3, r5, r6
- lsls r3, 2
- adds r3, r0
- ldr r0, [r3, 0x4]
- ldr r1, [r3, 0x8]
- ldr r2, [r3, 0xC]
- adds r3, 0x10
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x8
- str r4, [sp, 0x4]
- bl sub_8074E8C
- ldr r1, =gBattlePartyID
- lsls r0, r6, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- adds r7, r5, 0
- cmp r0, 0x64
- bne _08074CF8
- movs r5, 0
- movs r1, 0
-_08074CE6:
- mov r0, sp
- adds r0, r5
- adds r0, 0x8
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08074CE6
-_08074CF8:
- movs r5, 0
- ldr r0, =gSprites
- mov r8, r0
- adds r0, r7, r6
- lsls r4, r0, 2
-_08074D02:
- cmp r5, 0x3
- bhi _08074D5C
- movs r0, 0xC
- bl sub_80728A4
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldr r1, =gBattleSpritesDataPtr
- ldr r1, [r1]
- ldr r1, [r1, 0xC]
- adds r1, r4, r1
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r2, r5, 0
- adds r2, 0x24
- adds r1, r2
- lsls r1, 5
- ldr r2, =0x06010000
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
- b _08074D94
- .pool
-_08074D5C:
- movs r0, 0xC
- bl sub_80728A4
- mov r1, sp
- adds r1, r5
- adds r1, 0x8
- ldrb r1, [r1]
- lsls r1, 5
- adds r0, r1
- ldr r1, =gBattleSpritesDataPtr
- ldr r1, [r1]
- ldr r1, [r1, 0xC]
- adds r1, r4, r1
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrh r1, [r1, 0x4]
- lsls r1, 22
- lsrs r1, 22
- adds r1, r5, r1
- lsls r1, 5
- ldr r2, =0x06010b80
- adds r1, r2
- ldr r2, =0x04000008
- bl CpuSet
-_08074D94:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _08074D02
-_08074D9E:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8074B9C
-
- thumb_func_start sub_8074DB8
-sub_8074DB8: @ 8074DB8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- mov r8, r2
- adds r5, r3, 0
- ldr r1, [sp, 0x18]
- ldr r0, [sp, 0x1C]
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 27
- lsrs r2, r1, 24
- ldr r1, [r5]
- ldr r0, =0xffff8000
- cmp r1, r0
- bne _08074DEA
- cmp r7, r2
- bge _08074DE8
- lsls r0, r4, 8
- str r0, [r5]
- b _08074DEA
- .pool
-_08074DE8:
- str r4, [r5]
-_08074DEA:
- mov r0, r8
- subs r4, r0
- cmp r4, 0
- bge _08074DF6
- movs r4, 0
- b _08074DFC
-_08074DF6:
- cmp r4, r7
- ble _08074DFC
- adds r4, r7, 0
-_08074DFC:
- cmp r7, r2
- bge _08074E18
- ldr r0, [r5]
- asrs r1, r0, 8
- adds r6, r0, 0
- cmp r4, r1
- bne _08074E24
- movs r0, 0xFF
- ands r0, r6
- cmp r0, 0
- bne _08074E24
- movs r0, 0x1
- negs r0, r0
- b _08074E80
-_08074E18:
- ldr r6, [r5]
- cmp r4, r6
- bne _08074E24
- movs r0, 0x1
- negs r0, r0
- b _08074E80
-_08074E24:
- cmp r7, r2
- bge _08074E5E
- lsls r0, r7, 8
- adds r1, r2, 0
- bl __divsi3
- mov r1, r8
- cmp r1, 0
- bge _08074E42
- adds r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- cmp r2, r4
- blt _08074E7E
- b _08074E56
-_08074E42:
- subs r0, r6, r0
- str r0, [r5]
- asrs r2, r0, 8
- movs r1, 0xFF
- ands r0, r1
- cmp r0, 0
- ble _08074E52
- adds r2, 0x1
-_08074E52:
- cmp r2, r4
- bgt _08074E7E
-_08074E56:
- lsls r0, r4, 8
- str r0, [r5]
- adds r2, r4, 0
- b _08074E7E
-_08074E5E:
- mov r0, r8
- cmp r0, 0
- bge _08074E70
- ldr r0, [r5]
- adds r0, r3
- str r0, [r5]
- cmp r0, r4
- ble _08074E7C
- b _08074E7A
-_08074E70:
- ldr r0, [r5]
- subs r0, r3
- str r0, [r5]
- cmp r0, r4
- bge _08074E7C
-_08074E7A:
- str r4, [r5]
-_08074E7C:
- ldr r2, [r5]
-_08074E7E:
- adds r0, r2, 0
-_08074E80:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8074DB8
-
- thumb_func_start sub_8074E8C
-sub_8074E8C: @ 8074E8C
- push {r4-r7,lr}
- adds r4, r0, 0
- mov r12, r3
- ldr r7, [sp, 0x14]
- ldr r0, [sp, 0x18]
- lsls r0, 24
- lsrs r6, r0, 24
- subs r5, r1, r2
- cmp r5, 0
- bge _08074EA4
- movs r5, 0
- b _08074EAA
-_08074EA4:
- cmp r5, r4
- ble _08074EAA
- adds r5, r4, 0
-_08074EAA:
- lsls r0, r6, 27
- lsrs r3, r0, 24
- movs r1, 0
- cmp r1, r6
- bcs _08074EC4
- movs r2, 0
-_08074EB6:
- adds r0, r7, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08074EB6
-_08074EC4:
- cmp r4, r3
- bge _08074ED8
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
- asrs r0, 8
- b _08074EE4
-_08074ED8:
- mov r1, r12
- ldr r0, [r1]
- muls r0, r3
- adds r1, r4, 0
- bl __divsi3
-_08074EE4:
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r3, 0
- bne _08074EFA
- cmp r5, 0
- ble _08074EFA
- movs r0, 0x1
- strb r0, [r7]
- movs r3, 0x1
- b _08074F1E
-_08074EFA:
- movs r1, 0
- movs r4, 0x8
-_08074EFE:
- cmp r1, r6
- bcs _08074F1E
- cmp r2, 0x7
- bls _08074F1A
- adds r0, r7, r1
- strb r4, [r0]
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- b _08074EFE
-_08074F1A:
- adds r0, r7, r1
- strb r2, [r0]
-_08074F1E:
- adds r0, r3, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8074E8C
-
- thumb_func_start sub_8074F28
-sub_8074F28: @ 8074F28
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- mov r8, r3
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- movs r3, 0x6
- str r3, [sp]
- movs r3, 0x1
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_8074DB8
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8074F88
- ldr r0, [r5]
- cmp r0, 0x2F
- bgt _08074F68
- ldr r0, [r6]
- lsls r0, 8
- lsrs r1, r0, 16
- b _08074F6A
-_08074F68:
- ldrh r1, [r6]
-_08074F6A:
- movs r2, 0
- ldrsh r0, [r5, r2]
- lsls r1, 16
- asrs r1, 16
- mov r2, r8
- bl sub_8072304
- lsls r0, r7, 16
- asrs r0, 16
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8074F28
-
- thumb_func_start sub_8074F88
-sub_8074F88: @ 8074F88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- adds r5, r0, 0
- adds r3, r1, 0
- mov r8, r2
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- ldr r2, [r5, 0x8]
- add r4, sp, 0x8
- str r4, [sp]
- movs r4, 0x6
- str r4, [sp, 0x4]
- bl sub_8074E8C
- movs r3, 0
- add r7, sp, 0x10
- mov r12, r7
- ldrb r0, [r5, 0xC]
- lsls r6, r0, 27
- ldr r4, [r5, 0x10]
-_08074FB4:
- lsls r2, r3, 1
- add r2, r12
- lsrs r1, r6, 15
- mov r0, sp
- adds r0, r3
- adds r0, 0x8
- ldrb r0, [r0]
- adds r0, r4, r0
- orrs r1, r0
- strh r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _08074FB4
- adds r0, r7, 0
- mov r1, r8
- movs r2, 0x6
- bl CpuSet
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8074F88
-
- thumb_func_start sub_8074FE8
-sub_8074FE8: @ 8074FE8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r3, 27
- lsrs r7, r3, 24
- subs r5, r0, r1
- cmp r5, 0
- bge _08074FFA
- movs r5, 0
- b _08075000
-_08074FFA:
- cmp r5, r6
- ble _08075000
- adds r5, r6, 0
-_08075000:
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- muls r0, r7
- adds r1, r6, 0
- bl __divsi3
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- subs r0, r4, r0
- cmp r0, 0
- bge _08075028
- negs r0, r0
-_08075028:
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8074FE8
-
- thumb_func_start GetScaledHPFraction
-GetScaledHPFraction: @ 8075034
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- muls r0, r2
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08075058
- cmp r4, 0
- ble _08075058
- movs r0, 0x1
-_08075058:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetScaledHPFraction
-
- thumb_func_start sub_8075060
-sub_8075060: @ 8075060
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08075072
- movs r0, 0x4
- b _0807508E
-_08075072:
- movs r2, 0x30
- bl GetScaledHPFraction
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x3
- cmp r1, 0x18
- bhi _0807508E
- movs r0, 0x2
- cmp r1, 0x9
- bhi _0807508E
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
-_0807508E:
- pop {r1}
- bx r1
- thumb_func_end sub_8075060
-
- thumb_func_start write_to_rbox
-write_to_rbox: @ 8075094
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- mov r10, r0
- mov r8, r1
- mov r9, r2
- adds r5, r3, 0
- ldr r7, [sp, 0x40]
- ldr r0, =gUnknown_0832C3F8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r6, r4, 24
- lsrs r6, 24
- lsls r1, r5, 4
- orrs r1, r5
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl FillWindowPixelBuffer
- add r0, sp, 0x14
- movs r2, 0
- strb r5, [r0]
- adds r1, r0, 0
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r2, [sp]
- str r2, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- mov r0, r10
- str r0, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0
- mov r2, r8
- mov r3, r9
- bl AddTextPrinterParametrized2
- str r4, [r7]
- adds r0, r6, 0
- movs r1, 0x7
- bl GetWindowAttribute
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end write_to_rbox
-
- thumb_func_start sub_807512C
-sub_807512C: @ 807512C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- pop {r0}
- bx r0
- thumb_func_end sub_807512C
-
- thumb_func_start sub_807513C
-sub_807513C: @ 807513C
- push {lr}
- sub sp, 0x4
- adds r3, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r1, r0, 8
- adds r0, r1
- lsls r1, r0, 16
- adds r0, r1
- str r0, [sp]
- lsls r2, 3
- ldr r0, =0x001fffff
- ands r2, r0
- movs r0, 0xA0
- lsls r0, 19
- orrs r2, r0
- mov r0, sp
- adds r1, r3, 0
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_807513C
-
- thumb_func_start sub_8075170
-sub_8075170: @ 8075170
- push {lr}
- adds r3, r0, 0
- adds r0, r1, 0
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- lsls r2, 3
- ldr r1, =0x001fffff
- ands r2, r1
- movs r1, 0x80
- lsls r1, 19
- orrs r2, r1
- adds r1, r3, 0
- bl CpuSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8075170
-
- thumb_func_start sub_8075198
-sub_8075198: @ 8075198
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- movs r1, 0x80
- lsls r1, 1
- adds r0, r5, r1
- adds r1, r6, r1
- lsls r2, r4, 3
- ldr r3, =0x001fffff
- ands r2, r3
- movs r3, 0x80
- lsls r3, 19
- orrs r2, r3
- bl CpuSet
- cmp r4, 0
- ble _080751D4
-_080751BC:
- adds r0, r5, 0
- adds r0, 0x14
- adds r1, r6, 0
- adds r1, 0x14
- ldr r2, =0x04000003
- bl CpuSet
- adds r6, 0x20
- adds r5, 0x20
- subs r4, 0x1
- cmp r4, 0
- bne _080751BC
-_080751D4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8075198
-
- thumb_func_start sub_80751E4
-sub_80751E4: @ 80751E4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r4, r2, 3
- ldr r0, =0x001fffff
- ands r4, r0
- movs r0, 0x80
- lsls r0, 19
- orrs r4, r0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl CpuSet
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl CpuSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80751E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 74016152f..15ba76e9c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1980,7 +1980,7 @@ _080B3474:
bl sub_800B524
lsls r0, r4, 24
lsrs r0, 24
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
adds r5, 0x1C
adds r4, 0x1
_080B349A:
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s
deleted file mode 100644
index 5efff250c..000000000
--- a/asm/clear_save_data_screen.s
+++ /dev/null
@@ -1,399 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start c2_clear_save_data_screen_2
-c2_clear_save_data_screen_2: @ 817ACC8
- push {lr}
- bl sub_817AE00
- lsls r0, 24
- cmp r0, 0
- beq _0817ACDC
- ldr r0, =sub_817ACE4
- movs r1, 0
- bl CreateTask
-_0817ACDC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end c2_clear_save_data_screen_2
-
- thumb_func_start sub_817ACE4
-sub_817ACE4: @ 817ACE4
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0xE
- bl SetWindowBorderStyle
- ldr r2, =gText_ClearAllSaveData
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldr r0, =gUnknown_085F06D8
- movs r1, 0x2
- movs r2, 0xE
- movs r3, 0x1
- bl CreateYesNoMenu
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_817AD40
- str r1, [r0]
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817ACE4
-
- thumb_func_start sub_817AD40
-sub_817AD40: @ 817AD40
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8198C58
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- beq _0817AD68
- cmp r4, 0
- bgt _0817AD62
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0817ADA0
- b _0817ADB2
-_0817AD62:
- cmp r4, 0x1
- beq _0817ADA0
- b _0817ADB2
-_0817AD68:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_ClearingData
- movs r0, 0x1
- str r0, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_817ADC0
- str r1, [r0]
- b _0817ADB2
- .pool
-_0817ADA0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, =sub_817AFD4
- bl SetMainCallback2
-_0817ADB2:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817AD40
-
- thumb_func_start sub_817ADC0
-sub_817ADC0: @ 817ADC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ClearSaveData
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =sub_817AFD4
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817ADC0
-
- thumb_func_start sub_817ADE4
-sub_817ADE4: @ 817ADE4
- push {lr}
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_817ADE4
-
- thumb_func_start sub_817ADF4
-sub_817ADF4: @ 817ADF4
- push {lr}
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_817ADF4
-
- thumb_func_start sub_817AE00
-sub_817AE00: @ 817AE00
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0817AE18
- cmp r0, 0x1
- bne _0817AE18
- b _0817AFA4
-_0817AE18:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- add r0, sp, 0x4
- movs r4, 0
- strh r4, [r0]
- ldr r1, =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, =0x05000002
- str r0, [r1, 0x4]
- ldr r0, =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r2, =gPlttBufferUnfaded
- ldr r0, =0x00007fff
- strh r0, [r2]
- ldr r1, =gPlttBufferFaded
- strh r0, [r1]
- ldr r0, =0x00003945
- strh r0, [r2, 0x2]
- strh r0, [r1, 0x2]
- movs r1, 0
- ldr r3, =0x06000020
- ldr r0, =0x00001111
- adds r2, r0, 0
-_0817AED4:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _0817AED4
- movs r1, 0
- ldr r4, =0x0600f000
- movs r3, 0x1
- ldr r2, =0x000003ff
-_0817AEEC:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0817AEEC
- bl ResetTasks
- bl ResetSpriteData
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085F06C0
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- bl sub_817B02C
- ldr r0, =0x0000ffff
- str r0, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl EnableInterrupts
- ldr r0, =sub_817ADF4
- bl SetVBlankCallback
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0817AFC8
- .pool
-_0817AFA4:
- bl UpdatePaletteFade
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0817AFC8
- ldr r0, =sub_817ADE4
- bl SetMainCallback2
- movs r0, 0x1
- b _0817AFCA
- .pool
-_0817AFC8:
- movs r0, 0
-_0817AFCA:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_817AE00
-
- thumb_func_start sub_817AFD4
-sub_817AFD4: @ 817AFD4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _0817AFEA
- cmp r0, 0x1
- beq _0817B008
-_0817AFEA:
- ldr r0, =0x0000ffff
- str r0, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strb r0, [r4]
- b _0817B020
- .pool
-_0817B008:
- bl UpdatePaletteFade
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0817B020
- bl FreeAllWindowBuffers
- bl DoSoftReset
-_0817B020:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817AFD4
-
- thumb_func_start sub_817B02C
-sub_817B02C: @ 817B02C
- push {lr}
- ldr r0, =gUnknown_085F06C8
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0xE0
- bl sub_80987D4
- ldr r0, =gUnknown_0860F074
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_817B02C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index eebe557e5..9c0684663 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -76,8 +76,8 @@ sub_80D7678: @ 80D7678
.pool
thumb_func_end sub_80D7678
- thumb_func_start sub_80D7724
-sub_80D7724: @ 80D7724
+ thumb_func_start LoadContestBgAfterMoveAnim
+LoadContestBgAfterMoveAnim: @ 80D7724
push {r4,r5,lr}
ldr r0, =gUnknown_08C17AB0
movs r1, 0xC0
@@ -119,7 +119,7 @@ _080D775E:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D7724
+ thumb_func_end LoadContestBgAfterMoveAnim
thumb_func_start sub_80D779C
sub_80D779C: @ 80D779C
@@ -138,7 +138,7 @@ sub_80D779C: @ 80D779C
_080D77BA:
lsls r0, r4, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
lsls r2, r4, 2
adds r1, 0x24
@@ -224,7 +224,7 @@ _080D7848:
thumb_func_start sub_80D787C
sub_80D787C: @ 80D787C
push {r4-r7,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
movs r1, 0
@@ -244,7 +244,7 @@ _080D7890:
cmp r5, 0x3
ble _080D7890
movs r4, 0
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
movs r5, 0x3
_080D78AA:
ldr r0, [r6]
@@ -257,7 +257,7 @@ _080D78AA:
subs r5, 0x1
cmp r5, 0
bge _080D78AA
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
movs r7, 0x4
negs r7, r7
movs r6, 0xFF
@@ -287,7 +287,7 @@ _080D78CC:
subs r5, 0x1
cmp r5, 0
bge _080D78CC
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x8]
movs r1, 0
@@ -339,7 +339,7 @@ _080D7942:
cmp r5, 0x3
ble _080D7942
bl sub_80DD590
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x1C]
movs r1, 0
@@ -354,7 +354,7 @@ _080D7942:
thumb_func_start sub_80D7988
sub_80D7988: @ 80D7988
push {r4,r5,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
movs r0, 0x40
bl AllocZeroed
str r0, [r4]
@@ -441,7 +441,7 @@ sub_80D7988: @ 80D7988
thumb_func_start sub_80D7A5C
sub_80D7A5C: @ 80D7A5C
push {r4,r5,lr}
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0]
bl Free
@@ -590,7 +590,7 @@ _080D7BD4:
strb r0, [r6]
b _080D7C56
_080D7BDA:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
adds r0, 0x59
@@ -628,7 +628,7 @@ _080D7C04:
ldr r0, =sub_80D7C7C
movs r1, 0xA
bl CreateTask
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, 0x8]
@@ -840,7 +840,7 @@ sub_80D7DE8: @ 80D7DE8
bl GetMultiplayerId
adds r0, r4, 0
bl DestroyTask
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x8]
@@ -973,7 +973,7 @@ _080D7F40:
bl CopyToBgTilemapBuffer
movs r0, 0x2
bl CopyBgTilemapBufferToVram
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x2C]
ldr r2, =0x0201aa04
@@ -1038,7 +1038,7 @@ _080D8004:
bl sub_80DBF90
bl sub_80DB2BC
bl sub_80DB120
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
movs r4, 0
@@ -1048,7 +1048,7 @@ _080D8004:
bl sub_80DC594
bl sub_80DC5E8
bl sub_80DC7EC
- ldr r1, =gBanksBySide
+ ldr r1, =gBanksByIdentity
strb r4, [r1]
movs r0, 0x1
strb r0, [r1, 0x1]
@@ -1256,7 +1256,7 @@ _080D81FA:
b _080D822C
.pool
_080D8208:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x6]
@@ -1401,7 +1401,7 @@ sub_80D833C: @ 80D833C
str r1, [r0, 0x8]
ldr r0, [r0, 0x8]
ldr r0, =gStringVar1
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1, 0x1]
@@ -1527,7 +1527,7 @@ sub_80D8490: @ 80D8490
mov r8, r0
ldr r2, =gUnknown_02039E00 + 30
mov r10, r2
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
_080D84B8:
lsls r1, r6, 1
mov r0, r8
@@ -1632,7 +1632,7 @@ _080D856C:
lsrs r6, r0, 24
cmp r6, 0x3
bls _080D84B8
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
@@ -1738,7 +1738,7 @@ _080D868E:
movs r0, 0
bl sub_80DC490
ldr r0, =gStringVar1
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
ldrb r1, [r1, 0x1]
@@ -1785,7 +1785,7 @@ _080D86E4:
b _080D87FA
.pool
_080D8730:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
@@ -1804,7 +1804,7 @@ _080D8754:
subs r0, 0x1
_080D8756:
strb r0, [r1]
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
@@ -1831,7 +1831,7 @@ _080D8756:
b _080D87FA
.pool
_080D879C:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
@@ -1851,7 +1851,7 @@ _080D87C0:
adds r0, r2, 0x1
strb r0, [r1]
_080D87C4:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
ldrb r0, [r0]
@@ -1967,7 +1967,7 @@ sub_80D8894: @ 80D8894
ldr r4, =gUnknown_02039F25
ldrb r0, [r4]
bl sub_80DB8B8
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldrb r2, [r4]
ldr r3, [r1, 0x4]
@@ -2020,7 +2020,7 @@ sub_80D892C: @ 80D892C
lsrs r0, 24
bl DestroyTask
ldr r2, =gTasks
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x8]
@@ -2145,7 +2145,7 @@ sub_80D8A50: @ 80D8A50
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrh r1, [r0, 0x6]
@@ -2184,7 +2184,7 @@ sub_80D8A88: @ 80D8A88
asrs r0, 16
cmp r0, 0x13
ble _080D8B18
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r1, [r0]
movs r0, 0
@@ -2217,7 +2217,7 @@ _080D8ADE:
lsls r0, 24
lsrs r0, 24
bl sub_80DB8B8
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldrb r2, [r5]
adds r2, r4
@@ -2259,7 +2259,7 @@ sub_80D8B38: @ 80D8B38
lsls r0, 24
lsrs r0, 24
mov r8, r0
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0]
ldrb r6, [r0, 0x11]
@@ -2348,7 +2348,7 @@ _080D8B84:
_080D8C74:
bl sub_80DCD48
movs r7, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0]
ldr r0, [r0, 0x8]
@@ -2367,7 +2367,7 @@ _080D8C92:
cmp r1, r0
bne _080D8C92
_080D8C9C:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
strb r7, [r0, 0x11]
@@ -2447,7 +2447,7 @@ _080D8D56:
adds r0, r6, 0
bl sub_80DF080
bl sub_80DF750
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r6, 3
@@ -2678,7 +2678,7 @@ _080D8F84:
beq _080D8F92
bl _080DA100
_080D8F92:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
adds r0, 0x5A
@@ -2719,7 +2719,7 @@ _080D8FB8:
adds r0, r4, 0
bl sub_80DEAA8
adds r0, r4, 0
- bl move_anim_start_t1
+ bl DoMoveAnim
ldr r1, =gTasks
mov r2, r8
lsls r0, r2, 2
@@ -2742,7 +2742,7 @@ _080D9010:
_080D9024:
adds r0, r6, 0
bl sub_80DE9B0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1]
adds r0, 0x5A
@@ -3173,7 +3173,7 @@ _080D939E:
cmp r7, 0x3
bgt _080D9418
ldr r5, =gUnknown_02039F26
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
_080D93BC:
movs r3, 0
str r3, [sp]
@@ -3488,7 +3488,7 @@ _080D963C:
movs r0, 0x64
bl PlaySE
_080D9642:
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
lsls r0, r7, 3
@@ -3588,7 +3588,7 @@ _080D971C:
beq _080D9728
bl _080DA100
_080D9728:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r6, 3
@@ -3739,7 +3739,7 @@ _080D9870:
bgt _080D988E
bl _080DA100
_080D988E:
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
ldr r0, [r7]
ldr r1, [r0, 0x4]
lsls r0, r6, 3
@@ -3866,7 +3866,7 @@ _080D999E:
beq _080D99A8
b _080DA100
_080D99A8:
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
lsls r4, r6, 3
@@ -3898,7 +3898,7 @@ _080D99A8:
.pool
_080D99EC:
bl sub_80DCD48
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x14]
lsls r0, r6, 2
@@ -3992,7 +3992,7 @@ _080D9AAE:
lsls r0, r5, 24
cmp r0, 0
ble _080D9AD2
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
ldr r2, [sp, 0x4]
@@ -4013,7 +4013,7 @@ _080D9AD2:
ldr r2, =gUnknown_02039E00 + 2
adds r1, r2
bl StringCopy
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r1, [r0]
ldrb r0, [r1, 0x13]
@@ -4374,7 +4374,7 @@ _080D9DC2:
_080D9DD4:
bl sub_80DB89C
ldr r0, =gStringVar3
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r1, [r5]
ldr r1, [r1, 0x10]
ldr r1, [r1]
@@ -4725,7 +4725,7 @@ sub_80DA110: @ 80DA110
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r3, [r1]
ldrb r2, [r3, 0x7]
@@ -4829,7 +4829,7 @@ _080DA1C6:
ands r0, r1
cmp r0, 0
beq _080DA224
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x7]
@@ -4861,7 +4861,7 @@ _080DA224:
bl sub_80DBA18
b _080DA23E
_080DA22E:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x7]
@@ -4947,7 +4947,7 @@ _080DA2BA:
strh r5, [r4, 0xA]
b _080DA2F6
_080DA2D2:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x7]
@@ -5082,7 +5082,7 @@ sub_80DA3CC: @ 80DA3CC
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080DA448
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r5, =gUnknown_02039F25
ldrb r1, [r5]
@@ -5255,7 +5255,7 @@ sub_80DA51C: @ 80DA51C
ldrh r1, [r4]
movs r0, 0xC
bl SetGpuReg
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r1, [r0]
ldrb r0, [r1, 0x1]
@@ -5296,7 +5296,7 @@ sub_80DA5B4: @ 80DA5B4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x6]
@@ -5327,7 +5327,7 @@ sub_80DA5E8: @ 80DA5E8
strh r1, [r0]
ldr r0, =gBattle_BG2_Y
strh r1, [r0]
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
movs r3, 0
ldr r2, =gUnknown_02039F10
movs r1, 0x3
@@ -5350,7 +5350,7 @@ _080DA600:
ands r0, r1
cmp r0, 0
bne _080DA65C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r0, =gUnknown_02039F25
ldrb r1, [r0]
@@ -5553,7 +5553,7 @@ sub_80DA7EC: @ 80DA7EC
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r2, =gTasks
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x8]
@@ -6818,7 +6818,7 @@ _080DB1CC:
strh r0, [r4, 0x2E]
strh r5, [r4, 0x32]
adds r0, r5, 0
- bl sub_80DB2A8
+ bl IsSpeciesNotUnown
lsls r0, 24
cmp r0, 0
beq _080DB278
@@ -6851,8 +6851,8 @@ _080DB280:
.pool
thumb_func_end sub_80DB174
- thumb_func_start sub_80DB2A8
-sub_80DB2A8: @ 80DB2A8
+ thumb_func_start IsSpeciesNotUnown
+IsSpeciesNotUnown: @ 80DB2A8
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -6865,12 +6865,12 @@ _080DB2B6:
_080DB2B8:
pop {r1}
bx r1
- thumb_func_end sub_80DB2A8
+ thumb_func_end IsSpeciesNotUnown
thumb_func_start sub_80DB2BC
sub_80DB2BC: @ 80DB2BC
push {r4-r6,lr}
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0, 0x24]
movs r4, 0xA0
@@ -7199,7 +7199,7 @@ sub_80DB584: @ 80DB584
movs r4, 0
movs r5, 0
_080DB58A:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
adds r0, r5, r0
@@ -7238,7 +7238,7 @@ sub_80DB5B8: @ 80DB5B8
lsrs r1, 24
mov r8, r1
mov r10, r8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
mov r9, r0
ldr r0, [r0]
ldr r1, [r0, 0x4]
@@ -7365,7 +7365,7 @@ _080DB6B6:
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
add r0, r8
@@ -7486,7 +7486,7 @@ sub_80DB798: @ 80DB798
adds r1, 0x2
lsls r1, 24
lsrs r7, r1, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
@@ -7647,7 +7647,7 @@ _080DB8D0:
.pool
_080DB8F4:
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0]
@@ -7674,7 +7674,7 @@ _080DB91E:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80DB8B8
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1, 0x4]
adds r1, r5, r1
@@ -7696,7 +7696,7 @@ sub_80DB944: @ 80DB944
mov r6, r8
push {r6,r7}
sub sp, 0x8
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
mov r4, sp
movs r3, 0
movs r6, 0x3
@@ -7751,7 +7751,7 @@ _080DB9A4:
movs r0, 0x4
negs r0, r0
mov r9, r0
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
mov r8, r1
movs r7, 0x3
mov r12, r7
@@ -7806,7 +7806,7 @@ _080DB9F8:
thumb_func_start sub_80DBA18
sub_80DBA18: @ 80DBA18
push {r4,r5,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
movs r2, 0
movs r3, 0x3
_080DBA20:
@@ -7854,7 +7854,7 @@ sub_80DBA68: @ 80DBA68
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
@@ -7889,7 +7889,7 @@ sub_80DBAA0: @ 80DBAA0
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
movs r0, 0
mov r8, r0
movs r1, 0x7
@@ -8092,7 +8092,7 @@ _080DBC1A:
b _080DBAC0
_080DBC34:
movs r6, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
movs r7, 0
movs r4, 0
_080DBC3C:
@@ -8132,7 +8132,7 @@ _080DBC3C:
adds r6, 0x1
cmp r6, 0x3
ble _080DBC3C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x10]
ldrb r1, [r2, 0x1]
@@ -8155,7 +8155,7 @@ sub_80DBCA8: @ 80DBCA8
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
@@ -8626,7 +8626,7 @@ sub_80DC028: @ 80DC028
lsls r2, 24
lsrs r2, 24
mov r8, r2
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x14]
lsls r1, r2, 2
@@ -8746,7 +8746,7 @@ _080DC126:
bne _080DC15C
adds r0, r7, 0
bl DestroyTask
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x14]
mov r2, r9
@@ -8950,7 +8950,7 @@ _080DC2C8:
movs r1, 0xB4
movs r3, 0x1
bl CreateSprite
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x14]
lsls r1, r4, 2
@@ -8970,7 +8970,7 @@ sub_80DC308: @ 80DC308
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r2, [r0, 0x14]
lsls r3, r6, 2
@@ -9067,7 +9067,7 @@ _080DC3B0:
sub_80DC3C4: @ 80DC3C4
push {r4,lr}
movs r2, 0
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r0, [r0, 0x14]
ldrb r1, [r0, 0x2]
@@ -9114,7 +9114,7 @@ sub_80DC408: @ 80DC408
ldrsh r0, [r3, r4]
cmp r1, r0
bne _080DC440
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
movs r2, 0x2E
ldrsh r1, [r3, r2]
@@ -9145,7 +9145,7 @@ sub_80DC44C: @ 80DC44C
push {r4-r6,lr}
movs r2, 0
ldr r6, =gSprites
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r4, =gUnknown_08587A6C
ldr r3, =gUnknown_02039F26
_080DC458:
@@ -9180,7 +9180,7 @@ sub_80DC490: @ 80DC490
movs r3, 0
ldr r7, =gUnknown_02039F26
ldr r5, =gSprites
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
movs r2, 0
_080DC4A0:
adds r0, r3, r7
@@ -9231,7 +9231,7 @@ sub_80DC4F0: @ 80DC4F0
ldr r0, =gUnknown_08587B08
bl LoadSpritePalette
movs r5, 0
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
ldr r0, =gSprites
mov r8, r0
movs r6, 0
@@ -9315,7 +9315,7 @@ sub_80DC594: @ 80DC594
movs r3, 0x4
orrs r2, r3
strb r2, [r1]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
adds r1, 0x58
@@ -9333,7 +9333,7 @@ sub_80DC5E8: @ 80DC5E8
bl CreateTask
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, 0xD]
@@ -9365,7 +9365,7 @@ sub_80DC630: @ 80DC630
lsls r0, 24
lsrs r0, 24
ldr r3, =gTasks
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r5, [r1]
ldr r1, [r5]
ldrb r2, [r1, 0xD]
@@ -9430,7 +9430,7 @@ sub_80DC6A4: @ 80DC6A4
adds r0, r2
ldrb r0, [r0, 0x8]
adds r5, r0, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r0, [r4]
ldrb r1, [r0, 0xD]
@@ -9553,7 +9553,7 @@ _080DC79C:
eors r1, r2
strh r1, [r0]
_080DC7AA:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
adds r0, 0x14
@@ -9590,7 +9590,7 @@ sub_80DC7EC: @ 80DC7EC
ldr r0, =sub_80DC8D0
movs r1, 0x1E
bl CreateTask
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r1, [r1]
strb r0, [r1, 0xE]
@@ -9614,7 +9614,7 @@ sub_80DC81C: @ 80DC81C
lsls r0, 24
lsrs r0, 24
ldr r3, =gTasks
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r4, [r1]
ldr r1, [r4]
ldrb r2, [r1, 0xE]
@@ -9819,7 +9819,7 @@ sub_80DC9B4: @ 80DC9B4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 3
@@ -9923,7 +9923,7 @@ sub_80DC9EC: @ 80DC9EC
lsls r3, 6
ldr r0, =0x0600e026
adds r3, r0
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
ldr r0, [r7]
ldr r0, [r0, 0x34]
str r0, [sp]
@@ -10083,7 +10083,7 @@ sub_80DCBE8: @ 80DCBE8
lsrs r0, 24
mov r9, r0
bl sub_80DCBB4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r2, =gSprites
mov r8, r2
@@ -10186,7 +10186,7 @@ _080DCCCC:
thumb_func_start sub_80DCCD8
sub_80DCCD8: @ 80DCCD8
push {lr}
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
movs r3, 0x30
ldrsh r2, [r0, r3]
@@ -10279,7 +10279,7 @@ _080DCD7E:
bls _080DCD7E
movs r5, 0
_080DCD92:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r5, 3
@@ -10322,7 +10322,7 @@ _080DCDBC:
bls _080DCD92
movs r5, 0
_080DCDEA:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r5, 3
@@ -10536,7 +10536,7 @@ _080DCF80:
ldr r3, =gUnknown_02039F26
movs r6, 0
_080DCF90:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
adds r0, r6, r0
@@ -10577,7 +10577,7 @@ _080DCFCC:
add r3, sp, 0x4
mov r12, r3
_080DCFE0:
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r4, 3
@@ -10667,7 +10667,7 @@ sub_80DD080: @ 80DD080
push {r6,r7}
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r3, [r4]
ldr r1, [r3, 0x4]
lsls r7, r6, 3
@@ -10731,7 +10731,7 @@ _080DD0B4:
b _080DD12C
.pool
_080DD110:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x4]
lsls r3, r6, 3
@@ -10789,7 +10789,7 @@ _080DD166:
adds r2, 0x1
cmp r2, 0x3
ble _080DD166
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -10819,7 +10819,7 @@ _080DD1B4:
add r0, r9
ldr r0, [r0]
bl _call_via_r0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -10855,7 +10855,7 @@ _080DD204:
_080DD206:
adds r0, r1
strh r0, [r2, 0x2]
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -10927,7 +10927,7 @@ _080DD206:
.pool
_080DD29C:
ldr r2, =gContestMoves
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -10960,7 +10960,7 @@ _080DD2D8:
ands r0, r1
strb r0, [r3, 0x15]
_080DD2E2:
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -11071,7 +11071,7 @@ _080DD3AE:
cmp r0, 0
bne _080DD3A2
_080DD3B6:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
subs r0, r7, r6
@@ -11092,7 +11092,7 @@ _080DD3C4:
sub_80DD3D4: @ 80DD3D4
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r2, [r2]
ldr r3, [r2, 0x4]
lsls r2, r0, 3
@@ -11108,7 +11108,7 @@ sub_80DD3D4: @ 80DD3D4
sub_80DD3F0: @ 80DD3F0
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r2, [r2]
ldr r3, [r2, 0x4]
lsls r2, r0, 3
@@ -11177,7 +11177,7 @@ sub_80DD45C: @ 80DD45C
adds r1, r2
bl StringCopy
ldr r0, =gStringVar2
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r1, [r5]
ldr r2, [r1, 0x4]
lsls r1, r4, 3
@@ -11265,7 +11265,7 @@ sub_80DD560: @ 80DD560
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r3, [r1, 0x4]
lsls r1, r0, 3
@@ -11315,7 +11315,7 @@ _080DD5AC:
cmp r4, 0x3
ble _080DD5AC
movs r4, 0
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
ldr r1, [r7]
mov r8, r1
adds r5, r2, 0
@@ -11422,7 +11422,7 @@ _080DD684:
cmp r4, 0x3
ble _080DD5CA
movs r4, 0
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
movs r5, 0
_080DD690:
ldr r0, [r6]
@@ -11483,7 +11483,7 @@ sub_80DD6DC: @ 80DD6DC
strb r0, [r3]
ldr r0, =SpriteCallbackDummy
str r0, [r2, 0x1C]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, 0x6]
@@ -11502,7 +11502,7 @@ sub_80DD720: @ 80DD720
push {r4,r5,lr}
lsls r0, 24
lsrs r1, r0, 24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r5, [r0, 0x12]
@@ -11700,7 +11700,7 @@ _080DD8F8:
adds r2, r4
ldr r0, =sub_80DD6DC
str r0, [r2]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x6]
@@ -11720,7 +11720,7 @@ sub_80DD940: @ 80DD940
mov r6, r8
push {r6,r7}
movs r5, 0
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, =gSprites
mov r9, r0
ldr r0, =0x06010000
@@ -11905,7 +11905,7 @@ _080DDACA:
movs r1, 0x1
eors r0, r1
strh r0, [r4, 0xE]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r0, [r0, 0x13]
@@ -11939,7 +11939,7 @@ sub_80DDB0C: @ 80DDB0C
movs r1, 0xA
bl CreateTask
ldr r3, =gSprites
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r2, [r4]
ldr r0, [r2]
adds r0, 0x58
@@ -11981,7 +11981,7 @@ sub_80DDB6C: @ 80DDB6C
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0]
adds r0, 0x58
@@ -12040,7 +12040,7 @@ _080DDBD4:
sub_80DDBE8: @ 80DDBE8
push {r4,r5,lr}
ldr r5, =gSprites
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r2, [r0]
adds r0, r2, 0
@@ -12093,7 +12093,7 @@ task08_080CD1CC: @ 80DDC4C
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0]
adds r0, 0x58
@@ -12175,7 +12175,7 @@ sub_80DDCDC: @ 80DDCDC
lsls r4, 24
asrs r4, 24
strh r4, [r1, 0x8]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x6]
@@ -12216,7 +12216,7 @@ _080DDD4E:
bl sub_80DDB0C
b _080DDD64
_080DDD54:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x6]
@@ -12241,7 +12241,7 @@ _080DDD70:
movs r0, 0
strh r0, [r4, 0x1E]
bl sub_80DD940
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, 0x6]
@@ -12261,7 +12261,7 @@ _080DDD9C:
thumb_func_start sub_80DDDA8
sub_80DDDA8: @ 80DDDA8
ldr r3, =gSprites
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r0, [r2]
adds r0, 0x58
@@ -12292,7 +12292,7 @@ sub_80DDDA8: @ 80DDDA8
thumb_func_start sub_80DDDE4
sub_80DDDE4: @ 80DDDE4
ldr r2, =gSprites
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
adds r0, 0x58
@@ -12316,7 +12316,7 @@ sub_80DDE0C: @ 80DDE0C
ldr r0, =sub_80DDE30
movs r1, 0xF
bl CreateTask
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x6]
@@ -12383,7 +12383,7 @@ _080DDE8C:
ldrsh r0, [r0, r1]
cmp r0, 0x9
bne _080DDEBA
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, 0x6]
@@ -12421,7 +12421,7 @@ sub_80DDED0: @ 80DDED0
cmp r4, 0
ble _080DDF1C
movs r5, 0
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0]
movs r1, 0x13
@@ -12433,7 +12433,7 @@ sub_80DDED0: @ 80DDED0
b _080DDF4E
.pool
_080DDF1C:
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0]
movs r1, 0x13
@@ -12458,7 +12458,7 @@ _080DDF48:
movs r5, 0xC
movs r3, 0
_080DDF4C:
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
_080DDF4E:
ldr r1, =gTasks
lsls r0, r6, 2
@@ -12536,7 +12536,7 @@ _080DDFB8:
bne _080DDFFC
adds r0, r5, 0
bl DestroyTask
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r1, [r2, 0x7]
@@ -12562,7 +12562,7 @@ sub_80DE008: @ 80DE008
lsrs r0, 24
mov r10, r0
movs r5, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
mov r9, r0
mov r8, r9
ldr r6, =gSprites
@@ -12666,7 +12666,7 @@ sub_80DE0F0: @ 80DE0F0
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
@@ -12708,7 +12708,7 @@ sub_80DE12C: @ 80DE12C
movs r0, 0x11
mov r9, r0
_080DE146:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
adds r0, 0xD
@@ -12789,7 +12789,7 @@ sub_80DE1E8: @ 80DE1E8
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r2, [r1, 0x4]
lsls r1, r0, 3
@@ -12896,7 +12896,7 @@ sub_80DE224: @ 80DE224
movs r0, 0
str r0, [sp, 0x8]
add r0, sp, 0x8
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r1, [r1, 0x28]
ldr r2, =0x05000400
@@ -12963,7 +12963,7 @@ sub_80DE350: @ 80DE350
bl RequestDma3Fill
movs r5, 0
str r5, [sp]
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r1, [r0, 0x28]
ldr r2, =0x05000400
@@ -13136,7 +13136,7 @@ _080DE4D0:
_080DE4DA:
movs r2, 0
adds r6, r3, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r3, =gUnknown_02039F26
_080DE4E2:
ldr r0, [r5]
@@ -13170,7 +13170,7 @@ _080DE52C:
ands r1, r0
cmp r1, 0
beq _080DE584
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x7]
@@ -13201,7 +13201,7 @@ _080DE584:
bl sub_80DBAA0
b _080DE59A
_080DE58A:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
ldrb r1, [r0, 0x7]
@@ -13356,7 +13356,7 @@ sub_80DE69C: @ 80DE69C
mov r8, r0
movs r7, 0
ldr r6, =gSprites
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
_080DE6AE:
bl AllocOamMatrix
ldr r1, [r5]
@@ -13450,7 +13450,7 @@ _080DE74C:
adds r1, r2
mov r0, r8
strh r0, [r1, 0x8]
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0]
ldrb r0, [r2, 0x7]
@@ -13471,7 +13471,7 @@ sub_80DE794: @ 80DE794
lsls r0, 24
lsrs r6, r0, 24
ldr r2, =gSprites
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r0, [r0, 0x14]
ldrb r1, [r0]
@@ -13515,7 +13515,7 @@ _080DE7CC:
_080DE7EC:
movs r4, 0
_080DE7EE:
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x14]
lsls r0, r4, 2
@@ -13583,7 +13583,7 @@ sub_80DE864: @ 80DE864
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r1, [r0, 0x4]
lsls r0, r7, 3
@@ -13606,7 +13606,7 @@ sub_80DE864: @ 80DE864
movs r1, 0
movs r2, 0x14
bl memset
- bl sub_80A3934
+ bl ClearBattleAnimationVars
ldr r1, =gBattleMonForms
movs r2, 0
adds r0, r1, 0x3
@@ -13662,12 +13662,12 @@ _080DE8FA:
cmp r0, 0x7
bne _080DE99C
_080DE910:
- ldr r1, =gUnknown_02038432
+ ldr r1, =gAnimMoveTurn
movs r0, 0
b _080DE9A0
.pool
_080DE920:
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r7, 3
@@ -13695,17 +13695,17 @@ _080DE920:
b _080DE9A2
.pool
_080DE960:
- ldr r1, =gHappinessMoveAnim
+ ldr r1, =gAnimFriendship
movs r0, 0xFF
b _080DE9A0
.pool
_080DE96C:
- ldr r1, =gHappinessMoveAnim
+ ldr r1, =gAnimFriendship
movs r0, 0
b _080DE9A0
.pool
_080DE978:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0]
adds r2, r0, 0
@@ -13715,12 +13715,12 @@ _080DE978:
bne _080DE99C
movs r0, 0x2
strb r0, [r2]
- ldr r0, =gUnknown_02038432
+ ldr r0, =gAnimMoveTurn
strb r1, [r0]
b _080DE9A2
.pool
_080DE99C:
- ldr r1, =gUnknown_02038432
+ ldr r1, =gAnimMoveTurn
movs r0, 0x1
_080DE9A0:
strb r0, [r1]
@@ -13735,7 +13735,7 @@ _080DE9A2:
thumb_func_start sub_80DE9B0
sub_80DE9B0: @ 80DE9B0
push {r4,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x18]
movs r1, 0
@@ -13763,7 +13763,7 @@ sub_80DE9DC: @ 80DE9DC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r0, [r0, 0x18]
strb r4, [r0, 0x5]
@@ -14558,7 +14558,7 @@ sub_80DF080: @ 80DF080
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r3, [r2]
ldr r5, [r3, 0x10]
ldrb r1, [r5, 0x1]
@@ -14810,7 +14810,7 @@ sub_80DF250: @ 80DF250
movs r0, 0
str r0, [sp, 0x20]
movs r4, 0
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
mov r2, sp
adds r2, 0xC
str r2, [sp, 0x28]
@@ -14871,7 +14871,7 @@ _080DF2C2:
subs r2, r0
cmp r2, 0x32
bgt _080DF2EE
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
ldr r0, [r7]
ldr r2, [r0, 0x1C]
add r2, r9
@@ -14880,7 +14880,7 @@ _080DF2C2:
orrs r0, r1
strb r0, [r2, 0xD]
_080DF2EE:
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x1C]
mov r3, r9
@@ -14926,7 +14926,7 @@ _080DF336:
ldrb r0, [r0]
cmp r0, 0
beq _080DF354
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r2, [r0, 0x1C]
add r2, r9
@@ -14978,7 +14978,7 @@ _080DF38E:
mov r2, r8
cmp r2, 0
bne _080DF3B4
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r2, [r0, 0x1C]
add r2, r9
@@ -14987,7 +14987,7 @@ _080DF38E:
orrs r0, r1
strb r0, [r2, 0xD]
_080DF3B4:
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r0, [r0, 0x1C]
mov r7, r9
@@ -15031,7 +15031,7 @@ _080DF3EA:
ldr r2, [sp, 0x28]
strb r0, [r2, 0x5]
movs r4, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
mov r8, r0
ldr r7, [sp, 0x30]
@@ -15046,7 +15046,7 @@ _080DF40E:
mov r12, r4
cmp r0, 0
beq _080DF450
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r6, [r0]
ldr r3, [sp, 0x28]
mov r4, sp
@@ -15123,7 +15123,7 @@ _080DF4B6:
bne _080DF478
_080DF4C0:
bl Random
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r4, [r1, 0x1C]
ldr r1, [sp, 0x30]
@@ -15167,7 +15167,7 @@ sub_80DF4F8: @ 80DF4F8
_080DF514:
movs r7, 0
movs r3, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
mov r12, r0
_080DF51C:
adds r0, r3, r1
@@ -15253,7 +15253,7 @@ _080DF5A0:
bl __modsi3
lsls r0, 24
lsrs r5, r0, 24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x1C]
add r0, r8
@@ -15295,7 +15295,7 @@ _080DF5F6:
bne _080DF628
mov r0, sp
strb r1, [r0]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x1C]
ldrb r4, [r0, 0x1D]
@@ -15306,7 +15306,7 @@ _080DF628:
mov r1, sp
movs r0, 0
strb r0, [r1]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x1C]
ldrb r4, [r0, 0xD]
@@ -15360,7 +15360,7 @@ _080DF682:
ldrb r6, [r0]
movs r2, 0x80
movs r3, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0, 0x1C]
lsls r1, r6, 4
@@ -15391,7 +15391,7 @@ _080DF6C4:
ldr r5, [sp, 0x4]
lsrs r0, r5, 24
bl ContestLiveUpdates_BeforeInterview_3
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x1C]
add r0, r8
@@ -15519,7 +15519,7 @@ _080DF7AE:
movs r2, 0x5
movs r3, 0x1
bl sub_80DEBD0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x1C]
lsls r0, r7, 4
@@ -15606,7 +15606,7 @@ _080DF884:
add r0, sp, 0x4
ldr r1, =gText_BDot
bl StringCopy
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x1C]
lsls r0, r7, 4
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index f937633da..a213c393c 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -10,7 +10,7 @@ sub_81562C4: @ 81562C4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0xC]
movs r1, 0
@@ -57,7 +57,7 @@ _081562DE:
thumb_func_start sub_8156324
sub_8156324: @ 8156324
push {r4-r6,lr}
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0xC]
ldr r0, [r0, 0x14]
@@ -98,7 +98,7 @@ _0815636C:
bl Random
adds r5, r0, 0
ands r5, r6
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r1, [r0, 0xC]
adds r0, r1, 0x5
@@ -135,7 +135,7 @@ sub_81563B0: @ 81563B0
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r0, [r0, 0xC]
ldrb r0, [r0]
@@ -211,7 +211,7 @@ _08156444:
orrs r0, r1
strb r0, [r2, 0x9]
_08156458:
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r3, [r0, 0xC]
ldrb r1, [r3, 0x9]
@@ -263,7 +263,7 @@ sub_81564AC: @ 81564AC
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r0, [r0, 0x8]
b _081564CC
@@ -289,7 +289,7 @@ _081564D2:
thumb_func_start sub_81564DC
sub_81564DC: @ 81564DC
push {r4,lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r0, [r0, 0xC]
adds r1, r0, 0x5
@@ -331,7 +331,7 @@ _08156516:
thumb_func_start sub_8156530
sub_8156530: @ 8156530
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r0, [r0]
@@ -349,7 +349,7 @@ sub_8156530: @ 8156530
sub_8156550: @ 8156550
push {lr}
bl sub_8156530
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -384,7 +384,7 @@ _08156590:
sub_8156594: @ 8156594
push {lr}
bl sub_8156530
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -419,7 +419,7 @@ _081565D4:
sub_81565D8: @ 81565D8
push {lr}
bl sub_8156530
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -454,7 +454,7 @@ _08156618:
sub_815661C: @ 815661C
push {lr}
bl sub_8156530
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -487,7 +487,7 @@ _0815665C:
thumb_func_start sub_8156660
sub_8156660: @ 8156660
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r0, [r0]
@@ -507,7 +507,7 @@ sub_8156660: @ 8156660
sub_8156684: @ 8156684
push {lr}
bl sub_8156660
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -542,7 +542,7 @@ _081566C4:
sub_81566C8: @ 81566C8
push {lr}
bl sub_8156660
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -577,7 +577,7 @@ _08156708:
sub_815670C: @ 815670C
push {lr}
bl sub_8156660
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -612,7 +612,7 @@ _0815674C:
sub_8156750: @ 8156750
push {lr}
bl sub_8156660
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -645,7 +645,7 @@ _08156790:
thumb_func_start sub_8156794
sub_8156794: @ 8156794
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r0, [r0, 0x8]
@@ -667,7 +667,7 @@ sub_8156794: @ 8156794
sub_81567BC: @ 81567BC
push {lr}
bl sub_8156794
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -702,7 +702,7 @@ _081567FC:
sub_8156800: @ 8156800
push {lr}
bl sub_8156794
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -737,7 +737,7 @@ _08156840:
sub_8156844: @ 8156844
push {lr}
bl sub_8156794
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -772,7 +772,7 @@ _08156884:
sub_8156888: @ 8156888
push {lr}
bl sub_8156794
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -806,7 +806,7 @@ _081568C8:
thumb_func_start sub_81568CC
sub_81568CC: @ 81568CC
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r4, [r0, 0xC]
adds r1, r4, 0
@@ -839,7 +839,7 @@ sub_81568CC: @ 81568CC
sub_815690C: @ 815690C
push {lr}
bl sub_81568CC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -874,7 +874,7 @@ _0815694C:
sub_8156950: @ 8156950
push {lr}
bl sub_81568CC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -909,7 +909,7 @@ _08156990:
sub_8156994: @ 8156994
push {lr}
bl sub_81568CC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -944,7 +944,7 @@ _081569D4:
sub_81569D8: @ 81569D8
push {lr}
bl sub_81568CC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -977,7 +977,7 @@ _08156A18:
thumb_func_start sub_8156A1C
sub_8156A1C: @ 8156A1C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
adds r1, r3, 0
@@ -1002,7 +1002,7 @@ sub_8156A1C: @ 8156A1C
sub_8156A48: @ 8156A48
push {r4,r5,lr}
bl sub_8156A1C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1043,7 +1043,7 @@ _08156A90:
sub_8156A98: @ 8156A98
push {r4,r5,lr}
bl sub_8156A1C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1084,7 +1084,7 @@ _08156AE0:
sub_8156AE8: @ 8156AE8
push {r4,r5,lr}
bl sub_8156A1C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1125,7 +1125,7 @@ _08156B30:
sub_8156B38: @ 8156B38
push {r4,r5,lr}
bl sub_8156A1C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1164,7 +1164,7 @@ _08156B80:
thumb_func_start sub_8156B88
sub_8156B88: @ 8156B88
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r1, =gUnknown_02039F00
@@ -1187,7 +1187,7 @@ sub_8156B88: @ 8156B88
sub_8156BB4: @ 8156BB4
push {r4,r5,lr}
bl sub_8156B88
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1228,7 +1228,7 @@ _08156BFC:
sub_8156C04: @ 8156C04
push {r4,r5,lr}
bl sub_8156B88
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1269,7 +1269,7 @@ _08156C4C:
sub_8156C54: @ 8156C54
push {r4,r5,lr}
bl sub_8156B88
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1310,7 +1310,7 @@ _08156C9C:
sub_8156CA4: @ 8156CA4
push {r4,r5,lr}
bl sub_8156B88
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -1349,7 +1349,7 @@ _08156CEC:
thumb_func_start sub_8156CF4
sub_8156CF4: @ 8156CF4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r0, =gScriptContestCategory
@@ -1367,7 +1367,7 @@ sub_8156CF4: @ 8156CF4
sub_8156D18: @ 8156D18
push {lr}
bl sub_8156CF4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1402,7 +1402,7 @@ _08156D58:
sub_8156D5C: @ 8156D5C
push {lr}
bl sub_8156CF4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1437,7 +1437,7 @@ _08156D9C:
sub_8156DA0: @ 8156DA0
push {r4,lr}
ldr r2, =gUnknown_02039E00
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0xC]
ldrb r1, [r0, 0x4]
@@ -1469,7 +1469,7 @@ sub_8156DA0: @ 8156DA0
sub_8156DE4: @ 8156DE4
push {r4,lr}
bl sub_8156DA0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldr r3, =gAIScriptPtr
@@ -1506,7 +1506,7 @@ _08156E24:
sub_8156E2C: @ 8156E2C
push {r4,lr}
bl sub_8156DA0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldr r3, =gAIScriptPtr
@@ -1543,7 +1543,7 @@ _08156E6C:
sub_8156E74: @ 8156E74
push {r4,lr}
bl sub_8156DA0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldr r3, =gAIScriptPtr
@@ -1580,7 +1580,7 @@ _08156EB4:
sub_8156EBC: @ 8156EBC
push {r4,lr}
bl sub_8156DA0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldr r3, =gAIScriptPtr
@@ -1616,7 +1616,7 @@ _08156EFC:
thumb_func_start sub_8156F04
sub_8156F04: @ 8156F04
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
ldrb r1, [r3, 0x4]
@@ -1646,7 +1646,7 @@ sub_8156F04: @ 8156F04
sub_8156F44: @ 8156F44
push {lr}
bl sub_8156F04
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1681,7 +1681,7 @@ _08156F84:
sub_8156F88: @ 8156F88
push {lr}
bl sub_8156F04
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1715,7 +1715,7 @@ _08156FC8:
thumb_func_start sub_8156FCC
sub_8156FCC: @ 8156FCC
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
ldrb r1, [r3, 0x4]
@@ -1749,7 +1749,7 @@ sub_8156FCC: @ 8156FCC
sub_8157018: @ 8157018
push {lr}
bl sub_8156FCC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1784,7 +1784,7 @@ _08157058:
sub_815705C: @ 815705C
push {lr}
bl sub_8156FCC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1819,7 +1819,7 @@ _0815709C:
sub_81570A0: @ 81570A0
push {r4-r7,lr}
ldr r2, =gUnknown_02039E00
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0xC]
ldrb r0, [r1, 0x4]
@@ -1887,7 +1887,7 @@ _0815711A:
sub_815712C: @ 815712C
push {lr}
bl sub_81570A0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -1924,7 +1924,7 @@ _0815716C:
sub_8157174: @ 8157174
push {r4-r7,lr}
ldr r2, =gUnknown_02039E00
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0xC]
ldrb r0, [r1, 0x4]
@@ -1992,7 +1992,7 @@ _081571EE:
sub_8157200: @ 8157200
push {lr}
bl sub_8157174
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2029,7 +2029,7 @@ _08157240:
sub_8157248: @ 8157248
push {r4,lr}
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r4, [r0, 0xC]
ldrb r1, [r4, 0x4]
@@ -2069,7 +2069,7 @@ sub_8157248: @ 8157248
sub_81572A4: @ 81572A4
push {lr}
bl sub_8157248
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2104,7 +2104,7 @@ _081572E4:
sub_81572E8: @ 81572E8
push {lr}
bl sub_8157248
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2139,7 +2139,7 @@ _08157328:
sub_815732C: @ 815732C
push {lr}
bl sub_8157248
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2174,7 +2174,7 @@ _0815736C:
sub_8157370: @ 8157370
push {lr}
bl sub_8157248
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2209,7 +2209,7 @@ _081573B0:
sub_81573B4: @ 81573B4
push {r4,lr}
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r4, [r0, 0xC]
ldrb r1, [r4, 0x4]
@@ -2249,7 +2249,7 @@ sub_81573B4: @ 81573B4
sub_8157410: @ 8157410
push {lr}
bl sub_81573B4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2284,7 +2284,7 @@ _08157450:
sub_8157454: @ 8157454
push {lr}
bl sub_81573B4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2319,7 +2319,7 @@ _08157494:
sub_8157498: @ 8157498
push {lr}
bl sub_81573B4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2354,7 +2354,7 @@ _081574D8:
sub_81574DC: @ 81574DC
push {lr}
bl sub_81573B4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2389,7 +2389,7 @@ _0815751C:
sub_8157520: @ 8157520
push {r4,r5,lr}
ldr r3, =gUnknown_02039E00
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r4, [r5]
ldr r1, [r4, 0xC]
ldrb r0, [r1, 0x4]
@@ -2435,7 +2435,7 @@ _08157560:
sub_8157578: @ 8157578
push {lr}
bl sub_8157520
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2470,7 +2470,7 @@ _081575B8:
sub_81575BC: @ 81575BC
push {lr}
bl sub_8157520
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2505,7 +2505,7 @@ _081575FC:
sub_8157600: @ 8157600
push {lr}
bl sub_8157520
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2540,7 +2540,7 @@ _08157640:
sub_8157644: @ 8157644
push {lr}
bl sub_8157520
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2576,7 +2576,7 @@ sub_8157688: @ 8157688
push {r4-r6,lr}
movs r3, 0
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldrb r1, [r0, 0x4]
@@ -2592,7 +2592,7 @@ sub_8157688: @ 8157688
adds r6, r2, 0
_081576AA:
lsls r1, r4, 1
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
adds r0, 0x41
@@ -2619,7 +2619,7 @@ _081576D2:
_081576DC:
movs r3, 0x1
_081576DE:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
strh r3, [r0, 0x18]
@@ -2637,7 +2637,7 @@ _081576DE:
sub_8157700: @ 8157700
push {lr}
bl sub_8157688
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2674,7 +2674,7 @@ _08157740:
sub_8157748: @ 8157748
push {lr}
bl sub_8157688
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2712,7 +2712,7 @@ sub_8157790: @ 8157790
push {r4-r6,lr}
movs r3, 0
ldr r2, =gUnknown_02039E00
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
ldrb r1, [r0, 0x4]
@@ -2728,7 +2728,7 @@ sub_8157790: @ 8157790
adds r6, r2, 0
_081577B2:
lsls r1, r4, 1
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
adds r0, 0x41
@@ -2754,7 +2754,7 @@ _081577D8:
_081577E2:
movs r3, 0x1
_081577E4:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
strh r3, [r0, 0x18]
@@ -2772,7 +2772,7 @@ _081577E4:
sub_8157808: @ 8157808
push {lr}
bl sub_8157790
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2809,7 +2809,7 @@ _08157848:
sub_8157850: @ 8157850
push {lr}
bl sub_8157790
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2847,7 +2847,7 @@ sub_8157898: @ 8157898
push {r4-r6,lr}
movs r5, 0
ldr r3, =gUnknown_02039E00
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r4, [r6]
ldr r1, [r4, 0xC]
ldrb r0, [r1, 0x4]
@@ -2893,7 +2893,7 @@ _081578D6:
sub_81578F8: @ 81578F8
push {lr}
bl sub_8157898
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2930,7 +2930,7 @@ _08157938:
sub_8157940: @ 8157940
push {lr}
bl sub_8157898
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -2972,7 +2972,7 @@ sub_8157988: @ 8157988
bl sub_81564AC
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r5, [r1, 0xC]
ldr r2, [r1, 0x4]
@@ -3000,7 +3000,7 @@ sub_8157988: @ 8157988
sub_81579CC: @ 81579CC
push {lr}
bl sub_8157988
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3035,7 +3035,7 @@ _08157A0C:
sub_8157A10: @ 8157A10
push {lr}
bl sub_8157988
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3070,7 +3070,7 @@ _08157A50:
sub_8157A54: @ 8157A54
push {lr}
bl sub_8157988
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3105,7 +3105,7 @@ _08157A94:
sub_8157A98: @ 8157A98
push {lr}
bl sub_8157988
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3152,7 +3152,7 @@ sub_8157ADC: @ 8157ADC
cmp r0, 0
beq _08157B18
ldr r2, =gContestMoves
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r4, 3
@@ -3167,7 +3167,7 @@ sub_8157ADC: @ 8157ADC
orrs r0, r1
lsrs r6, r0, 31
_08157B18:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
strh r6, [r0, 0x18]
@@ -3184,7 +3184,7 @@ _08157B18:
sub_8157B38: @ 8157B38
push {lr}
bl sub_8157ADC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3219,7 +3219,7 @@ _08157B78:
sub_8157B7C: @ 8157B7C
push {lr}
bl sub_8157ADC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3254,7 +3254,7 @@ _08157BBC:
sub_8157BC0: @ 8157BC0
push {lr}
bl sub_8157ADC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3289,7 +3289,7 @@ _08157C00:
sub_8157C04: @ 8157C04
push {lr}
bl sub_8157ADC
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3333,14 +3333,14 @@ sub_8157C48: @ 8157C48
lsls r0, 24
cmp r0, 0
beq _08157C74
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
movs r0, 0
b _08157C7C
.pool
_08157C74:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
movs r0, 0x1
@@ -3359,7 +3359,7 @@ _08157C7C:
sub_8157C94: @ 8157C94
push {lr}
bl sub_8157C48
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3396,7 +3396,7 @@ _08157CD4:
sub_8157CDC: @ 8157CDC
push {lr}
bl sub_8157C48
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3438,7 +3438,7 @@ sub_8157D24: @ 8157D24
bl sub_81564AC
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r3, [r1, 0xC]
ldr r2, [r1, 0x4]
@@ -3463,7 +3463,7 @@ sub_8157D24: @ 8157D24
sub_8157D60: @ 8157D60
push {lr}
bl sub_8157D24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3500,7 +3500,7 @@ _08157DA0:
sub_8157DA8: @ 8157DA8
push {lr}
bl sub_8157D24
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3542,7 +3542,7 @@ sub_8157DF0: @ 8157DF0
bl sub_81564AC
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r5, [r1, 0xC]
ldr r3, [r1, 0x4]
@@ -3574,7 +3574,7 @@ sub_8157DF0: @ 8157DF0
sub_8157E3C: @ 8157E3C
push {lr}
bl sub_8157DF0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3611,7 +3611,7 @@ _08157E7C:
sub_8157E84: @ 8157E84
push {lr}
bl sub_8157DF0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3648,7 +3648,7 @@ _08157EC4:
sub_8157ECC: @ 8157ECC
push {lr}
bl sub_8157DF0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3685,7 +3685,7 @@ _08157F0C:
sub_8157F14: @ 8157F14
push {lr}
bl sub_8157DF0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3726,7 +3726,7 @@ sub_8157F5C: @ 8157F5C
ldrb r0, [r0, 0x1]
bl sub_81564AC
lsls r0, 24
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r3, [r1, 0xC]
ldr r2, =gUnknown_02039F00
@@ -3754,7 +3754,7 @@ sub_8157F5C: @ 8157F5C
sub_8157FA0: @ 8157FA0
push {lr}
bl sub_8157F5C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3791,7 +3791,7 @@ _08157FE0:
sub_8157FE8: @ 8157FE8
push {lr}
bl sub_8157F5C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3828,7 +3828,7 @@ _08158028:
sub_8158030: @ 8158030
push {lr}
bl sub_8157F5C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3865,7 +3865,7 @@ _08158070:
sub_8158078: @ 8158078
push {lr}
bl sub_8157F5C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3908,7 +3908,7 @@ sub_81580C0: @ 81580C0
lsls r0, 24
ldr r3, [r5]
ldrb r2, [r3, 0x2]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r4, [r1]
ldr r1, [r4]
lsrs r0, 23
@@ -3935,7 +3935,7 @@ sub_81580C0: @ 81580C0
sub_8158108: @ 8158108
push {lr}
bl sub_81580C0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -3970,7 +3970,7 @@ _08158148:
sub_815814C: @ 815814C
push {lr}
bl sub_81580C0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4005,7 +4005,7 @@ _0815818C:
sub_8158190: @ 8158190
push {lr}
bl sub_81580C0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4040,7 +4040,7 @@ _081581D0:
sub_81581D4: @ 81581D4
push {lr}
bl sub_81580C0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4082,7 +4082,7 @@ sub_8158218: @ 8158218
lsrs r0, 24
ldr r3, [r5]
ldrb r2, [r3, 0x2]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r4, [r1]
ldr r1, [r4]
lsls r2, 2
@@ -4105,7 +4105,7 @@ sub_8158218: @ 8158218
sub_8158254: @ 8158254
push {lr}
bl sub_8158218
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4140,7 +4140,7 @@ _08158294:
sub_8158298: @ 8158298
push {lr}
bl sub_8158218
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4175,7 +4175,7 @@ _081582D8:
sub_81582DC: @ 81582DC
push {lr}
bl sub_8158218
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4210,7 +4210,7 @@ _0815831C:
sub_8158320: @ 8158320
push {lr}
bl sub_8158218
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4251,7 +4251,7 @@ sub_8158364: @ 8158364
lsls r0, 24
ldr r3, [r5]
ldrb r2, [r3, 0x2]
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r4, [r1]
ldr r1, [r4]
lsrs r0, 23
@@ -4282,7 +4282,7 @@ sub_8158364: @ 8158364
sub_81583B8: @ 81583B8
push {lr}
bl sub_8158364
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4317,7 +4317,7 @@ _081583F8:
sub_81583FC: @ 81583FC
push {lr}
bl sub_8158364
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -4351,7 +4351,7 @@ _0815843C:
thumb_func_start sub_8158440
sub_8158440: @ 8158440
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4374,7 +4374,7 @@ sub_8158440: @ 8158440
thumb_func_start sub_815846C
sub_815846C: @ 815846C
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r3, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4399,7 +4399,7 @@ sub_815846C: @ 815846C
thumb_func_start sub_815849C
sub_815849C: @ 815849C
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4427,7 +4427,7 @@ sub_815849C: @ 815849C
thumb_func_start sub_81584D4
sub_81584D4: @ 81584D4
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4454,7 +4454,7 @@ sub_81584D4: @ 81584D4
thumb_func_start sub_8158508
sub_8158508: @ 8158508
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4481,7 +4481,7 @@ sub_8158508: @ 8158508
thumb_func_start sub_815853C
sub_815853C: @ 815853C
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4524,7 +4524,7 @@ _08158586:
thumb_func_start sub_815858C
sub_815858C: @ 815858C
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4567,7 +4567,7 @@ _081585D6:
thumb_func_start sub_81585DC
sub_81585DC: @ 81585DC
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4610,7 +4610,7 @@ _08158626:
thumb_func_start sub_815862C
sub_815862C: @ 815862C
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4653,7 +4653,7 @@ _08158676:
thumb_func_start sub_815867C
sub_815867C: @ 815867C
push {r4,r5,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4696,7 +4696,7 @@ _081586C8:
thumb_func_start sub_81586D0
sub_81586D0: @ 81586D0
push {r4,r5,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4739,7 +4739,7 @@ _0815871C:
thumb_func_start sub_8158724
sub_8158724: @ 8158724
push {r4,r5,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4782,7 +4782,7 @@ _08158770:
thumb_func_start sub_8158778
sub_8158778: @ 8158778
push {r4,r5,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4828,7 +4828,7 @@ sub_81587CC: @ 81587CC
bl Random
movs r2, 0xFF
ands r2, r0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4869,7 +4869,7 @@ sub_815881C: @ 815881C
bl Random
movs r2, 0xFF
ands r2, r0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0xC]
ldr r4, =gAIScriptPtr
@@ -4955,7 +4955,7 @@ sub_81588BC: @ 81588BC
lsls r0, 24
cmp r0, 0
bne _081588D6
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0xC]
ldrb r1, [r2, 0x9]
@@ -4971,7 +4971,7 @@ _081588D6:
thumb_func_start sub_81588E0
sub_81588E0: @ 81588E0
push {r4,lr}
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r1, [r1]
ldr r3, [r1, 0xC]
adds r4, r3, 0
@@ -4993,7 +4993,7 @@ sub_81588E0: @ 81588E0
thumb_func_start sub_8158908
sub_8158908: @ 8158908
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r0, [r3]
ldr r0, [r0, 0xC]
adds r1, r0, 0
@@ -5033,7 +5033,7 @@ sub_8158948: @ 8158948
ldr r6, =gUnknown_02039E00 + 30
_08158950:
lsls r1, r4, 1
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
adds r0, 0x41
@@ -5057,7 +5057,7 @@ _08158980:
cmp r4, 0x3
ble _08158950
_08158986:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
strh r5, [r0, 0x18]
@@ -5075,7 +5075,7 @@ _08158986:
sub_81589A4: @ 81589A4
push {lr}
bl sub_8158948
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -5112,7 +5112,7 @@ _081589E4:
sub_81589EC: @ 81589EC
push {lr}
bl sub_8158948
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -5158,7 +5158,7 @@ sub_8158A34: @ 8158A34
movs r4, 0
ldr r0, =gUnknown_02039E00
mov r12, r0
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0, 0xC]
adds r0, 0x41
@@ -5205,7 +5205,7 @@ _08158A8E:
sub_8158AA0: @ 8158AA0
push {lr}
bl sub_8158A34
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
@@ -5242,7 +5242,7 @@ _08158AE0:
sub_8158AE8: @ 8158AE8
push {lr}
bl sub_8158A34
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0xC]
movs r1, 0x18
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 3b88e16e0..f3c234503 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -68,7 +68,7 @@ ContestEffectFunc_080E547C: @ 80E547C
thumb_func_start ContestEffectFunc_080E5480
ContestEffectFunc_080E5480: @ 80E5480
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -94,7 +94,7 @@ ContestEffectFunc_080E5480: @ 80E5480
thumb_func_start ContestEffectFunc_080E54B0
ContestEffectFunc_080E54B0: @ 80E54B0
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -119,7 +119,7 @@ ContestEffectFunc_080E54B0: @ 80E54B0
thumb_func_start ContestEffectFunc_080E54E0
ContestEffectFunc_080E54E0: @ 80E54E0
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -165,7 +165,7 @@ ContestEffectFunc_080E54E0: @ 80E54E0
thumb_func_start ContestEffectFunc_080E5534
ContestEffectFunc_080E5534: @ 80E5534
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -189,7 +189,7 @@ ContestEffectFunc_080E5534: @ 80E5534
thumb_func_start ContestEffectFunc_080E5560
ContestEffectFunc_080E5560: @ 80E5560
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -215,7 +215,7 @@ ContestEffectFunc_080E5560: @ 80E5560
thumb_func_start ContestEffectFunc_080E5590
ContestEffectFunc_080E5590: @ 80E5590
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -239,7 +239,7 @@ ContestEffectFunc_080E5590: @ 80E5590
thumb_func_start ContestEffectFunc_080E55BC
ContestEffectFunc_080E55BC: @ 80E55BC
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -266,7 +266,7 @@ ContestEffectFunc_080E55BC: @ 80E55BC
ContestEffectFunc_080E55EC: @ 80E55EC
push {r4,r5,lr}
movs r2, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
ldr r0, [r5]
ldr r1, [r0, 0x8]
ldrb r4, [r1, 0x11]
@@ -293,7 +293,7 @@ _080E560A:
cmp r0, r1
bne _080E560A
_080E5622:
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x8]
strb r2, [r0, 0x8]
@@ -307,14 +307,14 @@ _080E5622:
_080E563A:
cmp r2, 0
bne _080E564C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80DD3F0
_080E564C:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -330,7 +330,7 @@ _080E564C:
ContestEffectFunc_080E5664: @ 80E5664
push {r4-r6,lr}
movs r1, 0
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0, 0x8]
ldrb r5, [r0, 0x11]
@@ -359,7 +359,7 @@ _080E5698:
adds r3, 0x1
cmp r3, 0x3
ble _080E567E
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
adds r0, 0x8
@@ -372,14 +372,14 @@ _080E5698:
_080E56B4:
cmp r1, 0
bne _080E56C6
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80DD3F0
_080E56C6:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -409,7 +409,7 @@ ContestEffectFunc_080E56E0: @ 80E56E0
bhi _080E5702
movs r1, 0x28
_080E5702:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
strh r1, [r0, 0x4]
@@ -425,7 +425,7 @@ ContestEffectFunc_080E5718: @ 80E5718
mov r7, r8
push {r7}
movs r7, 0
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x8]
ldrb r5, [r0, 0x11]
@@ -521,7 +521,7 @@ ContestEffectFunc_080E57CC: @ 80E57CC
push {r5-r7}
movs r0, 0
mov r9, r0
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x8]
ldrb r2, [r0, 0x11]
@@ -619,7 +619,7 @@ ContestEffectFunc_080E588C: @ 80E588C
push {r6,r7}
movs r0, 0
mov r9, r0
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r0, [r1]
ldr r0, [r0, 0x8]
ldrb r7, [r0, 0x11]
@@ -674,7 +674,7 @@ _080E58DA:
_080E5900:
adds r6, 0x1C
adds r5, 0x1
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
cmp r5, 0x3
ble _080E58B0
_080E590A:
@@ -704,7 +704,7 @@ _080E5928:
thumb_func_start ContestEffectFunc_080E5938
ContestEffectFunc_080E5938: @ 80E5938
push {r4,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -732,7 +732,7 @@ ContestEffectFunc_080E5938: @ 80E5938
thumb_func_start ContestEffectFunc_080E5970
ContestEffectFunc_080E5970: @ 80E5970
push {r4,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -765,7 +765,7 @@ ContestEffectFunc_080E59B0: @ 80E59B0
push {lr}
movs r0, 0
bl sub_80E6934
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -781,7 +781,7 @@ ContestEffectFunc_080E59D0: @ 80E59D0
push {lr}
movs r0, 0x1
bl sub_80E6934
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -797,7 +797,7 @@ ContestEffectFunc_080E59F0: @ 80E59F0
push {lr}
movs r0, 0x2
bl sub_80E6934
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -813,7 +813,7 @@ ContestEffectFunc_080E5A10: @ 80E5A10
push {lr}
movs r0, 0x3
bl sub_80E6934
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -829,7 +829,7 @@ ContestEffectFunc_080E5A30: @ 80E5A30
push {lr}
movs r0, 0x4
bl sub_80E6934
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -844,7 +844,7 @@ ContestEffectFunc_080E5A30: @ 80E5A30
ContestEffectFunc_080E5A50: @ 80E5A50
push {r4-r6,lr}
movs r4, 0
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x11]
@@ -855,7 +855,7 @@ ContestEffectFunc_080E5A50: @ 80E5A50
beq _080E5AB0
movs r5, 0
_080E5A68:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r1, [r0, 0x8]
ldrb r0, [r1, 0x11]
@@ -932,7 +932,7 @@ ContestEffectFunc_080E5AD4: @ 80E5AD4
mov r10, r3
movs r6, 0
_080E5B00:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r1, [r2, 0x8]
ldrb r0, [r1, 0x11]
@@ -1000,7 +1000,7 @@ _080E5B76:
bge _080E5B76
_080E5B7E:
movs r5, 0
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
movs r6, 0
mov r4, r10
_080E5B86:
@@ -1125,7 +1125,7 @@ _080E5C70:
lsrs r0, 24
mov r9, r0
_080E5C86:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
adds r0, 0xD
@@ -1139,7 +1139,7 @@ _080E5C86:
cmp r0, 0xFF
bne _080E5C16
_080E5CA0:
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, [r6]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1173,7 +1173,7 @@ ContestEffectFunc_080E5CD4: @ 80E5CD4
movs r0, 0
mov r8, r0
movs r6, 0
- ldr r7, =gUnknown_02039F34
+ ldr r7, =gContestResources
movs r5, 0
_080E5CE4:
ldr r2, [r7]
@@ -1228,7 +1228,7 @@ _080E5D46:
adds r6, 0x1
cmp r6, 0x3
ble _080E5CE4
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1256,7 +1256,7 @@ ContestEffectFunc_080E5D7C: @ 80E5D7C
push {r4-r7,lr}
movs r7, 0
movs r4, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
movs r6, 0
_080E5D86:
ldr r3, [r5]
@@ -1301,7 +1301,7 @@ _080E5DD2:
adds r4, 0x1
cmp r4, 0x3
ble _080E5D86
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1325,7 +1325,7 @@ _080E5DF8:
ContestEffectFunc_080E5E04: @ 80E5E04
push {r4,lr}
ldr r1, =gUnknown_02039F26
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r0, [r4, 0x8]
ldrb r2, [r0, 0x11]
@@ -1366,7 +1366,7 @@ _080E5E46:
ContestEffectFunc_080E5E5C: @ 80E5E5C
push {r4,lr}
ldr r1, =gUnknown_02039F26
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r0, [r4, 0x8]
ldrb r2, [r0, 0x11]
@@ -1408,7 +1408,7 @@ ContestEffectFunc_080E5EB4: @ 80E5EB4
push {r4-r7,lr}
movs r1, 0
movs r5, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r2, [r4, 0x8]
ldrb r0, [r2, 0x11]
@@ -1434,7 +1434,7 @@ _080E5EDA:
bge _080E5EE8
movs r5, 0
_080E5EE8:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r3, [r0]
ldr r0, [r3, 0x8]
ldrb r2, [r0, 0x11]
@@ -1467,7 +1467,7 @@ _080E5F0C:
movs r1, 0x11
bl sub_80DD3D4
_080E5F2C:
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -1498,7 +1498,7 @@ _080E5F2C:
ContestEffectFunc_080E5F64: @ 80E5F64
push {r4-r7,lr}
movs r6, 0
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r2, [r4, 0x8]
ldrb r1, [r2, 0x11]
@@ -1567,7 +1567,7 @@ _080E5FDE:
thumb_func_start ContestEffectFunc_080E5FE4
ContestEffectFunc_080E5FE4: @ 80E5FE4
push {r4,r5,lr}
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
ldr r3, [r1]
ldr r0, [r3, 0x8]
ldrb r2, [r0, 0x11]
@@ -1647,7 +1647,7 @@ ContestEffectFunc_080E6068: @ 80E6068
cmp r0, 0x2
bhi _080E6098
movs r4, 0xA
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1659,7 +1659,7 @@ _080E6098:
cmp r0, 0x5
bhi _080E60B4
movs r4, 0x14
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1671,7 +1671,7 @@ _080E60B4:
cmp r0, 0x7
bhi _080E60D0
movs r4, 0x28
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1683,7 +1683,7 @@ _080E60D0:
cmp r1, 0x8
bhi _080E60EC
movs r4, 0x3C
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -1693,14 +1693,14 @@ _080E60D0:
.pool
_080E60EC:
movs r4, 0x50
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
movs r1, 0x1E
bl sub_80DD3D4
_080E60FC:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -1721,7 +1721,7 @@ ContestEffectFunc_080E611C: @ 80E611C
push {r4-r7,lr}
mov r7, r8
push {r7}
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r3, [r0, 0x8]
ldrb r0, [r3, 0x11]
@@ -1743,7 +1743,7 @@ _080E6140:
adds r5, r0, 0
cmp r6, r1
beq _080E616A
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
_080E614E:
lsls r0, r2, 24
movs r2, 0x80
@@ -1845,7 +1845,7 @@ ContestEffectFunc_080E620C: @ 80E620C
mov r7, r9
mov r6, r8
push {r6,r7}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r3, [r0]
ldr r1, [r3, 0x8]
ldrb r2, [r1, 0x11]
@@ -1928,7 +1928,7 @@ _080E62AC:
thumb_func_start ContestEffectFunc_080E62B8
ContestEffectFunc_080E62B8: @ 80E62B8
push {r4-r7,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r1, [r0, 0x11]
@@ -1939,7 +1939,7 @@ ContestEffectFunc_080E62B8: @ 80E62B8
movs r5, 0
movs r6, 0
_080E62CE:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r4, [r0]
ldr r1, [r4, 0x8]
ldrb r2, [r1, 0x11]
@@ -1994,7 +1994,7 @@ _080E632E:
thumb_func_start ContestEffectFunc_080E6334
ContestEffectFunc_080E6334: @ 80E6334
push {r4,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r1, [r4]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -2046,7 +2046,7 @@ _080E6390:
thumb_func_start ContestEffectFunc_080E6398
ContestEffectFunc_080E6398: @ 80E6398
push {lr}
- ldr r3, =gUnknown_02039F34
+ ldr r3, =gContestResources
ldr r1, [r3]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -2090,7 +2090,7 @@ _080E63E4:
ContestEffectFunc_080E63E8: @ 80E63E8
push {r4-r7,lr}
sub sp, 0x4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r1, [r2]
ldrb r1, [r1, 0x1]
@@ -2258,7 +2258,7 @@ ContestEffectFunc_080E6520: @ 80E6520
mov r7, r8
push {r7}
sub sp, 0x4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r1, [r2]
ldrb r1, [r1, 0x1]
@@ -2434,7 +2434,7 @@ ContestEffectFunc_080E6664: @ 80E6664
ContestEffectFunc_080E6668: @ 80E6668
push {r4-r7,lr}
sub sp, 0x8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1]
ldrb r0, [r0, 0x1]
@@ -2517,7 +2517,7 @@ _080E66FC:
cmp r0, 0x3
ble _080E66AA
movs r6, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
adds r4, r5, 0
_080E6712:
ldr r0, [r4]
@@ -2576,7 +2576,7 @@ _080E676C:
ContestEffectFunc_080E6778: @ 80E6778
push {lr}
ldr r3, =gContestMoves
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -2613,7 +2613,7 @@ ContestEffectFunc_080E67BC: @ 80E67BC
movs r0, 0
mov r8, r0
movs r4, 0
- ldr r5, =gUnknown_02039F34
+ ldr r5, =gContestResources
movs r6, 0
_080E67CC:
ldr r3, [r5]
@@ -2672,14 +2672,14 @@ _080E682E:
mov r7, r8
cmp r7, 0
bne _080E684A
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
movs r1, 0x36
bl sub_80DD3F0
_080E684A:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -2696,7 +2696,7 @@ _080E684A:
thumb_func_start ContestEffectFunc_080E6868
ContestEffectFunc_080E6868: @ 80E6868
push {r4,lr}
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1]
ldrb r0, [r0, 0x13]
@@ -2745,7 +2745,7 @@ _080E68C2:
movs r1, 0x1E
bl sub_80DD3D4
_080E68CE:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r1, [r0]
ldr r0, [r1, 0x8]
ldrb r2, [r0, 0x11]
@@ -2764,7 +2764,7 @@ _080E68CE:
thumb_func_start ContestEffectFunc_080E68EC
ContestEffectFunc_080E68EC: @ 80E68EC
push {r4,lr}
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r2, [r0, 0x10]
ldrb r1, [r2, 0x1]
@@ -2811,7 +2811,7 @@ sub_80E6934: @ 80E6934
mov r8, r0
movs r7, 0
movs r4, 0
- ldr r6, =gUnknown_02039F34
+ ldr r6, =gContestResources
ldr r0, =gContestMoves
mov r9, r0
movs r5, 0
@@ -2861,7 +2861,7 @@ _080E699E:
ble _080E694E
cmp r7, 0
bne _080E69B8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x11]
@@ -2882,7 +2882,7 @@ sub_80E69C8: @ 80E69C8
push {lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r0, [r2]
ldr r0, [r0, 0x8]
adds r0, 0xD
@@ -2945,7 +2945,7 @@ sub_80E6A2C: @ 80E6A2C
movs r2, 0x8
bl memset
movs r7, 0
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x8]
ldrb r0, [r0, 0x8]
@@ -3040,7 +3040,7 @@ _080E6AD6:
strh r0, [r1]
_080E6AFE:
adds r7, 0x1
- ldr r4, =gUnknown_02039F34
+ ldr r4, =gContestResources
ldr r0, [r4]
ldr r0, [r0, 0x8]
adds r0, 0x8
@@ -3081,7 +3081,7 @@ sub_80E6B3C: @ 80E6B3C
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
- ldr r2, =gUnknown_02039F34
+ ldr r2, =gContestResources
ldr r4, [r2]
ldr r3, [r4, 0x4]
lsls r2, r0, 3
diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s
index 4565c75aa..f1e2019da 100644
--- a/asm/contest_link_80FC4F4.s
+++ b/asm/contest_link_80FC4F4.s
@@ -50,7 +50,7 @@ sub_80FC530: @ 80FC530
cmp r4, 0
beq _080FC552
adds r0, r5, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
movs r0, 0x1
b _080FC554
_080FC552:
@@ -657,7 +657,7 @@ _080FCA30:
lsls r0, 24
cmp r0, 0
beq _080FCAB2
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r2, [r0]
ldr r0, =gUnknown_02039F25
ldrb r0, [r0]
@@ -688,7 +688,7 @@ _080FCA68:
ldrb r0, [r6]
cmp r2, r0
bge _080FCAA4
- ldr r1, =gUnknown_02039F34
+ ldr r1, =gContestResources
mov r8, r1
ldr r4, =gBlockRecvBuffer
movs r3, 0
@@ -955,7 +955,7 @@ _080FCCE8:
bne _080FCCF4
b _080FCE42
_080FCCF4:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
movs r1, 0x70
@@ -968,7 +968,7 @@ _080FCD04:
bne _080FCD10
b _080FCE42
_080FCD10:
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x4]
ldr r1, =gUnknown_02039F2B
@@ -1004,7 +1004,7 @@ _080FCD54:
lsls r0, 24
cmp r0, 0
beq _080FCE42
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
movs r1, 0x14
@@ -1015,7 +1015,7 @@ _080FCD6C:
lsls r0, 24
cmp r0, 0
beq _080FCE42
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x8]
ldr r1, =gUnknown_02039F2B
@@ -1031,7 +1031,7 @@ _080FCD98:
lsls r0, 24
cmp r0, 0
beq _080FCE42
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x10]
b _080FCDD4
@@ -1041,7 +1041,7 @@ _080FCDB0:
lsls r0, 24
cmp r0, 0
beq _080FCE42
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x10]
b _080FCE04
diff --git a/asm/crt0.s b/asm/crt0.s
index 3ece5c7d0..0b14a1469 100644
--- a/asm/crt0.s
+++ b/asm/crt0.s
@@ -163,7 +163,7 @@ IntrMain: @ 8000248
IntrMain_FoundIntr:
strh r0, [r3, OFFSET_REG_IF - 0x200]
bic r2, r2, r0
- ldr r0, =gUnknown_03007868
+ ldr r0, =gRfuState
ldr r0, [r0]
ldrb r0, [r0, 0xA]
mov r1, 0x8
diff --git a/asm/decoration.s b/asm/decoration.s
deleted file mode 100644
index 0798e3165..000000000
--- a/asm/decoration.s
+++ /dev/null
@@ -1,7167 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8126968
-sub_8126968: @ 8126968
- push {lr}
- ldr r3, =gUnknown_0203A173
- ldrb r0, [r3]
- cmp r0, 0x7
- bhi _0812697E
- ldr r2, =gUnknown_0203A14C
- ldr r1, =gDecorationInventories
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
-_0812697E:
- ldr r2, =gUnknown_0203A17C
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- bne _08126996
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x00001aae
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00001abe
- adds r0, r1
- str r0, [r2, 0x4]
-_08126996:
- ldrb r0, [r2, 0x9]
- cmp r0, 0x1
- bne _081269AC
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x0000271c
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00002728
- adds r0, r1
- str r0, [r2, 0x4]
-_081269AC:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126968
-
- thumb_func_start sub_81269D4
-sub_81269D4: @ 81269D4
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, =gUnknown_0203A188
- adds r4, r1, r0
- cmp r1, 0
- bne _08126A28
- ldr r0, =gUnknown_085A6B90
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, =gUnknown_085A6B48
- movs r1, 0x4
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- lsrs r0, r1, 24
- cmp r0, 0x12
- bls _08126A14
- adds r0, r2, 0
- ands r0, r1
- movs r1, 0x90
- lsls r1, 21
- orrs r0, r1
- str r0, [sp]
-_08126A14:
- mov r0, sp
- b _08126A2E
- .pool
-_08126A28:
- lsls r0, r1, 3
- ldr r1, =gUnknown_085A6B90
- adds r0, r1
-_08126A2E:
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r2, 0x85
- lsls r2, 2
- movs r1, 0
- movs r3, 0xE
- bl SetWindowBorderStyle
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldrb r0, [r4]
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81269D4
-
- thumb_func_start sub_8126A58
-sub_8126A58: @ 8126A58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203A188
- adds r4, r0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8198070
- ldrb r0, [r4]
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126A58
-
- thumb_func_start sub_8126A88
-sub_8126A88: @ 8126A88
- push {r4,lr}
- movs r0, 0
- bl sub_81269D4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, =gUnknown_085A6B48
- adds r0, r4, 0
- movs r1, 0x4
- bl PrintMenuTable
- ldr r0, =gUnknown_0203A150
- ldrb r2, [r0]
- adds r0, r4, 0
- movs r1, 0x4
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126A88
-
- thumb_func_start sub_8126ABC
-sub_8126ABC: @ 8126ABC
- push {lr}
- ldr r1, =gUnknown_0203A150
- movs r0, 0
- strb r0, [r1]
- bl ScriptContext2_Enable
- bl sub_8126A88
- bl sub_8126C08
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126ABC
-
- thumb_func_start sub_8126AD8
-sub_8126AD8: @ 8126AD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8126ABC
- ldr r2, =gUnknown_0203A17C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x00001aae
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00001abe
- adds r0, r1
- str r0, [r2, 0x4]
- movs r1, 0
- movs r0, 0x10
- strb r0, [r2, 0x8]
- strb r1, [r2, 0x9]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8126B80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126AD8
-
- thumb_func_start sub_8126B2C
-sub_8126B2C: @ 8126B2C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8126ABC
- ldr r2, =gUnknown_0203A17C
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x0000271c
- adds r1, r0, r3
- str r1, [r2]
- ldr r1, =0x00002728
- adds r0, r1
- str r0, [r2, 0x4]
- movs r0, 0xC
- strb r0, [r2, 0x8]
- movs r0, 0x1
- strb r0, [r2, 0x9]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8126B80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126B2C
-
- thumb_func_start sub_8126B80
-sub_8126B80: @ 8126B80
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08126C00
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08126BD8
- adds r0, 0x1
- cmp r1, r0
- beq _08126BF4
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_085A6B48
- ldr r0, =gUnknown_0203A150
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _08126C00
- .pool
-_08126BD8:
- bl GetMenuCursorPos
- ldr r1, =gUnknown_0203A150
- strb r0, [r1]
- lsls r0, r4, 24
- asrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _08126C00
- bl sub_8126C08
- b _08126C00
- .pool
-_08126BF4:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_8126D6C
-_08126C00:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8126B80
-
- thumb_func_start sub_8126C08
-sub_8126C08: @ 8126C08
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_085A6B68
- ldr r0, =gUnknown_0203A150
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParametrized
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126C08
-
- thumb_func_start sub_8126C48
-sub_8126C48: @ 8126C48
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8161B10
- lsls r0, 24
- cmp r0, 0
- bne _08126C7C
- ldr r4, =gStringVar4
- ldr r1, =gText_NoDecorations
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8126DA4
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _08126C96
- .pool
-_08126C7C:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x1E]
- ldr r0, =gUnknown_0203A173
- strb r2, [r0]
- adds r0, r5, 0
- bl sub_8126DCC
-_08126C96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126C48
-
- thumb_func_start sub_8126CA4
-sub_8126CA4: @ 8126CA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_81299AC
- lsls r0, 24
- cmp r0, 0
- bne _08126CD8
- ldr r4, =gStringVar4
- ldr r1, =gText_NoDecorationsInUse
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8126DA4
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _08126D00
- .pool
-_08126CD8:
- movs r0, 0
- bl sub_8126A58
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =sub_8129ABC
- str r1, [r0]
-_08126D00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126CA4
-
- thumb_func_start sub_8126D10
-sub_8126D10: @ 8126D10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_8161B10
- lsls r0, 24
- cmp r0, 0
- bne _08126D44
- ldr r4, =gStringVar4
- ldr r1, =gText_NoDecorations
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8126DA4
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _08126D5E
- .pool
-_08126D44:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- ldr r0, =gUnknown_0203A173
- strb r2, [r0]
- adds r0, r5, 0
- bl sub_8126DCC
-_08126D5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126D10
-
- thumb_func_start sub_8126D6C
-sub_8126D6C: @ 8126D6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_8126A58
- ldr r0, =gUnknown_0203A17C
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08126D98
- ldr r0, =gUnknown_0823B4E8
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- b _08126D9E
- .pool
-_08126D98:
- adds r0, r4, 0
- bl sub_816B060
-_08126D9E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8126D6C
-
- thumb_func_start sub_8126DA4
-sub_8126DA4: @ 8126DA4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8126C08
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8126B80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126DA4
-
- thumb_func_start sub_8126DCC
-sub_8126DCC: @ 8126DCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_085A6BB0
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- movs r0, 0
- bl sub_8126A58
- adds r0, r4, 0
- bl sub_8126DFC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126DCC
-
- thumb_func_start sub_8126DFC
-sub_8126DFC: @ 8126DFC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x1
- bl sub_81269D4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_8126E8C
- ldr r0, =gUnknown_0203A173
- ldrb r2, [r0]
- adds r0, r4, 0
- movs r1, 0x9
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8127088
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126DFC
-
- thumb_func_start sub_8126E44
-sub_8126E44: @ 8126E44
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_0203A188
- ldrb r0, [r5, 0x1]
- movs r1, 0x11
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- bl sub_8126E8C
- ldrb r0, [r5, 0x1]
- ldr r1, =gUnknown_0203A173
- ldrb r2, [r1]
- movs r1, 0x9
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8127088
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126E44
-
- thumb_func_start sub_8126E8C
-sub_8126E8C: @ 8126E8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r1, r0, r1
- ldr r0, =gUnknown_0203A188
- ldrb r5, [r0, 0x1]
- ldr r0, =gUnknown_0203A17C
- ldrb r0, [r0, 0x9]
- movs r2, 0
- mov r8, r2
- cmp r0, 0x1
- bne _08126EC0
- movs r2, 0x16
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08126EC0
- movs r0, 0x1
- mov r8, r0
-_08126EC0:
- movs r4, 0
- lsls r2, r6, 2
- mov r9, r2
- movs r7, 0xFF
-_08126EC8:
- mov r0, r8
- cmp r0, 0x1
- bne _08126EF8
- cmp r4, 0x6
- beq _08126EF8
- cmp r4, 0x7
- beq _08126EF8
- lsls r3, r4, 28
- lsrs r3, 24
- str r0, [sp]
- str r7, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x8
- bl sub_8126F68
- b _08126F0C
- .pool
-_08126EF8:
- lsls r3, r4, 28
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- str r7, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x8
- bl sub_8126F68
-_08126F0C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08126EC8
- ldr r0, =gTasks
- mov r2, r9
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0x1E
- ldrsh r0, [r1, r2]
- ldr r2, =gText_Cancel
- cmp r0, 0x2
- bne _08126F2C
- ldr r2, =gText_Exit
-_08126F2C:
- lsls r0, r4, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0x8
- bl PrintTextOnWindow
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126E8C
-
- thumb_func_start sub_8126F68
-sub_8126F68: @ 8126F68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r4, [sp, 0x38]
- ldr r6, [sp, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 24
- lsrs r1, r4, 24
- lsls r6, 24
- lsrs r6, 24
- mov r9, r6
- movs r0, 0x60
- str r0, [sp, 0x14]
- cmp r7, 0x8
- bne _08126FA2
- movs r2, 0x68
- str r2, [sp, 0x14]
-_08126FA2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gStringVar4
- adds r0, r4, 0
- bl sub_8127058
- adds r0, r4, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- adds r6, r0, r4
- ldr r1, =gUnknown_085A6B28
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- str r5, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- movs r2, 0
- mov r10, r2
- str r2, [sp, 0x8]
- ldr r0, [sp, 0xC]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r7, 0
- bl PrintTextOnWindow
- mov r0, r8
- bl sub_8161AD0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- movs r0, 0xBA
- strb r0, [r6]
- adds r6, 0x1
- ldr r1, =gDecorationInventories
- mov r2, r8
- lsls r0, r2, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- adds r1, r4, 0
- ldr r2, [sp, 0x14]
- bl GetStringRightAlignXOffset
- lsls r0, 24
- lsrs r7, r0, 24
- str r5, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- mov r2, r10
- str r2, [sp, 0x8]
- ldr r0, [sp, 0xC]
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r7, 0
- bl PrintTextOnWindow
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8126F68
-
- thumb_func_start sub_8127058
-sub_8127058: @ 8127058
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, =gText_Color161Shadow161
- bl StringCopy
- cmp r4, 0x1
- bne _08127078
- movs r0, 0x4
- strb r0, [r5, 0x2]
- movs r0, 0x5
- b _0812707E
- .pool
-_08127078:
- movs r0, 0x2
- strb r0, [r5, 0x2]
- movs r0, 0x3
-_0812707E:
- strb r0, [r5, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8127058
-
- thumb_func_start sub_8127088
-sub_8127088: @ 8127088
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081270DE
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r4, r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081270C0
- cmp r1, r0
- bgt _081270BC
- subs r0, 0x1
- cmp r1, r0
- beq _081270DE
- b _081270CE
- .pool
-_081270BC:
- cmp r1, 0x8
- bne _081270CE
-_081270C0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_812719C
- b _081270DE
-_081270CE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203A173
- strb r4, [r0]
- adds r0, r5, 0
- bl sub_81270E8
-_081270DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127088
-
- thumb_func_start sub_81270E8
-sub_81270E8: @ 81270E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203A173
- ldrb r0, [r4]
- bl sub_8161AD0
- ldr r1, =gUnknown_0203A151
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _08127154
- ldrb r0, [r4]
- bl sub_8161A38
- ldr r2, =gUnknown_0203A14C
- ldr r1, =gDecorationInventories
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- adds r0, r5, 0
- bl sub_81279B4
- ldr r0, =gUnknown_0203A170
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gUnknown_0203A16E
- strh r1, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8127620
- str r1, [r0]
- b _0812716E
- .pool
-_08127154:
- movs r0, 0x1
- bl sub_8126A58
- ldr r4, =gStringVar4
- ldr r1, =gText_NoDecorations
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8127180
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_0812716E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81270E8
-
- thumb_func_start sub_8127180
-sub_8127180: @ 8127180
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- adds r0, r4, 0
- bl sub_8126DFC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127180
-
- thumb_func_start sub_812719C
-sub_812719C: @ 812719C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- beq _081271C0
- adds r0, r2, 0
- bl sub_81271CC
- b _081271C6
- .pool
-_081271C0:
- adds r0, r2, 0
- bl sub_8127268
-_081271C6:
- pop {r0}
- bx r0
- thumb_func_end sub_812719C
-
- thumb_func_start sub_81271CC
-sub_81271CC: @ 81271CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8126A58
- bl sub_8126A88
- movs r0, 0
- movs r1, 0
- bl sub_81973C4
- bl sub_8126C08
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8126B80
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81271CC
-
- thumb_func_start sub_8127208
-sub_8127208: @ 8127208
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_085A6BB0
- movs r1, 0xD0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strh r1, [r0, 0x1E]
- ldr r0, =gUnknown_0203A173
- strb r2, [r0]
- adds r0, r4, 0
- bl sub_8126DFC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127208
-
- thumb_func_start sub_8127250
-sub_8127250: @ 8127250
- push {lr}
- lsls r1, 24
- ldr r2, =gUnknown_085A6B28
- lsrs r1, 22
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127250
-
- thumb_func_start sub_8127268
-sub_8127268: @ 8127268
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8126A58
- adds r0, r4, 0
- bl sub_8133E1C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127268
-
- thumb_func_start sub_8127284
-sub_8127284: @ 8127284
- push {lr}
- ldr r3, =gUnknown_0203A18C
- ldr r2, [r3]
- ldr r0, =gUnknown_0203A151
- ldrb r0, [r0]
- adds r0, 0x1
- movs r1, 0xA4
- lsls r1, 3
- adds r2, r1
- strb r0, [r2]
- ldr r0, [r3]
- adds r1, r0, r1
- ldrb r1, [r1]
- cmp r1, 0x8
- bls _081272B8
- ldr r2, =0x00000521
- adds r1, r0, r2
- movs r0, 0x8
- strb r0, [r1]
- b _081272BE
- .pool
-_081272B8:
- ldr r2, =0x00000521
- adds r0, r2
- strb r1, [r0]
-_081272BE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127284
-
- thumb_func_start sub_81272C8
-sub_81272C8: @ 81272C8
- push {r4,lr}
- ldr r0, =gUnknown_0203A170
- ldr r1, =gUnknown_0203A16E
- ldr r2, =gUnknown_0203A18C
- ldr r3, [r2]
- ldr r4, =0x00000521
- adds r2, r3, r4
- ldrb r2, [r2]
- subs r4, 0x1
- adds r3, r4
- ldrb r3, [r3]
- bl sub_812225C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81272C8
-
- thumb_func_start sub_81272F8
-sub_81272F8: @ 81272F8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gUnknown_0203A170
- ldr r1, =gUnknown_0203A16E
- ldr r2, =gUnknown_0203A18C
- ldr r3, [r2]
- ldr r4, =0x00000521
- adds r2, r3, r4
- ldrb r2, [r2]
- subs r4, 0x1
- adds r3, r4
- ldrb r3, [r3]
- movs r4, 0x8
- str r4, [sp]
- bl sub_8122298
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81272F8
-
- thumb_func_start sub_8127330
-sub_8127330: @ 8127330
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- ldr r0, =gUnknown_0203A173
- ldrb r0, [r0]
- subs r0, 0x6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08127378
- ldr r0, =gUnknown_0203A17C
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _08127378
- movs r2, 0x16
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08127378
- ldr r0, =gStringVar1
- movs r1, 0x1
- bl sub_8127058
- b _08127380
- .pool
-_08127378:
- ldr r0, =gStringVar1
- movs r1, 0
- bl sub_8127058
-_08127380:
- movs r6, 0
- ldr r1, =gUnknown_0203A18C
- ldr r0, [r1]
- movs r3, 0xA4
- lsls r3, 3
- adds r0, r3
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bge _081273D6
- adds r5, r1, 0
-_08127396:
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- movs r0, 0xA4
- lsls r0, 1
- adds r4, r0
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gUnknown_0203A14C
- ldr r1, [r1]
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8127454
- ldr r1, [r5]
- lsls r2, r6, 3
- adds r0, r1, r2
- adds r4, r1, r4
- str r4, [r0]
- adds r0, r1, 0x4
- adds r0, r2
- str r6, [r0]
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- movs r2, 0xA4
- lsls r2, 3
- adds r1, r2
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r6, r0
- blt _08127396
-_081273D6:
- ldr r5, =gUnknown_0203A18C
- lsls r4, r6, 1
- adds r4, r6
- lsls r4, 3
- movs r3, 0xA4
- lsls r3, 1
- adds r4, r3
- ldr r0, [r5]
- adds r0, r4
- ldr r1, =gText_Cancel
- bl StringCopy
- ldr r0, [r5]
- lsls r2, r6, 3
- adds r1, r0, r2
- adds r4, r0, r4
- str r4, [r1]
- adds r0, 0x4
- adds r0, r2
- movs r1, 0x2
- negs r1, r1
- str r1, [r0]
- ldr r2, =gUnknown_03006310
- adds r1, r2, 0
- ldr r0, =gUnknown_085A6BD0
- ldm r0!, {r3,r4,r6}
- stm r1!, {r3,r4,r6}
- ldm r0!, {r3,r4,r6}
- stm r1!, {r3,r4,r6}
- ldr r0, =gUnknown_0203A188
- ldrb r0, [r0, 0x1]
- strb r0, [r2, 0x10]
- ldr r0, [r5]
- movs r4, 0xA4
- lsls r4, 3
- adds r1, r0, r4
- ldrb r1, [r1]
- strh r1, [r2, 0xC]
- str r0, [r2]
- ldr r6, =0x00000521
- adds r0, r6
- ldrb r0, [r0]
- strh r0, [r2, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127330
-
- thumb_func_start sub_8127454
-sub_8127454: @ 8127454
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 16
- lsrs r4, 16
- ldr r1, =gStringVar1
- bl StringCopy
- lsls r4, 5
- ldr r0, =gDecorations + 1
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127454
-
- thumb_func_start sub_8127480
-sub_8127480: @ 8127480
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _08127492
- movs r0, 0x5
- bl PlaySE
-_08127492:
- adds r0, r4, 0
- bl sub_8127744
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127480
-
- thumb_func_start sub_81274A0
-sub_81274A0: @ 81274A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r2, 24
- lsrs r5, r2, 24
- adds r7, r5, 0
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081274F6
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_81277BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081274DC
- adds r3, r5, 0x2
- adds r0, r6, 0
- movs r1, 0x18
- movs r2, 0x5C
- bl blit_move_info_icon
- b _081274F6
-_081274DC:
- adds r0, r4, 0
- bl sub_81277E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081274F6
- adds r3, r7, 0x2
- mov r0, r8
- movs r1, 0x19
- movs r2, 0x5C
- bl blit_move_info_icon
-_081274F6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81274A0
-
- thumb_func_start sub_8127500
-sub_8127500: @ 8127500
- push {r4,lr}
- sub sp, 0x10
- ldr r4, =gUnknown_0203A18C
- ldr r1, [r4]
- ldr r2, =0x00000522
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08127540
- subs r2, 0x2
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- subs r0, r1
- str r0, [sp]
- movs r0, 0x6E
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r0, =gUnknown_0203A170
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0x3C
- movs r2, 0xC
- movs r3, 0x94
- bl AddScrollIndicatorArrowPairParametrized
- ldr r1, [r4]
- ldr r2, =0x00000522
- adds r1, r2
- strb r0, [r1]
-_08127540:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127500
-
- thumb_func_start sub_8127554
-sub_8127554: @ 8127554
- push {r4,lr}
- ldr r4, =gUnknown_0203A18C
- ldr r0, [r4]
- ldr r2, =0x00000522
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08127572
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x00000522
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_08127572:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127554
-
- thumb_func_start sub_8127580
-sub_8127580: @ 8127580
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_81269D4
- adds r0, r4, 0
- bl sub_812759C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127580
-
- thumb_func_start sub_812759C
-sub_812759C: @ 812759C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- ldr r0, =gTasks + 0x8
- adds r5, r0
- movs r0, 0x3
- bl sub_81269D4
- ldr r0, =gUnknown_0203A173
- ldrb r0, [r0]
- bl sub_8127718
- ldr r6, =gUnknown_0203A18C
- ldr r0, =0x00000524
- bl AllocZeroed
- str r0, [r6]
- ldr r1, =0x00000522
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- bl sub_8127284
- bl sub_81272C8
- bl sub_81272F8
- adds r0, r4, 0
- bl sub_8127330
- ldr r0, =gUnknown_03006310
- ldr r1, =gUnknown_0203A170
- ldrh r1, [r1]
- ldr r2, =gUnknown_0203A16E
- ldrh r2, [r2]
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1A]
- bl sub_8127500
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812759C
-
- thumb_func_start sub_8127620
-sub_8127620: @ 8127620
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_812759C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_812764C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127620
-
- thumb_func_start sub_812764C
-sub_812764C: @ 812764C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08127700
- ldrb r0, [r5, 0x1A]
- bl ListMenuHandleInput
- adds r4, r0, 0
- ldrb r0, [r5, 0x1A]
- ldr r7, =gUnknown_0203A170
- ldr r1, =gUnknown_0203A16E
- mov r8, r1
- adds r1, r7, 0
- mov r2, r8
- bl get_coro_args_x18_x1A
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _081276A4
- adds r0, 0x1
- cmp r4, r0
- bne _081276C4
- b _08127700
- .pool
-_081276A4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_085A6B78
- movs r2, 0x16
- ldrsh r1, [r5, r2]
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r1, [r1]
- adds r0, r6, 0
- bl _call_via_r1
- b _08127700
- .pool
-_081276C4:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_0203A172
- strb r4, [r0]
- bl sub_8127554
- ldrb r0, [r5, 0x1A]
- adds r1, r7, 0
- mov r2, r8
- bl sub_81AE6C8
- movs r0, 0x1
- bl sub_8126A58
- bl sub_81277A8
- ldr r0, =gUnknown_0203A18C
- ldr r0, [r0]
- bl Free
- ldr r1, =gUnknown_085A6B78
- movs r2, 0x16
- ldrsh r0, [r5, r2]
- lsls r0, 3
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- bl _call_via_r1
-_08127700:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812764C
-
- thumb_func_start sub_8127718
-sub_8127718: @ 8127718
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl sub_81269D4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl sub_8126F68
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127718
-
- thumb_func_start sub_8127744
-sub_8127744: @ 8127744
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r0, =gUnknown_0203A188
- ldrb r5, [r0, 0x3]
- adds r0, r5, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0203A151
- ldrb r0, [r0]
- cmp r4, r0
- bcc _08127770
- ldr r2, =gText_GoBackPrevMenu
- b _08127782
- .pool
-_08127770:
- ldr r1, =gDecorations
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 5
- adds r1, 0x18
- adds r0, r1
- ldr r2, [r0]
-_08127782:
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0
- bl PrintTextOnWindow
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127744
-
- thumb_func_start sub_81277A8
-sub_81277A8: @ 81277A8
- push {lr}
- movs r0, 0x3
- bl sub_8126A58
- movs r0, 0x2
- bl sub_8126A58
- pop {r0}
- bx r0
- thumb_func_end sub_81277A8
-
- thumb_func_start sub_81277BC
-sub_81277BC: @ 81277BC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_0203A152
-_081277C6:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081277D8
- movs r0, 0x1
- b _081277E4
- .pool
-_081277D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _081277C6
- movs r0, 0
-_081277E4:
- pop {r1}
- bx r1
- thumb_func_end sub_81277BC
-
- thumb_func_start sub_81277E8
-sub_81277E8: @ 81277E8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_0203A162
-_081277F2:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08127804
- movs r0, 0x1
- b _08127810
- .pool
-_08127804:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xB
- bls _081277F2
- movs r0, 0
-_08127810:
- pop {r1}
- bx r1
- thumb_func_end sub_81277E8
-
- thumb_func_start sub_8127814
-sub_8127814: @ 8127814
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r0, =gUnknown_0203A152
- movs r1, 0
- movs r2, 0x10
- bl memset
- ldr r0, =gUnknown_0203A162
- movs r1, 0
- movs r2, 0xC
- bl memset
- movs r6, 0
- ldr r0, =gSaveBlock1Ptr
- mov r10, r0
- ldr r1, =0x00001aae
- mov r9, r1
- ldr r3, =gUnknown_0203A173
- mov r8, r3
-_08127842:
- mov r1, r10
- ldr r0, [r1]
- add r0, r9
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _081278E2
- movs r2, 0
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 3
- ldr r1, =gDecorationInventories
- adds r0, r1
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _081278E2
- ldr r7, =gUnknown_0203A152
- adds r3, r1, 0
- mov r12, r3
-_08127868:
- ldr r0, =gUnknown_0203A14C
- ldr r1, [r0]
- adds r1, r2
- mov r3, r10
- ldr r0, [r3]
- add r0, r9
- adds r0, r6
- ldrb r1, [r1]
- adds r4, r2, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bne _081278D0
- movs r1, 0
- cmp r1, r5
- bcs _081278A2
- ldrb r0, [r7]
- cmp r0, r4
- beq _081278A2
- ldr r3, =gUnknown_0203A152
- adds r2, r4, 0
-_08127890:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r5
- bcs _081278A2
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08127890
-_081278A2:
- cmp r1, r5
- bne _081278D0
- adds r0, r5, r7
- strb r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _081278E2
- .pool
-_081278D0:
- lsls r0, r4, 16
- lsrs r2, r0, 16
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 3
- add r0, r12
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcc _08127868
-_081278E2:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0xF
- bls _08127842
- movs r5, 0
- movs r6, 0
- ldr r3, =gDecorationInventories
- mov r8, r3
-_081278F4:
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x0000271c
- adds r0, r1
- adds r0, r6
- ldrb r0, [r0]
- adds r7, r6, 0x1
- cmp r0, 0
- beq _0812799A
- movs r2, 0
- b _0812798C
- .pool
-_08127918:
- ldr r0, =gUnknown_0203A14C
- ldr r1, [r0]
- adds r1, r2
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, =0x0000271c
- adds r0, r3
- adds r0, r6
- ldrb r1, [r1]
- adds r4, r2, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bne _08127988
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_81277BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08127988
- movs r1, 0
- cmp r1, r5
- bcs _08127966
- ldr r2, =gUnknown_0203A162
- ldrb r0, [r2]
- cmp r0, r4
- beq _08127966
- adds r3, r2, 0
- adds r2, r4, 0
-_08127954:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r5
- bcs _08127966
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08127954
-_08127966:
- cmp r1, r5
- bne _08127988
- ldr r0, =gUnknown_0203A162
- adds r0, r5, r0
- strb r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- b _0812799A
- .pool
-_08127988:
- lsls r0, r4, 16
- lsrs r2, r0, 16
-_0812798C:
- ldr r0, =gUnknown_0203A173
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcc _08127918
-_0812799A:
- lsls r0, r7, 16
- lsrs r6, r0, 16
- cmp r6, 0xB
- bls _081278F4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127814
-
- thumb_func_start sub_81279B4
-sub_81279B4: @ 81279B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8127814
- pop {r0}
- bx r0
- thumb_func_end sub_81279B4
-
- thumb_func_start sub_81279C4
-sub_81279C4: @ 81279C4
- push {r4,lr}
- movs r2, 0
- ldr r0, =gUnknown_0203A170
- ldrh r0, [r0]
- ldr r1, =gUnknown_0203A16E
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0x1
- ldr r4, =gUnknown_0203A152
- ldr r3, =gUnknown_0203A162
-_081279D8:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, r1
- beq _081279EC
- cmp r2, 0xB
- bhi _08127A00
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08127A00
-_081279EC:
- movs r0, 0
- b _08127A0C
- .pool
-_08127A00:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _081279D8
- movs r0, 0x1
-_08127A0C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81279C4
-
- thumb_func_start sub_8127A14
-sub_8127A14: @ 8127A14
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_81269D4
- adds r0, r4, 0
- bl sub_8127620
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127A14
-
- thumb_func_start sub_8127A30
-sub_8127A30: @ 8127A30
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8127A14
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127A30
-
- thumb_func_start sub_8127A5C
-sub_8127A5C: @ 8127A5C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08127A82
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- movs r0, 0x1
- bl sub_81269D4
- adds r0, r4, 0
- bl sub_8127620
-_08127A82:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127A5C
-
- thumb_func_start sub_8127A8C
-sub_8127A8C: @ 8127A8C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, =gTasks + 0x8
- adds r4, r0
- bl sub_8127554
- bl sub_81277A8
- ldrb r0, [r4, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_81AE6C8
- ldr r0, =gUnknown_0203A18C
- ldr r0, [r0]
- bl Free
- adds r0, r5, 0
- bl sub_8126E44
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127A8C
-
- thumb_func_start sub_8127ACC
-sub_8127ACC: @ 8127ACC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r4, r2, r3
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrh r0, [r1]
- strh r0, [r4, 0xE]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x10]
- adds r3, 0x8
- adds r2, r3
- adds r1, r2, 0x2
- adds r0, r2, 0
- bl PlayerGetDestCoords
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127ACC
-
- thumb_func_start sub_8127B04
-sub_8127B04: @ 8127B04
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl DrawWholeMapView
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- ldr r3, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r3
- movs r3, 0xE
- ldrsb r3, [r4, r3]
- ldrb r4, [r4, 0x10]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl Overworld_SetWarpDestination
- bl warp_in
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127B04
-
- thumb_func_start sub_8127B54
-sub_8127B54: @ 8127B54
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, =0x0000ffff
- cmp r2, 0x22
- beq _08127B7C
- cmp r2, 0x26
- bne _08127B86
- ldr r0, =gUnknown_085A72E4
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
- b _08127B86
- .pool
-_08127B7C:
- ldr r0, =gUnknown_085A72EC
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 16
-_08127B86:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8127B54
-
- thumb_func_start sub_8127B90
-sub_8127B90: @ 8127B90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- ldr r4, [sp, 0x54]
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x8]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0xC]
- lsls r4, 16
- lsrs r4, 16
- str r4, [sp, 0x10]
- movs r2, 0
- lsls r0, r3, 16
- cmp r2, r3
- bcc _08127BC6
- b _08127D28
-_08127BC6:
- ldr r1, [sp, 0x8]
- str r1, [sp, 0x28]
- str r0, [sp, 0x2C]
-_08127BCC:
- ldr r3, [sp, 0x4]
- ldr r4, [sp, 0xC]
- subs r1, r3, r4
- lsls r0, r2, 16
- asrs r0, 16
- adds r0, 0x1
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r10, r0
- adds r1, r2, 0x1
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x28]
- cmp r10, r3
- bcc _08127BF0
- b _08127D18
-_08127BF0:
- ldr r4, [sp, 0x10]
- lsls r4, 5
- str r4, [sp, 0x18]
- ldr r0, =gUnknown_085A5C24
- adds r0, r4, r0
- str r0, [sp, 0x1C]
- ldr r0, =gDecorations
- adds r0, r4, r0
- str r0, [sp, 0x24]
- ldr r3, [sp, 0x8]
- adds r1, r2, 0
- muls r1, r3
- str r1, [sp, 0x20]
-_08127C0A:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, [sp, 0x20]
- add r1, r10
- ldr r4, [sp, 0x1C]
- ldr r0, [r4]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- lsls r4, r0, 16
- lsls r0, r4, 8
- lsrs r0, 24
- bl MetatileBehavior_IsMB_B9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08127C50
- ldr r3, [sp, 0x24]
- ldrb r0, [r3, 0x11]
- cmp r0, 0x1
- beq _08127C60
- lsrs r0, r4, 28
- cmp r0, 0
- beq _08127C60
-_08127C50:
- movs r4, 0xC0
- lsls r4, 4
- mov r8, r4
- b _08127C64
- .pool
-_08127C60:
- movs r0, 0
- mov r8, r0
-_08127C64:
- ldr r1, [sp, 0x24]
- ldrb r0, [r1, 0x11]
- lsls r7, r5, 16
- ldr r2, [sp, 0x14]
- lsls r2, 16
- mov r9, r2
- cmp r0, 0x3
- beq _08127C8E
- asrs r0, r7, 16
- asrs r1, r2, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMB_B7
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0x1
- cmp r0, 0x1
- beq _08127C90
-_08127C8E:
- movs r6, 0
-_08127C90:
- ldr r3, [sp, 0x18]
- ldr r4, =gDecorations
- adds r0, r3, r4
- ldrb r0, [r0]
- ldr r4, [sp, 0x20]
- add r4, r10
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_8127B54
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _08127CE0
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- orrs r3, r5
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileEntryAt
- b _08127D06
- .pool
-_08127CE0:
- asrs r0, r7, 16
- mov r2, r9
- asrs r1, r2, 16
- ldr r3, [sp, 0x1C]
- ldr r2, [r3]
- lsls r3, r4, 1
- adds r3, r2
- movs r4, 0x80
- lsls r4, 2
- adds r2, r4, 0
- orrs r6, r2
- ldrh r3, [r3]
- adds r2, r6, r3
- mov r3, r8
- orrs r3, r2
- lsls r2, r3, 16
- lsrs r2, 16
- bl MapGridSetMetatileIdAt
-_08127D06:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- ldr r4, [sp, 0x28]
- cmp r10, r4
- bcs _08127D18
- b _08127C0A
-_08127D18:
- ldr r1, [sp, 0x30]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- ldr r3, [sp, 0x2C]
- lsrs r0, r3, 16
- cmp r2, r0
- bcs _08127D28
- b _08127BCC
-_08127D28:
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8127B90
-
- thumb_func_start sub_8127D38
-sub_8127D38: @ 8127D38
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r1, =gDecorations
- lsls r0, r2, 5
- adds r0, r1
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bhi _08127E10
- lsls r0, 2
- ldr r1, =_08127D68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08127D68:
- .4byte _08127D90
- .4byte _08127D9A
- .4byte _08127DA4
- .4byte _08127DB4
- .4byte _08127DBE
- .4byte _08127DC8
- .4byte _08127DD8
- .4byte _08127DE2
- .4byte _08127DF2
- .4byte _08127E02
-_08127D90:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _08127DAC
-_08127D9A:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _08127DAC
-_08127DA4:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_08127DAC:
- movs r3, 0x1
- bl sub_8127B90
- b _08127E10
-_08127DB4:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x4
- b _08127DD0
-_08127DBE:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- b _08127DD0
-_08127DC8:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
-_08127DD0:
- movs r3, 0x2
- bl sub_8127B90
- b _08127E10
-_08127DD8:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x1
- b _08127DFA
-_08127DE2:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x4
- bl sub_8127B90
- b _08127E10
-_08127DF2:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
-_08127DFA:
- movs r3, 0x3
- bl sub_8127B90
- b _08127E10
-_08127E02:
- str r2, [sp]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_8127B90
-_08127E10:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127D38
-
- thumb_func_start sub_8127E18
-sub_8127E18: @ 8127E18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0
- ldr r7, =gMapHeader
- ldr r0, =gSpecialVar_0x8005
- mov r8, r0
- ldr r1, =gSpecialVar_0x8006
- mov r10, r1
- ldr r2, =gSaveBlock1Ptr
- mov r9, r2
-_08127E34:
- adds r5, r6, 0
- adds r5, 0xAE
- adds r4, r5, 0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08127F1C
- adds r0, r4, 0
- bl FlagClear
- movs r2, 0
- ldr r0, [r7, 0x4]
- ldrb r4, [r0]
- cmp r2, r4
- bcs _08127E82
- ldr r0, [r0, 0x4]
- ldrh r0, [r0, 0x14]
- cmp r0, r5
- beq _08127E82
- ldr r0, =gMapHeader
- ldr r3, [r0, 0x4]
- ldrb r6, [r3]
- adds r4, r5, 0
-_08127E68:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _08127E82
- ldr r0, [r3, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _08127E68
-_08127E82:
- ldr r0, [r7, 0x4]
- ldr r1, [r0, 0x4]
- lsls r4, r2, 1
- adds r4, r2
- lsls r4, 3
- adds r1, r4, r1
- ldr r5, =0x00003f20
- adds r0, r5, 0
- ldrb r1, [r1, 0x1]
- adds r0, r1
- ldr r1, =gUnknown_0203A190
- ldr r1, [r1]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- bl VarSet
- ldr r0, [r7, 0x4]
- ldr r0, [r0, 0x4]
- adds r4, r0
- ldrb r0, [r4]
- mov r6, r8
- strh r0, [r6]
- ldr r1, =gUnknown_0203AA34
- ldrh r1, [r1]
- mov r2, r10
- strh r1, [r2]
- ldr r1, =gUnknown_0203AA36
- ldrh r1, [r1]
- ldr r4, =gSpecialVar_0x8007
- strh r1, [r4]
- mov r5, r9
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- ldrb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r6, r10
- movs r4, 0
- ldrsh r3, [r6, r4]
- ldr r5, =gSpecialVar_0x8007
- movs r6, 0
- ldrsh r4, [r5, r6]
- str r4, [sp]
- bl sub_808EBA8
- mov r1, r8
- ldrb r0, [r1]
- mov r4, r9
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_808F254
- b _08127F26
- .pool
-_08127F1C:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xD
- bls _08127E34
-_08127F26:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8127E18
-
- thumb_func_start sub_8127F38
-sub_8127F38: @ 8127F38
- push {lr}
- movs r1, 0
- ldr r0, =gUnknown_0203A17C
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _08127F62
- ldr r3, [r0]
-_08127F46:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08127F58
- movs r0, 0x1
- b _08127F64
- .pool
-_08127F58:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _08127F46
-_08127F62:
- movs r0, 0
-_08127F64:
- pop {r1}
- bx r1
- thumb_func_end sub_8127F38
-
- thumb_func_start sub_8127F68
-sub_8127F68: @ 8127F68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203A17C
- ldrb r0, [r0, 0x9]
- cmp r0, 0x1
- bne _08127FAC
- ldr r0, =gUnknown_0203A173
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _08127FAC
- cmp r0, 0x7
- beq _08127FAC
- ldr r4, =gStringVar4
- ldr r1, =gText_CantPlaceInRoom
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8127A5C
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _0812804C
- .pool
-_08127FAC:
- bl sub_81279C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08128038
- bl sub_8127F38
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08127FE8
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =sub_8128060
- str r1, [r0]
- b _0812804C
- .pool
-_08127FE8:
- ldr r0, =gStringVar1
- ldr r4, =gUnknown_0203A17C
- ldrb r1, [r4, 0x8]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- bne _08128018
- ldr r0, =gStringVar4
- ldr r1, =gText_NoMoreDecorations
- bl StringExpandPlaceholders
- b _08128020
- .pool
-_08128018:
- ldr r0, =gStringVar4
- ldr r1, =gText_NoMoreDecorations2
- bl StringExpandPlaceholders
-_08128020:
- ldr r1, =gStringVar4
- ldr r2, =sub_8127A5C
- adds r0, r5, 0
- bl DisplayItemMessageOnField
- b _0812804C
- .pool
-_08128038:
- ldr r4, =gStringVar4
- ldr r1, =gText_InUseAlready
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8127A5C
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_0812804C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8127F68
-
- thumb_func_start sub_8128060
-sub_8128060: @ 8128060
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r7, r0, r1
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- beq _081280AC
- cmp r0, 0x1
- bgt _08128088
- cmp r0, 0
- beq _0812808E
- b _08128112
- .pool
-_08128088:
- cmp r0, 0x2
- beq _081280FC
- b _08128112
-_0812808E:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08128112
- adds r0, r6, 0
- bl sub_8127ACC
- movs r0, 0x1
- strh r0, [r7, 0xC]
- b _08128112
- .pool
-_081280AC:
- ldr r4, =gPaletteFade
- ldrb r0, [r4, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4, 0x8]
- ldr r5, =gUnknown_0203A190
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r5, 0
- bl ConfigureCameraObjectForPlacingDecoration
- adds r0, r6, 0
- bl sub_812826C
- adds r0, r6, 0
- adds r1, r5, 0
- bl SetUpPlacingDecorationPlayerAvatar
- bl pal_fill_black
- ldrb r1, [r4, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x8]
- movs r0, 0x2
- strh r0, [r7, 0xC]
- b _08128112
- .pool
-_081280FC:
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08128112
- movs r0, 0
- strh r0, [r7, 0x20]
- adds r0, r6, 0
- bl sub_8128FD8
-_08128112:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8128060
-
- thumb_func_start ConfigureCameraObjectForPlacingDecoration
-ConfigureCameraObjectForPlacingDecoration: @ 8128118
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gUnknown_0203AA38
- ldr r4, =gSprites
- ldr r5, =gUnknown_03005DD0
- ldr r2, [r5, 0x4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- adds r0, r6, 0
- bl gpu_pal_decompress_alloc_tag_and_upload
- lsls r0, 24
- lsrs r0, 24
- str r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r5, 0x4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, =sub_81292D0
- str r1, [r0]
- adds r2, r4
- ldr r3, =gUnknown_085A7250
- ldr r0, [r6]
- ldrb r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- strh r0, [r2, 0x20]
- ldr r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, [r6]
- ldrb r0, [r0, 0x12]
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x3]
- strh r0, [r1, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ConfigureCameraObjectForPlacingDecoration
-
- thumb_func_start SetUpPlacingDecorationPlayerAvatar
-SetUpPlacingDecorationPlayerAvatar: @ 81281A8
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x12]
- ldr r3, =gUnknown_085A7250
- ldr r0, [r1]
- ldrb r4, [r0, 0x12]
- lsls r1, r4, 2
- adds r1, r3
- lsls r0, r2, 4
- ldrb r1, [r1, 0x2]
- adds r0, r1
- subs r2, 0x1
- lsls r2, 3
- subs r0, r2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r4, 0x2
- beq _081281E2
- cmp r4, 0x8
- beq _081281E2
- cmp r4, 0x9
- bne _081281EA
-_081281E2:
- adds r0, r2, 0
- subs r0, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
-_081281EA:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0812820C
- ldr r1, =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _08128214
- .pool
-_0812820C:
- ldr r1, =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08128214:
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, =gUnknown_0203AA39
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r0, =gUnknown_0203AA39
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r4, =gUnknown_0203AA38
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- bl DestroySprite
- ldr r0, =gUnknown_03005DD0
- ldr r0, [r0, 0x4]
- strb r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpPlacingDecorationPlayerAvatar
-
- thumb_func_start sub_812826C
-sub_812826C: @ 812826C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gDecorations
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r2
- ldrb r0, [r0, 0x12]
- cmp r0, 0x9
- bls _0812828C
- b _081283B2
-_0812828C:
- lsls r0, 2
- ldr r1, =_081282A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081282A8:
- .4byte _081282D0
- .4byte _081282E4
- .4byte _081282FC
- .4byte _08128314
- .4byte _08128328
- .4byte _0812833C
- .4byte _08128350
- .4byte _08128370
- .4byte _08128388
- .4byte _081283A0
-_081282D0:
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- b _08128394
- .pool
-_081282E4:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _081283B0
- .pool
-_081282FC:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
- strh r1, [r0, 0x12]
- movs r1, 0x1
- b _081283B0
- .pool
-_08128314:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x4
- b _081283AC
- .pool
-_08128328:
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- b _08128394
- .pool
-_0812833C:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- b _081283AC
- .pool
-_08128350:
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x12]
- movs r0, 0x3
- strh r0, [r1, 0x14]
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
- b _081283B2
- .pool
-_08128370:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x12]
- movs r1, 0x4
- b _081283B0
- .pool
-_08128388:
- ldr r0, =gTasks
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- movs r0, 0x3
-_08128394:
- strh r0, [r1, 0x12]
- strh r0, [r1, 0x14]
- b _081283B2
- .pool
-_081283A0:
- ldr r1, =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x3
-_081283AC:
- strh r1, [r0, 0x12]
- movs r1, 0x2
-_081283B0:
- strh r1, [r0, 0x14]
-_081283B2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812826C
-
- thumb_func_start sub_81283BC
-sub_81283BC: @ 81283BC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, =gSprites
- ldr r0, =gUnknown_0203AA38
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, =gUnknown_0203AA39
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_8128DE0
- adds r0, r4, 0
- bl sub_8128950
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81283BC
-
- thumb_func_start sub_8128414
-sub_8128414: @ 8128414
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- ldr r3, =gSprites
- ldr r0, =gUnknown_0203AA38
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x3C]
- ldr r0, =gUnknown_0203AA39
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x3C]
- bl sub_8128DE0
- ldr r5, =gStringVar4
- ldr r1, =gText_CancelDecorating
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8128B80
- adds r0, r4, 0
- adds r1, r5, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128414
-
- thumb_func_start sub_8128484
-sub_8128484: @ 8128484
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- bl MetatileBehavior_IsMB_B3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812849E
- cmp r4, 0
- beq _081284A2
-_0812849E:
- movs r0, 0
- b _081284A4
-_081284A2:
- movs r0, 0x1
-_081284A4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8128484
-
- thumb_func_start sub_81284AC
-sub_81284AC: @ 81284AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r5, r3, 16
- lsls r1, 16
- asrs r1, 16
- ldr r3, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _081284EC
- lsls r1, r4, 16
- asrs r1, 16
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- adds r0, 0x7
- cmp r1, r0
- bne _081284EC
- cmp r5, 0
- beq _081284EC
- movs r0, 0
- b _081284EE
- .pool
-_081284EC:
- movs r0, 0x1
-_081284EE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81284AC
-
- thumb_func_start sub_81284F4
-sub_81284F4: @ 81284F4
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r0, r6, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_B3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08128534
- ldrb r0, [r5]
- cmp r0, 0x21
- bne _08128522
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_C2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08128530
-_08128522:
- lsls r0, r6, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNormal
- lsls r0, 24
- cmp r0, 0
- beq _08128534
-_08128530:
- movs r0, 0x1
- b _08128536
-_08128534:
- movs r0, 0
-_08128536:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81284F4
-
- thumb_func_start sub_812853C
-sub_812853C: @ 812853C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r1, [sp]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r1, =gTasks
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldrb r2, [r0, 0x14]
- str r2, [sp, 0x4]
- ldrb r0, [r0, 0x12]
- str r0, [sp, 0x8]
- ldr r3, [sp]
- ldrb r0, [r3, 0x11]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0812856E
- b _0812893C
-_0812856E:
- lsls r0, 2
- ldr r1, =_08128580
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08128580:
- .4byte _08128594
- .4byte _08128594
- .4byte _08128680
- .4byte _08128834
- .4byte _081288B8
-_08128594:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _0812859E
- b _0812893C
-_0812859E:
- mov r1, r10
- lsls r1, 2
- str r1, [sp, 0x1C]
-_081285A4:
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- ldr r3, =gTasks
- adds r0, r3
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _0812866E
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0xC]
- asrs r1, 16
- mov r9, r1
-_081285D0:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r2, =gTasks
- adds r0, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- adds r0, r6, 0
- mov r1, r9
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- ldr r1, [sp]
- bl sub_81284F4
- lsls r0, 24
- cmp r0, 0
- bne _08128632
- b _0812890C
-_08128632:
- mov r0, r10
- adds r1, r6, 0
- mov r2, r9
- adds r3, r5, 0
- bl sub_81284AC
- lsls r0, 24
- cmp r0, 0
- bne _08128646
- b _0812890C
-_08128646:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0xC]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08128662
- cmp r4, 0x10
- beq _08128662
- b _0812890C
-_08128662:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _081285D0
-_0812866E:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, r2
- bcc _081285A4
- b _0812893C
- .pool
-_08128680:
- movs r6, 0
- mov r3, r10
- lsls r3, 2
- str r3, [sp, 0x1C]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x18]
- cmp r6, r0
- bge _0812876C
- adds r0, r3, 0
- add r0, r10
- lsls r0, 3
- str r0, [sp, 0x10]
-_0812869A:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- adds r6, 0x1
- str r6, [sp, 0x14]
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _08128760
- lsls r0, 16
- str r0, [sp, 0x20]
-_081286B8:
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x14]
- subs r0, r3, r1
- ldr r2, [sp, 0x8]
- adds r1, r0, 0
- muls r1, r2
- adds r1, r7
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl MetatileBehavior_IsNormal
- lsls r0, 24
- cmp r0, 0
- bne _08128724
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8128484
- lsls r0, 24
- cmp r0, 0
- bne _08128724
- b _0812890C
-_08128724:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_81284AC
- lsls r0, 24
- cmp r0, 0
- bne _0812873A
- b _0812890C
-_0812873A:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- beq _08128752
- b _0812890C
-_08128752:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gTasks
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _081286B8
-_08128760:
- ldr r1, [sp, 0x14]
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- cmp r6, r3
- blt _0812869A
-_0812876C:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- ldr r1, [sp, 0x4]
- subs r0, r1
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _0812878C
- b _0812893C
-_0812878C:
- lsls r0, 16
- str r0, [sp, 0x20]
-_08128790:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- mov r8, r0
- asrs r6, r0, 16
- mov r2, r9
- lsls r1, r2, 16
- adds r0, r6, 0
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldr r0, [r3, 0x1C]
- lsls r1, r7, 1
- adds r1, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl GetBehaviorByMetatileId
- movs r3, 0xF0
- lsls r3, 8
- adds r1, r3, 0
- adds r5, r1, 0
- ands r5, r0
- adds r0, r4, 0
- bl MetatileBehavior_IsNormal
- lsls r0, 24
- cmp r0, 0
- bne _081287F2
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_B7
- lsls r0, 24
- cmp r0, 0
- bne _081287F2
- b _0812890C
-_081287F2:
- mov r0, r10
- adds r1, r6, 0
- ldr r3, [sp, 0x20]
- asrs r2, r3, 16
- adds r3, r5, 0
- bl sub_81284AC
- lsls r0, 24
- cmp r0, 0
- bne _08128808
- b _0812890C
-_08128808:
- mov r1, r8
- lsrs r0, r1, 16
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08128822
- cmp r4, 0x10
- bne _0812890C
-_08128822:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _08128790
- b _0812893C
- .pool
-_08128834:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _0812883E
- b _0812893C
-_0812883E:
- mov r1, r10
- lsls r0, r1, 2
- add r0, r10
- lsls r1, r0, 3
- ldr r2, =gTasks
- adds r0, r1, r2
- ldrh r0, [r0, 0xA]
- subs r0, r6
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r7, 0
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcs _081288A4
- adds r0, r2, 0
- adds r1, r0
- mov r8, r1
- mov r1, r9
- lsls r0, r1, 16
- asrs r5, r0, 16
-_08128868:
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, r7
- lsls r0, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMB_B7
- lsls r0, 24
- cmp r0, 0
- beq _0812890C
- adds r0, r4, 0
- adds r1, r5, 0x1
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- beq _0812890C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _08128868
-_081288A4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x4]
- cmp r6, r0
- bcc _0812883E
- b _0812893C
- .pool
-_081288B8:
- mov r3, r10
- lsls r1, r3, 2
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0xA]
- mov r9, r0
- movs r7, 0
- str r1, [sp, 0x1C]
- ldr r0, [sp, 0x8]
- cmp r7, r0
- bcs _0812893C
- adds r6, r2, 0
- mov r1, r9
- lsls r1, 16
- str r1, [sp, 0x20]
-_081288D8:
- ldr r0, [sp, 0x1C]
- add r0, r10
- lsls r0, 3
- adds r0, r6
- ldrh r0, [r0, 0x8]
- adds r0, r7
- lsls r0, 16
- lsrs r5, r0, 16
- asrs r0, 16
- mov r2, r9
- lsls r1, r2, 16
- asrs r1, 16
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, [sp]
- ldrb r0, [r3, 0x12]
- cmp r0, 0x5
- bne _08128910
-_08128900:
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_C3
- lsls r0, 24
- cmp r0, 0
- bne _0812891C
-_0812890C:
- movs r0, 0
- b _0812893E
-_08128910:
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_B5
- lsls r0, 24
- cmp r0, 0
- beq _08128900
-_0812891C:
- adds r0, r5, 0
- ldr r2, [sp, 0x20]
- lsrs r1, r2, 16
- movs r2, 0
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _0812890C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, [sp, 0x8]
- cmp r7, r3
- bcc _081288D8
-_0812893C:
- movs r0, 0x1
-_0812893E:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_812853C
-
- thumb_func_start sub_8128950
-sub_8128950: @ 8128950
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 5
- ldr r0, =gDecorations
- adds r1, r0
- adds r0, r5, 0
- bl sub_812853C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081289A4
- ldr r4, =gStringVar4
- ldr r1, =gText_PlaceItHere
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_81289D0
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _081289BE
- .pool
-_081289A4:
- movs r0, 0x20
- bl PlaySE
- ldr r4, =gStringVar4
- ldr r1, =gText_CantBePlacedHere
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8129020
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_081289BE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128950
-
- thumb_func_start sub_81289D0
-sub_81289D0: @ 81289D0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8197930
- ldr r1, =gUnknown_085A72C4
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81289D0
-
- thumb_func_start sub_81289F0
-sub_81289F0: @ 81289F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- adds r0, r4, 0
- bl sub_8128AAC
- ldr r2, =gDecorations
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- ldrb r3, [r0]
- lsls r0, r3, 5
- adds r0, r2
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- beq _08128A44
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- ldrh r1, [r1, 0xA]
- adds r2, r3, 0
- bl sub_8127D38
- b _08128A64
- .pool
-_08128A44:
- ldr r2, =gUnknown_0203AA34
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x7
- strh r0, [r2]
- ldr r2, =gUnknown_0203AA36
- ldrh r0, [r1, 0xA]
- subs r0, 0x7
- strh r0, [r2]
- ldr r0, =gUnknown_08275D1F
- bl ScriptContext1_SetupScript
-_08128A64:
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AA38
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x22]
- adds r1, 0x2
- strh r1, [r0, 0x22]
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x14]
- cmp r0, 0x56
- bne _08128A84
- bl sub_80EE104
-_08128A84:
- adds r0, r4, 0
- bl sub_8128BBC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81289F0
-
- thumb_func_start sub_8128AAC
-sub_8128AAC: @ 8128AAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r3, 0
- ldr r0, =gUnknown_0203A17C
- ldrb r1, [r0, 0x8]
- adds r5, r0, 0
- cmp r3, r1
- bcs _08128AD2
- ldr r4, [r5]
-_08128AC0:
- adds r2, r4, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _08128AF0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08128AC0
-_08128AD2:
- ldrb r0, [r5, 0x9]
- cmp r0, 0
- bne _08128B3C
- movs r3, 0
- ldr r0, =gUnknown_0203A152
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08128B28
- b _08128B48
- .pool
-_08128AF0:
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r5, 0x4]
- adds r2, r3
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- subs r0, 0x7
- lsls r0, 4
- ldrb r1, [r1, 0xA]
- subs r1, 0x7
- adds r0, r1
- strb r0, [r2]
- b _08128AD2
- .pool
-_08128B28:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xF
- bhi _08128B76
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08128B28
- b _08128B6E
-_08128B3C:
- movs r3, 0
- ldr r0, =gUnknown_0203A162
- ldrb r1, [r0]
- adds r2, r0, 0
- cmp r1, 0
- bne _08128B5C
-_08128B48:
- ldr r0, =gUnknown_0203A172
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r2]
- b _08128B76
- .pool
-_08128B5C:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0xB
- bhi _08128B76
- adds r1, r3, r2
- ldrb r0, [r1]
- cmp r0, 0
- bne _08128B5C
-_08128B6E:
- ldr r0, =gUnknown_0203A172
- ldrb r0, [r0]
- adds r0, 0x1
- strb r0, [r1]
-_08128B76:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128AAC
-
- thumb_func_start sub_8128B80
-sub_8128B80: @ 8128B80
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8197930
- ldr r1, =gUnknown_085A72CC
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128B80
-
- thumb_func_start sub_8128BA0
-sub_8128BA0: @ 8128BA0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- adds r0, r4, 0
- bl sub_8128BBC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8128BA0
-
- thumb_func_start sub_8128BBC
-sub_8128BBC: @ 8128BBC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =c1_overworld_prev_quest
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128BBC
-
- thumb_func_start c1_overworld_prev_quest
-c1_overworld_prev_quest: @ 8128BEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08128C10
- cmp r0, 0x1
- beq _08128C30
- b _08128C4C
- .pool
-_08128C10:
- bl ScriptContext2_Enable
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08128C4C
- adds r0, r4, 0
- bl sub_8127B04
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _08128C4C
- .pool
-_08128C30:
- bl sub_812A3C8
- ldr r0, =0x00000be5
- bl FreeSpritePaletteByTag
- ldr r1, =gFieldCallback
- ldr r0, =sub_8128CD4
- str r0, [r1]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08128C4C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end c1_overworld_prev_quest
-
- thumb_func_start sub_8128C64
-sub_8128C64: @ 8128C64
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, =gTasks + 0x8
- adds r4, r5, r6
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08128C9C
- cmp r0, 0x1
- bgt _08128C8C
- cmp r0, 0
- beq _08128C96
- b _08128CCA
- .pool
-_08128C8C:
- cmp r0, 0x2
- beq _08128CA8
- cmp r0, 0x3
- beq _08128CB4
- b _08128CCA
-_08128C96:
- bl sub_80E9578
- b _08128CAC
-_08128C9C:
- ldr r0, =gUnknown_08275D0C
- bl ScriptContext1_SetupScript
- b _08128CAC
- .pool
-_08128CA8:
- bl ScriptContext2_Enable
-_08128CAC:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _08128CCA
-_08128CB4:
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08128CCA
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, =sub_812764C
- str r1, [r0]
-_08128CCA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128C64
-
- thumb_func_start sub_8128CD4
-sub_8128CD4: @ 8128CD4
- push {r4,lr}
- bl ScriptContext2_Enable
- bl pal_fill_black
- ldr r0, =sub_8128C64
- movs r1, 0x8
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8127580
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128CD4
-
- thumb_func_start sub_8128D10
-sub_8128D10: @ 8128D10
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r2, r1, r0
- ldr r0, =gUnknown_0203AA3A
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08128D48
- movs r1, 0x2
- ldrsh r0, [r2, r1]
- movs r4, 0xC
- ldrsh r1, [r2, r4]
- subs r0, r1
- subs r0, 0x6
- cmp r0, 0
- bge _08128D48
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- b _08128D62
- .pool
-_08128D48:
- ldrb r0, [r3]
- cmp r0, 0x2
- bne _08128D6C
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- subs r1, 0x7
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- cmp r1, r0
- blt _08128D6C
- ldrh r0, [r2, 0x2]
- subs r0, 0x1
-_08128D62:
- strh r0, [r2, 0x2]
- movs r0, 0
- b _08128DAE
- .pool
-_08128D6C:
- ldrb r0, [r3]
- cmp r0, 0x3
- bne _08128D82
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, 0x7
- cmp r0, 0
- bge _08128D82
- ldrh r0, [r2]
- adds r0, 0x1
- b _08128DA2
-_08128D82:
- ldrb r0, [r3]
- cmp r0, 0x4
- bne _08128DAC
- movs r3, 0
- ldrsh r1, [r2, r3]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- adds r1, r0
- subs r1, 0x8
- ldr r0, =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0]
- cmp r1, r0
- blt _08128DAC
- ldrh r0, [r2]
- subs r0, 0x1
-_08128DA2:
- strh r0, [r2]
- movs r0, 0
- b _08128DAE
- .pool
-_08128DAC:
- movs r0, 0x1
-_08128DAE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8128D10
-
- thumb_func_start sub_8128DB4
-sub_8128DB4: @ 8128DB4
- push {lr}
- ldr r0, =gMain
- ldrh r0, [r0, 0x2C]
- movs r1, 0xF0
- ands r1, r0
- cmp r1, 0x40
- beq _08128DD8
- cmp r1, 0x80
- beq _08128DD8
- cmp r1, 0x20
- beq _08128DD8
- cmp r1, 0x10
- beq _08128DD8
- movs r0, 0
- b _08128DDA
- .pool
-_08128DD8:
- movs r0, 0x1
-_08128DDA:
- pop {r1}
- bx r1
- thumb_func_end sub_8128DB4
-
- thumb_func_start sub_8128DE0
-sub_8128DE0: @ 8128DE0
- push {r4,lr}
- ldr r1, =gUnknown_0203AA3A
- movs r0, 0
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r3, =gUnknown_0203AA38
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r2, 0
- strh r2, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x34]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128DE0
-
- thumb_func_start sub_8128E18
-sub_8128E18: @ 8128E18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- mov r8, r2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r5, =gSprites
- ldr r3, =gUnknown_0203AA38
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x36
- ldrsh r6, [r0, r1]
- cmp r6, 0
- beq _08128E46
- b _08128F66
-_08128E46:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08128E68
- ldr r0, =gUnknown_085A72D4
- movs r3, 0x18
- ldrsh r1, [r4, r3]
- lsls r1, 3
- b _08128E76
- .pool
-_08128E68:
- cmp r0, 0x2
- bne _08128E88
- ldr r0, =gUnknown_085A72D4
- movs r3, 0x18
- ldrsh r1, [r4, r3]
- lsls r1, 3
- adds r0, 0x4
-_08128E76:
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- bl _call_via_r1
- b _08128FBA
- .pool
-_08128E88:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2C]
- movs r7, 0xF0
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x40
- bne _08128EBC
- ldr r1, =gUnknown_0203AA3A
- movs r0, 0x1
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x34]
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
-_08128EBC:
- ldrh r1, [r2, 0x2C]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x80
- bne _08128EEC
- ldr r1, =gUnknown_0203AA3A
- movs r0, 0x2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x34]
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
-_08128EEC:
- ldrh r1, [r2, 0x2C]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x20
- bne _08128F1C
- ldr r1, =gUnknown_0203AA3A
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
-_08128F1C:
- ldrh r1, [r2, 0x2C]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x10
- bne _08128F4C
- ldr r1, =gUnknown_0203AA3A
- movs r0, 0x4
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x32]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x34]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_08128F4C:
- bl sub_8128DB4
- lsls r0, 24
- cmp r0, 0
- beq _08128F62
- mov r0, r8
- bl sub_8128D10
- lsls r0, 24
- cmp r0, 0
- bne _08128F66
-_08128F62:
- bl sub_8128DE0
-_08128F66:
- ldr r0, =gUnknown_0203AA3A
- ldrb r0, [r0]
- cmp r0, 0
- beq _08128F94
- ldr r3, =gSprites
- ldr r2, =gUnknown_0203AA38
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x36]
- adds r1, 0x1
- strh r1, [r0, 0x36]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x36]
- movs r0, 0x7
- ands r0, r2
- strh r0, [r1, 0x36]
-_08128F94:
- movs r1, 0x14
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08128FBA
- ldr r3, =gMain
- ldrh r1, [r3, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08128FAC
- strh r2, [r4, 0x14]
-_08128FAC:
- ldrh r1, [r3, 0x2E]
- movs r2, 0x2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08128FBA
- strh r2, [r4, 0x14]
-_08128FBA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128E18
-
- thumb_func_start sub_8128FD8
-sub_8128FD8: @ 8128FD8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AA38
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r2, 0
- strh r2, [r0, 0x3C]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1C]
- ldr r1, =sub_8128E18
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8128FD8
-
- thumb_func_start sub_8129020
-sub_8129020: @ 8129020
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812903A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08129040
-_0812903A:
- adds r0, r2, 0
- bl sub_8128FD8
-_08129040:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129020
-
- thumb_func_start sub_8129048
-sub_8129048: @ 8129048
- push {lr}
- sub sp, 0x4
- adds r1, r0, 0
- mov r2, sp
- movs r0, 0
- strh r0, [r2]
- ldr r2, =0x01000452
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129048
-
- thumb_func_start sub_8129068
-sub_8129068: @ 8129068
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- ldr r0, =gTilesetPointer_SecretBase
- ldr r0, [r0]
- lsrs r1, 11
- ldr r0, [r0, 0x8]
- adds r0, r1
- adds r1, r2, 0
- movs r2, 0x8
- bl CpuFastSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129068
-
- thumb_func_start sub_8129088
-sub_8129088: @ 8129088
- push {r4-r7,lr}
- sub sp, 0x20
- adds r7, r0, 0
- lsls r1, 16
- lsrs r2, r1, 16
- lsrs r4, r1, 26
- adds r5, r4, 0
- cmp r2, 0
- beq _0812909E
- ldr r0, =0x000003ff
- ands r2, r0
-_0812909E:
- ldr r0, =gTilesetPointer_SecretBase
- ldr r0, [r0]
- lsls r1, r2, 5
- ldr r0, [r0, 0x4]
- adds r0, r1
- mov r1, sp
- movs r2, 0x8
- bl CpuFastSet
- cmp r4, 0x1
- beq _081290DE
- cmp r4, 0x1
- bgt _081290C8
- cmp r4, 0
- beq _081290D2
- b _0812919A
- .pool
-_081290C8:
- cmp r5, 0x2
- beq _0812913E
- cmp r5, 0x3
- beq _08129176
- b _0812919A
-_081290D2:
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x8
- bl CpuFastSet
- b _0812919A
-_081290DE:
- movs r5, 0
- movs r6, 0xF
-_081290E2:
- lsls r4, r5, 2
- adds r4, r7
- adds r5, 0x1
- lsls r3, r5, 2
- subs r0, r3, 0x1
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4]
- subs r0, r3, 0x2
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x1]
- subs r0, r3, 0x3
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x2]
- subs r3, 0x4
- mov r1, sp
- adds r0, r1, r3
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r4, 0x3]
- lsls r5, 16
- lsrs r5, 16
- cmp r5, 0x7
- bls _081290E2
- b _0812919A
-_0812913E:
- movs r5, 0
- movs r3, 0x7
-_08129142:
- lsls r2, r5, 2
- adds r2, r7
- subs r1, r3, r5
- lsls r1, 2
- mov r4, sp
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r0, r1, 0x1
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- adds r0, r1, 0x2
- add r0, sp
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- adds r1, 0x3
- adds r0, r4, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _08129142
- b _0812919A
-_08129176:
- movs r5, 0
- movs r4, 0x1F
- movs r6, 0xF
-_0812917C:
- adds r3, r7, r5
- subs r0, r4, r5
- add r0, sp
- ldrb r2, [r0]
- lsrs r1, r2, 4
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 4
- adds r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1F
- bls _0812917C
-_0812919A:
- add sp, 0x20
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8129088
-
- thumb_func_start sub_81291A4
-sub_81291A4: @ 81291A4
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_081291AA:
- lsls r0, r4, 5
- adds r0, 0x84
- adds r0, r5, r0
- lsls r2, r4, 1
- adds r1, r5, 0x4
- adds r1, r2
- ldrh r1, [r1]
- bl sub_8129088
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _081291AA
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81291A4
-
- thumb_func_start sub_81291CC
-sub_81291CC: @ 81291CC
- lsls r0, 16
- ldr r1, =gTilesetPointer_SecretBaseRedCave
- ldr r1, [r1]
- ldr r1, [r1, 0xC]
- lsrs r0, 15
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, =0x00000fff
- ands r0, r1
- bx lr
- .pool
- thumb_func_end sub_81291CC
-
- thumb_func_start sub_81291E8
-sub_81291E8: @ 81291E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- movs r6, 0
- ldr r1, =gUnknown_085A71B0
- lsls r5, r0, 4
- adds r0, r5, r1
- ldrb r0, [r0, 0xC]
- cmp r6, r0
- bcs _0812924C
- adds r7, r1, 0
-_08129204:
- mov r4, r8
- ldm r4!, {r1}
- adds r0, r7, 0x4
- adds r0, r5, r0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- ldr r1, [r1, 0x1C]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r7, 0
- adds r1, 0x8
- adds r1, r5, r1
- ldr r1, [r1]
- adds r1, r6
- lsls r0, 3
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl sub_81291CC
- adds r2, r5, r7
- ldr r1, [r2]
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 1
- adds r4, r1
- strh r0, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r2, [r2, 0xC]
- cmp r6, r2
- bcc _08129204
-_0812924C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81291E8
-
- thumb_func_start sub_812925C
-sub_812925C: @ 812925C
- push {r4,r5,lr}
- lsls r0, 24
- ldr r3, =gUnknown_0203AA3C
- movs r1, 0
- strb r1, [r3]
- ldrb r2, [r3, 0x1]
- subs r1, 0x4
- ands r1, r2
- movs r5, 0xD
- negs r5, r5
- ands r1, r5
- movs r2, 0x11
- negs r2, r2
- ands r1, r2
- subs r2, 0x10
- ands r1, r2
- strb r1, [r3, 0x1]
- ldr r1, =gUnknown_085A7250
- lsrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- movs r4, 0x3F
- lsls r1, 6
- strb r1, [r3, 0x1]
- ldrh r2, [r3, 0x2]
- ldr r1, =0xfffffe00
- ands r1, r2
- strh r1, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- strb r1, [r3, 0x3]
- ldrb r0, [r0, 0x1]
- lsls r0, 6
- ands r4, r1
- orrs r4, r0
- strb r4, [r3, 0x3]
- ldrh r1, [r3, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r1
- strh r0, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- ands r5, r0
- movs r0, 0xF
- ands r5, r0
- strb r5, [r3, 0x5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812925C
-
- thumb_func_start sub_81292D0
-sub_81292D0: @ 81292D0
- movs r1, 0
- strh r1, [r0, 0x32]
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- ldr r1, =sub_81292E8
- str r1, [r0, 0x1C]
- bx lr
- .pool
- thumb_func_end sub_81292D0
-
- thumb_func_start sub_81292E8
-sub_81292E8: @ 81292E8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08129322
- movs r1, 0x3A
- ldrsh r0, [r2, r1]
- cmp r0, 0xE
- bgt _0812930A
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _08129314
-_0812930A:
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
-_08129314:
- strb r0, [r3]
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x3A]
- b _0812932E
-_08129322:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812932E:
- pop {r0}
- bx r0
- thumb_func_end sub_81292E8
-
- thumb_func_start gpu_pal_decompress_alloc_tag_and_upload
-gpu_pal_decompress_alloc_tag_and_upload: @ 8129334
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- bl sub_8129048
- lsls r4, 5
- ldr r0, =gDecorations
- adds r4, r0
- str r4, [r5]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _081293B4
- ldr r0, =0x00000be5
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl sub_81291E8
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- bl sub_812925C
- adds r0, r5, 0
- bl sub_81291A4
- ldr r1, =0x00000884
- adds r0, r5, r1
- ldr r1, =gTilesetPointer_SecretBaseRedCave
- ldr r2, [r1]
- ldr r1, [r5]
- ldr r1, [r1, 0x1C]
- ldrh r1, [r1]
- ldr r2, [r2, 0xC]
- lsls r1, 4
- adds r1, r2
- ldrh r1, [r1, 0xE]
- lsrs r1, 12
- bl sub_8129068
- ldr r0, =gUnknown_085A72BC
- bl LoadSpritePalette
- ldr r0, =gUnknown_085A728C
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- b _081293C6
- .pool
-_081293B4:
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, =SpriteCallbackDummy
- movs r2, 0x1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl AddPseudoFieldObject
-_081293C6:
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end gpu_pal_decompress_alloc_tag_and_upload
-
- thumb_func_start AddDecorationIconObjectFromIconTable
-@ u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decorationId)
-AddDecorationIconObjectFromIconTable: @ 81293D8
- push {r4-r7,lr}
- sub sp, 0x10
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- bl AllocItemIconTemporaryBuffers
- lsls r0, 24
- cmp r0, 0
- beq _08129490
- adds r0, r5, 0
- movs r1, 0
- bl GetDecorationIconPicOrPalette
- ldr r4, =gUnknown_0203CEBC
- ldr r1, [r4]
- bl LZDecompressWram
- ldr r0, [r4]
- ldr r4, =gUnknown_0203CEC0
- ldr r1, [r4]
- bl CopyItemIconPicTo4x4Buffer
- ldr r0, [r4]
- str r0, [sp]
- ldr r4, =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r4
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- lsls r2, r7, 16
- ldr r1, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0
- movs r1, 0x1
- bl GetDecorationIconPicOrPalette
- str r0, [sp, 0x8]
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r6
- str r1, [r0, 0x4]
- bl LoadCompressedObjectPalette
- movs r0, 0x18
- bl Alloc
- adds r5, r0, 0
- adds r1, r5, 0
- ldr r0, =gUnknown_08614FF4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- strh r7, [r5]
- strh r6, [r5, 0x2]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl FreeItemIconTemporaryBuffers
- adds r0, r5, 0
- bl Free
- adds r0, r4, 0
- b _08129492
- .pool
-_08129490:
- movs r0, 0x40
-_08129492:
- add sp, 0x10
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddDecorationIconObjectFromIconTable
-
- thumb_func_start GetDecorationIconPicOrPalette
-@ u32 GetDecorationIconPicOrPalette(u16 decorationId, u8 which)
-GetDecorationIconPicOrPalette: @ 812949C
- push {lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r3, 0x78
- bls _081294AC
- movs r3, 0
-_081294AC:
- ldr r2, =gUnknown_085A6BE8
- lsls r0, 2
- lsls r1, r3, 3
- adds r0, r1
- adds r0, r2
- ldr r0, [r0]
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetDecorationIconPicOrPalette
-
- thumb_func_start AddDecorationIconObjectFromFieldObject
-@ u8 AddDecorationIconObjectFromFieldObject(u16 tilesTag, u16 paletteTag, u8 decorationId)
-AddDecorationIconObjectFromFieldObject: @ 81294C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- adds r4, r2, 0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r4, 24
- lsrs r4, 24
- ldr r6, =gUnknown_0203A190
- adds r0, r6, 0
- bl sub_8129048
- lsls r4, 5
- ldr r0, =gDecorations
- adds r4, r0
- str r4, [r6]
- ldrb r0, [r4, 0x11]
- cmp r0, 0x4
- beq _081295A4
- adds r0, r6, 0
- bl sub_81291E8
- ldr r0, [r6]
- ldrb r0, [r0, 0x12]
- bl sub_812925C
- adds r0, r6, 0
- bl sub_81291A4
- ldr r0, =0x00000884
- adds r5, r6, r0
- ldr r0, =gTilesetPointer_SecretBaseRedCave
- ldr r1, [r0]
- ldr r0, [r6]
- ldr r0, [r0, 0x1C]
- ldrh r0, [r0]
- ldr r1, [r1, 0xC]
- lsls r0, 4
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsrs r1, 12
- adds r0, r5, 0
- bl sub_8129068
- adds r0, r6, 0
- adds r0, 0x84
- str r0, [sp, 0x4]
- ldr r1, =gUnknown_085A72F4
- ldr r0, [r6]
- ldrb r0, [r0, 0x12]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 21
- ldr r4, =0xffff0000
- mov r2, r8
- lsls r1, r2, 16
- lsrs r0, 16
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- bl LoadSpriteSheet
- str r5, [sp, 0xC]
- add r0, sp, 0xC
- ldr r1, [r0, 0x4]
- ands r1, r4
- orrs r1, r7
- str r1, [r0, 0x4]
- bl LoadSpritePalette
- movs r0, 0x18
- bl Alloc
- adds r4, r0, 0
- adds r1, r4, 0
- ldr r0, =gUnknown_085A72A4
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r3, r8
- strh r3, [r4]
- strh r7, [r4, 0x2]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl Free
- b _081295BA
- .pool
-_081295A4:
- ldr r0, [r4, 0x1C]
- ldrh r0, [r0]
- ldr r1, =SpriteCallbackDummy
- movs r2, 0x1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r5, r0, 24
-_081295BA:
- adds r0, r5, 0
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddDecorationIconObjectFromFieldObject
-
- thumb_func_start AddDecorationIconObject
-@ u8 AddDecorationIconObject(u8 decorationId, u16 x, u16 y, u8 priority, u16 tilesTag, u16 paletteTag)
-AddDecorationIconObject: @ 81295CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r12, r6
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- mov r9, r8
- lsls r2, 16
- lsrs r7, r2, 16
- mov r10, r7
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 16
- lsrs r4, 16
- adds r3, r4, 0
- lsls r5, 16
- lsrs r5, 16
- adds r2, r5, 0
- cmp r6, 0x78
- bls _08129634
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl AddDecorationIconObjectFromIconTable
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _08129696
- ldr r2, =gSprites
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- mov r5, r8
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, 0x4
- strh r0, [r1, 0x24]
- lsls r0, r7, 16
- b _081296B2
- .pool
-_08129634:
- ldr r0, =gUnknown_085A6BE8
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08129684
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl AddDecorationIconObjectFromFieldObject
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _08129696
- ldr r1, =gSprites
- lsls r2, r4, 4
- adds r0, r2, r4
- lsls r0, 2
- adds r5, r0, r1
- mov r0, r8
- strh r0, [r5, 0x24]
- adds r0, r6, 0
- subs r0, 0x2A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08129680
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, 0x4
- strh r0, [r5, 0x26]
- b _081296BC
- .pool
-_08129680:
- strh r7, [r5, 0x26]
- b _081296BC
-_08129684:
- adds r0, r3, 0
- adds r1, r2, 0
- mov r2, r12
- bl AddDecorationIconObjectFromIconTable
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- bne _0812969A
-_08129696:
- movs r0, 0x40
- b _081296D8
-_0812969A:
- ldr r2, =gSprites
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- mov r5, r9
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, 0x4
- strh r0, [r1, 0x24]
- mov r5, r10
- lsls r0, r5, 16
-_081296B2:
- asrs r0, 16
- adds r0, 0x4
- strh r0, [r1, 0x26]
- adds r1, r2, 0
- adds r2, r3, 0
-_081296BC:
- adds r2, r4
- lsls r2, 2
- adds r2, r1
- movs r0, 0x3
- ldr r1, [sp]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- adds r0, r4, 0
-_081296D8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AddDecorationIconObject
-
- thumb_func_start sub_81296EC
-sub_81296EC: @ 81296EC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_0203A17C
- ldr r1, [r3]
- adds r1, r0
- movs r2, 0
- strb r2, [r1]
- ldr r1, [r3, 0x4]
- adds r1, r0
- strb r2, [r1]
- bx lr
- .pool
- thumb_func_end sub_81296EC
-
- thumb_func_start sub_8129708
-sub_8129708: @ 8129708
- push {r4-r6,lr}
- ldr r6, =gSpecialVar_0x8005
- movs r0, 0
- strh r0, [r6]
- ldr r2, =gScriptResult
- strh r0, [r2]
- ldr r4, =gSpecialVar_0x8004
- ldr r1, =gUnknown_0203AAC4
- ldrh r0, [r4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08129744
- movs r0, 0x1
- strh r0, [r2]
- b _08129796
- .pool
-_08129738:
- ldr r1, =gSpecialVar_0x8006
- ldrb r0, [r2]
- strh r0, [r1]
- b _08129796
- .pool
-_08129744:
- ldr r3, =gDecorations
- ldr r2, =gUnknown_0203A17C
- ldr r1, =gUnknown_0203AA44
- ldrh r0, [r4]
- lsls r0, 3
- adds r4, r0, r1
- ldrb r1, [r4]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r3
- ldrb r0, [r0, 0x11]
- cmp r0, 0x4
- bne _08129796
- ldrh r0, [r4, 0x4]
- strh r0, [r6]
- ldrb r0, [r4]
- bl sub_81296EC
- movs r1, 0
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r2, [r0]
- cmp r1, r2
- bcs _08129796
- ldr r5, [r0, 0x4]
- ldrh r4, [r6]
- adds r3, r2, 0
-_0812977E:
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r5
- ldrh r0, [r2, 0x14]
- cmp r0, r4
- beq _08129738
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bcc _0812977E
-_08129796:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129708
-
- thumb_func_start sub_81297AC
-sub_81297AC: @ 81297AC
- push {r4-r6,lr}
- movs r2, 0
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- ldrb r1, [r0]
- cmp r2, r1
- bcs _081297F0
- adds r3, r0, 0
- ldr r5, [r3, 0x4]
- ldr r0, =gSpecialVar_0x8004
- ldrh r4, [r0]
- ldr r6, =gSpecialVar_0x8005
-_081297C4:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r5
- ldrh r0, [r1, 0x14]
- cmp r0, r4
- bne _081297E4
- ldrb r0, [r1]
- strh r0, [r6]
- b _081297F0
- .pool
-_081297E4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3]
- cmp r2, r0
- bcc _081297C4
-_081297F0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81297AC
-
- thumb_func_start sub_81297F8
-sub_81297F8: @ 81297F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r6, 0
- b _081298BE
-_08129808:
- ldr r3, =gUnknown_0203AA44
- lsls r5, r6, 3
- adds r4, r5, r3
- ldrb r1, [r4]
- ldr r2, =gUnknown_0203A17C
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 5
- ldr r7, =gDecorations
- adds r0, r7
- ldrb r2, [r0, 0x11]
- ldr r7, =gUnknown_0203A17C
- ldr r0, [r7, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r8, r1
- movs r7, 0xF
- adds r1, r7, 0
- ands r1, r0
- str r1, [sp]
- adds r7, r5, 0
- adds r6, 0x1
- str r6, [sp, 0x4]
- cmp r2, 0x4
- beq _081298B8
- movs r6, 0
- ldrb r4, [r4, 0x2]
- cmp r6, r4
- bcs _081298AE
-_08129846:
- movs r4, 0
- adds r0, r5, r3
- adds r2, r6, 0x1
- mov r10, r2
- ldrb r0, [r0, 0x1]
- cmp r4, r0
- bcs _0812989C
- ldr r3, =gUnknown_0203AA44
- adds r3, r7
- mov r9, r3
- subs r5, r6, 0x7
- str r5, [sp, 0x8]
-_0812985E:
- adds r0, r4, 0x7
- add r0, r8
- ldr r1, =gMapHeader
- ldr r3, [r1]
- ldr r1, [sp]
- subs r2, r1, r6
- ldr r1, [r3]
- muls r2, r1
- mov r5, r8
- adds r1, r5, r4
- adds r1, r2
- ldr r2, [r3, 0xC]
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xC0
- lsls r3, 6
- adds r2, r3, 0
- orrs r2, r1
- ldr r5, [sp]
- ldr r3, [sp, 0x8]
- subs r1, r5, r3
- bl MapGridSetMetatileEntryAt
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- mov r5, r9
- ldrb r5, [r5, 0x1]
- cmp r4, r5
- bcc _0812985E
-_0812989C:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r3, =gUnknown_0203AA44
- adds r5, r7, 0
- adds r0, r7, r3
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bcc _08129846
-_081298AE:
- ldr r2, =gUnknown_0203AA44
- adds r0, r7, r2
- ldrb r0, [r0]
- bl sub_81296EC
-_081298B8:
- ldr r3, [sp, 0x4]
- lsls r0, r3, 24
- lsrs r6, r0, 24
-_081298BE:
- ldr r0, =gUnknown_0203AAC4
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08129808
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81297F8
-
- thumb_func_start sub_81298EC
-sub_81298EC: @ 81298EC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08129928
- cmp r0, 0x1
- bgt _08129914
- cmp r0, 0
- beq _0812991E
- b _08129994
- .pool
-_08129914:
- cmp r0, 0x2
- beq _08129954
- cmp r0, 0x3
- beq _08129968
- b _08129994
-_0812991E:
- bl sub_81297F8
- movs r0, 0x1
- strh r0, [r4, 0xC]
- b _08129994
-_08129928:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08129994
- bl DrawWholeMapView
- ldr r0, =gUnknown_08275D2E
- bl ScriptContext1_SetupScript
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- movs r0, 0x2
- strh r0, [r4, 0xC]
- b _08129994
- .pool
-_08129954:
- bl ScriptContext2_Enable
- adds r0, r5, 0
- bl sub_8127814
- bl pal_fill_black
- movs r0, 0x3
- strh r0, [r4, 0xC]
- b _08129994
-_08129968:
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08129994
- ldr r4, =gStringVar4
- ldr r1, =gText_DecorationReturnedToPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8129D64
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x14]
- cmp r0, 0x56
- bne _08129994
- bl sub_80EE104
-_08129994:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81298EC
-
- thumb_func_start sub_81299AC
-sub_81299AC: @ 81299AC
- push {lr}
- movs r1, 0
- ldr r0, =gUnknown_0203A17C
- ldrb r2, [r0, 0x8]
- cmp r1, r2
- bcs _081299D6
- ldr r3, [r0]
-_081299BA:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081299CC
- movs r0, 0x1
- b _081299D8
- .pool
-_081299CC:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bcc _081299BA
-_081299D6:
- movs r0, 0
-_081299D8:
- pop {r1}
- bx r1
- thumb_func_end sub_81299AC
-
- thumb_func_start SetUpPuttingAwayDecorationPlayerAvatar
-SetUpPuttingAwayDecorationPlayerAvatar: @ 81299DC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- bl player_get_direction_lower_nybble
- ldr r3, =gUnknown_0203AA38
- ldr r2, =gSprites
- ldr r4, =gUnknown_03005DD0
- ldr r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r3]
- bl sub_812A39C
- ldr r0, =gUnknown_085A7404
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08129A3C
- ldr r1, =SpriteCallbackDummy
- str r0, [sp]
- movs r0, 0xC1
- b _08129A44
- .pool
-_08129A3C:
- ldr r1, =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC2
-_08129A44:
- movs r2, 0x88
- movs r3, 0x48
- bl AddPseudoFieldObject
- ldr r1, =gUnknown_0203AA39
- strb r0, [r1]
- ldr r6, =gSprites
- ldr r0, =gUnknown_0203AA39
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r5, =gUnknown_0203AA38
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, =gUnknown_03005DD0
- ldr r0, [r0, 0x4]
- strb r0, [r5]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x5]
- ands r4, r1
- mov r1, r8
- orrs r4, r1
- strb r4, [r0, 0x5]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpPuttingAwayDecorationPlayerAvatar
-
- thumb_func_start sub_8129ABC
-sub_8129ABC: @ 8129ABC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08129B0C
- cmp r0, 0x1
- bgt _08129AE4
- cmp r0, 0
- beq _08129AEA
- b _08129B2E
- .pool
-_08129AE4:
- cmp r0, 0x2
- beq _08129B1A
- b _08129B2E
-_08129AEA:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08129B2E
- adds r0, r5, 0
- bl sub_8127ACC
- movs r0, 0x1
- strh r0, [r4, 0x4]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xA]
- b _08129B2E
- .pool
-_08129B0C:
- bl SetUpPuttingAwayDecorationPlayerAvatar
- bl pal_fill_black
- movs r0, 0x2
- strh r0, [r4, 0x4]
- b _08129B2E
-_08129B1A:
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08129B2E
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl sub_8129B34
-_08129B2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129ABC
-
- thumb_func_start sub_8129B34
-sub_8129B34: @ 8129B34
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_8197434
- ldr r4, =gSprites
- ldr r3, =gUnknown_0203AA38
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- strh r6, [r0, 0x3C]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_812A36C
- str r1, [r0]
- ldr r2, =gUnknown_0203AA39
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x88
- strh r1, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x48
- strh r1, [r0, 0x22]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x1C]
- ldr r1, =sub_8128E18
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129B34
-
- thumb_func_start sub_8129BCC
-sub_8129BCC: @ 8129BCC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_8128DE0
- adds r0, r4, 0
- bl sub_8129C74
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129BCC
-
- thumb_func_start sub_8129BF8
-sub_8129BF8: @ 8129BF8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x1C]
- bl sub_8128DE0
- ldr r3, =gSprites
- ldr r5, =gUnknown_0203AA38
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
- ldr r5, =gStringVar4
- ldr r1, =gText_StopPuttingAwayDecorations
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_812A1F0
- adds r0, r4, 0
- adds r1, r5, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129BF8
-
- thumb_func_start sub_8129C74
-sub_8129C74: @ 8129C74
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_812A0E8
- ldr r0, =gUnknown_0203AAC4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08129CA8
- ldr r4, =gStringVar4
- ldr r1, =gText_ReturnDecorationToPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_812A1A0
- b _08129D14
- .pool
-_08129CA8:
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBasePC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08129CDE
- adds r0, r4, 0
- bl MetatileBehavior_IsMB_C5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08129D3C
-_08129CDE:
- ldr r3, =gSprites
- ldr r4, =gUnknown_0203AA38
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
- ldr r4, =gStringVar4
- ldr r1, =gText_StopPuttingAwayDecorations
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_812A1F0
-_08129D14:
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _08129D50
- .pool
-_08129D3C:
- ldr r4, =gStringVar4
- ldr r1, =gText_NoDecorationHere
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8129D64
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_08129D50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129C74
-
- thumb_func_start sub_8129D64
-sub_8129D64: @ 8129D64
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08129D7E
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08129D84
-_08129D7E:
- adds r0, r2, 0
- bl sub_8129B34
-_08129D84:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129D64
-
- thumb_func_start sub_8129D8C
-sub_8129D8C: @ 8129D8C
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- ldr r1, =gDecorations
- lsrs r0, 19
- adds r0, r1
- ldrb r1, [r0, 0x12]
- cmp r1, 0
- bne _08129DA8
- movs r0, 0x1
- strb r0, [r2, 0x1]
- b _08129E06
- .pool
-_08129DA8:
- cmp r1, 0x1
- bne _08129DB4
- movs r0, 0x2
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- b _08129E08
-_08129DB4:
- cmp r1, 0x2
- bne _08129DC0
- movs r0, 0x3
- strb r0, [r2, 0x1]
- movs r0, 0x1
- b _08129E06
-_08129DC0:
- cmp r1, 0x3
- bne _08129DC8
- movs r0, 0x4
- b _08129E02
-_08129DC8:
- cmp r1, 0x4
- bne _08129DD2
- movs r0, 0x2
- strb r0, [r2, 0x1]
- b _08129E06
-_08129DD2:
- cmp r1, 0x5
- bne _08129DDA
- movs r0, 0x1
- b _08129E02
-_08129DDA:
- cmp r1, 0x6
- bne _08129DE6
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r0, 0x3
- b _08129E06
-_08129DE6:
- cmp r1, 0x7
- bne _08129DF2
- movs r0, 0x2
- strb r0, [r2, 0x1]
- movs r0, 0x4
- b _08129E06
-_08129DF2:
- cmp r1, 0x8
- bne _08129DFC
- movs r0, 0x3
- strb r0, [r2, 0x1]
- b _08129E06
-_08129DFC:
- cmp r1, 0x9
- bne _08129E08
- movs r0, 0x3
-_08129E02:
- strb r0, [r2, 0x1]
- movs r0, 0x2
-_08129E06:
- strb r0, [r2, 0x2]
-_08129E08:
- pop {r0}
- bx r0
- thumb_func_end sub_8129D8C
-
- thumb_func_start sub_8129E0C
-sub_8129E0C: @ 8129E0C
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- ldr r5, =gSprites
- ldr r6, =gUnknown_0203AA38
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- adds r2, 0x3E
- ldrb r3, [r2]
- movs r4, 0x4
- orrs r3, r4
- strb r3, [r2]
- ldrb r3, [r6]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r3, r5, 0
- adds r3, 0x1C
- adds r2, r3
- ldr r3, =SpriteCallbackDummy
- str r3, [r2]
- ldr r4, =gUnknown_0203AA39
- ldrb r3, [r4]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- lsrs r0, 20
- adds r0, 0x88
- strh r0, [r2, 0x20]
- ldrb r2, [r4]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- lsrs r1, 20
- adds r1, 0x48
- strh r1, [r0, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8129E0C
-
- thumb_func_start sub_8129E74
-sub_8129E74: @ 8129E74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r3, =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0x8]
- subs r0, 0x7
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r0, [r2, 0xA]
- subs r0, 0x7
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, =gUnknown_0203A17C
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r5, r0, 4
- movs r6, 0xF
- ands r6, r0
- mov r0, r9
- ldrb r4, [r0, 0x2]
- ldr r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _08129ED4
- adds r0, r5, 0x7
- adds r1, r6, 0x7
- bl MapGridGetMetatileIdAt
- movs r1, 0xA3
- lsls r1, 2
- cmp r0, r1
- bne _08129ED4
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08129ED4:
- cmp r7, r5
- bcc _08129F10
- mov r0, r9
- ldrb r2, [r0, 0x1]
- adds r0, r5, r2
- cmp r7, r0
- bge _08129F10
- subs r0, r6, r4
- cmp r8, r0
- ble _08129F10
- cmp r8, r6
- bhi _08129F10
- subs r0, r7, r5
- adds r0, 0x1
- subs r0, r2, r0
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- subs r1, r6, r2
- lsls r1, 24
- lsrs r1, 24
- bl sub_8129E0C
- movs r0, 0x1
- b _08129F12
- .pool
-_08129F10:
- movs r0, 0
-_08129F12:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8129E74
-
- thumb_func_start sub_8129F20
-sub_8129F20: @ 8129F20
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, =gUnknown_0203A17C
- ldr r3, =gUnknown_0203AA44
- ldr r0, =gUnknown_0203AAC4
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r3
- ldrb r1, [r0]
- ldr r0, [r2, 0x4]
- adds r0, r1
- ldrb r0, [r0]
- lsrs r1, r0, 4
- mov r8, r1
- movs r6, 0xF
- ands r6, r0
- movs r4, 0
- ldr r7, =gSaveBlock1Ptr
- mov r9, r3
-_08129F4A:
- ldr r1, [r7]
- lsls r0, r4, 1
- adds r0, r4
- lsls r5, r0, 3
- adds r1, r5
- ldr r2, =0x00000c74
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r8
- bne _08129FB0
- ldr r2, =0x00000c76
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r6
- bne _08129FB0
- ldr r2, =0x00000c84
- adds r0, r1, r2
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08129FB0
- ldr r0, =gUnknown_0203AAC4
- ldrb r1, [r0]
- lsls r1, 3
- add r1, r9
- ldr r0, [r7]
- adds r0, r5
- ldr r2, =0x00000c84
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x4]
- b _08129FBA
- .pool
-_08129FB0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3F
- bls _08129F4A
-_08129FBA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8129F20
-
- thumb_func_start sub_8129FC8
-sub_8129FC8: @ 8129FC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- b _0812A02A
-_08129FD2:
- ldr r0, [r0]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _0812A024
- ldr r0, =gDecorations
- ldrb r2, [r1]
- lsls r1, r2, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0812A024
- ldr r5, =gUnknown_0203AA44
- adds r0, r2, 0
- adds r1, r5, 0
- bl sub_8129D8C
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r7, 0
- adds r2, r5, 0
- bl sub_8129E74
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0812A024
- strb r6, [r5]
- bl sub_8129F20
- ldr r0, =gUnknown_0203AAC4
- strb r4, [r0]
- movs r0, 0x1
- b _0812A034
- .pool
-_0812A024:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
-_0812A02A:
- ldr r0, =gUnknown_0203A17C
- ldrb r1, [r0, 0x8]
- cmp r6, r1
- bcc _08129FD2
- movs r0, 0
-_0812A034:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8129FC8
-
- thumb_func_start sub_812A040
-sub_812A040: @ 812A040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r4, 0
- ldr r7, =gUnknown_0203A17C
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcs _0812A0C6
- adds r6, r7, 0
- ldr r5, =gUnknown_0203AAC4
-_0812A072:
- ldr r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldrb r0, [r0]
- lsrs r3, r0, 4
- movs r2, 0xF
- ands r2, r0
- cmp r1, 0
- beq _0812A0BA
- ldr r0, =gDecorations
- lsls r1, 5
- adds r1, r0
- ldrb r0, [r1, 0x11]
- cmp r0, 0x4
- bne _0812A0BA
- ldr r0, [sp]
- cmp r0, r3
- bhi _0812A0BA
- cmp r10, r2
- bhi _0812A0BA
- cmp r9, r3
- bcc _0812A0BA
- cmp r8, r2
- bcc _0812A0BA
- ldr r0, =gUnknown_0203AA44
- ldrb r1, [r5]
- lsls r1, 3
- adds r1, r0
- strb r4, [r1]
- bl sub_8129F20
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_0812A0BA:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r7, 0x8]
- cmp r4, r0
- bcc _0812A072
-_0812A0C6:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A040
-
- thumb_func_start sub_812A0E8
-sub_812A0E8: @ 812A0E8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, =gUnknown_0203AAC4
- movs r0, 0
- strb r0, [r4]
- adds r0, r6, 0
- bl sub_8129FC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0812A18C
- movs r5, 0
- ldr r0, =gUnknown_0203A17C
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcs _0812A15A
- adds r7, r4, 0
-_0812A10E:
- ldr r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- cmp r1, 0
- beq _0812A14C
- ldr r4, =gUnknown_0203AA44
- adds r0, r1, 0
- adds r1, r4, 0
- bl sub_8129D8C
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8129E74
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812A14C
- strb r5, [r4]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0812A15A
- .pool
-_0812A14C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gUnknown_0203A17C
- ldrb r1, [r0, 0x8]
- cmp r5, r1
- bcc _0812A10E
-_0812A15A:
- ldr r0, =gUnknown_0203AAC4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0812A18C
- ldr r0, =gUnknown_0203A17C
- ldr r2, =gUnknown_0203AA44
- ldrb r1, [r2]
- ldr r0, [r0, 0x4]
- adds r0, r1
- ldrb r1, [r0]
- lsrs r0, r1, 4
- movs r3, 0xF
- ands r3, r1
- ldrb r1, [r2, 0x2]
- subs r1, r3, r1
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r2, 0x1]
- adds r2, r0
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- bl sub_812A040
-_0812A18C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A0E8
-
- thumb_func_start sub_812A1A0
-sub_812A1A0: @ 812A1A0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8197930
- ldr r1, =gUnknown_085A7348
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A1A0
-
- thumb_func_start sub_812A1C0
-sub_812A1C0: @ 812A1C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =sub_81298EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A1C0
-
- thumb_func_start sub_812A1F0
-sub_812A1F0: @ 812A1F0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8197930
- ldr r1, =gUnknown_085A7350
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A1F0
-
- thumb_func_start sub_812A210
-sub_812A210: @ 812A210
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- bl sub_8197434
- adds r0, r4, 0
- bl sub_812A22C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A210
-
- thumb_func_start sub_812A22C
-sub_812A22C: @ 812A22C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- ldr r1, =sub_812A25C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A22C
-
- thumb_func_start sub_812A25C
-sub_812A25C: @ 812A25C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0812A280
- cmp r0, 0x1
- beq _0812A29C
- b _0812A2B2
- .pool
-_0812A280:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812A2B2
- adds r0, r4, 0
- bl sub_8127B04
- movs r0, 0x1
- strh r0, [r5, 0xC]
- b _0812A2B2
- .pool
-_0812A29C:
- bl sub_812A3C8
- ldr r0, =gFieldCallback
- ldr r1, =sub_812A334
- str r1, [r0]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0812A2B2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A25C
-
- thumb_func_start sub_812A2C4
-sub_812A2C4: @ 812A2C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, =gTasks + 0x8
- adds r4, r5, r6
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0812A2FC
- cmp r0, 0x1
- bgt _0812A2EC
- cmp r0, 0
- beq _0812A2F6
- b _0812A32A
- .pool
-_0812A2EC:
- cmp r0, 0x2
- beq _0812A308
- cmp r0, 0x3
- beq _0812A314
- b _0812A32A
-_0812A2F6:
- bl sub_80E9578
- b _0812A30C
-_0812A2FC:
- ldr r0, =gUnknown_08275D0C
- bl ScriptContext1_SetupScript
- b _0812A30C
- .pool
-_0812A308:
- bl ScriptContext2_Enable
-_0812A30C:
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- b _0812A32A
-_0812A314:
- bl sub_80ABDFC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812A32A
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, =sub_8126B80
- str r1, [r0]
-_0812A32A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A2C4
-
- thumb_func_start sub_812A334
-sub_812A334: @ 812A334
- push {lr}
- bl pal_fill_black
- movs r0, 0
- movs r1, 0x1
- bl sub_81973C4
- bl sub_8126ABC
- ldr r0, =sub_812A2C4
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xC]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A334
-
- thumb_func_start sub_812A36C
-sub_812A36C: @ 812A36C
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- strh r0, [r2, 0x2E]
- cmp r0, 0xF
- ble _0812A38C
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0812A398
-_0812A38C:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812A398:
- pop {r0}
- bx r0
- thumb_func_end sub_812A36C
-
- thumb_func_start sub_812A39C
-sub_812A39C: @ 812A39C
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0812A3B8
- ldr r0, =gUnknown_085A73D8
- bl LoadSpritePalette
- b _0812A3BE
- .pool
-_0812A3B8:
- ldr r0, =gUnknown_085A73E0
- bl LoadSpritePalette
-_0812A3BE:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A39C
-
- thumb_func_start sub_812A3C8
-sub_812A3C8: @ 812A3C8
- push {lr}
- movs r0, 0x8
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- thumb_func_end sub_812A3C8
-
- thumb_func_start sub_812A3D4
-sub_812A3D4: @ 812A3D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81279C4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812A430
- ldr r0, =gStringVar1
- ldr r1, =gUnknown_0203A172
- ldrb r2, [r1]
- ldr r1, =gUnknown_0203A14C
- ldr r1, [r1]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 5
- ldr r2, =gDecorations + 1
- adds r1, r2
- bl StringCopy
- ldr r4, =gStringVar4
- ldr r1, =gText_DecorationWillBeDiscarded
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_812A458
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
- b _0812A444
- .pool
-_0812A430:
- ldr r4, =gStringVar4
- ldr r1, =gText_CantThrowAwayInUse
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8127A5C
- adds r0, r5, 0
- adds r1, r4, 0
- bl DisplayItemMessageOnField
-_0812A444:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A3D4
-
- thumb_func_start sub_812A458
-sub_812A458: @ 812A458
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8197930
- ldr r1, =gUnknown_085A741C
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A458
-
- thumb_func_start sub_812A478
-sub_812A478: @ 812A478
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203A172
- ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
- ldr r0, [r0]
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r5, =gUnknown_0203A173
- ldrb r0, [r5]
- bl sub_8161AD0
- ldr r1, =gUnknown_0203A151
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_8161A38
- adds r0, r4, 0
- bl sub_8127814
- ldr r5, =gStringVar4
- ldr r1, =gText_DecorationThrownAway
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, =sub_8127A5C
- adds r0, r4, 0
- adds r1, r5, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_812A478
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s
deleted file mode 100644
index 7a909f585..000000000
--- a/asm/decoration_inventory.s
+++ /dev/null
@@ -1,459 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
- thumb_func_start SetDecorationInventoriesPointers
-SetDecorationInventoriesPointers: @ 81617F4
- push {r4,lr}
- ldr r0, =gDecorationInventories
- mov r12, r0
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, =0x00002734
- adds r0, r1, r2
- mov r4, r12
- str r0, [r4]
- movs r3, 0xA
- strb r3, [r4, 0x4]
- adds r2, 0xA
- adds r0, r1, r2
- str r0, [r4, 0x8]
- strb r3, [r4, 0xC]
- ldr r4, =0x00002748
- adds r0, r1, r4
- mov r2, r12
- str r0, [r2, 0x10]
- strb r3, [r2, 0x14]
- adds r4, 0xA
- adds r0, r1, r4
- str r0, [r2, 0x18]
- movs r2, 0x1E
- mov r0, r12
- strb r2, [r0, 0x1C]
- adds r4, 0x1E
- adds r0, r1, r4
- mov r4, r12
- str r0, [r4, 0x20]
- mov r0, r12
- adds r0, 0x24
- strb r2, [r0]
- ldr r2, =0x0000278e
- adds r0, r1, r2
- str r0, [r4, 0x28]
- mov r0, r12
- adds r0, 0x2C
- strb r3, [r0]
- ldr r4, =0x00002798
- adds r0, r1, r4
- mov r2, r12
- str r0, [r2, 0x30]
- adds r2, 0x34
- movs r0, 0x28
- strb r0, [r2]
- adds r4, 0x28
- adds r1, r4
- mov r0, r12
- str r1, [r0, 0x38]
- adds r0, 0x3C
- strb r3, [r0]
- bl sub_8126968
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetDecorationInventoriesPointers
-
- thumb_func_start ClearDecorationInventory
-ClearDecorationInventory: @ 8161880
- push {r4,r5,lr}
- lsls r0, 24
- movs r3, 0
- ldr r1, =gDecorationInventories
- lsrs r2, r0, 21
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _081618AA
- adds r5, r1, 0
- movs r4, 0
-_08161896:
- adds r0, r2, r5
- ldr r1, [r0]
- adds r1, r3
- strb r4, [r1]
- adds r1, r3, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08161896
-_081618AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearDecorationInventory
-
- thumb_func_start ClearDecorationInventories
-ClearDecorationInventories: @ 81618B4
- push {r4,lr}
- movs r4, 0
-_081618B8:
- adds r0, r4, 0
- bl ClearDecorationInventory
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081618B8
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearDecorationInventories
-
- thumb_func_start sub_81618D0
-sub_81618D0: @ 81618D0
- push {r4,lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, =gDecorationInventories
- lsrs r0, 21
- adds r0, r1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- cmp r2, r1
- bge _0816190C
- adds r4, r0, 0
- adds r3, r1, 0
-_081618E8:
- lsls r0, r2, 24
- asrs r1, r0, 24
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08161900
- adds r0, r1, 0
- b _08161910
- .pool
-_08161900:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r3
- blt _081618E8
-_0816190C:
- movs r0, 0x1
- negs r0, r0
-_08161910:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81618D0
-
- thumb_func_start CheckHasDecoration
-CheckHasDecoration: @ 8161918
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, =gDecorations
- lsls r0, r3, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- movs r2, 0
- ldr r1, =gDecorationInventories
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08161956
- ldr r4, [r0]
-_08161936:
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _0816194C
- movs r0, 0x1
- b _08161958
- .pool
-_0816194C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08161936
-_08161956:
- movs r0, 0
-_08161958:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckHasDecoration
-
- thumb_func_start DecorationAdd
-DecorationAdd: @ 8161960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0
- beq _081619A0
- ldr r1, =gDecorations
- lsls r0, r4, 5
- adds r0, r1
- ldrb r5, [r0, 0x13]
- adds r0, r5, 0
- bl sub_81618D0
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _081619A0
- ldr r0, =gDecorationInventories
- lsls r1, r5, 3
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- strb r4, [r0]
- movs r0, 0x1
- b _081619A2
- .pool
-_081619A0:
- movs r0, 0
-_081619A2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end DecorationAdd
-
- thumb_func_start DecorationCheckSpace
-DecorationCheckSpace: @ 81619A8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081619D4
- ldr r1, =gDecorations
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- bl sub_81618D0
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081619D4
- movs r0, 0x1
- b _081619D6
- .pool
-_081619D4:
- movs r0, 0
-_081619D6:
- pop {r1}
- bx r1
- thumb_func_end DecorationCheckSpace
-
- thumb_func_start DecorationRemove
-DecorationRemove: @ 81619DC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- cmp r5, 0
- bne _081619F8
- b _08161A26
-_081619EA:
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8161A38
- movs r0, 0x1
- b _08161A28
-_081619F8:
- ldr r2, =gDecorationInventories
- ldr r1, =gDecorations
- lsls r0, r5, 5
- adds r0, r1
- ldrb r4, [r0, 0x13]
- lsls r0, r4, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r3, r1
- bcs _08161A26
- adds r6, r4, 0
- adds r4, r0, 0
- adds r2, r1, 0
-_08161A12:
- ldr r0, [r4]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, r5
- beq _081619EA
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r2
- bcc _08161A12
-_08161A26:
- movs r0, 0
-_08161A28:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end DecorationRemove
-
- thumb_func_start sub_8161A38
-sub_8161A38: @ 8161A38
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- movs r6, 0
- ldr r2, =gDecorationInventories
- lsrs r0, 21
- adds r1, r0, r2
- ldrb r3, [r1, 0x4]
- cmp r6, r3
- bcs _08161ABC
- adds r7, r0, 0
- mov r10, r1
- mov r0, r10
- str r0, [sp]
-_08161A5C:
- adds r1, r6, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r12, r1
- mov r1, r10
- ldrb r1, [r1, 0x4]
- cmp r3, r1
- bcs _08161AAE
- ldr r0, =gDecorationInventories
- mov r9, r0
- adds r1, r0, 0
- mov r8, r1
-_08161A76:
- mov r0, r9
- adds r5, r2, r0
- ldr r1, [r5]
- adds r0, r1, r3
- ldrb r4, [r0]
- adds r2, r4, 0
- cmp r2, 0
- beq _08161A9C
- adds r0, r1, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08161A92
- cmp r1, r2
- bls _08161A9C
-_08161A92:
- ldrb r1, [r0]
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- strb r1, [r0]
-_08161A9C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r1, r8
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08161A76
-_08161AAE:
- mov r3, r12
- lsls r0, r3, 24
- lsrs r6, r0, 24
- ldr r0, [sp]
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcc _08161A5C
-_08161ABC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8161A38
-
- thumb_func_start sub_8161AD0
-sub_8161AD0: @ 8161AD0
- push {r4,r5,lr}
- lsls r0, 24
- movs r4, 0
- movs r3, 0
- ldr r2, =gDecorationInventories
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcs _08161B04
- adds r5, r2, 0
-_08161AE6:
- adds r2, r1, r5
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _08161AF8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08161AF8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r2, [r2, 0x4]
- cmp r3, r2
- bcc _08161AE6
-_08161B04:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8161AD0
-
- thumb_func_start sub_8161B10
-sub_8161B10: @ 8161B10
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_08161B16:
- adds r0, r4, 0
- bl sub_8161AD0
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08161B16
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8161B10
-
- .align 2, 0 @ Don't pad with nop.
- \ No newline at end of file
diff --git a/asm/international_string_util.s b/asm/international_string_util.s
index c4369887d..817a1d5e4 100755
--- a/asm/international_string_util.s
+++ b/asm/international_string_util.s
@@ -5,127 +5,6 @@
.text
- thumb_func_start GetStringCenterAlignXOffset
-@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth)
-GetStringCenterAlignXOffset: @ 81DB35C
- push {lr}
- movs r3, 0
- bl GetStringCenterAlignXOffsetWithLetterSpacing
- pop {r1}
- bx r1
- thumb_func_end GetStringCenterAlignXOffset
-
- thumb_func_start GetStringRightAlignXOffset
-@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth)
-GetStringRightAlignXOffset: @ 81DB368
- push {lr}
- movs r3, 0
- bl GetStringWidthDifference
- pop {r1}
- bx r1
- thumb_func_end GetStringRightAlignXOffset
-
- thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing
-@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing)
-GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374
- push {lr}
- bl GetStringWidthDifference
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- pop {r1}
- bx r1
- thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing
-
- thumb_func_start GetStringWidthDifference
-@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing)
-GetStringWidthDifference: @ 81DB384
- push {r4,lr}
- adds r4, r2, 0
- adds r2, r3, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- asrs r2, 16
- bl GetStringWidth
- cmp r4, r0
- bgt _081DB39E
- movs r0, 0
- b _081DB3A0
-_081DB39E:
- subs r0, r4, r0
-_081DB3A0:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetStringWidthDifference
-
- thumb_func_start GetMaxWidthInMenuTable
-GetMaxWidthInMenuTable: @ 81DB3A8
- push {r4-r6,lr}
- movs r6, 0
- cmp r6, r1
- bge _081DB3CC
- adds r5, r0, 0
- adds r4, r1, 0
-_081DB3B4:
- ldr r1, [r5]
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- cmp r0, r6
- ble _081DB3C4
- adds r6, r0, 0
-_081DB3C4:
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _081DB3B4
-_081DB3CC:
- adds r0, r6, 0
- bl convert_pixel_width_to_tile_width
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetMaxWidthInMenuTable
-
- thumb_func_start sub_81DB3D8
-sub_81DB3D8: @ 81DB3D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- adds r5, r2, 0
- movs r6, 0
- movs r4, 0
- cmp r6, r5
- bge _081DB40A
-_081DB3EC:
- adds r0, r7, r4
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- cmp r0, r6
- ble _081DB404
- adds r6, r0, 0
-_081DB404:
- adds r4, 0x1
- cmp r4, r5
- blt _081DB3EC
-_081DB40A:
- adds r0, r6, 0
- bl convert_pixel_width_to_tile_width
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81DB3D8
thumb_func_start sub_81DB41C
sub_81DB41C: @ 81DB41C
diff --git a/asm/intro.s b/asm/intro.s
index cd8f7c2d8..32b52ed06 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -1958,9 +1958,9 @@ task_intro_13: @ 816DD28
ldr r0, =gUnknown_08D8A818
ldr r1, =0x0600e000
bl LZDecompressVram
- ldr r0, =gUnknown_08524D14
+ ldr r0, =gBattleAnimPicTable + 0x1D0
bl LoadCompressedObjectPicUsingHeap
- ldr r0, =gUnknown_0852561C
+ ldr r0, =gBattleAnimPaletteTable + 0x1D0
bl LoadCompressedObjectPaletteUsingHeap
ldr r0, =gUnknown_08D85CD0
ldr r1, =gPlttBufferUnfaded
diff --git a/asm/librfu.s b/asm/librfu.s
index 129e0f34a..5fc1b0d6f 100644
--- a/asm/librfu.s
+++ b/asm/librfu.s
@@ -4,2251 +4,6 @@
.text
- thumb_func_start STWI_init_all
-STWI_init_all: @ 82E2A18
- push {r4,lr}
- adds r3, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x1
- bne _082E2A54
- adds r2, r3, 0
- adds r2, 0xE8
- str r2, [r1]
- ldr r1, _082E2A40
- ldr r0, _082E2A44
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _082E2A48
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _082E2A4C
- ldr r2, _082E2A50
- adds r0, r3, r2
- b _082E2A5E
- .align 2, 0
-_082E2A40: .4byte 0x040000d4
-_082E2A44: .4byte IntrSIO32
-_082E2A48: .4byte 0x800004b0
-_082E2A4C: .4byte gUnknown_03007868
-_082E2A50: .4byte 0x00000a48
-_082E2A54:
- ldr r0, _082E2AD8
- str r0, [r1]
- ldr r1, _082E2ADC
- adds r0, r3, 0
- adds r0, 0xE8
-_082E2A5E:
- str r0, [r1]
- adds r2, r1, 0
- ldr r1, [r2]
- str r3, [r1, 0x28]
- adds r0, r3, 0
- adds r0, 0x74
- str r0, [r1, 0x24]
- ldrb r0, [r1, 0x14]
- movs r4, 0
- movs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r0, [r2]
- str r4, [r0]
- strb r4, [r0, 0x4]
- ldr r0, [r2]
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- strb r4, [r0, 0x7]
- ldr r0, [r2]
- strb r4, [r0, 0x8]
- ldr r0, [r2]
- strb r4, [r0, 0x9]
- ldr r0, [r2]
- str r4, [r0, 0xC]
- ldrb r1, [r0, 0x10]
- strb r4, [r0, 0x10]
- ldr r0, [r2]
- ldrh r1, [r0, 0x12]
- movs r1, 0
- strh r4, [r0, 0x12]
- strb r1, [r0, 0x15]
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r1, _082E2AE0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _082E2AE4
- adds r0, r2, 0
- strh r0, [r1]
- bl STWI_init_Callback_M
- bl STWI_init_Callback_S
- ldr r3, _082E2AE8
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _082E2AEC
- ldrh r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2AD8: .4byte IntrSIO32
-_082E2ADC: .4byte gUnknown_03007868
-_082E2AE0: .4byte 0x04000134
-_082E2AE4: .4byte 0x00005003
-_082E2AE8: .4byte 0x04000208
-_082E2AEC: .4byte 0x04000200
- thumb_func_end STWI_init_all
-
- thumb_func_start STWI_init_timer
-STWI_init_timer: @ 82E2AF0
- push {r4,r5,lr}
- ldr r2, _082E2B1C
- str r2, [r0]
- ldr r5, _082E2B20
- ldr r0, [r5]
- movs r4, 0
- strb r1, [r0, 0xA]
- ldr r3, _082E2B24
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _082E2B28
- ldr r1, [r5]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- ldrh r1, [r4]
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2B1C: .4byte STWI_intr_timer
-_082E2B20: .4byte gUnknown_03007868
-_082E2B24: .4byte 0x04000208
-_082E2B28: .4byte 0x04000200
- thumb_func_end STWI_init_timer
-
- thumb_func_start AgbRFU_SoftReset
-AgbRFU_SoftReset: @ 82E2B2C
- push {r4,r5,lr}
- ldr r5, _082E2BC4
- movs r1, 0x80
- lsls r1, 8
- adds r0, r1, 0
- strh r0, [r5]
- ldr r2, _082E2BC8
- adds r0, r2, 0
- strh r0, [r5]
- ldr r1, _082E2BCC
- ldr r0, [r1]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r3, _082E2BD0
- adds r2, r0, r3
- ldr r4, _082E2BD4
- adds r3, r0, r4
- movs r0, 0
- strh r0, [r3]
- strh r0, [r2]
- movs r0, 0x83
- strh r0, [r3]
- ldrh r0, [r2]
- adds r4, r1, 0
- cmp r0, 0x11
- bhi _082E2B6C
- ldr r0, _082E2BD8
- adds r1, r0, 0
-_082E2B64:
- strh r1, [r5]
- ldrh r0, [r2]
- cmp r0, 0x11
- bls _082E2B64
-_082E2B6C:
- movs r0, 0x3
- strh r0, [r3]
- ldr r1, _082E2BC4
- ldr r2, _082E2BC8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r3, _082E2BDC
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, [r4]
- movs r2, 0
- str r2, [r0]
- strb r2, [r0, 0x4]
- ldr r0, [r4]
- strb r2, [r0, 0x5]
- ldr r0, [r4]
- strb r2, [r0, 0x6]
- ldr r0, [r4]
- strb r2, [r0, 0x7]
- ldr r0, [r4]
- strb r2, [r0, 0x8]
- ldr r0, [r4]
- strb r2, [r0, 0x9]
- ldr r0, [r4]
- str r2, [r0, 0xC]
- ldrb r1, [r0, 0x10]
- strb r2, [r0, 0x10]
- ldr r1, [r4]
- ldrh r0, [r1, 0x12]
- movs r3, 0
- strh r2, [r1, 0x12]
- ldrb r0, [r1, 0x14]
- movs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r0, [r4]
- strb r3, [r0, 0x15]
- ldr r0, [r4]
- adds r0, 0x2C
- ldrb r1, [r0]
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2BC4: .4byte 0x04000134
-_082E2BC8: .4byte 0x000080a0
-_082E2BCC: .4byte gUnknown_03007868
-_082E2BD0: .4byte 0x04000100
-_082E2BD4: .4byte 0x04000102
-_082E2BD8: .4byte 0x000080a2
-_082E2BDC: .4byte 0x00005003
- thumb_func_end AgbRFU_SoftReset
-
- thumb_func_start STWI_set_MS_mode
-STWI_set_MS_mode: @ 82E2BE0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _082E2BF0
- ldr r1, [r1]
- ldrb r2, [r1, 0x14]
- strb r0, [r1, 0x14]
- bx lr
- .align 2, 0
-_082E2BF0: .4byte gUnknown_03007868
- thumb_func_end STWI_set_MS_mode
-
- thumb_func_start STWI_read_status
-STWI_read_status: @ 82E2BF4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _082E2C20
- cmp r0, 0x1
- bgt _082E2C0A
- cmp r0, 0
- beq _082E2C14
- b _082E2C48
-_082E2C0A:
- cmp r1, 0x2
- beq _082E2C2C
- cmp r1, 0x3
- beq _082E2C3C
- b _082E2C48
-_082E2C14:
- ldr r0, _082E2C1C
- ldr r0, [r0]
- ldrh r0, [r0, 0x12]
- b _082E2C4A
- .align 2, 0
-_082E2C1C: .4byte gUnknown_03007868
-_082E2C20:
- ldr r0, _082E2C28
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- b _082E2C4A
- .align 2, 0
-_082E2C28: .4byte gUnknown_03007868
-_082E2C2C:
- ldr r0, _082E2C38
- ldr r0, [r0]
- ldr r0, [r0]
- lsls r0, 16
- lsrs r0, 16
- b _082E2C4A
- .align 2, 0
-_082E2C38: .4byte gUnknown_03007868
-_082E2C3C:
- ldr r0, _082E2C44
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- b _082E2C4A
- .align 2, 0
-_082E2C44: .4byte gUnknown_03007868
-_082E2C48:
- ldr r0, _082E2C50
-_082E2C4A:
- pop {r1}
- bx r1
- .align 2, 0
-_082E2C50: .4byte 0x0000ffff
- thumb_func_end STWI_read_status
-
- thumb_func_start STWI_init_Callback_M
-STWI_init_Callback_M: @ 82E2C54
- push {lr}
- movs r0, 0
- bl STWI_set_Callback_M
- pop {r0}
- bx r0
- thumb_func_end STWI_init_Callback_M
-
- thumb_func_start STWI_init_Callback_S
-STWI_init_Callback_S: @ 82E2C60
- push {lr}
- movs r0, 0
- bl STWI_set_Callback_S
- pop {r0}
- bx r0
- thumb_func_end STWI_init_Callback_S
-
- thumb_func_start STWI_set_Callback_M
-STWI_set_Callback_M: @ 82E2C6C
- ldr r1, _082E2C74
- ldr r1, [r1]
- str r0, [r1, 0x18]
- bx lr
- .align 2, 0
-_082E2C74: .4byte gUnknown_03007868
- thumb_func_end STWI_set_Callback_M
-
- thumb_func_start STWI_set_Callback_S
-STWI_set_Callback_S: @ 82E2C78
- ldr r1, _082E2C80
- ldr r1, [r1]
- str r0, [r1, 0x1C]
- bx lr
- .align 2, 0
-_082E2C80: .4byte gUnknown_03007868
- thumb_func_end STWI_set_Callback_S
-
- thumb_func_start STWI_set_Callback_ID
-STWI_set_Callback_ID: @ 82E2C84
- ldr r1, _082E2C8C
- ldr r1, [r1]
- str r0, [r1, 0x20]
- bx lr
- .align 2, 0
-_082E2C8C: .4byte gUnknown_03007868
- thumb_func_end STWI_set_Callback_ID
-
- thumb_func_start STWI_poll_CommandEnd
-STWI_poll_CommandEnd: @ 82E2C90
- push {lr}
- ldr r0, _082E2CB4
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _082E2CAA
- adds r1, r2, 0
-_082E2CA4:
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _082E2CA4
-_082E2CAA:
- ldr r0, [r3]
- ldrh r0, [r0, 0x12]
- pop {r1}
- bx r1
- .align 2, 0
-_082E2CB4: .4byte gUnknown_03007868
- thumb_func_end STWI_poll_CommandEnd
-
- thumb_func_start STWI_send_ResetREQ
-STWI_send_ResetREQ: @ 82E2CB8
- push {lr}
- movs r0, 0x10
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2CD2
- ldr r0, _082E2CD8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2CD2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2CD8: .4byte gUnknown_03007868
- thumb_func_end STWI_send_ResetREQ
-
- thumb_func_start STWI_send_LinkStatusREQ
-STWI_send_LinkStatusREQ: @ 82E2CDC
- push {lr}
- movs r0, 0x11
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2CF6
- ldr r0, _082E2CFC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2CF6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2CFC: .4byte gUnknown_03007868
- thumb_func_end STWI_send_LinkStatusREQ
-
- thumb_func_start STWI_send_VersionStatusREQ
-STWI_send_VersionStatusREQ: @ 82E2D00
- push {lr}
- movs r0, 0x12
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D1A
- ldr r0, _082E2D20
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D1A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D20: .4byte gUnknown_03007868
- thumb_func_end STWI_send_VersionStatusREQ
-
- thumb_func_start STWI_send_SystemStatusREQ
-STWI_send_SystemStatusREQ: @ 82E2D24
- push {lr}
- movs r0, 0x13
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D3E
- ldr r0, _082E2D44
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D3E:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D44: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SystemStatusREQ
-
- thumb_func_start STWI_send_SlotStatusREQ
-STWI_send_SlotStatusREQ: @ 82E2D48
- push {lr}
- movs r0, 0x14
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D62
- ldr r0, _082E2D68
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D62:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D68: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SlotStatusREQ
-
- thumb_func_start STWI_send_ConfigStatusREQ
-STWI_send_ConfigStatusREQ: @ 82E2D6C
- push {lr}
- movs r0, 0x15
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2D86
- ldr r0, _082E2D8C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2D86:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2D8C: .4byte gUnknown_03007868
- thumb_func_end STWI_send_ConfigStatusREQ
-
- thumb_func_start STWI_send_GameConfigREQ
-STWI_send_GameConfigREQ: @ 82E2D90
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x16
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2DDC
- ldr r2, _082E2DE4
- ldr r1, [r2]
- movs r0, 0x6
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- adds r4, 0x2
- movs r2, 0xD
-_082E2DBA:
- ldrb r0, [r4]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _082E2DBA
- movs r2, 0x7
-_082E2DCA:
- ldrb r0, [r5]
- strb r0, [r1]
- adds r1, 0x1
- adds r5, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _082E2DCA
- bl STWI_start_Command
-_082E2DDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2DE4: .4byte gUnknown_03007868
- thumb_func_end STWI_send_GameConfigREQ
-
- thumb_func_start STWI_send_SystemConfigREQ
-STWI_send_SystemConfigREQ: @ 82E2DE8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r0, 0x17
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2E1E
- ldr r2, _082E2E24
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r4, [r0]
- adds r0, 0x1
- strb r5, [r0]
- adds r0, 0x1
- strh r6, [r0]
- bl STWI_start_Command
-_082E2E1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E24: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SystemConfigREQ
-
- thumb_func_start STWI_send_SC_StartREQ
-STWI_send_SC_StartREQ: @ 82E2E28
- push {lr}
- movs r0, 0x19
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E42
- ldr r0, _082E2E48
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E42:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E48: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SC_StartREQ
-
- thumb_func_start STWI_send_SC_PollingREQ
-STWI_send_SC_PollingREQ: @ 82E2E4C
- push {lr}
- movs r0, 0x1A
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E66
- ldr r0, _082E2E6C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E66:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E6C: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SC_PollingREQ
-
- thumb_func_start STWI_send_SC_EndREQ
-STWI_send_SC_EndREQ: @ 82E2E70
- push {lr}
- movs r0, 0x1B
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2E8A
- ldr r0, _082E2E90
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2E8A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2E90: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SC_EndREQ
-
- thumb_func_start STWI_send_SP_StartREQ
-STWI_send_SP_StartREQ: @ 82E2E94
- push {lr}
- movs r0, 0x1C
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2EAE
- ldr r0, _082E2EB4
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2EAE:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2EB4: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SP_StartREQ
-
- thumb_func_start STWI_send_SP_PollingREQ
-STWI_send_SP_PollingREQ: @ 82E2EB8
- push {lr}
- movs r0, 0x1D
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2ED2
- ldr r0, _082E2ED8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2ED2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2ED8: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SP_PollingREQ
-
- thumb_func_start STWI_send_SP_EndREQ
-STWI_send_SP_EndREQ: @ 82E2EDC
- push {lr}
- movs r0, 0x1E
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2EF6
- ldr r0, _082E2EFC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2EF6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2EFC: .4byte gUnknown_03007868
- thumb_func_end STWI_send_SP_EndREQ
-
- thumb_func_start STWI_send_CP_StartREQ
-STWI_send_CP_StartREQ: @ 82E2F00
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1F
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2F24
- ldr r2, _082E2F2C
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- str r4, [r0, 0x4]
- bl STWI_start_Command
-_082E2F24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F2C: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CP_StartREQ
-
- thumb_func_start STWI_send_CP_PollingREQ
-STWI_send_CP_PollingREQ: @ 82E2F30
- push {lr}
- movs r0, 0x20
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2F4A
- ldr r0, _082E2F50
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2F4A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F50: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CP_PollingREQ
-
- thumb_func_start STWI_send_CP_EndREQ
-STWI_send_CP_EndREQ: @ 82E2F54
- push {lr}
- movs r0, 0x21
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E2F6E
- ldr r0, _082E2F74
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E2F6E:
- pop {r0}
- bx r0
- .align 2, 0
-_082E2F74: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CP_EndREQ
-
- thumb_func_start STWI_send_DataTxREQ
-STWI_send_DataTxREQ: @ 82E2F78
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r5, r4, 24
- movs r0, 0x24
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2FB6
- lsrs r2, r4, 26
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- beq _082E2F98
- adds r2, 0x1
-_082E2F98:
- ldr r1, _082E2FBC
- ldr r0, [r1]
- strb r2, [r0, 0x4]
- ldr r0, [r1]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrb r2, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 19
- orrs r2, r0
- adds r0, r6, 0
- bl CpuSet
- bl STWI_start_Command
-_082E2FB6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E2FBC: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DataTxREQ
-
- thumb_func_start STWI_send_DataTxAndChangeREQ
-STWI_send_DataTxAndChangeREQ: @ 82E2FC0
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r4, r1, 24
- lsrs r5, r4, 24
- movs r0, 0x25
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E2FFE
- lsrs r2, r4, 26
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0
- beq _082E2FE0
- adds r2, 0x1
-_082E2FE0:
- ldr r1, _082E3004
- ldr r0, [r1]
- strb r2, [r0, 0x4]
- ldr r0, [r1]
- ldr r1, [r0, 0x24]
- adds r1, 0x4
- ldrb r2, [r0, 0x4]
- movs r0, 0x80
- lsls r0, 19
- orrs r2, r0
- adds r0, r6, 0
- bl CpuSet
- bl STWI_start_Command
-_082E2FFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3004: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DataTxAndChangeREQ
-
- thumb_func_start STWI_send_DataRxREQ
-STWI_send_DataRxREQ: @ 82E3008
- push {lr}
- movs r0, 0x26
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E3022
- ldr r0, _082E3028
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E3022:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3028: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DataRxREQ
-
- thumb_func_start STWI_send_MS_ChangeREQ
-STWI_send_MS_ChangeREQ: @ 82E302C
- push {lr}
- movs r0, 0x27
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E3046
- ldr r0, _082E304C
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E3046:
- pop {r0}
- bx r0
- .align 2, 0
-_082E304C: .4byte gUnknown_03007868
- thumb_func_end STWI_send_MS_ChangeREQ
-
- thumb_func_start STWI_send_DataReadyAndChangeREQ
-STWI_send_DataReadyAndChangeREQ: @ 82E3050
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r0, 0x28
- bl STWI_init
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E3096
- cmp r4, 0
- bne _082E3078
- ldr r0, _082E3074
- ldr r0, [r0]
- strb r3, [r0, 0x4]
- b _082E3092
- .align 2, 0
-_082E3074: .4byte gUnknown_03007868
-_082E3078:
- ldr r2, _082E309C
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r5, [r0]
- adds r0, 0x1
- strb r3, [r0]
- adds r0, 0x1
- strb r3, [r0]
- strb r3, [r0, 0x1]
-_082E3092:
- bl STWI_start_Command
-_082E3096:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E309C: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DataReadyAndChangeREQ
-
- thumb_func_start STWI_send_DisconnectedAndChangeREQ
-STWI_send_DisconnectedAndChangeREQ: @ 82E30A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0x29
- bl STWI_init
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _082E30D6
- ldr r2, _082E30DC
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- adds r0, 0x4
- strb r4, [r0]
- adds r0, 0x1
- strb r5, [r0]
- adds r0, 0x1
- strb r3, [r0]
- strb r3, [r0, 0x1]
- bl STWI_start_Command
-_082E30D6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E30DC: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DisconnectedAndChangeREQ
-
- thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ
-STWI_send_ResumeRetransmitAndChangeREQ: @ 82E30E0
- push {lr}
- movs r0, 0x37
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E30FA
- ldr r0, _082E3100
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E30FA:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3100: .4byte gUnknown_03007868
- thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ
-
- thumb_func_start STWI_send_DisconnectREQ
-STWI_send_DisconnectREQ: @ 82E3104
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x30
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E3128
- ldr r2, _082E3130
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r0, [r0, 0x24]
- str r4, [r0, 0x4]
- bl STWI_start_Command
-_082E3128:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3130: .4byte gUnknown_03007868
- thumb_func_end STWI_send_DisconnectREQ
-
- thumb_func_start STWI_send_TestModeREQ
-STWI_send_TestModeREQ: @ 82E3134
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- movs r0, 0x31
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E3160
- ldr r2, _082E3168
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x4]
- ldr r0, [r2]
- ldr r1, [r0, 0x24]
- lsls r0, r4, 8
- orrs r0, r5
- str r0, [r1, 0x4]
- bl STWI_start_Command
-_082E3160:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3168: .4byte gUnknown_03007868
- thumb_func_end STWI_send_TestModeREQ
-
- thumb_func_start STWI_send_CPR_StartREQ
-STWI_send_CPR_StartREQ: @ 82E316C
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0x32
- bl STWI_init
- lsls r0, 16
- cmp r0, 0
- bne _082E319E
- ldr r2, _082E31A4
- ldr r1, [r2]
- movs r0, 0x2
- strb r0, [r1, 0x4]
- lsls r0, r5, 16
- orrs r0, r4
- ldr r1, [r2]
- ldr r1, [r1, 0x24]
- str r0, [r1, 0x4]
- str r6, [r1, 0x8]
- bl STWI_start_Command
-_082E319E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_082E31A4: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CPR_StartREQ
-
- thumb_func_start STWI_send_CPR_PollingREQ
-STWI_send_CPR_PollingREQ: @ 82E31A8
- push {lr}
- movs r0, 0x33
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E31C2
- ldr r0, _082E31C8
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E31C2:
- pop {r0}
- bx r0
- .align 2, 0
-_082E31C8: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CPR_PollingREQ
-
- thumb_func_start STWI_send_CPR_EndREQ
-STWI_send_CPR_EndREQ: @ 82E31CC
- push {lr}
- movs r0, 0x34
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E31E6
- ldr r0, _082E31EC
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E31E6:
- pop {r0}
- bx r0
- .align 2, 0
-_082E31EC: .4byte gUnknown_03007868
- thumb_func_end STWI_send_CPR_EndREQ
-
- thumb_func_start STWI_send_StopModeREQ
-STWI_send_StopModeREQ: @ 82E31F0
- push {lr}
- movs r0, 0x3D
- bl STWI_init
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _082E320A
- ldr r0, _082E3210
- ldr r0, [r0]
- strb r1, [r0, 0x4]
- bl STWI_start_Command
-_082E320A:
- pop {r0}
- bx r0
- .align 2, 0
-_082E3210: .4byte gUnknown_03007868
- thumb_func_end STWI_send_StopModeREQ
-
- thumb_func_start STWI_intr_timer
-STWI_intr_timer: @ 82E3214
- push {r4,lr}
- ldr r4, _082E322C
- ldr r1, [r4]
- ldr r0, [r1, 0xC]
- cmp r0, 0x2
- beq _082E323A
- cmp r0, 0x2
- bgt _082E3230
- cmp r0, 0x1
- beq _082E3248
- b _082E3270
- .align 2, 0
-_082E322C: .4byte gUnknown_03007868
-_082E3230:
- cmp r0, 0x3
- beq _082E3252
- cmp r0, 0x4
- beq _082E3248
- b _082E3270
-_082E323A:
- ldrb r0, [r1, 0x10]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- movs r0, 0x32
- bl STWI_set_timer
- b _082E3270
-_082E3248:
- bl STWI_stop_timer
- bl STWI_restart_Command
- b _082E3270
-_082E3252:
- ldrb r0, [r1, 0x10]
- movs r0, 0x1
- strb r0, [r1, 0x10]
- bl STWI_stop_timer
- bl STWI_reset_ClockCounter
- ldr r0, [r4]
- ldr r2, [r0, 0x18]
- cmp r2, 0
- beq _082E3270
- movs r0, 0xFF
- movs r1, 0
- bl _call_via_r2
-_082E3270:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end STWI_intr_timer
-
- thumb_func_start STWI_set_timer
-STWI_set_timer: @ 82E3278
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldr r2, _082E32A8
- ldr r0, [r2]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r1, _082E32AC
- adds r4, r0, r1
- adds r1, 0x2
- adds r7, r0, r1
- ldr r1, _082E32B0
- movs r0, 0
- strh r0, [r1]
- adds r6, r2, 0
- cmp r3, 0x50
- beq _082E32D0
- cmp r3, 0x50
- bgt _082E32B4
- cmp r3, 0x32
- beq _082E32BE
- b _082E32FC
- .align 2, 0
-_082E32A8: .4byte gUnknown_03007868
-_082E32AC: .4byte 0x04000100
-_082E32B0: .4byte 0x04000208
-_082E32B4:
- cmp r5, 0x64
- beq _082E32E0
- cmp r5, 0x82
- beq _082E32F0
- b _082E32FC
-_082E32BE:
- ldr r1, _082E32CC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x1
- b _082E32FA
- .align 2, 0
-_082E32CC: .4byte 0x0000fccb
-_082E32D0:
- ldr r1, _082E32DC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x2
- b _082E32FA
- .align 2, 0
-_082E32DC: .4byte 0x0000fae0
-_082E32E0:
- ldr r1, _082E32EC
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x3
- b _082E32FA
- .align 2, 0
-_082E32EC: .4byte 0x0000f996
-_082E32F0:
- ldr r1, _082E3318
- adds r0, r1, 0
- strh r0, [r4]
- ldr r1, [r6]
- movs r0, 0x4
-_082E32FA:
- str r0, [r1, 0xC]
-_082E32FC:
- movs r0, 0xC3
- strh r0, [r7]
- ldr r2, _082E331C
- ldr r1, [r6]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- strh r0, [r2]
- ldr r1, _082E3320
- movs r0, 0x1
- strh r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_082E3318: .4byte 0x0000f7ad
-_082E331C: .4byte 0x04000202
-_082E3320: .4byte 0x04000208
- thumb_func_end STWI_set_timer
-
- thumb_func_start STWI_stop_timer
-STWI_stop_timer: @ 82E3324
- ldr r2, _082E3344
- ldr r0, [r2]
- movs r1, 0
- str r1, [r0, 0xC]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r3, _082E3348
- adds r0, r3
- strh r1, [r0]
- ldr r0, [r2]
- ldrb r0, [r0, 0xA]
- lsls r0, 2
- ldr r2, _082E334C
- adds r0, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_082E3344: .4byte gUnknown_03007868
-_082E3348: .4byte 0x04000100
-_082E334C: .4byte 0x04000102
- thumb_func_end STWI_stop_timer
-
- thumb_func_start STWI_init
-STWI_init: @ 82E3350
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _082E337C
- ldrh r0, [r0]
- cmp r0, 0
- bne _082E3384
- ldr r0, _082E3380
- ldr r1, [r0]
- ldrh r0, [r1, 0x12]
- movs r0, 0x6
- strh r0, [r1, 0x12]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E33CE
- ldrh r1, [r1, 0x12]
- adds r0, r5, 0
- bl _call_via_r2
- b _082E33CE
- .align 2, 0
-_082E337C: .4byte 0x04000208
-_082E3380: .4byte gUnknown_03007868
-_082E3384:
- ldr r4, _082E33B0
- ldr r2, [r4]
- adds r3, r2, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- cmp r0, 0x1
- bne _082E33B4
- ldrh r0, [r2, 0x12]
- movs r1, 0
- movs r0, 0x2
- strh r0, [r2, 0x12]
- ldrb r0, [r3]
- strb r1, [r3]
- ldr r0, [r4]
- ldr r2, [r0, 0x18]
- cmp r2, 0
- beq _082E33CE
- ldrh r1, [r0, 0x12]
- adds r0, r5, 0
- bl _call_via_r2
- b _082E33CE
- .align 2, 0
-_082E33B0: .4byte gUnknown_03007868
-_082E33B4:
- ldrb r0, [r2, 0x14]
- cmp r0, 0
- bne _082E33D2
- ldrh r0, [r2, 0x12]
- movs r0, 0x4
- strh r0, [r2, 0x12]
- ldr r3, [r2, 0x18]
- cmp r3, 0
- beq _082E33CE
- ldrh r1, [r2, 0x12]
- adds r0, r5, 0
- bl _call_via_r3
-_082E33CE:
- movs r0, 0x1
- b _082E341A
-_082E33D2:
- ldrb r0, [r3]
- movs r1, 0
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, [r4]
- strb r6, [r0, 0x6]
- ldr r0, [r4]
- str r1, [r0]
- strb r1, [r0, 0x4]
- ldr r0, [r4]
- strb r1, [r0, 0x5]
- ldr r0, [r4]
- strb r1, [r0, 0x7]
- ldr r0, [r4]
- strb r1, [r0, 0x8]
- ldr r0, [r4]
- strb r1, [r0, 0x9]
- ldr r0, [r4]
- str r1, [r0, 0xC]
- ldrb r2, [r0, 0x10]
- strb r1, [r0, 0x10]
- ldr r0, [r4]
- ldrh r2, [r0, 0x12]
- movs r2, 0
- strh r1, [r0, 0x12]
- strb r2, [r0, 0x15]
- ldr r1, _082E3420
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _082E3424
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
-_082E341A:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_082E3420: .4byte 0x04000134
-_082E3424: .4byte 0x00005003
- thumb_func_end STWI_init
-
- thumb_func_start STWI_start_Command
-STWI_start_Command: @ 82E3428
- push {r4,r5,lr}
- ldr r5, _082E3480
- ldr r0, [r5]
- ldr r3, [r0, 0x24]
- ldrb r1, [r0, 0x4]
- lsls r1, 8
- ldrb r0, [r0, 0x6]
- ldr r2, _082E3484
- orrs r0, r2
- orrs r1, r0
- str r1, [r3]
- ldr r2, _082E3488
- ldr r1, [r5]
- ldr r0, [r1, 0x24]
- ldr r0, [r0]
- str r0, [r2]
- movs r2, 0
- str r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r4, _082E348C
- ldrh r3, [r4]
- strh r2, [r4]
- ldr r2, _082E3490
- ldr r1, [r5]
- movs r0, 0x8
- ldrb r1, [r1, 0xA]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strh r0, [r2]
- strh r3, [r4]
- ldr r1, _082E3494
- ldr r2, _082E3498
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_082E3480: .4byte gUnknown_03007868
-_082E3484: .4byte 0x99660000
-_082E3488: .4byte 0x04000120
-_082E348C: .4byte 0x04000208
-_082E3490: .4byte 0x04000200
-_082E3494: .4byte 0x04000128
-_082E3498: .4byte 0x00005083
- thumb_func_end STWI_start_Command
-
- thumb_func_start STWI_restart_Command
-STWI_restart_Command: @ 82E349C
- push {r4,lr}
- ldr r4, _082E34B4
- ldr r2, [r4]
- ldrb r0, [r2, 0x15]
- adds r3, r4, 0
- cmp r0, 0x1
- bhi _082E34B8
- adds r0, 0x1
- strb r0, [r2, 0x15]
- bl STWI_start_Command
- b _082E3512
- .align 2, 0
-_082E34B4: .4byte gUnknown_03007868
-_082E34B8:
- ldrb r0, [r2, 0x6]
- cmp r0, 0x27
- beq _082E34CA
- cmp r0, 0x25
- beq _082E34CA
- cmp r0, 0x35
- beq _082E34CA
- cmp r0, 0x37
- bne _082E34EC
-_082E34CA:
- ldr r0, [r3]
- ldrh r1, [r0, 0x12]
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x12]
- adds r0, 0x2C
- ldrb r1, [r0]
- strb r2, [r0]
- ldr r1, [r3]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E3512
- ldrb r0, [r1, 0x6]
- ldrh r1, [r1, 0x12]
- bl _call_via_r2
- b _082E3512
-_082E34EC:
- ldrh r0, [r2, 0x12]
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0x12]
- adds r0, r2, 0
- adds r0, 0x2C
- ldrb r2, [r0]
- strb r1, [r0]
- ldr r1, [r4]
- ldr r2, [r1, 0x18]
- cmp r2, 0
- beq _082E350C
- ldrb r0, [r1, 0x6]
- ldrh r1, [r1, 0x12]
- bl _call_via_r2
-_082E350C:
- ldr r1, [r4]
- movs r0, 0x4
- str r0, [r1]
-_082E3512:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end STWI_restart_Command
-
- thumb_func_start STWI_reset_ClockCounter
-STWI_reset_ClockCounter: @ 82E351C
- ldr r3, _082E3548
- ldr r1, [r3]
- movs r0, 0x5
- str r0, [r1]
- movs r2, 0
- strb r2, [r1, 0x4]
- ldr r0, [r3]
- strb r2, [r0, 0x5]
- ldr r1, _082E354C
- movs r0, 0x80
- lsls r0, 24
- str r0, [r1]
- adds r1, 0x8
- strh r2, [r1]
- ldr r2, _082E3550
- adds r0, r2, 0
- strh r0, [r1]
- adds r2, 0x7F
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0
- bx lr
- .align 2, 0
-_082E3548: .4byte gUnknown_03007868
-_082E354C: .4byte 0x04000120
-_082E3550: .4byte 0x00005003
- thumb_func_end STWI_reset_ClockCounter
-
- arm_func_start IntrSIO32
-IntrSIO32: @ 82E3554
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- ldr r3, _082E35B4
- ldr r0, [r3]
- ldr r2, [r0]
- sub r11, r12, 0x4
- cmp r2, 0xA
- bne _082E3590
- ldr r0, [r0, 0x20]
- cmp r0, 0
- ldmdbeq r11, {r11,sp,lr}
- bxeq lr
- bl sub_82E3EB0
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E3590:
- ldrb r3, [r0, 0x14]
- cmp r3, 0x1
- bne _082E35A8
- bl sio32intr_clock_master
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E35A8:
- bl sio32intr_clock_slave
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E35B4: .4byte gUnknown_03007868
- arm_func_end IntrSIO32
-
- arm_func_start sio32intr_clock_master
-sio32intr_clock_master: @ 82E35B8
- mov r12, sp
- stmdb sp!, {r4-r6,r11,r12,lr,pc}
- mov r0, 0x50
- sub r11, r12, 0x4
- bl STWI_set_timer_in_RAM
- mov r4, 0x120
- ldr r2, _082E382C
- add r4, r4, 0x4000000
- ldr lr, [r4]
- ldr r12, [r2]
- ldr r3, [r12]
- mov r6, r2
- cmp r3, 0
- bne _082E3638
- cmp lr, 0x80000000
- bne _082E36B8
- ldrb r2, [r12, 0x5]
- ldrb r3, [r12, 0x4]
- cmp r2, r3
- bhi _082E3628
- ldr r3, [r12, 0x24]
- mov r1, r2
- ldr r2, [r3, r1, lsl 2]
- str r2, [r4]
- ldrb r3, [r12, 0x5]
- add r3, r3, 0x1
- strb r3, [r12, 0x5]
- b _082E3714
-_082E3628:
- mov r3, 0x1
- str r3, [r12]
- str lr, [r4]
- b _082E3714
-_082E3638:
- ldr r3, [r12]
- cmp r3, 0x1
- bne _082E36C8
- mov r3, 0x99000000
- add r3, r3, 0x660000
- mov r5, 0x80000000
- and r2, lr, r5, asr 15
- cmp r2, r3
- bne _082E36B8
- mov r3, 0
- strb r3, [r12, 0x8]
- ldr r1, [r6]
- ldrb r0, [r1, 0x8]
- ldr r2, [r1, 0x28]
- str lr, [r2, r0, lsl 2]
- ldrb r3, [r1, 0x8]
- add r3, r3, 0x1
- strb r3, [r1, 0x8]
- ldr r2, [r6]
- strb lr, [r2, 0x9]
- ldr r3, [r6]
- mov r2, lr, lsr 8
- strb r2, [r3, 0x7]
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- ldrb r3, [r1, 0x8]
- cmp r2, r3
- bcc _082E3700
- mov r3, 0x2
- str r3, [r1]
- str r5, [r4]
- b _082E3714
-_082E36B8:
- bl STWI_stop_timer_in_RAM
- mov r0, 0x82
- bl STWI_set_timer_in_RAM
- b _082E3840
-_082E36C8:
- ldr r3, [r12]
- cmp r3, 0x2
- bne _082E3714
- ldrb r1, [r12, 0x8]
- ldr r2, [r12, 0x28]
- str lr, [r2, r1, lsl 2]
- ldrb r3, [r12, 0x8]
- add r3, r3, 0x1
- strb r3, [r12, 0x8]
- ldr r1, [r6]
- ldrb r2, [r1, 0x7]
- ldrb r3, [r1, 0x8]
- cmp r2, r3
- bcs _082E370C
-_082E3700:
- mov r3, 0x3
- str r3, [r1]
- b _082E3714
-_082E370C:
- mov r3, 0x80000000
- str r3, [r4]
-_082E3714:
- mov r0, 0x1
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3840
- mov r4, 0x128
- add r4, r4, 0x4000000
- mov r5, 0x5000
- add r3, r5, 0xB
- strh r3, [r4]
- mov r0, 0
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3840
- bl STWI_stop_timer_in_RAM
- ldr r1, [r6]
- ldr r0, [r1]
- cmp r0, 0x3
- bne _082E3830
- ldrb r3, [r1, 0x9]
- cmp r3, 0xA5
- cmpne r3, 0xA7
- beq _082E3788
- and r3, r3, 0xFF
- cmp r3, 0xB5
- beq _082E3788
- cmp r3, 0xB7
- bne _082E37D0
-_082E3788:
- mov r1, 0x120
- add r1, r1, 0x4000000
- mov r12, 0x128
- add r12, r12, 0x4000000
- ldr r0, [r6]
- mov r3, 0
- strb r3, [r0, 0x14]
- mov r2, 0x80000000
- str r2, [r1]
- add r3, r3, 0x5000
- add r2, r3, 0x2
- strh r2, [r12]
- add r3, r3, 0x82
- strh r3, [r12]
- ldr r2, [r6]
- mov r3, 0x5
- str r3, [r2]
- b _082E3800
-_082E37D0:
- cmp r3, 0xEE
- bne _082E37F0
- add r3, r5, 0x3
- strh r3, [r4]
- mov r2, 0x4
- str r2, [r1]
- strh r0, [r1, 0x12]
- b _082E3800
-_082E37F0:
- add r3, r5, 0x3
- strh r3, [r4]
- mov r2, 0x4
- str r2, [r1]
-_082E3800:
- ldr r2, [r6]
- mov r3, 0
- strb r3, [r2, 0x2C]
- ldr r0, [r6]
- ldr r2, [r0, 0x18]
- cmp r2, r3
- beq _082E3840
- ldrh r1, [r0, 0x12]
- ldrb r0, [r0, 0x6]
- bl sub_82E3EA8
- b _082E3840
- .align 2, 0
-_082E382C: .4byte gUnknown_03007868
-_082E3830:
- add r3, r5, 0x3
- strh r3, [r4]
- add r2, r5, 0x83
- strh r2, [r4]
-_082E3840:
- ldmdb r11, {r4-r6,r11,sp,lr}
- bx lr
- arm_func_end sio32intr_clock_master
-
- arm_func_start sio32intr_clock_slave
-sio32intr_clock_slave: @ 82E3848
- mov r12, sp
- stmdb sp!, {r4-r6,r11,r12,lr,pc}
- ldr r4, _082E3BF4
- mov r0, 0x64
- ldr r3, [r4]
- mov r6, 0
- strb r6, [r3, 0x10]
- sub r11, r12, 0x4
- bl STWI_set_timer_in_RAM
- mov r0, r6
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- mov r5, r4
- beq _082E3C4C
- mov r3, 0x128
- add r3, r3, 0x4000000
- mov r2, 0x5000
- add r2, r2, 0xA
- strh r2, [r3]
- mov lr, 0x120
- ldr r0, [r5]
- add lr, lr, 0x4000000
- ldr r12, [lr]
- ldr r3, [r0]
- cmp r3, 0x5
- bne _082E3978
- ldr r3, [r0, 0x28]
- mov r4, 0x1
- mov r0, 0x99000000
- str r12, [r3]
- add r0, r0, 0x660000
- ldr r2, [r5]
- mov r3, r0, lsr 16
- strb r4, [r2, 0x5]
- cmp r3, r12, lsr 16
- bne _082E3AC4
- ldr r3, [r5]
- mov r2, r12, lsr 8
- strb r2, [r3, 0x4]
- ldr r2, [r5]
- strb r12, [r2, 0x6]
- ldr r1, [r5]
- ldrb r3, [r1, 0x4]
- cmp r3, r6
- bne _082E395C
- ldrb r2, [r1, 0x6]
- sub r3, r2, 0x27
- cmp r2, 0x36
- cmpne r3, 0x2
- bhi _082E3930
- add r3, r2, 0x80
- strb r3, [r1, 0x9]
- ldr r2, [r5]
- ldrb r3, [r2, 0x9]
- ldr r1, [r2, 0x24]
- add r3, r3, r0
- b _082E39E0
-_082E3930:
- ldr r2, [r1, 0x24]
- ldr r3, _082E3BF8
- str r3, [r2]
- ldr r2, [r5]
- ldrb r3, [r2, 0x6]
- sub r3, r3, 0x10
- cmp r3, 0x2D
- bhi _082E3A18
- ldr r3, [r2, 0x24]
- str r4, [r3, 0x4]
- b _082E3A24
-_082E395C:
- mov r3, 0x80000000
- str r3, [lr]
- strb r4, [r1, 0x5]
- ldr r2, [r5]
- add r3, r3, 0x80000006
- str r3, [r2]
- b _082E3AD4
-_082E3978:
- ldr r3, [r0]
- cmp r3, 0x6
- bne _082E3A78
- ldrb r1, [r0, 0x5]
- ldr r2, [r0, 0x28]
- str r12, [r2, r1, lsl 2]
- ldrb r3, [r0, 0x5]
- add r3, r3, 0x1
- strb r3, [r0, 0x5]
- ldr r1, [r5]
- ldrb r2, [r1, 0x4]
- ldrb r3, [r1, 0x5]
- cmp r2, r3
- bcs _082E3A6C
- ldrb r2, [r1, 0x6]
- sub r3, r2, 0x28
- cmp r2, 0x36
- cmpne r3, 0x1
- bhi _082E39F0
- add r3, r2, 0x80
- strb r3, [r1, 0x9]
- ldr r2, [r5]
- ldrb r3, [r2, 0x9]
- ldr r1, [r2, 0x24]
- orr r3, r3, 0x99000000
- orr r3, r3, 0x660000
-_082E39E0:
- str r3, [r1]
- ldr r2, [r5]
- strb r6, [r2, 0x7]
- b _082E3A3C
-_082E39F0:
- ldr r2, [r1, 0x24]
- ldr r3, _082E3BF8
- str r3, [r2]
- ldr r2, [r5]
- ldrb r3, [r2, 0x6]
- sub r3, r3, 0x10
- cmp r3, 0x2D
- ldrls r2, [r2, 0x24]
- movls r3, 0x1
- bls _082E3A20
-_082E3A18:
- ldr r2, [r2, 0x24]
- mov r3, 0x2
-_082E3A20:
- str r3, [r2, 0x4]
-_082E3A24:
- ldr r2, [r5]
- mov r3, 0x1
- strb r3, [r2, 0x7]
- ldr r1, [r5]
- add r3, r3, 0x2
- strh r3, [r1, 0x12]
-_082E3A3C:
- ldr r0, [r5]
- ldr r2, [r0, 0x24]
- mov r3, 0x120
- ldr r1, [r2]
- add r3, r3, 0x4000000
- str r1, [r3]
- mov r2, 0x1
- strb r2, [r0, 0x8]
- ldr r1, [r5]
- mov r3, 0x7
- str r3, [r1]
- b _082E3AD4
-_082E3A6C:
- mov r3, 0x80000000
- str r3, [lr]
- b _082E3AD4
-_082E3A78:
- ldr r3, [r0]
- cmp r3, 0x7
- bne _082E3AD4
- cmp r12, 0x80000000
- bne _082E3AC4
- ldrb r2, [r0, 0x7]
- ldrb r3, [r0, 0x8]
- cmp r2, r3
- movcc r3, 0x8
- strcc r3, [r0]
- bcc _082E3AD4
- ldrb r1, [r0, 0x8]
- ldr r3, [r0, 0x24]
- ldr r2, [r3, r1, lsl 2]
- str r2, [lr]
- ldrb r3, [r0, 0x8]
- add r3, r3, 0x1
- strb r3, [r0, 0x8]
- b _082E3AD4
-_082E3AC4:
- bl STWI_stop_timer_in_RAM
- mov r0, 0x64
- bl STWI_set_timer_in_RAM
- b _082E3C4C
-_082E3AD4:
- mov r0, 0x1
- bl handshake_wait
- mov r0, r0, lsl 16
- cmp r0, 0x10000
- beq _082E3C4C
- mov r6, r5
- ldr r3, [r6]
- ldr r2, [r3]
- cmp r2, 0x8
- bne _082E3B9C
- mov r4, 0x128
- add r4, r4, 0x4000000
- mov r3, 0x5000
- add r3, r3, 0x2
- strh r3, [r4]
- bl STWI_stop_timer_in_RAM
- ldr r0, [r6]
- ldrh r3, [r0, 0x12]
- cmp r3, 0x3
- bne _082E3B48
- bl STWI_init_slave
- ldr r3, [r6]
- ldr r1, [r3, 0x1C]
- cmp r1, 0
- beq _082E3C4C
- mov r0, 0x1EC
- add r0, r0, 0x2
- bl sub_82E3EAC
- b _082E3C4C
-_082E3B48:
- mov r3, 0x120
- add r3, r3, 0x4000000
- mov r1, 0
- str r1, [r3]
- mov r2, 0x5000
- strh r1, [r4]
- add r2, r2, 0x3
- strh r2, [r4]
- mov r3, 0x1
- strb r3, [r0, 0x14]
- ldr r0, [r5]
- ldr r2, [r0, 0x1C]
- str r1, [r0]
- cmp r2, r1
- beq _082E3C4C
- ldrb r3, [r0, 0x4]
- ldrb r0, [r0, 0x6]
- mov r1, r2
- orr r0, r0, r3, lsl 8
- bl sub_82E3EAC
- b _082E3C4C
-_082E3B9C:
- mov r3, 0x208
- add r3, r3, 0x4000000
- mov r2, 0
- strh r2, [r3]
- mov r1, 0x100
- add r2, r1, 0x4000002
- ldrh r3, [r2]
- tst r3, 0x80
- beq _082E3C20
- ldrh r3, [r2]
- tst r3, 0x3
- bne _082E3BFC
- mov r2, 0xFF00
- add r1, r1, 0x4000000
- ldrh r3, [r1]
- add r2, r2, 0x9B
- cmp r3, r2
- bls _082E3C20
-_082E3BE4:
- ldrh r3, [r1]
- cmp r3, r2
- bhi _082E3BE4
- b _082E3C20
- .align 2, 0
-_082E3BF4: .4byte gUnknown_03007868
-_082E3BF8: .4byte 0x996601ee
-_082E3BFC:
- mov r2, 0xFF00
- add r1, r1, 0x4000000
- ldrh r3, [r1]
- add r2, r2, 0xFE
- cmp r3, r2
- bls _082E3C20
-_082E3C14:
- ldrh r3, [r1]
- cmp r3, r2
- bhi _082E3C14
-_082E3C20:
- mov r1, 0x128
- add r1, r1, 0x4000000
- mov r0, 0x208
- add r0, r0, 0x4000000
- mov r3, 0x5000
- add r2, r3, 0x2
- strh r2, [r1]
- add r3, r3, 0x82
- strh r3, [r1]
- mov r2, 0x1
- strh r2, [r0]
-_082E3C4C:
- ldmdb r11, {r4-r6,r11,sp,lr}
- bx lr
- arm_func_end sio32intr_clock_slave
-
- arm_func_start handshake_wait
-handshake_wait: @ 82E3C54
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- mov r1, 0x128
- add r1, r1, 0x4000000
- mov r0, r0, lsl 16
- ldr r2, _082E3CB8
- sub r11, r12, 0x4
- mov lr, r0, lsr 14
- ldr r12, [r2]
-_082E3C78:
- ldrb r3, [r12, 0x10]
- and r0, r3, 0xFF
- cmp r0, 0x1
- beq _082E3CA4
- ldrh r3, [r1]
- and r3, r3, 0x4
- cmp r3, lr
- bne _082E3C78
- mov r0, 0
- ldmdb r11, {r11,sp,lr}
- bx lr
-_082E3CA4:
- ldr r2, [r2]
- mov r3, 0
- strb r3, [r2, 0x10]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3CB8: .4byte gUnknown_03007868
- arm_func_end handshake_wait
-
- arm_func_start STWI_set_timer_in_RAM
-STWI_set_timer_in_RAM: @ 82E3CBC
- mov r12, sp
- stmdb sp!, {r4,r5,r11,r12,lr,pc}
- mov r1, 0x208
- add r1, r1, 0x4000000
- mov r3, 0
- sub r11, r12, 0x4
- ldr r12, _082E3D74
- and lr, r0, 0xFF
- ldr r2, [r12]
- cmp lr, 0x50
- ldrb r0, [r2, 0xA]
- mov r4, r12
- mov r2, lr
- strh r3, [r1]
- mov r0, r0, lsl 2
- add r3, r3, 0x100
- add r1, r3, 0x4000000
- add r3, r3, 0x4000002
- add r5, r0, r3
- beq _082E3D44
- bgt _082E3D1C
- cmp lr, 0x32
- beq _082E3D30
- b _082E3D90
-_082E3D1C:
- cmp r2, 0x64
- beq _082E3D5C
- cmp r2, 0x82
- beq _082E3D78
- b _082E3D90
-_082E3D30:
- mvn r3, 0x334
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x1
- b _082E3D8C
-_082E3D44:
- mov r3, 0xAE000000
- mov r3, r3, asr 20
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x2
- b _082E3D8C
-_082E3D5C:
- mvn r3, 0x660
- sub r3, r3, 0x9
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x3
- b _082E3D8C
- .align 2, 0
-_082E3D74: .4byte gUnknown_03007868
-_082E3D78:
- mvn r3, 0x850
- sub r3, r3, 0x2
- strh r3, [r0, r1]
- ldr r2, [r4]
- mov r3, 0x4
-_082E3D8C:
- str r3, [r2, 0xC]
-_082E3D90:
- mov r12, 0x200
- add r12, r12, 0x4000002
- mov r3, 0xC3
- strh r3, [r5]
- mov r1, 0x208
- ldr r2, [r4]
- add r1, r1, 0x4000000
- ldrb r0, [r2, 0xA]
- sub r3, r3, 0xBB
- mov r3, r3, lsl r0
- strh r3, [r12]
- mov r2, 0x1
- strh r2, [r1]
- ldmdb r11, {r4,r5,r11,sp,lr}
- bx lr
- arm_func_end STWI_set_timer_in_RAM
-
- arm_func_start STWI_stop_timer_in_RAM
-STWI_stop_timer_in_RAM: @ 82E3DCC
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- mov r1, 0x100
- ldr lr, _082E3E18
- add r0, r1, 0x4000000
- ldr r2, [lr]
- sub r11, r12, 0x4
- ldrb r3, [r2, 0xA]
- mov r12, 0
- str r12, [r2, 0xC]
- mov r3, r3, lsl 2
- strh r12, [r3, r0]
- ldr r2, [lr]
- ldrb r3, [r2, 0xA]
- add r1, r1, 0x4000002
- mov r3, r3, lsl 2
- strh r12, [r3, r1]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3E18: .4byte gUnknown_03007868
- arm_func_end STWI_stop_timer_in_RAM
-
- arm_func_start STWI_init_slave
-STWI_init_slave: @ 82E3E1C
- mov r12, sp
- stmdb sp!, {r11,r12,lr,pc}
- ldr r0, _082E3EA4
- ldr r2, [r0]
- mov r3, 0x5
- str r3, [r2]
- mov r1, 0
- strb r1, [r2, 0x14]
- ldr r3, [r0]
- strb r1, [r3, 0x4]
- ldr r2, [r0]
- strb r1, [r2, 0x5]
- ldr r3, [r0]
- strb r1, [r3, 0x6]
- ldr r2, [r0]
- strb r1, [r2, 0x7]
- ldr r3, [r0]
- strb r1, [r3, 0x8]
- ldr r2, [r0]
- strb r1, [r2, 0x9]
- ldr r3, [r0]
- str r1, [r3, 0xC]
- sub r11, r12, 0x4
- strb r1, [r3, 0x10]
- mov r2, 0x128
- ldr r12, [r0]
- add r2, r2, 0x4000000
- strh r1, [r12, 0x12]
- mov r3, 0x5000
- strb r1, [r12, 0x15]
- add r3, r3, 0x82
- strh r3, [r2]
- ldmdb r11, {r11,sp,lr}
- bx lr
- .align 2, 0
-_082E3EA4: .4byte gUnknown_03007868
- arm_func_end STWI_init_slave
-
- arm_func_start sub_82E3EA8
-sub_82E3EA8: @ 82E3EA8
- bx r2
- arm_func_end sub_82E3EA8
-
- arm_func_start sub_82E3EAC
-sub_82E3EAC: @ 82E3EAC
- bx r1
- arm_func_end sub_82E3EAC
-
- arm_func_start sub_82E3EB0
-sub_82E3EB0: @ 82E3EB0
- bx r0
- arm_func_end sub_82E3EB0
-
thumb_func_start rfu_initializeAPI
rfu_initializeAPI: @ 82E3EB4
push {r4-r7,lr}
@@ -2838,7 +593,7 @@ rfu_REQ_stopMode: @ 82E42C4
b _082E4362
.align 2, 0
_082E42E4: .4byte 0x04000208
-_082E42E8: .4byte gUnknown_03007868
+_082E42E8: .4byte gRfuState
_082E42EC:
bl AgbRFU_SoftReset
bl rfu_STC_clearAPIVariables
@@ -2878,7 +633,7 @@ _082E432A:
b _082E4362
.align 2, 0
_082E433C: .4byte 0x00008001
-_082E4340: .4byte gUnknown_03007868
+_082E4340: .4byte gRfuState
_082E4344: .4byte 0x04000100
_082E4348: .4byte 0x0105ffff
_082E434C: .4byte rfu_CB_stopMode
@@ -3156,7 +911,7 @@ rfu_CB_configGameData: @ 82E4500
movs r0, 0x1
b _082E4552
.align 2, 0
-_082E4544: .4byte gUnknown_03007868
+_082E4544: .4byte gRfuState
_082E4548: .4byte gUnknown_03007890
_082E454C:
adds r1, r6, 0
@@ -4225,7 +1980,7 @@ _082E4D18:
b _082E4D88
.align 2, 0
_082E4D20: .4byte gUnknown_03007890
-_082E4D24: .4byte gUnknown_03007868
+_082E4D24: .4byte gRfuState
_082E4D28: .4byte gUnknown_03007894
_082E4D2C: .4byte gUnknown_03007898
_082E4D30:
@@ -5195,7 +2950,7 @@ _082E547E:
pop {r1}
bx r1
.align 2, 0
-_082E5484: .4byte gUnknown_03007868
+_082E5484: .4byte gRfuState
thumb_func_end rfu_getMasterSlave
thumb_func_start rfu_clearAllSlot
@@ -6506,7 +4261,7 @@ _082E5E12:
_082E5E34: .4byte gUnknown_03007898
_082E5E38: .4byte gUnknown_03007894
_082E5E3C: .4byte gUnknown_03007890
-_082E5E40: .4byte gUnknown_03007868
+_082E5E40: .4byte gRfuState
_082E5E44:
ldr r0, _082E5E54
bl STWI_set_Callback_M
@@ -8564,7 +6319,7 @@ _082E6D88:
b _082E6DD6
.align 2, 0
_082E6DB4: .4byte 0x04000200
-_082E6DB8: .4byte gUnknown_03007868
+_082E6DB8: .4byte gRfuState
_082E6DBC: .4byte sub_82E6F88
_082E6DC0: .4byte 0x04000100
_082E6DC4:
@@ -8612,7 +6367,7 @@ _082E6E08:
.align 2, 0
_082E6E14: .4byte 0x04000208
_082E6E18: .4byte 0x04000200
-_082E6E1C: .4byte gUnknown_03007868
+_082E6E1C: .4byte gRfuState
thumb_func_end sub_82E6D6C
thumb_func_start sub_82E6E20
@@ -8663,7 +6418,7 @@ sub_82E6E20: @ 82E6E20
.align 2, 0
_082E6E78: .4byte 0x04000208
_082E6E7C: .4byte 0x04000200
-_082E6E80: .4byte gUnknown_03007868
+_082E6E80: .4byte gRfuState
_082E6E84: .4byte 0x04000134
_082E6E88: .4byte gUnknown_030078A0
_082E6E8C: .4byte 0x05000003
diff --git a/asm/librfu_intr.s b/asm/librfu_intr.s
new file mode 100644
index 000000000..7f375e419
--- /dev/null
+++ b/asm/librfu_intr.s
@@ -0,0 +1,696 @@
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ arm_func_start IntrSIO32
+IntrSIO32: @ 82E3554
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ ldr r3, _082E35B4
+ ldr r0, [r3]
+ ldr r2, [r0]
+ sub r11, r12, 0x4
+ cmp r2, 0xA
+ bne _082E3590
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ ldmdbeq r11, {r11,sp,lr}
+ bxeq lr
+ bl sub_82E3EB0
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E3590:
+ ldrb r3, [r0, 0x14]
+ cmp r3, 0x1
+ bne _082E35A8
+ bl sio32intr_clock_master
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E35A8:
+ bl sio32intr_clock_slave
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E35B4: .4byte gRfuState
+ arm_func_end IntrSIO32
+
+ arm_func_start sio32intr_clock_master
+sio32intr_clock_master: @ 82E35B8
+ mov r12, sp
+ stmdb sp!, {r4-r6,r11,r12,lr,pc}
+ mov r0, 0x50
+ sub r11, r12, 0x4
+ bl STWI_set_timer_in_RAM
+ mov r4, 0x120
+ ldr r2, _082E382C
+ add r4, r4, 0x4000000
+ ldr lr, [r4]
+ ldr r12, [r2]
+ ldr r3, [r12]
+ mov r6, r2
+ cmp r3, 0
+ bne _082E3638
+ cmp lr, 0x80000000
+ bne _082E36B8
+ ldrb r2, [r12, 0x5]
+ ldrb r3, [r12, 0x4]
+ cmp r2, r3
+ bhi _082E3628
+ ldr r3, [r12, 0x24]
+ mov r1, r2
+ ldr r2, [r3, r1, lsl 2]
+ str r2, [r4]
+ ldrb r3, [r12, 0x5]
+ add r3, r3, 0x1
+ strb r3, [r12, 0x5]
+ b _082E3714
+_082E3628:
+ mov r3, 0x1
+ str r3, [r12]
+ str lr, [r4]
+ b _082E3714
+_082E3638:
+ ldr r3, [r12]
+ cmp r3, 0x1
+ bne _082E36C8
+ mov r3, 0x99000000
+ add r3, r3, 0x660000
+ mov r5, 0x80000000
+ and r2, lr, r5, asr 15
+ cmp r2, r3
+ bne _082E36B8
+ mov r3, 0
+ strb r3, [r12, 0x8]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x8]
+ ldr r2, [r1, 0x28]
+ str lr, [r2, r0, lsl 2]
+ ldrb r3, [r1, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r1, 0x8]
+ ldr r2, [r6]
+ strb lr, [r2, 0x9]
+ ldr r3, [r6]
+ mov r2, lr, lsr 8
+ strb r2, [r3, 0x7]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x7]
+ ldrb r3, [r1, 0x8]
+ cmp r2, r3
+ bcc _082E3700
+ mov r3, 0x2
+ str r3, [r1]
+ str r5, [r4]
+ b _082E3714
+_082E36B8:
+ bl STWI_stop_timer_in_RAM
+ mov r0, 0x82
+ bl STWI_set_timer_in_RAM
+ b _082E3840
+_082E36C8:
+ ldr r3, [r12]
+ cmp r3, 0x2
+ bne _082E3714
+ ldrb r1, [r12, 0x8]
+ ldr r2, [r12, 0x28]
+ str lr, [r2, r1, lsl 2]
+ ldrb r3, [r12, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r12, 0x8]
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x7]
+ ldrb r3, [r1, 0x8]
+ cmp r2, r3
+ bcs _082E370C
+_082E3700:
+ mov r3, 0x3
+ str r3, [r1]
+ b _082E3714
+_082E370C:
+ mov r3, 0x80000000
+ str r3, [r4]
+_082E3714:
+ mov r0, 0x1
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3840
+ mov r4, 0x128
+ add r4, r4, 0x4000000
+ mov r5, 0x5000
+ add r3, r5, 0xB
+ strh r3, [r4]
+ mov r0, 0
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3840
+ bl STWI_stop_timer_in_RAM
+ ldr r1, [r6]
+ ldr r0, [r1]
+ cmp r0, 0x3
+ bne _082E3830
+ ldrb r3, [r1, 0x9]
+ cmp r3, 0xA5
+ cmpne r3, 0xA7
+ beq _082E3788
+ and r3, r3, 0xFF
+ cmp r3, 0xB5
+ beq _082E3788
+ cmp r3, 0xB7
+ bne _082E37D0
+_082E3788:
+ mov r1, 0x120
+ add r1, r1, 0x4000000
+ mov r12, 0x128
+ add r12, r12, 0x4000000
+ ldr r0, [r6]
+ mov r3, 0
+ strb r3, [r0, 0x14]
+ mov r2, 0x80000000
+ str r2, [r1]
+ add r3, r3, 0x5000
+ add r2, r3, 0x2
+ strh r2, [r12]
+ add r3, r3, 0x82
+ strh r3, [r12]
+ ldr r2, [r6]
+ mov r3, 0x5
+ str r3, [r2]
+ b _082E3800
+_082E37D0:
+ cmp r3, 0xEE
+ bne _082E37F0
+ add r3, r5, 0x3
+ strh r3, [r4]
+ mov r2, 0x4
+ str r2, [r1]
+ strh r0, [r1, 0x12]
+ b _082E3800
+_082E37F0:
+ add r3, r5, 0x3
+ strh r3, [r4]
+ mov r2, 0x4
+ str r2, [r1]
+_082E3800:
+ ldr r2, [r6]
+ mov r3, 0
+ strb r3, [r2, 0x2C]
+ ldr r0, [r6]
+ ldr r2, [r0, 0x18]
+ cmp r2, r3
+ beq _082E3840
+ ldrh r1, [r0, 0x12]
+ ldrb r0, [r0, 0x6]
+ bl sub_82E3EA8
+ b _082E3840
+ .align 2, 0
+_082E382C: .4byte gRfuState
+_082E3830:
+ add r3, r5, 0x3
+ strh r3, [r4]
+ add r2, r5, 0x83
+ strh r2, [r4]
+_082E3840:
+ ldmdb r11, {r4-r6,r11,sp,lr}
+ bx lr
+ arm_func_end sio32intr_clock_master
+
+ arm_func_start sio32intr_clock_slave
+sio32intr_clock_slave: @ 82E3848
+ mov r12, sp
+ stmdb sp!, {r4-r6,r11,r12,lr,pc}
+ ldr r4, _082E3BF4
+ mov r0, 0x64
+ ldr r3, [r4]
+ mov r6, 0
+ strb r6, [r3, 0x10]
+ sub r11, r12, 0x4
+ bl STWI_set_timer_in_RAM
+ mov r0, r6
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ mov r5, r4
+ beq _082E3C4C
+ mov r3, 0x128
+ add r3, r3, 0x4000000
+ mov r2, 0x5000
+ add r2, r2, 0xA
+ strh r2, [r3]
+ mov lr, 0x120
+ ldr r0, [r5]
+ add lr, lr, 0x4000000
+ ldr r12, [lr]
+ ldr r3, [r0]
+ cmp r3, 0x5
+ bne _082E3978
+ ldr r3, [r0, 0x28]
+ mov r4, 0x1
+ mov r0, 0x99000000
+ str r12, [r3]
+ add r0, r0, 0x660000
+ ldr r2, [r5]
+ mov r3, r0, lsr 16
+ strb r4, [r2, 0x5]
+ cmp r3, r12, lsr 16
+ bne _082E3AC4
+ ldr r3, [r5]
+ mov r2, r12, lsr 8
+ strb r2, [r3, 0x4]
+ ldr r2, [r5]
+ strb r12, [r2, 0x6]
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x4]
+ cmp r3, r6
+ bne _082E395C
+ ldrb r2, [r1, 0x6]
+ sub r3, r2, 0x27
+ cmp r2, 0x36
+ cmpne r3, 0x2
+ bhi _082E3930
+ add r3, r2, 0x80
+ strb r3, [r1, 0x9]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x9]
+ ldr r1, [r2, 0x24]
+ add r3, r3, r0
+ b _082E39E0
+_082E3930:
+ ldr r2, [r1, 0x24]
+ ldr r3, _082E3BF8
+ str r3, [r2]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x6]
+ sub r3, r3, 0x10
+ cmp r3, 0x2D
+ bhi _082E3A18
+ ldr r3, [r2, 0x24]
+ str r4, [r3, 0x4]
+ b _082E3A24
+_082E395C:
+ mov r3, 0x80000000
+ str r3, [lr]
+ strb r4, [r1, 0x5]
+ ldr r2, [r5]
+ add r3, r3, 0x80000006
+ str r3, [r2]
+ b _082E3AD4
+_082E3978:
+ ldr r3, [r0]
+ cmp r3, 0x6
+ bne _082E3A78
+ ldrb r1, [r0, 0x5]
+ ldr r2, [r0, 0x28]
+ str r12, [r2, r1, lsl 2]
+ ldrb r3, [r0, 0x5]
+ add r3, r3, 0x1
+ strb r3, [r0, 0x5]
+ ldr r1, [r5]
+ ldrb r2, [r1, 0x4]
+ ldrb r3, [r1, 0x5]
+ cmp r2, r3
+ bcs _082E3A6C
+ ldrb r2, [r1, 0x6]
+ sub r3, r2, 0x28
+ cmp r2, 0x36
+ cmpne r3, 0x1
+ bhi _082E39F0
+ add r3, r2, 0x80
+ strb r3, [r1, 0x9]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x9]
+ ldr r1, [r2, 0x24]
+ orr r3, r3, 0x99000000
+ orr r3, r3, 0x660000
+_082E39E0:
+ str r3, [r1]
+ ldr r2, [r5]
+ strb r6, [r2, 0x7]
+ b _082E3A3C
+_082E39F0:
+ ldr r2, [r1, 0x24]
+ ldr r3, _082E3BF8
+ str r3, [r2]
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x6]
+ sub r3, r3, 0x10
+ cmp r3, 0x2D
+ ldrls r2, [r2, 0x24]
+ movls r3, 0x1
+ bls _082E3A20
+_082E3A18:
+ ldr r2, [r2, 0x24]
+ mov r3, 0x2
+_082E3A20:
+ str r3, [r2, 0x4]
+_082E3A24:
+ ldr r2, [r5]
+ mov r3, 0x1
+ strb r3, [r2, 0x7]
+ ldr r1, [r5]
+ add r3, r3, 0x2
+ strh r3, [r1, 0x12]
+_082E3A3C:
+ ldr r0, [r5]
+ ldr r2, [r0, 0x24]
+ mov r3, 0x120
+ ldr r1, [r2]
+ add r3, r3, 0x4000000
+ str r1, [r3]
+ mov r2, 0x1
+ strb r2, [r0, 0x8]
+ ldr r1, [r5]
+ mov r3, 0x7
+ str r3, [r1]
+ b _082E3AD4
+_082E3A6C:
+ mov r3, 0x80000000
+ str r3, [lr]
+ b _082E3AD4
+_082E3A78:
+ ldr r3, [r0]
+ cmp r3, 0x7
+ bne _082E3AD4
+ cmp r12, 0x80000000
+ bne _082E3AC4
+ ldrb r2, [r0, 0x7]
+ ldrb r3, [r0, 0x8]
+ cmp r2, r3
+ movcc r3, 0x8
+ strcc r3, [r0]
+ bcc _082E3AD4
+ ldrb r1, [r0, 0x8]
+ ldr r3, [r0, 0x24]
+ ldr r2, [r3, r1, lsl 2]
+ str r2, [lr]
+ ldrb r3, [r0, 0x8]
+ add r3, r3, 0x1
+ strb r3, [r0, 0x8]
+ b _082E3AD4
+_082E3AC4:
+ bl STWI_stop_timer_in_RAM
+ mov r0, 0x64
+ bl STWI_set_timer_in_RAM
+ b _082E3C4C
+_082E3AD4:
+ mov r0, 0x1
+ bl handshake_wait
+ mov r0, r0, lsl 16
+ cmp r0, 0x10000
+ beq _082E3C4C
+ mov r6, r5
+ ldr r3, [r6]
+ ldr r2, [r3]
+ cmp r2, 0x8
+ bne _082E3B9C
+ mov r4, 0x128
+ add r4, r4, 0x4000000
+ mov r3, 0x5000
+ add r3, r3, 0x2
+ strh r3, [r4]
+ bl STWI_stop_timer_in_RAM
+ ldr r0, [r6]
+ ldrh r3, [r0, 0x12]
+ cmp r3, 0x3
+ bne _082E3B48
+ bl STWI_init_slave
+ ldr r3, [r6]
+ ldr r1, [r3, 0x1C]
+ cmp r1, 0
+ beq _082E3C4C
+ mov r0, 0x1EC
+ add r0, r0, 0x2
+ bl sub_82E3EAC
+ b _082E3C4C
+_082E3B48:
+ mov r3, 0x120
+ add r3, r3, 0x4000000
+ mov r1, 0
+ str r1, [r3]
+ mov r2, 0x5000
+ strh r1, [r4]
+ add r2, r2, 0x3
+ strh r2, [r4]
+ mov r3, 0x1
+ strb r3, [r0, 0x14]
+ ldr r0, [r5]
+ ldr r2, [r0, 0x1C]
+ str r1, [r0]
+ cmp r2, r1
+ beq _082E3C4C
+ ldrb r3, [r0, 0x4]
+ ldrb r0, [r0, 0x6]
+ mov r1, r2
+ orr r0, r0, r3, lsl 8
+ bl sub_82E3EAC
+ b _082E3C4C
+_082E3B9C:
+ mov r3, 0x208
+ add r3, r3, 0x4000000
+ mov r2, 0
+ strh r2, [r3]
+ mov r1, 0x100
+ add r2, r1, 0x4000002
+ ldrh r3, [r2]
+ tst r3, 0x80
+ beq _082E3C20
+ ldrh r3, [r2]
+ tst r3, 0x3
+ bne _082E3BFC
+ mov r2, 0xFF00
+ add r1, r1, 0x4000000
+ ldrh r3, [r1]
+ add r2, r2, 0x9B
+ cmp r3, r2
+ bls _082E3C20
+_082E3BE4:
+ ldrh r3, [r1]
+ cmp r3, r2
+ bhi _082E3BE4
+ b _082E3C20
+ .align 2, 0
+_082E3BF4: .4byte gRfuState
+_082E3BF8: .4byte 0x996601ee
+_082E3BFC:
+ mov r2, 0xFF00
+ add r1, r1, 0x4000000
+ ldrh r3, [r1]
+ add r2, r2, 0xFE
+ cmp r3, r2
+ bls _082E3C20
+_082E3C14:
+ ldrh r3, [r1]
+ cmp r3, r2
+ bhi _082E3C14
+_082E3C20:
+ mov r1, 0x128
+ add r1, r1, 0x4000000
+ mov r0, 0x208
+ add r0, r0, 0x4000000
+ mov r3, 0x5000
+ add r2, r3, 0x2
+ strh r2, [r1]
+ add r3, r3, 0x82
+ strh r3, [r1]
+ mov r2, 0x1
+ strh r2, [r0]
+_082E3C4C:
+ ldmdb r11, {r4-r6,r11,sp,lr}
+ bx lr
+ arm_func_end sio32intr_clock_slave
+
+ arm_func_start handshake_wait
+handshake_wait: @ 82E3C54
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ mov r1, 0x128
+ add r1, r1, 0x4000000
+ mov r0, r0, lsl 16
+ ldr r2, _082E3CB8
+ sub r11, r12, 0x4
+ mov lr, r0, lsr 14
+ ldr r12, [r2]
+_082E3C78:
+ ldrb r3, [r12, 0x10]
+ and r0, r3, 0xFF
+ cmp r0, 0x1
+ beq _082E3CA4
+ ldrh r3, [r1]
+ and r3, r3, 0x4
+ cmp r3, lr
+ bne _082E3C78
+ mov r0, 0
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+_082E3CA4:
+ ldr r2, [r2]
+ mov r3, 0
+ strb r3, [r2, 0x10]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3CB8: .4byte gRfuState
+ arm_func_end handshake_wait
+
+ arm_func_start STWI_set_timer_in_RAM
+STWI_set_timer_in_RAM: @ 82E3CBC
+ mov r12, sp
+ stmdb sp!, {r4,r5,r11,r12,lr,pc}
+ mov r1, 0x208
+ add r1, r1, 0x4000000
+ mov r3, 0
+ sub r11, r12, 0x4
+ ldr r12, _082E3D74
+ and lr, r0, 0xFF
+ ldr r2, [r12]
+ cmp lr, 0x50
+ ldrb r0, [r2, 0xA]
+ mov r4, r12
+ mov r2, lr
+ strh r3, [r1]
+ mov r0, r0, lsl 2
+ add r3, r3, 0x100
+ add r1, r3, 0x4000000
+ add r3, r3, 0x4000002
+ add r5, r0, r3
+ beq _082E3D44
+ bgt _082E3D1C
+ cmp lr, 0x32
+ beq _082E3D30
+ b _082E3D90
+_082E3D1C:
+ cmp r2, 0x64
+ beq _082E3D5C
+ cmp r2, 0x82
+ beq _082E3D78
+ b _082E3D90
+_082E3D30:
+ mvn r3, 0x334
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x1
+ b _082E3D8C
+_082E3D44:
+ mov r3, 0xAE000000
+ mov r3, r3, asr 20
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x2
+ b _082E3D8C
+_082E3D5C:
+ mvn r3, 0x660
+ sub r3, r3, 0x9
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x3
+ b _082E3D8C
+ .align 2, 0
+_082E3D74: .4byte gRfuState
+_082E3D78:
+ mvn r3, 0x850
+ sub r3, r3, 0x2
+ strh r3, [r0, r1]
+ ldr r2, [r4]
+ mov r3, 0x4
+_082E3D8C:
+ str r3, [r2, 0xC]
+_082E3D90:
+ mov r12, 0x200
+ add r12, r12, 0x4000002
+ mov r3, 0xC3
+ strh r3, [r5]
+ mov r1, 0x208
+ ldr r2, [r4]
+ add r1, r1, 0x4000000
+ ldrb r0, [r2, 0xA]
+ sub r3, r3, 0xBB
+ mov r3, r3, lsl r0
+ strh r3, [r12]
+ mov r2, 0x1
+ strh r2, [r1]
+ ldmdb r11, {r4,r5,r11,sp,lr}
+ bx lr
+ arm_func_end STWI_set_timer_in_RAM
+
+ arm_func_start STWI_stop_timer_in_RAM
+STWI_stop_timer_in_RAM: @ 82E3DCC
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ mov r1, 0x100
+ ldr lr, _082E3E18
+ add r0, r1, 0x4000000
+ ldr r2, [lr]
+ sub r11, r12, 0x4
+ ldrb r3, [r2, 0xA]
+ mov r12, 0
+ str r12, [r2, 0xC]
+ mov r3, r3, lsl 2
+ strh r12, [r3, r0]
+ ldr r2, [lr]
+ ldrb r3, [r2, 0xA]
+ add r1, r1, 0x4000002
+ mov r3, r3, lsl 2
+ strh r12, [r3, r1]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3E18: .4byte gRfuState
+ arm_func_end STWI_stop_timer_in_RAM
+
+ arm_func_start STWI_init_slave
+STWI_init_slave: @ 82E3E1C
+ mov r12, sp
+ stmdb sp!, {r11,r12,lr,pc}
+ ldr r0, _082E3EA4
+ ldr r2, [r0]
+ mov r3, 0x5
+ str r3, [r2]
+ mov r1, 0
+ strb r1, [r2, 0x14]
+ ldr r3, [r0]
+ strb r1, [r3, 0x4]
+ ldr r2, [r0]
+ strb r1, [r2, 0x5]
+ ldr r3, [r0]
+ strb r1, [r3, 0x6]
+ ldr r2, [r0]
+ strb r1, [r2, 0x7]
+ ldr r3, [r0]
+ strb r1, [r3, 0x8]
+ ldr r2, [r0]
+ strb r1, [r2, 0x9]
+ ldr r3, [r0]
+ str r1, [r3, 0xC]
+ sub r11, r12, 0x4
+ strb r1, [r3, 0x10]
+ mov r2, 0x128
+ ldr r12, [r0]
+ add r2, r2, 0x4000000
+ strh r1, [r12, 0x12]
+ mov r3, 0x5000
+ strb r1, [r12, 0x15]
+ add r3, r3, 0x82
+ strh r3, [r2]
+ ldmdb r11, {r11,sp,lr}
+ bx lr
+ .align 2, 0
+_082E3EA4: .4byte gRfuState
+ arm_func_end STWI_init_slave
+
+ arm_func_start sub_82E3EA8
+sub_82E3EA8: @ 82E3EA8
+ bx r2
+ arm_func_end sub_82E3EA8
+
+ arm_func_start sub_82E3EAC
+sub_82E3EAC: @ 82E3EAC
+ bx r1
+ arm_func_end sub_82E3EAC
+
+ arm_func_start sub_82E3EB0
+sub_82E3EB0: @ 82E3EB0
+ bx r0
+ arm_func_end sub_82E3EB0
diff --git a/asm/link.s b/asm/link.s
index 91f5076b6..291f71a57 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -545,7 +545,7 @@ _08009888:
movs r6, 0
strh r0, [r4]
adds r0, r5, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
ldrh r0, [r4]
cmp r0, r8
beq _080098C4
@@ -2181,8 +2181,8 @@ _0800A5E2:
.pool
thumb_func_end ResetBlockReceivedFlags
- thumb_func_start sub_800A5EC
-sub_800A5EC: @ 800A5EC
+ thumb_func_start ResetBlockReceivedFlag
+ResetBlockReceivedFlag: @ 800A5EC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -2206,7 +2206,7 @@ _0800A616:
pop {r0}
bx r0
.pool
- thumb_func_end sub_800A5EC
+ thumb_func_end ResetBlockReceivedFlag
thumb_func_start sub_800A620
sub_800A620: @ 800A620
@@ -14607,7 +14607,7 @@ sub_8010A70: @ 8010A70
adds r1, r4, 0
bl CpuSet
movs r0, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
_08010A9C:
add sp, 0x4
pop {r4,r5}
@@ -14683,7 +14683,7 @@ _08010B40:
b _08010CF0
_08010B4A:
adds r0, r4, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
movs r0, 0xF0
lsls r0, 7
bl sub_800FD14
@@ -14713,7 +14713,7 @@ _08010B78:
b _08010CF0
_08010B8C:
adds r0, r4, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
lsls r2, r4, 8
ldr r0, =gBlockRecvBuffer
adds r2, r0
@@ -14845,7 +14845,7 @@ _08010C94:
ldr r2, =0x0100007e
bl CpuSet
movs r0, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
ldr r1, =gUnknown_03005000
ldr r5, =0x00000ce8
adds r0, r1, r5
@@ -14947,7 +14947,7 @@ _08010D82:
ldr r0, =gBlockRecvBuffer
bl sub_8010A14
movs r0, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
ldr r0, =gReceivedRemoteLinkPlayers
strb r4, [r0]
adds r0, r5, 0
@@ -39108,7 +39108,7 @@ sub_801D978: @ 801D978
push {lr}
lsls r0, 24
lsrs r0, 24
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
pop {r0}
bx r0
thumb_func_end sub_801D978
@@ -42361,7 +42361,7 @@ _0801F3A2:
strh r1, [r4, 0x4]
lsls r0, r1, 24
lsrs r0, 24
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
movs r1, 0x2
ldrsh r0, [r4, r1]
lsls r0, 8
diff --git a/asm/macros/event.inc b/asm/macros/event.inc
index 50e4ac504..f0577f777 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -241,14 +241,14 @@
@ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers.
.macro special function
.byte 0x25
- .2byte \function
+ .2byte SPECIAL_\function
.endm
@ Calls a special function. That function's output (if any) will be written to the variable you specify.
.macro specialvar output, function
.byte 0x26
.2byte \output
- .2byte \function
+ .2byte SPECIAL_\function
.endm
@ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock state, the script will remain blocked indefinitely (essentially a hang).
diff --git a/asm/mail.s b/asm/mail.s
deleted file mode 100644
index 5f76a5ef0..000000000
--- a/asm/mail.s
+++ /dev/null
@@ -1,1035 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8121478
-sub_8121478: @ 8121478
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, =gUnknown_0203A134
- ldr r0, =0x0000222c
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =0x0000021d
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, =0x0000021e
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- ldr r4, [r4]
- movs r3, 0x88
- lsls r3, 2
- adds r1, r4, r3
- ldr r0, =CopyEasyChatWord
- str r0, [r1]
- movs r0, 0x89
- lsls r0, 2
- adds r1, r4, r0
- ldr r0, =ConvertEasyChatWordsToString
- str r0, [r1]
- ldrh r1, [r5, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _081214E8
- subs r1, 0x79
- subs r2, 0x4
- adds r0, r4, r2
- strb r1, [r0]
- b _081214F2
- .pool
-_081214E8:
- ldr r3, =0x0000021a
- adds r1, r4, r3
- movs r0, 0
- strb r0, [r1]
- movs r6, 0
-_081214F2:
- ldr r0, =gUnknown_0203A134
- ldr r1, [r0]
- ldr r2, =0x0000021e
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08121504
- cmp r0, 0x1
- beq _0812152C
-_08121504:
- movs r3, 0x8A
- lsls r3, 2
- adds r2, r1, r3
- subs r3, 0xE
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, =gUnknown_0859F3B4
- b _08121540
- .pool
-_0812152C:
- movs r0, 0x8A
- lsls r0, 2
- adds r2, r1, r0
- ldr r3, =0x0000021a
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, =gUnknown_0859F458
-_08121540:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r5, 0x1E]
- mov r1, sp
- bl sub_80D45E8
- lsls r0, 16
- ldr r1, =0xffff0000
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _081215AC
- ldr r1, =gUnknown_0203A134
- ldr r2, [r1]
- ldr r3, =0x0000021a
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x6
- beq _0812158C
- cmp r0, 0x9
- beq _0812159C
- ldr r0, =0x0000021b
- adds r1, r2, r0
- movs r0, 0
- strb r0, [r1]
- b _081215BA
- .pool
-_0812158C:
- ldr r0, =0x0000021b
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
- b _081215BA
- .pool
-_0812159C:
- ldr r0, =0x0000021b
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _081215BA
- .pool
-_081215AC:
- ldr r0, =gUnknown_0203A134
- ldr r1, [r0]
- ldr r2, =0x0000021b
- adds r1, r2
- movs r2, 0
- strb r2, [r1]
- adds r3, r0, 0
-_081215BA:
- ldr r1, [r3]
- movs r3, 0x85
- lsls r3, 2
- adds r0, r1, r3
- str r5, [r0]
- movs r2, 0x83
- lsls r2, 2
- adds r0, r1, r2
- str r7, [r0]
- adds r3, 0x4
- adds r0, r1, r3
- strb r6, [r0]
- ldr r0, =sub_81219F0
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121478
-
- thumb_func_start sub_81215EC
-sub_81215EC: @ 81215EC
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _08121600
- b _081219E2
-_08121600:
- lsls r0, 2
- ldr r1, =_08121614
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08121614:
- .4byte _08121660
- .4byte _0812166E
- .4byte _08121688
- .4byte _0812168E
- .4byte _08121694
- .4byte _0812169A
- .4byte _081216F4
- .4byte _08121730
- .4byte _08121740
- .4byte _08121774
- .4byte _08121782
- .4byte _081217D8
- .4byte _081217EC
- .4byte _081218B0
- .4byte _081218CC
- .4byte _081218EC
- .4byte _081218F6
- .4byte _08121910
- .4byte _08121980
-_08121660:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r0, 0
- b _081216EC
-_0812166E:
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, =0x01000200
- add r0, sp, 0x8
- bl CpuSet
- b _081219D4
- .pool
-_08121688:
- bl ResetPaletteFade
- b _081219D4
-_0812168E:
- bl ResetTasks
- b _081219D4
-_08121694:
- bl ResetSpriteData
- b _081219D4
-_0812169A:
- bl FreeAllSpritePalettes
- bl reset_temp_tile_data_buffers
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
-_081216EC:
- movs r1, 0
- bl SetGpuReg
- b _081219D4
-_081216F4:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0859F290
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203A134
- ldr r1, [r4]
- movs r2, 0x8B
- lsls r2, 2
- adds r1, r2
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x0000122c
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- b _081219D4
- .pool
-_08121730:
- ldr r0, =gUnknown_0859F29C
- bl InitWindows
- bl DeactivateAllTextPrinters
- b _081219D4
- .pool
-_08121740:
- ldr r2, =gUnknown_0859F2B8
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- ldr r1, =0x0000021a
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _081219D4
- .pool
-_08121774:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _08121780
- b _081219D4
-_08121780:
- b _081219E2
-_08121782:
- movs r5, 0x1E
- str r5, [sp]
- movs r4, 0x14
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r2, =gUnknown_0859F2B8
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- ldr r1, =0x0000021a
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _081219D4
- .pool
-_081217D8:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- b _081219D4
-_081217EC:
- bl sub_8098C64
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r6, =gPlttBufferUnfaded
- ldr r4, =gUnknown_0859F2B8
- ldr r0, =gUnknown_0203A134
- ldr r3, [r0]
- ldr r2, =0x0000021a
- adds r3, r2
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x10]
- subs r2, 0x26
- adds r0, r6, r2
- strh r1, [r0]
- ldr r5, =gPlttBufferFaded
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x10]
- adds r2, r5, r2
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x12]
- movs r2, 0xFB
- lsls r2, 1
- adds r0, r6, r2
- strh r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x12]
- adds r2, r5, r2
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =gUnknown_0859F2B0
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r6, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r6, 0x16]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x16]
- b _081219D4
- .pool
-_081218B0:
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- movs r1, 0x86
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081218C2
- b _081219D4
-_081218C2:
- bl sub_8121A1C
- b _081219D4
- .pool
-_081218CC:
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- movs r2, 0x86
- lsls r2, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081218DE
- b _081219D4
-_081218DE:
- bl sub_8121B1C
- bl RunTextPrinters
- b _081219D4
- .pool
-_081218EC:
- bl sub_8087598
- cmp r0, 0x1
- bne _081219D4
- b _081219E2
-_081218F6:
- ldr r0, =sub_8121C50
- bl SetVBlankCallback
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _081219D4
- .pool
-_08121910:
- ldr r5, =gUnknown_0203A134
- ldr r0, [r5]
- movs r1, 0x85
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_80D2E84
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- ldr r2, =0x0000021b
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08121940
- cmp r0, 0x2
- beq _08121958
- b _081219D4
- .pool
-_08121940:
- adds r0, r4, 0
- bl sub_80D2F68
- ldr r1, =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x60
- b _0812196A
- .pool
-_08121958:
- adds r0, r4, 0
- bl sub_80D2F68
- ldr r1, =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x28
-_0812196A:
- movs r3, 0x80
- bl sub_80D2D78
- ldr r1, [r5]
- movs r2, 0x87
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- b _081219D4
- .pool
-_08121980:
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 2
- adds r0, r1
- ldr r1, =sub_8121C98
- str r1, [r0]
- movs r0, 0x1
- b _081219E4
- .pool
-_081219D4:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081219E2:
- movs r0, 0
-_081219E4:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81215EC
-
- thumb_func_start sub_81219F0
-sub_81219F0: @ 81219F0
- push {lr}
-_081219F2:
- bl sub_81215EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08121A0C
- ldr r0, =sub_8121C64
- bl SetMainCallback2
- b _08121A18
- .pool
-_08121A0C:
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081219F2
-_08121A18:
- pop {r0}
- bx r0
- thumb_func_end sub_81219F0
-
- thumb_func_start sub_8121A1C
-sub_8121A1C: @ 8121A1C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r2, =gUnknown_0203A134
- ldr r0, [r2]
- movs r1, 0x8A
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _08121A8A
- mov r8, r2
- adds r7, r1, 0
-_08121A3C:
- lsls r0, r5, 6
- mov r1, r8
- ldr r2, [r1]
- adds r0, r2, r0
- movs r3, 0x85
- lsls r3, 2
- adds r1, r2, r3
- lsls r3, r6, 1
- ldr r1, [r1]
- adds r1, r3
- adds r2, r7
- ldr r2, [r2]
- ldr r2, [r2, 0x8]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 30
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- mov r1, r8
- ldr r0, [r1]
- adds r0, r7
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _08121A3C
-_08121A8A:
- ldr r4, =gUnknown_0203A134
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r0, r1, r2
- movs r3, 0x85
- lsls r3, 2
- adds r1, r3
- ldr r1, [r1]
- adds r1, 0x12
- bl StringCopy
- adds r2, r0, 0
- ldr r1, [r4]
- ldr r3, =0x0000021e
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08121AF0
- ldr r1, =gText_FromSpace
- adds r0, r2, 0
- bl StringCopy
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 2
- adds r0, r1
- bl StringLength
- ldr r2, [r4]
- movs r3, 0x8A
- lsls r3, 2
- adds r1, r2, r3
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 13
- subs r0, 0x60
- ldrb r1, [r1, 0x2]
- subs r1, r0
- ldr r0, =0x00000219
- adds r2, r0
- strb r1, [r2]
- b _08121B0C
- .pool
-_08121AF0:
- movs r2, 0x80
- lsls r2, 2
- adds r0, r1, r2
- bl sub_81DB52C
- ldr r0, [r4]
- movs r3, 0x8A
- lsls r3, 2
- adds r1, r0, r3
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- ldr r2, =0x00000219
- adds r0, r2
- strb r1, [r0]
-_08121B0C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121A1C
-
- thumb_func_start sub_8121B1C
-sub_8121B1C: @ 8121B1C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- movs r7, 0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r6, 0
- ldr r1, =gUnknown_0203A134
- ldr r0, [r1]
- movs r2, 0x8A
- lsls r2, 2
- mov r10, r2
- add r0, r10
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r6, r0
- bcs _08121BCC
- mov r9, r1
- mov r8, r10
-_08121B60:
- mov r0, r9
- ldr r1, [r0]
- lsls r0, r6, 6
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _08121BB8
- cmp r0, 0
- beq _08121BB8
- mov r2, r8
- adds r0, r1, r2
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- lsls r4, r6, 2
- adds r0, r4, r0
- ldr r2, [r0]
- lsls r2, 24
- lsrs r2, 26
- ldrb r0, [r1, 0x4]
- adds r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r1, 0x3]
- adds r3, r7, r3
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_0859F2AC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- bl box_print
- mov r1, r9
- ldr r0, [r1]
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r4, r0
- ldrb r0, [r4, 0x1]
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
-_08121BB8:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r2, =gUnknown_0203A134
- ldr r0, [r2]
- add r0, r10
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r6, r0
- bcc _08121B60
-_08121BCC:
- ldr r1, =gText_FromSpace
- add r0, sp, 0xC
- bl StringCopy
- ldr r4, =gUnknown_0203A134
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2
- bl StringCopy
- ldr r0, [r4]
- ldr r1, =0x00000219
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0x1
- add r1, sp, 0xC
- bl GetStringCenterAlignXOffset
- adds r2, r0, 0
- adds r2, 0x68
- ldr r0, [r4]
- movs r1, 0x8A
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r3, [r0, 0x1]
- adds r3, 0x58
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gUnknown_0859F2AC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- add r0, sp, 0xC
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- bl box_print
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121B1C
-
- thumb_func_start sub_8121C50
-sub_8121C50: @ 8121C50
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8121C50
-
- thumb_func_start sub_8121C64
-sub_8121C64: @ 8121C64
- push {r4,lr}
- ldr r4, =gUnknown_0203A134
- ldr r0, [r4]
- ldr r1, =0x0000021b
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08121C7C
- bl AnimateSprites
- bl BuildOamBuffer
-_08121C7C:
- ldr r0, [r4]
- movs r1, 0x84
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121C64
-
- thumb_func_start sub_8121C98
-sub_8121C98: @ 8121C98
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08121CB2
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 2
- adds r0, r1
- ldr r1, =sub_8121CC0
- str r1, [r0]
-_08121CB2:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121C98
-
- thumb_func_start sub_8121CC0
-sub_8121CC0: @ 8121CC0
- push {lr}
- sub sp, 0x4
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08121CEE
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =gUnknown_0203A134
- ldr r0, [r0]
- movs r1, 0x84
- lsls r1, 2
- adds r0, r1
- ldr r1, =sub_8121D00
- str r1, [r0]
-_08121CEE:
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121CC0
-
- thumb_func_start sub_8121D00
-sub_8121D00: @ 8121D00
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08121D88
- ldr r4, =gUnknown_0203A134
- ldr r0, [r4]
- movs r1, 0x83
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl SetMainCallback2
- ldr r1, [r4]
- ldr r2, =0x0000021b
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bgt _08121D58
- cmp r0, 0x1
- blt _08121D58
- subs r2, 0x7
- adds r0, r1, r2
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_80D2E84
- lsls r0, 16
- lsrs r0, 16
- bl sub_80D2FF0
- ldr r0, [r4]
- movs r1, 0x87
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl sub_80D2EF8
-_08121D58:
- ldr r4, =gUnknown_0203A134
- ldr r0, [r4]
- ldr r2, =0x0000222c
- movs r1, 0
- bl memset
- bl ResetPaletteFade
- movs r0, 0
- bl UnsetBgTilemapBuffer
- movs r0, 0x1
- bl UnsetBgTilemapBuffer
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- bl FreeAllWindowBuffers
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_08121D88:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121D00
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 50dc3c54e..f2e681b9b 100755
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -5441,7 +5441,7 @@ sub_81B2E64: @ 81B2E64
mov r2, r9
lsls r1, r2, 16
asrs r1, 16
- bl sub_8075060
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
@@ -10452,7 +10452,7 @@ sub_81B5A8C: @ 81B5A8C
asrs r2, 16
adds r0, r1, 0
adds r1, r2, 0
- bl sub_8075060
+ bl GetHPBarLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 298409e9c..d1f7bd161 100755
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1043,7 +1043,7 @@ _080C77C2:
lsrs r5, r0, 16
cmp r5, 0xD
bls _080C77C2
- bl sub_80D242C
+ bl ResetWaldaWallpaper
pop {r4-r6}
pop {r0}
bx r0
@@ -7122,7 +7122,7 @@ sub_80CADD8: @ 80CADD8
bl sub_80CFF34
movs r0, 0x15
bl sub_80CFF34
- bl sub_80D2494
+ bl IsWaldaWallpaperUnlocked
cmp r0, 0
beq _080CAE04
movs r0, 0x16
@@ -10421,7 +10421,7 @@ _080CC888:
b _080CC9DA
.pool
_080CC8C4:
- bl sub_80D24A8
+ bl GetWaldaWallpaperPatternId
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -10448,13 +10448,13 @@ _080CC8C4:
adds r1, r4
movs r2, 0x20
bl CpuSet
- bl sub_80D2510
+ bl GetWaldaWallpaperColorsPtr
ldr r1, [r7]
ldr r2, =0x00000794
adds r1, r2
movs r2, 0x2
bl CpuSet
- bl sub_80D2510
+ bl GetWaldaWallpaperColorsPtr
ldr r1, [r7]
ldr r3, =0x000007b4
adds r1, r3
@@ -10500,7 +10500,7 @@ _080CC976:
adds r1, r5
str r0, [r1]
ldr r4, =gUnknown_0857B004
- bl sub_80D24DC
+ bl GetWaldaWallpaperIconId
lsls r0, 2
adds r0, r4
ldr r0, [r0]
@@ -21544,8 +21544,8 @@ _080D241E:
bx r1
thumb_func_end sub_80D23A8
- thumb_func_start sub_80D242C
-sub_80D242C: @ 80D242C
+ thumb_func_start ResetWaldaWallpaper
+ResetWaldaWallpaper: @ 80D242C
ldr r2, =gSaveBlock1Ptr
ldr r0, [r2]
ldr r1, =0x00003d84
@@ -21575,10 +21575,10 @@ sub_80D242C: @ 80D242C
strb r0, [r1]
bx lr
.pool
- thumb_func_end sub_80D242C
+ thumb_func_end ResetWaldaWallpaper
- thumb_func_start sub_80D2480
-sub_80D2480: @ 80D2480
+ thumb_func_start SetWaldaWallpaperLockedOrUnlocked
+SetWaldaWallpaperLockedOrUnlocked: @ 80D2480
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, =0x00003d86
@@ -21586,10 +21586,10 @@ sub_80D2480: @ 80D2480
strb r0, [r1]
bx lr
.pool
- thumb_func_end sub_80D2480
+ thumb_func_end SetWaldaWallpaperLockedOrUnlocked
- thumb_func_start sub_80D2494
-sub_80D2494: @ 80D2494
+ thumb_func_start IsWaldaWallpaperUnlocked
+IsWaldaWallpaperUnlocked: @ 80D2494
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d86
@@ -21597,10 +21597,10 @@ sub_80D2494: @ 80D2494
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end sub_80D2494
+ thumb_func_end IsWaldaWallpaperUnlocked
- thumb_func_start sub_80D24A8
-sub_80D24A8: @ 80D24A8
+ thumb_func_start GetWaldaWallpaperPatternId
+GetWaldaWallpaperPatternId: @ 80D24A8
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d85
@@ -21608,10 +21608,10 @@ sub_80D24A8: @ 80D24A8
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end sub_80D24A8
+ thumb_func_end GetWaldaWallpaperPatternId
- thumb_func_start sub_80D24BC
-sub_80D24BC: @ 80D24BC
+ thumb_func_start SetWaldaWallpaperPatternId
+SetWaldaWallpaperPatternId: @ 80D24BC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -21626,10 +21626,10 @@ _080D24D0:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D24BC
+ thumb_func_end SetWaldaWallpaperPatternId
- thumb_func_start sub_80D24DC
-sub_80D24DC: @ 80D24DC
+ thumb_func_start GetWaldaWallpaperIconId
+GetWaldaWallpaperIconId: @ 80D24DC
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d84
@@ -21637,10 +21637,10 @@ sub_80D24DC: @ 80D24DC
ldrb r0, [r0]
bx lr
.pool
- thumb_func_end sub_80D24DC
+ thumb_func_end GetWaldaWallpaperIconId
- thumb_func_start sub_80D24F0
-sub_80D24F0: @ 80D24F0
+ thumb_func_start SetWaldaWallpaperIconId
+SetWaldaWallpaperIconId: @ 80D24F0
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -21655,20 +21655,20 @@ _080D2504:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D24F0
+ thumb_func_end SetWaldaWallpaperIconId
- thumb_func_start sub_80D2510
-sub_80D2510: @ 80D2510
+ thumb_func_start GetWaldaWallpaperColorsPtr
+GetWaldaWallpaperColorsPtr: @ 80D2510
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d70
adds r0, r1
bx lr
.pool
- thumb_func_end sub_80D2510
+ thumb_func_end GetWaldaWallpaperColorsPtr
- thumb_func_start sub_80D2524
-sub_80D2524: @ 80D2524
+ thumb_func_start SetWaldaWallpaperColors
+SetWaldaWallpaperColors: @ 80D2524
push {r4,lr}
ldr r2, =gSaveBlock1Ptr
ldr r2, [r2]
@@ -21682,20 +21682,20 @@ sub_80D2524: @ 80D2524
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D2524
+ thumb_func_end SetWaldaWallpaperColors
- thumb_func_start sub_80D2548
-sub_80D2548: @ 80D2548
+ thumb_func_start GetWaldaPhrasePtr
+GetWaldaPhrasePtr: @ 80D2548
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =0x00003d74
adds r0, r1
bx lr
.pool
- thumb_func_end sub_80D2548
+ thumb_func_end GetWaldaPhrasePtr
- thumb_func_start sub_80D255C
-sub_80D255C: @ 80D255C
+ thumb_func_start SetWaldaPhrase
+SetWaldaPhrase: @ 80D255C
push {lr}
adds r1, r0, 0
ldr r0, =gSaveBlock1Ptr
@@ -21706,10 +21706,10 @@ sub_80D255C: @ 80D255C
pop {r0}
bx r0
.pool
- thumb_func_end sub_80D255C
+ thumb_func_end SetWaldaPhrase
- thumb_func_start sub_80D2578
-sub_80D2578: @ 80D2578
+ thumb_func_start IsWaldaPhraseEmpty
+IsWaldaPhraseEmpty: @ 80D2578
push {lr}
movs r1, 0
ldr r0, =gSaveBlock1Ptr
@@ -21725,7 +21725,7 @@ _080D258C:
pop {r1}
bx r1
.pool
- thumb_func_end sub_80D2578
+ thumb_func_end IsWaldaPhraseEmpty
thumb_func_start sub_80D259C
sub_80D259C: @ 80D259C
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 7c314f8db..fd2518075 100755
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -5,7832 +5,6 @@
.text
- thumb_func_start sub_81BF8EC
-sub_81BF8EC: @ 81BF8EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r4, =gUnknown_0203CF1C
- ldr r0, =0x000040f8
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =0x000040bc
- adds r0, r1
- strb r7, [r0]
- ldr r0, [r4]
- mov r2, r8
- str r2, [r0]
- adds r1, 0x2
- adds r0, r1
- strb r5, [r0]
- ldr r0, [r4]
- ldr r2, =0x000040bf
- adds r0, r2
- strb r6, [r0]
- ldr r1, [r4]
- ldr r0, [sp, 0x18]
- str r0, [r1, 0x4]
- cmp r7, 0x2
- bne _081BF94C
- subs r2, 0x2
- adds r1, r2
- movs r0, 0x1
- b _081BF952
- .pool
-_081BF94C:
- ldr r0, =0x000040bd
- adds r1, r0
- movs r0, 0
-_081BF952:
- strb r0, [r1]
- cmp r7, 0x1
- beq _081BF9A0
- cmp r7, 0x1
- bgt _081BF96C
- cmp r7, 0
- beq _081BF97C
- ldr r2, =gUnknown_0203CF1C
- b _081BF9EE
- .pool
-_081BF96C:
- cmp r7, 0x2
- beq _081BF97C
- cmp r7, 0x3
- beq _081BF9D0
- ldr r2, =gUnknown_0203CF1C
- b _081BF9EE
- .pool
-_081BF97C:
- ldr r2, =gUnknown_0203CF1C
- ldr r0, [r2]
- ldr r1, =0x000040c1
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, =0x000040c2
- adds r0, r1
- movs r1, 0x3
- b _081BF9EC
- .pool
-_081BF9A0:
- ldr r2, =gUnknown_0203CF1C
- ldr r0, [r2]
- ldr r1, =0x000040c1
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, =0x000040c2
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, =0x000040c8
- adds r0, r1
- strb r7, [r0]
- b _081BF9EE
- .pool
-_081BF9D0:
- ldr r2, =gUnknown_0203CF1C
- ldr r0, [r2]
- ldr r1, =0x000040c1
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r2]
- ldr r1, =0x000040c2
- adds r0, r1
- strb r7, [r0]
- ldr r0, [r2]
- adds r1, 0x1
- adds r0, r1
- movs r1, 0x1
-_081BF9EC:
- strb r1, [r0]
-_081BF9EE:
- ldr r0, [r2]
- ldr r2, =0x000040c1
- adds r1, r0, r2
- ldrb r1, [r1]
- subs r2, 0x1
- adds r0, r2
- strb r1, [r0]
- movs r0, 0xFF
- bl sub_81C488C
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- cmp r0, 0
- bne _081BFA12
- movs r0, 0
- movs r1, 0
- bl sub_806F2AC
-_081BFA12:
- ldr r0, =sub_81BFAE4
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BF8EC
-
- thumb_func_start sub_81BFA38
-sub_81BFA38: @ 81BFA38
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r6, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- str r3, [sp]
- movs r0, 0x3
- mov r1, r8
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_81BF8EC
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c4
- adds r0, r1
- strh r6, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BFA38
-
- thumb_func_start sub_81BFA80
-sub_81BFA80: @ 81BFA80
- push {r4,lr}
- sub sp, 0x4
- ldr r4, [sp, 0xC]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r4, [sp]
- bl sub_81BF8EC
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040ef
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BFA80
-
- thumb_func_start sub_81BFAB4
-sub_81BFAB4: @ 81BFAB4
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_81BFAB4
-
- thumb_func_start sub_81BFAD0
-sub_81BFAD0: @ 81BFAD0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81BFAD0
-
- thumb_func_start sub_81BFAE4
-sub_81BFAE4: @ 81BFAE4
- push {lr}
-_081BFAE6:
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081BFB0A
- bl sub_81BFB10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081BFB0A
- bl sub_81221AC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081BFAE6
-_081BFB0A:
- pop {r0}
- bx r0
- thumb_func_end sub_81BFAE4
-
- thumb_func_start sub_81BFB10
-sub_81BFB10: @ 81BFB10
- push {r4,lr}
- sub sp, 0x4
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x18
- bls _081BFB24
- b _081BFE00
-_081BFB24:
- lsls r0, 2
- ldr r1, =_081BFB38
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081BFB38:
- .4byte _081BFB9C
- .4byte _081BFBAA
- .4byte _081BFBBC
- .4byte _081BFBD0
- .4byte _081BFBE4
- .4byte _081BFBEA
- .4byte _081BFC04
- .4byte _081BFC20
- .4byte _081BFC26
- .4byte _081BFC38
- .4byte _081BFC58
- .4byte _081BFC7C
- .4byte _081BFC82
- .4byte _081BFC94
- .4byte _081BFCAC
- .4byte _081BFCC0
- .4byte _081BFCD8
- .4byte _081BFCF8
- .4byte _081BFD34
- .4byte _081BFD50
- .4byte _081BFD60
- .4byte _081BFD74
- .4byte _081BFD7A
- .4byte _081BFDB0
- .4byte _081BFDCC
-_081BFB9C:
- bl SetVBlankHBlankCallbacksToNull
- bl sub_8121DA0
- bl clear_scheduled_bg_copies_to_vram
- b _081BFDE6
-_081BFBAA:
- bl remove_some_task
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFBBC:
- bl ResetPaletteFade
- ldr r2, =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- b _081BFDE4
- .pool
-_081BFBD0:
- bl ResetSpriteData
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFBE4:
- bl FreeAllSpritePalettes
- b _081BFDE6
-_081BFBEA:
- bl sub_81BFE24
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040f0
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081BFDE6
- .pool
-_081BFC04:
- bl sub_81BFEB0
- lsls r0, 24
- cmp r0, 0
- bne _081BFC10
- b _081BFE18
-_081BFC10:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFC20:
- bl sub_81C2554
- b _081BFDE6
-_081BFC26:
- bl sub_81C1BA0
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFC38:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81C0098
- ldr r0, [r4]
- ldr r1, =0x000040f0
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081BFDE6
- .pool
-_081BFC58:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C00F0
- lsls r0, 24
- cmp r0, 0
- bne _081BFC6A
- b _081BFE18
-_081BFC6A:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFC7C:
- bl sub_81C25E8
- b _081BFDE6
-_081BFC82:
- bl sub_81C286C
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFC94:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81C2D9C
- b _081BFDE6
- .pool
-_081BFCAC:
- bl sub_81C0348
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFCC0:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81C2AFC
- b _081BFDE6
- .pool
-_081BFCD8:
- bl sub_81C4190
- bl sub_81C42C8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040f0
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081BFDE6
- .pool
-_081BFCF8:
- ldr r4, =gUnknown_0203CF1C
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xC
- ldr r2, =0x000040f0
- adds r1, r2
- bl sub_81C45F4
- ldr r1, [r4]
- ldr r2, =0x000040d3
- adds r1, r2
- strb r0, [r1]
- ldr r1, [r4]
- adds r2, r1, r2
- ldrb r0, [r2]
- cmp r0, 0xFF
- bne _081BFD1C
- b _081BFE18
-_081BFD1C:
- ldr r0, =0x000040f0
- adds r1, r0
- movs r0, 0
- strh r0, [r1]
- b _081BFDE6
- .pool
-_081BFD34:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C4984
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFD50:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C4A08
- b _081BFDE6
- .pool
-_081BFD60:
- bl sub_81C4A88
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFD74:
- bl sub_81C4280
- b _081BFDE6
-_081BFD7A:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040bc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081BFDA0
- ldr r0, =sub_81C0510
- movs r1, 0
- bl CreateTask
- b _081BFDE6
- .pool
-_081BFDA0:
- ldr r0, =sub_81C171C
- movs r1, 0
- bl CreateTask
- b _081BFDE6
- .pool
-_081BFDB0:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _081BFDEE
- .pool
-_081BFDCC:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
-_081BFDE4:
- strb r0, [r2, 0x8]
-_081BFDE6:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_081BFDEE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081BFE18
- .pool
-_081BFE00:
- ldr r0, =sub_81BFAD0
- bl SetVBlankCallback
- ldr r0, =sub_81BFAB4
- bl SetMainCallback2
- movs r0, 0x1
- b _081BFE1A
- .pool
-_081BFE18:
- movs r0, 0
-_081BFE1A:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81BFB10
-
- thumb_func_start sub_81BFE24
-sub_81BFE24: @ 81BFE24
- push {r4,lr}
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_0861CBB4
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_0203CF1C
- ldr r1, [r4]
- ldr r0, =0x000020bc
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x000010bc
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- adds r1, 0xBC
- movs r0, 0x3
- bl SetBgTilemapBuffer
- bl sub_8121E10
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BFE24
-
- thumb_func_start sub_81BFEB0
-sub_81BFEB0: @ 81BFEB0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_0203CF1C
- ldr r0, [r1]
- ldr r2, =0x000040f0
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0xC
- bls _081BFEC8
- b _081C008C
-_081BFEC8:
- lsls r0, 2
- ldr r1, =_081BFEE0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081BFEE0:
- .4byte _081BFF14
- .4byte _081BFF30
- .4byte _081BFF60
- .4byte _081BFF78
- .4byte _081BFF90
- .4byte _081BFFA8
- .4byte _081BFFC0
- .4byte _081BFFF0
- .4byte _081BFFFC
- .4byte _081C0018
- .4byte _081C0024
- .4byte _081C0040
- .4byte _081C0064
-_081BFF14:
- bl reset_temp_tile_data_buffers
- ldr r1, =gUnknown_08D97D0C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _081C0046
- .pool
-_081BFF30:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081BFF3E
- b _081C008C
-_081BFF3E:
- ldr r0, =gUnknown_08D9862C
- ldr r4, =gUnknown_0203CF1C
- ldr r1, [r4]
- adds r1, 0xBC
- bl LZDecompressWram
- ldr r1, [r4]
- ldr r2, =0x000040f0
- adds r1, r2
- b _081C004E
- .pool
-_081BFF60:
- ldr r0, =gUnknown_08D98CC8
- ldr r1, [r4]
- ldr r2, =0x000008bc
- adds r1, r2
- bl LZDecompressWram
- ldr r1, [r4]
- b _081C004A
- .pool
-_081BFF78:
- ldr r0, =gUnknown_08D987FC
- ldr r1, [r4]
- ldr r2, =0x000018bc
- adds r1, r2
- bl LZDecompressWram
- ldr r1, [r4]
- b _081C004A
- .pool
-_081BFF90:
- ldr r0, =gUnknown_08D9898C
- ldr r1, [r4]
- ldr r2, =0x000028bc
- adds r1, r2
- bl LZDecompressWram
- ldr r1, [r4]
- b _081C004A
- .pool
-_081BFFA8:
- ldr r0, =gUnknown_08D98B28
- ldr r1, [r4]
- ldr r2, =0x000038bc
- adds r1, r2
- bl LZDecompressWram
- ldr r1, [r4]
- b _081C004A
- .pool
-_081BFFC0:
- ldr r0, =gUnknown_08D9853C
- movs r2, 0x80
- lsls r2, 1
- movs r1, 0
- bl LoadCompressedPalette
- ldr r0, =gUnknown_08D85620
- movs r1, 0x81
- movs r2, 0x1E
- bl LoadPalette
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040f0
- adds r1, r2
- b _081C004E
- .pool
-_081BFFF0:
- ldr r0, =gUnknown_0861CFBC
- bl LoadCompressedObjectPic
- b _081C0046
- .pool
-_081BFFFC:
- ldr r0, =gUnknown_0861D074
- bl LoadCompressedObjectPic
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040f0
- adds r1, r2
- b _081C004E
- .pool
-_081C0018:
- ldr r0, =gUnknown_0861D0F8
- bl LoadCompressedObjectPic
- b _081C0046
- .pool
-_081C0024:
- ldr r0, =gUnknown_0861D100
- bl LoadCompressedObjectPalette
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040f0
- adds r1, r2
- b _081C004E
- .pool
-_081C0040:
- ldr r0, =gUnknown_0861D07C
- bl LoadCompressedObjectPalette
-_081C0046:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
-_081C004A:
- ldr r0, =0x000040f0
- adds r1, r0
-_081C004E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081C008C
- .pool
-_081C0064:
- ldr r0, =gUnknown_08D97B84
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040f0
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- movs r0, 0x1
- b _081C008E
- .pool
-_081C008C:
- movs r0, 0
-_081C008E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81BFEB0
-
- thumb_func_start sub_81C0098
-sub_81C0098: @ 81C0098
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bd
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C00D0
- ldr r2, [r1]
- ldr r4, =0x000040be
- adds r0, r1, r4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- adds r1, r2
- adds r0, r3, 0
- movs r2, 0x64
- bl memcpy
- b _081C00E6
- .pool
-_081C00D0:
- ldr r0, [r1]
- ldr r2, =0x000040be
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- adds r1, r3, 0
- bl sub_8069004
-_081C00E6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0098
-
- thumb_func_start sub_81C00F0
-sub_81C00F0: @ 81C00F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, =gUnknown_0203CF1C
- ldr r7, [r0]
- adds r6, r7, 0
- adds r6, 0x70
- ldr r1, =0x000040f0
- adds r0, r7, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x1
- beq _081C0198
- cmp r0, 0x1
- bgt _081C0120
- cmp r0, 0
- beq _081C012C
- b _081C0314
- .pool
-_081C0120:
- cmp r0, 0x2
- beq _081C01DC
- cmp r0, 0x3
- bne _081C012A
- b _081C02A8
-_081C012A:
- b _081C0314
-_081C012C:
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- strh r0, [r6]
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- strh r0, [r6, 0x2]
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [r6, 0x10]
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r6, 0x5]
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- strb r0, [r6, 0x8]
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r6, 0x2E]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [r6, 0xC]
- adds r0, r5, 0
- movs r1, 0x4
- bl GetMonData
- adds r1, r7, 0
- adds r1, 0xA5
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- beq _081C018C
- movs r0, 0x1
- strb r0, [r6, 0x4]
- b _081C0322
-_081C018C:
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- strb r0, [r6, 0x4]
- b _081C0322
-_081C0198:
- movs r4, 0
- movs r0, 0x8C
- adds r0, r7
- mov r8, r0
- movs r1, 0xA4
- adds r1, r7
- mov r9, r1
- adds r6, r7, 0
- adds r6, 0x84
-_081C01AA:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r5, 0
- bl GetMonData
- strh r0, [r6]
- adds r1, r4, 0
- adds r1, 0x11
- adds r0, r5, 0
- bl GetMonData
- mov r2, r8
- adds r1, r2, r4
- strb r0, [r1]
- adds r6, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- bls _081C01AA
- adds r0, r5, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1]
- b _081C0322
-_081C01DC:
- ldr r1, [r7]
- ldr r0, =gPlayerParty
- cmp r1, r0
- beq _081C01F8
- ldr r2, =0x000040bc
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _081C01F8
- ldr r1, =0x000040ef
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081C0254
-_081C01F8:
- adds r0, r5, 0
- bl GetNature
- adds r1, r6, 0
- adds r1, 0x33
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x22]
- adds r0, r5, 0
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r6, 0x24]
- adds r0, r5, 0
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r6, 0x26]
- adds r0, r5, 0
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r6, 0x28]
- adds r0, r5, 0
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r6, 0x2A]
- adds r0, r5, 0
- movs r1, 0x3D
- b _081C02A0
- .pool
-_081C0254:
- adds r0, r5, 0
- bl GetNature
- adds r1, r7, 0
- adds r1, 0xA3
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x20]
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x22]
- adds r0, r5, 0
- movs r1, 0x54
- bl GetMonData
- strh r0, [r6, 0x24]
- adds r0, r5, 0
- movs r1, 0x55
- bl GetMonData
- strh r0, [r6, 0x26]
- adds r0, r5, 0
- movs r1, 0x57
- bl GetMonData
- strh r0, [r6, 0x28]
- adds r0, r5, 0
- movs r1, 0x58
- bl GetMonData
- strh r0, [r6, 0x2A]
- adds r0, r5, 0
- movs r1, 0x56
-_081C02A0:
- bl GetMonData
- strh r0, [r6, 0x2C]
- b _081C0322
-_081C02A8:
- adds r4, r7, 0
- adds r4, 0xA6
- adds r0, r5, 0
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl ConvertInternationalString
- adds r0, r5, 0
- bl sub_81B205C
- strb r0, [r6, 0x7]
- adds r0, r5, 0
- movs r1, 0x31
- bl GetMonData
- adds r1, r7, 0
- adds r1, 0xA2
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r6, 0x48]
- adds r0, r5, 0
- movs r1, 0x23
- bl GetMonData
- strb r0, [r6, 0x9]
- adds r0, r5, 0
- movs r1, 0x24
- bl GetMonData
- strb r0, [r6, 0xA]
- adds r0, r5, 0
- movs r1, 0x25
- bl GetMonData
- strb r0, [r6, 0xB]
- adds r0, r5, 0
- movs r1, 0x20
- bl GetMonData
- strh r0, [r6, 0x30]
- b _081C0322
-_081C0314:
- adds r0, r5, 0
- movs r1, 0x52
- bl GetMonData
- strb r0, [r6, 0x6]
- movs r0, 0x1
- b _081C0332
-_081C0322:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040f0
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0
-_081C0332:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81C00F0
-
- thumb_func_start sub_81C0348
-sub_81C0348: @ 81C0348
- push {r4-r6,lr}
- ldr r6, =gUnknown_0203CF1C
- ldr r2, [r6]
- ldr r1, =0x000040c0
- adds r0, r2, r1
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _081C037C
- movs r0, 0
- movs r1, 0xFF
- bl sub_81C1DA4
- movs r0, 0
- movs r1, 0xFF
- movs r2, 0
- bl sub_81C1EFC
- b _081C03D8
- .pool
-_081C037C:
- ldr r1, =0x000040c6
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x84
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81C240C
- ldr r0, [r6]
- ldr r5, =0x000020bc
- adds r0, r5
- movs r1, 0x3
- movs r2, 0
- bl sub_81C2194
- ldr r0, [r6]
- ldr r4, =0x000030bc
- adds r0, r4
- movs r1, 0x1
- movs r2, 0
- bl sub_81C2194
- ldr r1, [r6]
- adds r1, r4
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r6]
- adds r1, r5
- movs r0, 0x2
- bl SetBgTilemapBuffer
- movs r1, 0x80
- lsls r1, 9
- movs r0, 0x2
- movs r2, 0x1
- bl ChangeBgX
- movs r0, 0x13
- bl ClearWindowTilemap
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C03D8:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x77
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0400
- movs r0, 0
- movs r1, 0xFF
- bl sub_81C2074
- b _081C0416
- .pool
-_081C0400:
- ldr r2, =0x000040c0
- adds r0, r1, r2
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _081C0416
- movs r0, 0xD
- bl PutWindowTilemap
-_081C0416:
- bl sub_81C2524
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C2228
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0348
-
- thumb_func_start sub_81C0434
-sub_81C0434: @ 81C0434
- push {lr}
- bl FreeAllWindowBuffers
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- bl Free
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0434
-
- thumb_func_start sub_81C044C
-sub_81C044C: @ 81C044C
- 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, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C0484
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C044C
-
- thumb_func_start sub_81C0484
-sub_81C0484: @ 81C0484
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C04EC
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081C04EC
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
- ldr r1, =gUnknown_0203CF20
- ldr r0, [r4]
- ldr r2, =0x000040be
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- bl sub_81C4898
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl StopCryAndClearCrySongs
- ldr r0, =gMPlay_BGM
- ldr r1, =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, =gMonSpritesGfxPtr
- ldr r0, [r0]
- cmp r0, 0
- bne _081C04E2
- movs r0, 0
- bl sub_806F47C
-_081C04E2:
- bl sub_81C0434
- adds r0, r5, 0
- bl DestroyTask
-_081C04EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0484
-
- thumb_func_start sub_81C0510
-sub_81C0510: @ 81C0510
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C05FE
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081C05FE
- ldr r5, =gMain
- ldrh r1, [r5, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081C0550
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_81C0604
- b _081C05FE
- .pool
-_081C0550:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081C0562
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C0604
- b _081C05FE
-_081C0562:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081C0576
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C0582
-_081C0576:
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_81C0A8C
- b _081C05FE
-_081C0582:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081C0598
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081C05A2
-_081C0598:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C0A8C
- b _081C05FE
-_081C05A2:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C05E6
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081C05FE
- cmp r0, 0
- bne _081C05D8
- bl sub_81C48F0
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81C044C
- b _081C05FE
- .pool
-_081C05D8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81C0E48
- b _081C05FE
-_081C05E6:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C05FE
- bl sub_81C48F0
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81C044C
-_081C05FE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81C0510
-
- thumb_func_start sub_81C0604
-sub_81C0604: @ 81C0604
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r4, r5, 0
- ldr r1, =gUnknown_0203CF1C
- ldr r3, [r1]
- ldr r2, =0x000040c3
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0
- bne _081C06EE
- ldr r1, =0x000040bd
- adds r0, r3, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- bne _081C0678
- adds r1, 0x3
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C0654
- lsls r1, r5, 24
- asrs r1, 24
- movs r4, 0x2
- eors r1, r2
- negs r0, r1
- orrs r0, r1
- asrs r0, 31
- ands r4, r0
- b _081C065C
- .pool
-_081C0654:
- movs r4, 0x3
- cmp r5, 0x1
- bne _081C065C
- movs r4, 0x1
-_081C065C:
- ldr r2, [r6]
- ldr r0, [r2]
- ldr r3, =0x000040be
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- adds r3, r4, 0
- bl sub_80D214C
- b _081C0696
- .pool
-_081C0678:
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C068E
- lsls r0, r5, 24
- asrs r0, 24
- bl sub_81C09B4
- b _081C0696
-_081C068E:
- lsls r0, r4, 24
- asrs r0, 24
- bl sub_81C08F8
-_081C0696:
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081C06EE
- movs r0, 0x5
- bl PlaySE
- ldr r5, =gUnknown_0203CF1C
- ldr r0, [r5]
- adds r0, 0x77
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C06D4
- movs r0, 0x2
- movs r1, 0x1
- bl sub_81C4204
- movs r0, 0xD
- bl ClearWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0
- movs r1, 0x2
- bl sub_81C2074
-_081C06D4:
- ldr r0, [r5]
- ldr r1, =0x000040be
- adds r0, r1
- movs r2, 0
- strb r4, [r0]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x8]
- ldr r1, =sub_81C0704
- str r1, [r0]
-_081C06EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0604
-
- thumb_func_start sub_81C0704
-sub_81C0704: @ 81C0704
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r6, =gTasks + 0x8
- adds r5, r4, r6
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0xC
- bls _081C071E
- b _081C08BC
-_081C071E:
- lsls r0, 2
- ldr r1, =_081C0730
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C0730:
- .4byte _081C0764
- .4byte _081C076A
- .4byte _081C0780
- .4byte _081C07A8
- .4byte _081C07C8
- .4byte _081C07E0
- .4byte _081C07F0
- .4byte _081C0800
- .4byte _081C0828
- .4byte _081C086C
- .4byte _081C0872
- .4byte _081C0878
- .4byte _081C0894
-_081C0764:
- bl StopCryAndClearCrySongs
- b _081C08EC
-_081C076A:
- bl sub_81C4898
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040d3
- b _081C0786
- .pool
-_081C0780:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040d4
-_081C0786:
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- b _081C08EC
- .pool
-_081C07A8:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81C0098
- ldr r0, [r4]
- ldr r1, =0x000040f0
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- b _081C08EC
- .pool
-_081C07C8:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C00F0
- lsls r0, 24
- cmp r0, 0
- bne _081C07DA
- b _081C08F2
-_081C07DA:
- b _081C08EC
- .pool
-_081C07E0:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C49E0
- b _081C08EC
- .pool
-_081C07F0:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- bl sub_81C4A08
- b _081C08EC
- .pool
-_081C0800:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0x77
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C0816
- movs r1, 0x2
- negs r1, r1
- movs r0, 0xA
- bl sub_81C2074
-_081C0816:
- ldr r0, [r4]
- adds r0, 0xC
- bl sub_81C2228
- movs r0, 0
- strh r0, [r5, 0x2]
- b _081C08EC
- .pool
-_081C0828:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0xC
- adds r1, r5, 0x2
- bl sub_81C45F4
- ldr r1, [r4]
- ldr r2, =0x000040d3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081C08F2
- ldr r2, =gSprites
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x32]
- bl sub_81C0E24
- movs r0, 0
- strh r0, [r5, 0x2]
- b _081C08EC
- .pool
-_081C086C:
- bl sub_81C4280
- b _081C08EC
-_081C0872:
- bl sub_81C25E8
- b _081C08EC
-_081C0878:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81C2D9C
- bl sub_81C2524
- b _081C08EC
- .pool
-_081C0894:
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040d3
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x32]
- b _081C08EC
- .pool
-_081C08BC:
- bl sub_81221EC
- lsls r0, 24
- cmp r0, 0
- bne _081C08F2
- ldr r0, =sub_81C20F0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _081C08F2
- strh r0, [r5]
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, =sub_81C0510
- str r1, [r0]
- b _081C08F2
- .pool
-_081C08EC:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_081C08F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C0704
-
- thumb_func_start sub_81C08F8
-sub_81C08F8: @ 81C08F8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0203CF1C
- ldr r2, [r1]
- ldr r7, [r2]
- ldr r3, =0x000040c0
- adds r0, r2, r3
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- bne _081C0960
- lsls r0, r4, 24
- asrs r3, r0, 24
- movs r1, 0x1
- negs r1, r1
- adds r6, r0, 0
- cmp r3, r1
- bne _081C0928
- ldr r1, =0x000040be
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C0988
-_081C0928:
- asrs r0, r6, 24
- cmp r0, 0x1
- bne _081C0940
- ldr r0, [r5]
- ldr r2, =0x000040be
- adds r1, r0, r2
- ldr r3, =0x000040bf
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcs _081C0988
-_081C0940:
- ldr r0, [r5]
- ldr r1, =0x000040be
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r4
- lsls r0, 24
- asrs r0, 24
- b _081C09AE
- .pool
-_081C0960:
- ldr r3, =0x000040be
- adds r0, r2, r3
- ldrb r5, [r0]
- lsls r6, r4, 24
-_081C0968:
- lsls r0, r5, 24
- asrs r0, 24
- asrs r1, r6, 24
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- blt _081C0988
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040bf
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- ble _081C099C
-_081C0988:
- movs r0, 0x1
- negs r0, r0
- b _081C09AE
- .pool
-_081C099C:
- movs r0, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081C0968
- adds r0, r4, 0
-_081C09AE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81C08F8
-
- thumb_func_start sub_81C09B4
-sub_81C09B4: @ 81C09B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- ldr r6, =gUnknown_0203CF1C
- ldr r0, [r6]
- ldr r1, [r0]
- mov r8, r1
- movs r5, 0
- movs r2, 0
- ldr r3, =gUnknown_0861CC1C
- movs r1, 0
- ldrsb r1, [r3, r1]
- ldr r4, =0x000040be
- adds r0, r4
- ldrb r0, [r0]
- cmp r1, r0
- beq _081C09FC
- adds r7, r3, 0
- adds r3, r4, 0
-_081C09E0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bhi _081C09FC
- adds r0, r2, r7
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldr r0, [r6]
- adds r0, r3
- ldrb r0, [r0]
- cmp r1, r0
- bne _081C09E0
- adds r5, r2, 0
-_081C09FC:
- mov r0, r12
- lsls r6, r0, 24
- ldr r7, =gUnknown_0861CC1C
-_081C0A02:
- lsls r0, r5, 24
- asrs r0, 24
- asrs r1, r6, 24
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, r5, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _081C0A40
- asrs r0, r1, 24
- adds r0, r7
- movs r4, 0
- ldrsb r4, [r0, r4]
- movs r0, 0x64
- muls r0, r4
- add r0, r8
- bl sub_81C0A50
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C0A02
- adds r0, r4, 0
- b _081C0A44
- .pool
-_081C0A40:
- movs r0, 0x1
- negs r0, r0
-_081C0A44:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81C09B4
-
- thumb_func_start sub_81C0A50
-sub_81C0A50: @ 81C0A50
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _081C0A84
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040be
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0A78
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081C0A84
-_081C0A78:
- movs r0, 0x1
- b _081C0A86
- .pool
-_081C0A84:
- movs r0, 0
-_081C0A86:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81C0A50
-
- thumb_func_start sub_81C0A8C
-sub_81C0A8C: @ 81C0A8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- str r6, [sp]
- lsls r1, 24
- lsrs r3, r1, 24
- str r3, [sp, 0x4]
- ldr r0, =gUnknown_0203CF1C
- mov r8, r0
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x70
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, =gTasks + 0x8
- mov r9, r0
- adds r0, r7, r0
- str r0, [sp, 0x8]
- ldrb r1, [r1, 0x4]
- mov r10, r1
- cmp r1, 0
- bne _081C0B6E
- lsls r0, r3, 24
- asrs r5, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r5, r0
- bne _081C0AE0
- ldr r1, =0x000040c0
- adds r0, r2, r1
- ldr r3, =0x000040c1
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _081C0B6E
-_081C0AE0:
- cmp r5, 0x1
- bne _081C0AF4
- ldr r1, =0x000040c0
- adds r0, r2, r1
- ldr r3, =0x000040c2
- adds r1, r2, r3
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _081C0B6E
-_081C0AF4:
- movs r0, 0x5
- bl PlaySE
- mov r1, r8
- ldr r0, [r1]
- ldr r4, =0x000040c0
- adds r0, r4
- ldrb r0, [r0]
- bl sub_81C2C38
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldrb r0, [r1]
- ldr r3, [sp, 0x4]
- adds r0, r3
- strb r0, [r1]
- mov r1, r10
- ldr r0, [sp, 0x8]
- strh r1, [r0]
- cmp r5, 0x1
- bne _081C0B4C
- ldr r1, =sub_81C0B8C
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r2, [r0]
- adds r0, r6, 0
- bl SetTaskFuncWithFollowupFunc
- b _081C0B5C
- .pool
-_081C0B4C:
- ldr r1, =sub_81C0CC4
- mov r0, r9
- subs r0, 0x8
- adds r0, r7, r0
- ldr r2, [r0]
- ldr r0, [sp]
- bl SetTaskFuncWithFollowupFunc
-_081C0B5C:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r2, =0x000040c0
- adds r0, r2
- ldrb r0, [r0]
- bl sub_81C2DE4
- bl sub_81C424C
-_081C0B6E:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0A8C
-
- thumb_func_start sub_81C0B8C
-sub_81C0B8C: @ 81C0B8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081C0C2A
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r3, =0x000040c9
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0BE0
- movs r0, 0x1
- strh r0, [r4, 0x2]
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- b _081C0BFE
- .pool
-_081C0BE0:
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
-_081C0BFE:
- ldrb r0, [r4, 0x2]
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- ldrb r0, [r4, 0x2]
- ldr r1, =gUnknown_0203CF1C
- ldr r1, [r1]
- ldr r3, =0x000040c0
- adds r2, r1, r3
- ldrb r2, [r2]
- lsls r2, 12
- adds r2, 0xBC
- adds r1, r2
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
-_081C0C2A:
- ldrb r0, [r4, 0x2]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x1
- bl ChangeBgX
- ldrh r0, [r4]
- adds r0, 0x20
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _081C0C52
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81C0C68
- str r0, [r1]
-_081C0C52:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0B8C
-
- thumb_func_start sub_81C0C68
-sub_81C0C68: @ 81C0C68
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- ldr r0, =gTasks + 0x8
- adds r2, r0
- ldr r5, =gUnknown_0203CF1C
- ldr r3, [r5]
- ldr r0, =0x000040c9
- adds r3, r0
- ldrb r0, [r3]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strb r0, [r3]
- strh r1, [r2, 0x2]
- strh r1, [r2]
- bl sub_81C1BA0
- ldr r0, [r5]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81C2AFC
- bl sub_81C4280
- bl sub_81C0E24
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0C68
-
- thumb_func_start sub_81C0CC4
-sub_81C0CC4: @ 81C0CC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081C0D0C
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0CFC
- movs r0, 0x2
- b _081C0CFE
- .pool
-_081C0CFC:
- movs r0, 0x1
-_081C0CFE:
- strh r0, [r4, 0x2]
- ldrb r0, [r4, 0x2]
- movs r1, 0x80
- lsls r1, 9
- movs r2, 0
- bl ChangeBgX
-_081C0D0C:
- ldrb r0, [r4, 0x2]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x2
- bl ChangeBgX
- ldrh r0, [r4]
- adds r0, 0x20
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _081C0D34
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81C0D44
- str r0, [r1]
-_081C0D34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0CC4
-
- thumb_func_start sub_81C0D44
-sub_81C0D44: @ 81C0D44
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0D8C
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- b _081C0DA6
- .pool
-_081C0D8C:
- movs r0, 0x2
- movs r1, 0x7
- movs r2, 0x1
- bl SetBgAttribute
- movs r0, 0x1
- movs r1, 0x7
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
-_081C0DA6:
- ldr r6, =gUnknown_0203CF1C
- ldr r2, [r6]
- ldr r7, =0x000040c0
- adds r1, r2, r7
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _081C0DD0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r1]
- lsls r1, 12
- ldr r3, =0xfffff0bc
- adds r1, r3
- adds r1, r2, r1
- bl SetBgTilemapBuffer
- ldrb r0, [r4, 0x2]
- movs r1, 0x80
- lsls r1, 9
- movs r2, 0
- bl ChangeBgX
-_081C0DD0:
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r2, [r6]
- ldr r0, =0x000040c9
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x1
- eors r0, r1
- movs r1, 0
- strb r0, [r2]
- strh r1, [r4, 0x2]
- strh r1, [r4]
- bl sub_81C1BA0
- ldr r0, [r6]
- adds r0, r7
- ldrb r0, [r0]
- bl sub_81C2AFC
- bl sub_81C4280
- bl sub_81C0E24
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0D44
-
- thumb_func_start sub_81C0E24
-sub_81C0E24: @ 81C0E24
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040c0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081C0E3C
- adds r0, r1, 0
- adds r0, 0xC
- bl sub_81C22CC
-_081C0E3C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0E24
-
- thumb_func_start sub_81C0E48
-sub_81C0E48: @ 81C0E48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, =gUnknown_0203CF1C
- ldr r0, [r5]
- ldr r2, =0x000040c6
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- ldr r1, [r5]
- adds r2, r1, r2
- ldrb r0, [r2]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r6, [r1]
- mov r8, r6
- movs r0, 0x13
- bl ClearWindowTilemap
- ldr r2, =gSprites
- ldr r0, [r5]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C0E96
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C0E96:
- movs r4, 0x3
- negs r4, r4
- movs r0, 0x9
- adds r1, r4, 0
- bl sub_81C1DA4
- movs r0, 0x9
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_81C1EFC
- ldr r0, [r5]
- ldr r1, =0x000040c8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C0EC4
- movs r0, 0x5
- bl ClearWindowTilemap
- movs r0, 0x6
- bl PutWindowTilemap
-_081C0EC4:
- ldr r0, [r5]
- ldr r1, =0x000020bc
- adds r0, r1
- movs r1, 0x3
- movs r2, 0
- bl sub_81C2194
- ldr r0, [r5]
- ldr r1, =0x000030bc
- adds r0, r1
- movs r1, 0x1
- movs r2, 0
- bl sub_81C2194
- mov r0, r8
- bl sub_81C3E9C
- bl sub_81C3F44
- bl sub_81C44F0
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x8
- bl sub_81C4AF8
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C0F44
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C0E48
-
- thumb_func_start sub_81C0F44
-sub_81C0F44: @ 81C0F44
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C103A
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081C0F98
- movs r0, 0x4
- strh r0, [r4]
- movs r1, 0x1
- negs r1, r1
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c6
- adds r2, r0
- adds r0, r4, 0
- bl sub_81C1070
- b _081C103A
- .pool
-_081C0F98:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081C0FC0
- movs r0, 0x4
- strh r0, [r4]
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c6
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C1070
- b _081C103A
- .pool
-_081C0FC0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C1026
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040c8
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081C0FE8
- subs r2, 0x4
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- bne _081C1004
-_081C0FE8:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81C11F4
- b _081C103A
- .pool
-_081C1004:
- bl sub_81C1040
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C101E
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl sub_81C129C
- b _081C103A
-_081C101E:
- movs r0, 0x20
- bl PlaySE
- b _081C103A
-_081C1026:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C103A
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- bl sub_81C11F4
-_081C103A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C0F44
-
- thumb_func_start sub_81C1040
-sub_81C1040: @ 81C1040
- push {lr}
- movs r1, 0x1
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0x84
-_081C104C:
- lsls r0, r1, 1
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _081C1060
- movs r0, 0x1
- b _081C106C
- .pool
-_081C1060:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _081C104C
- movs r0, 0
-_081C106C:
- pop {r1}
- bx r1
- thumb_func_end sub_81C1040
-
- thumb_func_start sub_81C1070
-sub_81C1070: @ 81C1070
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- adds r4, r1, 0
- mov r8, r2
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- mov r0, r8
- ldrb r6, [r0]
- movs r2, 0
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- movs r1, 0
- ldrsh r4, [r7, r1]
- ldrb r0, [r7]
- lsls r3, r0, 24
-_081C109C:
- lsls r0, r6, 24
- asrs r0, 24
- add r0, r12
- lsls r0, 24
- lsrs r6, r0, 24
- asrs r0, 24
- cmp r0, r4
- ble _081C10B0
- movs r6, 0
- b _081C10B6
-_081C10B0:
- cmp r0, 0
- bge _081C10B6
- lsrs r6, r3, 24
-_081C10B6:
- lsls r0, r6, 24
- asrs r1, r0, 24
- mov r9, r0
- cmp r1, 0x4
- bne _081C10C2
- b _081C11CC
-_081C10C2:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- lsls r1, 1
- adds r0, 0x84
- adds r0, r1
- ldrh r5, [r0]
- cmp r5, 0
- bne _081C10E2
- lsls r0, r2, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3
- ble _081C109C
-_081C10E2:
- adds r0, r5, 0
- bl sub_81C240C
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r5, 0
- bl sub_81C3E9C
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x4
- bne _081C1110
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _081C1118
-_081C1110:
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _081C115E
-_081C1118:
- movs r0, 0x13
- bl ClearWindowTilemap
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C1142
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C1142:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0x3
- negs r4, r4
- movs r0, 0x9
- adds r1, r4, 0
- bl sub_81C1DA4
- movs r0, 0x9
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_81C1EFC
-_081C115E:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _081C11A0
- mov r1, r9
- asrs r0, r1, 24
- cmp r0, 0x4
- bne _081C11A0
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _081C11A0
- movs r0, 0xE
- bl ClearWindowTilemap
- movs r0, 0xF
- bl ClearWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0
- movs r1, 0x3
- bl sub_81C1DA4
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- bl sub_81C1EFC
-_081C11A0:
- mov r0, r8
- strb r6, [r0]
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c6
- adds r0, r1
- cmp r8, r0
- bne _081C11E0
- movs r0, 0x8
- bl sub_81C4D18
- b _081C11E6
- .pool
-_081C11CC:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c4
- adds r0, r1
- ldrh r5, [r0]
- b _081C10E2
- .pool
-_081C11E0:
- movs r0, 0x12
- bl sub_81C4D18
-_081C11E6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C1070
-
- thumb_func_start sub_81C11F4
-sub_81C11F4: @ 81C11F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x8
- bl sub_81C4C60
- movs r0, 0x6
- bl ClearWindowTilemap
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0
- bl sub_81C3E9C
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r1, =0x000020bc
- adds r0, r1
- movs r1, 0x3
- movs r2, 0x1
- bl sub_81C2194
- ldr r0, [r4]
- ldr r1, =0x000030bc
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_81C2194
- bl sub_81C4064
- ldr r0, [r4]
- ldr r1, =0x000040c6
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _081C125E
- movs r0, 0xE
- bl ClearWindowTilemap
- movs r0, 0xF
- bl ClearWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl sub_81C1DA4
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- bl sub_81C1EFC
-_081C125E:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_81C0510
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C11F4
-
- thumb_func_start sub_81C129C
-sub_81C129C: @ 81C129C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r2, =0x000040c6
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r2, 0x1
- adds r0, r2
- strb r1, [r0]
- movs r0, 0x1
- bl sub_81C4C84
- movs r0, 0x12
- bl sub_81C4AF8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C12E4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C129C
-
- thumb_func_start sub_81C12E4
-sub_81C12E4: @ 81C12E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C13AA
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081C1338
- movs r0, 0x3
- strh r0, [r4]
- movs r1, 0x1
- negs r1, r1
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c7
- adds r2, r0
- adds r0, r4, 0
- bl sub_81C1070
- b _081C13AA
- .pool
-_081C1338:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081C1360
- movs r0, 0x3
- strh r0, [r4]
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c7
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C1070
- b _081C13AA
- .pool
-_081C1360:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C139A
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r2, =0x000040c6
- adds r1, r0, r2
- adds r2, 0x1
- adds r0, r2
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081C1390
- adds r0, r5, 0
- movs r1, 0
- bl sub_81C13B0
- b _081C13AA
- .pool
-_081C1390:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81C13B0
- b _081C13AA
-_081C139A:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C13AA
- adds r0, r6, 0
- movs r1, 0
- bl sub_81C13B0
-_081C13AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C12E4
-
- thumb_func_start sub_81C13B0
-sub_81C13B0: @ 81C13B0
- push {r4-r7,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_81C4C84
- movs r0, 0x12
- bl sub_81C4C60
- cmp r4, 0x1
- bne _081C1464
- ldr r0, =gUnknown_0203CF1C
- ldr r3, [r0]
- ldr r1, =0x000040bd
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C1410
- ldr r0, [r3]
- ldr r2, =0x000040be
- adds r1, r3, r2
- ldrb r2, [r1]
- movs r1, 0x64
- muls r1, r2
- adds r0, r1
- ldr r4, =0x000040c6
- adds r1, r3, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r3, r4
- ldrb r2, [r2]
- bl sub_81C14BC
- b _081C1430
- .pool
-_081C1410:
- ldr r0, [r3]
- ldr r2, =0x000040be
- adds r1, r3, r2
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 4
- adds r0, r1
- ldr r4, =0x000040c6
- adds r1, r3, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r3, r4
- ldrb r2, [r2]
- bl sub_81C15EC
-_081C1430:
- ldr r5, =gUnknown_0203CF1C
- ldr r0, [r5]
- adds r0, 0xC
- bl sub_81C0098
- ldr r1, [r5]
- ldr r6, =0x000040c6
- adds r0, r1, r6
- ldrb r0, [r0]
- ldr r4, =0x000040c7
- adds r1, r4
- ldrb r1, [r1]
- bl sub_81C40A0
- ldr r1, [r5]
- adds r0, r1, r6
- ldrb r0, [r0]
- adds r1, r4
- ldrb r1, [r1]
- bl sub_81C4568
- ldr r0, [r5]
- adds r4, r0, r4
- ldrb r1, [r4]
- adds r0, r6
- strb r1, [r0]
-_081C1464:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040c6
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r4, [r1]
- adds r0, r4, 0
- bl sub_81C3E9C
- adds r0, r4, 0
- bl sub_81C240C
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C0F44
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C13B0
-
- thumb_func_start sub_81C14BC
-sub_81C14BC: @ 81C14BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- adds r7, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- lsls r0, r4, 1
- mov r10, r0
- adds r1, r2, 0
- adds r1, 0x84
- adds r0, r1, r0
- str r0, [sp, 0x8]
- ldrh r0, [r0]
- mov r3, sp
- adds r3, 0x2
- str r3, [sp, 0x1C]
- strh r0, [r3]
- lsls r0, r6, 1
- mov r9, r0
- add r1, r9
- str r1, [sp, 0xC]
- ldrh r1, [r1]
- mov r0, sp
- strh r1, [r0]
- adds r1, r2, 0
- adds r1, 0x8C
- adds r3, r1, r4
- str r3, [sp, 0x10]
- ldrb r0, [r3]
- mov r3, sp
- adds r3, 0x5
- str r3, [sp, 0x24]
- strb r0, [r3]
- adds r1, r6
- str r1, [sp, 0x14]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, 0x4
- str r1, [sp, 0x20]
- strb r0, [r1]
- adds r2, 0xA4
- str r2, [sp, 0x18]
- ldrb r0, [r2]
- mov r5, sp
- adds r5, 0x6
- strb r0, [r5]
- ldr r1, =gUnknown_08329D22
- adds r0, r4, r1
- ldrb r0, [r0]
- mov r8, r0
- ldrb r0, [r5]
- adds r2, r0, 0
- mov r3, r8
- ands r2, r3
- mov r3, r10
- asrs r2, r3
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r1, [r1]
- mov r12, r1
- adds r1, r0, 0
- mov r3, r12
- ands r1, r3
- mov r3, r9
- asrs r1, r3
- lsls r1, 24
- lsrs r1, 24
- mov r3, r8
- bics r0, r3
- strb r0, [r5]
- ldrb r0, [r5]
- mov r3, r12
- bics r0, r3
- strb r0, [r5]
- mov r0, r9
- lsls r2, r0
- mov r3, r10
- lsls r1, r3
- adds r2, r1
- ldrb r0, [r5]
- orrs r0, r2
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r7, 0
- mov r2, sp
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r4, 0x11
- adds r0, r7, 0
- adds r1, r4, 0
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r6, 0x11
- adds r0, r7, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r7, 0
- movs r1, 0x15
- adds r2, r5, 0
- bl SetMonData
- mov r0, sp
- ldrh r0, [r0]
- ldr r1, [sp, 0x8]
- strh r0, [r1]
- ldr r3, [sp, 0x1C]
- ldrh r0, [r3]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
- ldr r3, [sp, 0x20]
- ldrb r0, [r3]
- ldr r1, [sp, 0x10]
- strb r0, [r1]
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- ldrb r0, [r5]
- ldr r3, [sp, 0x18]
- strb r0, [r3]
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C14BC
-
- thumb_func_start sub_81C15EC
-sub_81C15EC: @ 81C15EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- adds r7, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- lsls r0, r4, 1
- mov r10, r0
- adds r1, r2, 0
- adds r1, 0x84
- adds r0, r1, r0
- str r0, [sp, 0x8]
- ldrh r0, [r0]
- mov r3, sp
- adds r3, 0x2
- str r3, [sp, 0x1C]
- strh r0, [r3]
- lsls r0, r6, 1
- mov r9, r0
- add r1, r9
- str r1, [sp, 0xC]
- ldrh r1, [r1]
- mov r0, sp
- strh r1, [r0]
- adds r1, r2, 0
- adds r1, 0x8C
- adds r3, r1, r4
- str r3, [sp, 0x10]
- ldrb r0, [r3]
- mov r3, sp
- adds r3, 0x5
- str r3, [sp, 0x24]
- strb r0, [r3]
- adds r1, r6
- str r1, [sp, 0x14]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, 0x4
- str r1, [sp, 0x20]
- strb r0, [r1]
- adds r2, 0xA4
- str r2, [sp, 0x18]
- ldrb r0, [r2]
- mov r5, sp
- adds r5, 0x6
- strb r0, [r5]
- ldr r1, =gUnknown_08329D22
- adds r0, r4, r1
- ldrb r0, [r0]
- mov r8, r0
- ldrb r0, [r5]
- adds r2, r0, 0
- mov r3, r8
- ands r2, r3
- mov r3, r10
- asrs r2, r3
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, r1
- ldrb r1, [r1]
- mov r12, r1
- adds r1, r0, 0
- mov r3, r12
- ands r1, r3
- mov r3, r9
- asrs r1, r3
- lsls r1, 24
- lsrs r1, 24
- mov r3, r8
- bics r0, r3
- strb r0, [r5]
- ldrb r0, [r5]
- mov r3, r12
- bics r0, r3
- strb r0, [r5]
- mov r0, r9
- lsls r2, r0
- mov r3, r10
- lsls r1, r3
- adds r2, r1
- ldrb r0, [r5]
- orrs r0, r2
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r7, 0
- mov r2, sp
- bl SetBoxMonData
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r7, 0
- ldr r2, [sp, 0x1C]
- bl SetBoxMonData
- adds r4, 0x11
- adds r0, r7, 0
- adds r1, r4, 0
- ldr r2, [sp, 0x20]
- bl SetBoxMonData
- adds r6, 0x11
- adds r0, r7, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x24]
- bl SetBoxMonData
- adds r0, r7, 0
- movs r1, 0x15
- adds r2, r5, 0
- bl SetBoxMonData
- mov r0, sp
- ldrh r0, [r0]
- ldr r1, [sp, 0x8]
- strh r0, [r1]
- ldr r3, [sp, 0x1C]
- ldrh r0, [r3]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
- ldr r3, [sp, 0x20]
- ldrb r0, [r3]
- ldr r1, [sp, 0x10]
- strb r0, [r1]
- ldr r3, [sp, 0x24]
- ldrb r0, [r3]
- ldr r1, [sp, 0x14]
- strb r0, [r1]
- ldrb r0, [r5]
- ldr r3, [sp, 0x18]
- strb r0, [r3]
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C15EC
-
- thumb_func_start sub_81C171C
-sub_81C171C: @ 81C171C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_81C44F0
- movs r0, 0x8
- bl sub_81C4AF8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C174C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C171C
-
- thumb_func_start sub_81C174C
-sub_81C174C: @ 81C174C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- bl sub_81221EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C176A
- b _081C189A
-_081C176A:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081C177A
- b _081C189A
-_081C177A:
- ldr r6, =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081C17B4
- movs r0, 0x4
- strh r0, [r4]
- movs r1, 0x1
- negs r1, r1
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c6
- adds r2, r0
- adds r0, r4, 0
- bl sub_81C1070
- b _081C189A
- .pool
-_081C17B4:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081C17DC
- movs r0, 0x4
- strh r0, [r4]
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r1, =0x000040c6
- adds r2, r1
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C1070
- b _081C189A
- .pool
-_081C17DC:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081C17F0
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C17FC
-_081C17F0:
- movs r1, 0x1
- negs r1, r1
- adds r0, r5, 0
- bl sub_81C0A8C
- b _081C189A
-_081C17FC:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081C1812
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081C181C
-_081C1812:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_81C0A8C
- b _081C189A
-_081C181C:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081C1876
- bl sub_81C18A8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C1868
- bl sub_81C48F0
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gUnknown_0203CF21
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040c6
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, =gSpecialVar_0x8005
- ldrb r0, [r2]
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_81C044C
- b _081C189A
- .pool
-_081C1868:
- movs r0, 0x20
- bl PlaySE
- adds r0, r5, 0
- bl sub_81C18F4
- b _081C189A
-_081C1876:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C189A
- bl sub_81C48F0
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gUnknown_0203CF21
- movs r0, 0x4
- strb r0, [r1]
- ldr r1, =gSpecialVar_0x8005
- movs r0, 0x4
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_81C044C
-_081C189A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C174C
-
- thumb_func_start sub_81C18A8
-sub_81C18A8: @ 81C18A8
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c6
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0x4
- beq _081C18DA
- ldr r3, =0x000040c4
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _081C18DA
- ldrb r1, [r1]
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x84
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81B6D14
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C18EC
-_081C18DA:
- movs r0, 0x1
- b _081C18EE
- .pool
-_081C18EC:
- movs r0, 0
-_081C18EE:
- pop {r1}
- bx r1
- thumb_func_end sub_81C18A8
-
- thumb_func_start sub_81C18F4
-sub_81C18F4: @ 81C18F4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xE
- bl ClearWindowTilemap
- movs r0, 0xF
- bl ClearWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0
- movs r1, 0x3
- bl sub_81C1DA4
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- bl sub_81C1EFC
- bl sub_81C4154
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81C1940
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C18F4
-
- thumb_func_start sub_81C1940
-sub_81C1940: @ 81C1940
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- mov r8, r0
- ldr r0, =gTasks + 0x8
- mov r9, r0
- mov r4, r8
- add r4, r9
- ldr r0, =sub_81C1E20
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C196C
- b _081C1B74
-_081C196C:
- ldr r6, =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _081C19B0
- movs r0, 0x1
- strh r0, [r4, 0x2]
- movs r0, 0x4
- strh r0, [r4]
- movs r1, 0x1
- negs r1, r1
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r0, =0x000040c6
- adds r2, r0
- adds r0, r4, 0
- bl sub_81C1070
- movs r0, 0
- strh r0, [r4, 0x2]
- b _081C1B6A
- .pool
-_081C19B0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081C19DC
- movs r0, 0x1
- strh r0, [r4, 0x2]
- movs r0, 0x4
- strh r0, [r4]
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r1, =0x000040c6
- adds r2, r1
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C1070
- strh r5, [r4, 0x2]
- b _081C1B6A
- .pool
-_081C19DC:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _081C19F0
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C1A64
-_081C19F0:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r2, =0x000040c0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _081C1A00
- b _081C1B74
-_081C1A00:
- movs r0, 0x13
- bl ClearWindowTilemap
- ldr r2, =gSprites
- ldr r0, [r4]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C1A28
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C1A28:
- ldr r1, [r4]
- ldr r2, =0x000040c6
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r5, [r1]
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, =sub_81C174C
- str r1, [r0]
- movs r1, 0x1
- negs r1, r1
- adds r0, r7, 0
- b _081C1ACE
- .pool
-_081C1A64:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081C1A7A
- bl GetLRKeysState
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _081C1B04
-_081C1A7A:
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081C1B74
- movs r0, 0x13
- bl ClearWindowTilemap
- ldr r2, =gSprites
- ldr r0, [r4]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C1AB0
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C1AB0:
- ldr r1, [r4]
- ldr r2, =0x000040c6
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r5, [r1]
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, =sub_81C174C
- str r1, [r0]
- adds r0, r7, 0
- movs r1, 0x1
-_081C1ACE:
- bl sub_81C0A8C
- movs r4, 0x2
- negs r4, r4
- movs r0, 0x9
- adds r1, r4, 0
- bl sub_81C1DA4
- movs r0, 0x9
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_81C1EFC
- b _081C1B74
- .pool
-_081C1B04:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081C1B74
- movs r0, 0x13
- bl ClearWindowTilemap
- ldr r2, =gSprites
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C1B38
- movs r0, 0xD
- bl ClearWindowTilemap
-_081C1B38:
- ldr r1, [r4]
- ldr r2, =0x000040c6
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r5, [r1]
- adds r0, r5, 0
- bl sub_81C3E9C
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r4, 0x3
- negs r4, r4
- movs r0, 0x9
- adds r1, r4, 0
- bl sub_81C1DA4
- movs r0, 0x9
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_81C1EFC
-_081C1B6A:
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, =sub_81C174C
- str r1, [r0]
-_081C1B74:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C1940
-
- thumb_func_start sub_81C1B94
-sub_81C1B94: @ 81C1B94
- ldr r0, =gUnknown_0203CF21
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end sub_81C1B94
-
- thumb_func_start sub_81C1BA0
-sub_81C1BA0: @ 81C1BA0
- push {r4-r7,lr}
- sub sp, 0xC
- movs r0, 0x20
- bl Alloc
- adds r4, r0, 0
- movs r5, 0
-_081C1BAE:
- lsls r0, r5, 25
- lsrs r1, r0, 24
- adds r6, r1, 0
- ldr r0, =gUnknown_0203CF1C
- ldr r3, [r0]
- ldr r2, =0x000040c1
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r5, r0
- bcs _081C1BD8
- lsls r0, r1, 1
- adds r0, r4
- movs r1, 0x40
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x50
- b _081C1BEE
- .pool
-_081C1BD8:
- ldr r7, =0x000040c2
- adds r0, r3, r7
- ldrb r2, [r0]
- cmp r5, r2
- bls _081C1BF8
- lsls r0, r1, 1
- adds r0, r4
- movs r1, 0x4A
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x5A
-_081C1BEE:
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x12]
- b _081C1C78
- .pool
-_081C1BF8:
- ldr r7, =0x000040c0
- adds r0, r3, r7
- ldrb r0, [r0]
- cmp r5, r0
- bcs _081C1C1C
- lsls r1, 1
- adds r1, r4
- movs r0, 0x46
- strh r0, [r1]
- movs r0, 0x47
- strh r0, [r1, 0x2]
- movs r0, 0x56
- strh r0, [r1, 0x10]
- movs r0, 0x57
- b _081C1C76
- .pool
-_081C1C1C:
- cmp r5, r0
- bne _081C1C4C
- cmp r5, r2
- beq _081C1C38
- lsls r1, 1
- adds r1, r4
- movs r0, 0x41
- strh r0, [r1]
- movs r0, 0x42
- strh r0, [r1, 0x2]
- movs r0, 0x51
- strh r0, [r1, 0x10]
- movs r0, 0x52
- b _081C1C76
-_081C1C38:
- lsls r1, 1
- adds r1, r4
- movs r0, 0x4B
- strh r0, [r1]
- movs r0, 0x4C
- strh r0, [r1, 0x2]
- movs r0, 0x5B
- strh r0, [r1, 0x10]
- movs r0, 0x5C
- b _081C1C76
-_081C1C4C:
- cmp r5, r2
- beq _081C1C64
- lsls r1, 1
- adds r1, r4
- movs r0, 0x43
- strh r0, [r1]
- movs r0, 0x44
- strh r0, [r1, 0x2]
- movs r0, 0x53
- strh r0, [r1, 0x10]
- movs r0, 0x54
- b _081C1C76
-_081C1C64:
- lsls r1, r6, 1
- adds r1, r4
- movs r0, 0x48
- strh r0, [r1]
- movs r0, 0x49
- strh r0, [r1, 0x2]
- movs r0, 0x58
- strh r0, [r1, 0x10]
- movs r0, 0x59
-_081C1C76:
- strh r0, [r1, 0x12]
-_081C1C78:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081C1BAE
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x10
- str r0, [sp, 0x8]
- movs r0, 0x3
- adds r1, r4, 0
- movs r2, 0xB
- movs r3, 0
- bl CopyToBgTilemapBufferRect_ChangePalette
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r4, 0
- bl Free
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C1BA0
-
- thumb_func_start sub_81C1CB0
-sub_81C1CB0: @ 81C1CB0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldrb r1, [r4, 0x6]
- ldrb r0, [r4, 0x7]
- lsls r0, 1
- muls r0, r1
- bl Alloc
- adds r7, r0, 0
- mov r1, sp
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- ldrb r1, [r4, 0x7]
- ldrb r0, [r4, 0x6]
- adds r2, r1, 0
- muls r2, r0
- movs r0, 0x80
- lsls r0, 17
- orrs r2, r0
- mov r0, sp
- adds r1, r7, 0
- bl CpuSet
- ldrb r0, [r4, 0x6]
- cmp r0, r6
- beq _081C1D60
- cmp r5, 0
- bne _081C1D30
- movs r5, 0
- ldrb r0, [r4, 0x7]
- cmp r5, r0
- bcs _081C1D60
-_081C1D00:
- ldrb r2, [r4, 0x6]
- adds r1, r2, 0
- muls r1, r5
- adds r3, r6, r1
- lsls r3, 1
- ldr r0, [r4]
- adds r0, r3
- lsls r1, 1
- adds r1, r7, r1
- subs r2, r6
- ldr r3, =0x001fffff
- ands r2, r3
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r3, [r4, 0x7]
- cmp r5, r3
- bcc _081C1D00
- b _081C1D60
- .pool
-_081C1D30:
- movs r5, 0
- ldrb r0, [r4, 0x7]
- cmp r5, r0
- bcs _081C1D60
-_081C1D38:
- ldrb r2, [r4, 0x6]
- adds r1, r2, 0
- muls r1, r5
- lsls r3, r1, 1
- ldr r0, [r4]
- adds r0, r3
- adds r1, r6, r1
- lsls r1, 1
- adds r1, r7, r1
- subs r2, r6
- ldr r3, =0x001fffff
- ands r2, r3
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r3, [r4, 0x7]
- cmp r5, r3
- bcc _081C1D38
-_081C1D60:
- movs r5, 0
- b _081C1D8A
- .pool
-_081C1D68:
- ldrb r2, [r4, 0x6]
- adds r0, r2, 0
- muls r0, r5
- lsls r0, 1
- adds r0, r7, r0
- ldrb r1, [r4, 0x9]
- adds r1, r5
- lsls r1, 5
- ldrb r3, [r4, 0x8]
- adds r1, r3
- lsls r1, 1
- add r1, r8
- bl CpuSet
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_081C1D8A:
- ldrb r0, [r4, 0x7]
- cmp r5, r0
- bcc _081C1D68
- adds r0, r7, 0
- bl Free
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C1CB0
-
- thumb_func_start sub_81C1DA4
-sub_81C1DA4: @ 81C1DA4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r3, =gUnknown_0861CC04
- ldrb r2, [r3, 0x6]
- cmp r1, r2
- ble _081C1DBA
- adds r4, r2, 0
-_081C1DBA:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- beq _081C1DC6
- cmp r0, r2
- bne _081C1DE8
-_081C1DC6:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r0, =0x000020bc
- adds r1, r0
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r3, 0
- movs r3, 0x1
- bl sub_81C1CB0
- b _081C1E12
- .pool
-_081C1DE8:
- ldr r5, =sub_81C1E20
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _081C1E04
- adds r0, r5, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
-_081C1E04:
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r6, [r0, 0xA]
-_081C1E12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C1DA4
-
- thumb_func_start sub_81C1E20
-sub_81C1E20: @ 81C1E20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bge _081C1E50
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r7, =gUnknown_0861CC04
- b _081C1E60
- .pool
-_081C1E50:
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- ldr r0, =gUnknown_0861CC04
- ldrb r2, [r0, 0x6]
- adds r7, r0, 0
- cmp r1, r2
- ble _081C1E60
- strh r2, [r4, 0x2]
-_081C1E60:
- ldr r5, =gUnknown_0203CF1C
- ldr r1, [r5]
- ldr r0, =0x000020bc
- adds r1, r0
- ldrb r2, [r4, 0x2]
- adds r0, r7, 0
- movs r3, 0x1
- bl sub_81C1CB0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _081C1E80
- ldrb r7, [r7, 0x6]
- cmp r0, r7
- blt _081C1EE0
-_081C1E80:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _081C1EAC
- ldr r0, [r5]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _081C1ED4
- movs r0, 0xE
- bl PutWindowTilemap
- b _081C1ED4
- .pool
-_081C1EAC:
- ldr r2, =gSprites
- ldr r0, [r5]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C1ECE
- movs r0, 0xD
- bl PutWindowTilemap
-_081C1ECE:
- movs r0, 0x13
- bl PutWindowTilemap
-_081C1ED4:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl DestroyTask
-_081C1EE0:
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C1E20
-
- thumb_func_start sub_81C1EFC
-sub_81C1EFC: @ 81C1EFC
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r3, =gUnknown_0861CC10
- ldrb r2, [r3, 0x6]
- cmp r1, r2
- ble _081C1F16
- adds r4, r2, 0
-_081C1F16:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- beq _081C1F22
- cmp r0, r2
- bne _081C1F44
-_081C1F22:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r0, =0x000030bc
- adds r1, r0
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r3, 0
- movs r3, 0x1
- bl sub_81C1CB0
- b _081C1F70
- .pool
-_081C1F44:
- ldr r5, =sub_81C1F80
- adds r0, r5, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _081C1F60
- adds r0, r5, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
-_081C1F60:
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- strh r7, [r0, 0xA]
- strh r6, [r0, 0xC]
-_081C1F70:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C1EFC
-
- thumb_func_start sub_81C1F80
-sub_81C1F80: @ 81C1F80
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bge _081C1FB0
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r7, =gUnknown_0861CC10
- b _081C1FC0
- .pool
-_081C1FB0:
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- ldr r0, =gUnknown_0861CC10
- ldrb r2, [r0, 0x6]
- adds r7, r0, 0
- cmp r1, r2
- ble _081C1FC0
- strh r2, [r4, 0x2]
-_081C1FC0:
- ldr r5, =gUnknown_0203CF1C
- ldr r1, [r5]
- ldr r0, =0x000030bc
- adds r1, r0
- ldrb r2, [r4, 0x2]
- adds r0, r7, 0
- movs r3, 0x1
- bl sub_81C1CB0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _081C1FE0
- ldrb r7, [r7, 0x6]
- cmp r0, r7
- blt _081C2058
-_081C1FE0:
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _081C2024
- ldr r0, [r5]
- ldr r1, =0x000040c0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C2006
- ldr r0, =sub_81C0B8C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _081C2006
- movs r0, 0xF
- bl PutWindowTilemap
-_081C2006:
- ldrh r0, [r4, 0x4]
- bl sub_81C240C
- b _081C204C
- .pool
-_081C2024:
- ldr r2, =gSprites
- ldr r0, [r5]
- ldr r1, =0x000040d5
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _081C2046
- movs r0, 0xD
- bl PutWindowTilemap
-_081C2046:
- movs r0, 0x13
- bl PutWindowTilemap
-_081C204C:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- adds r0, r6, 0
- bl DestroyTask
-_081C2058:
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C1F80
-
- thumb_func_start sub_81C2074
-sub_81C2074: @ 81C2074
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r3, =gUnknown_0861CBEC
- ldrb r2, [r3, 0x6]
- cmp r1, r2
- ble _081C208A
- adds r4, r2, 0
-_081C208A:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0
- beq _081C2096
- cmp r0, r2
- bne _081C20C8
-_081C2096:
- ldr r5, =gUnknown_0203CF1C
- ldr r1, [r5]
- adds r1, 0xBC
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- adds r2, r4, 0
- movs r3, 0
- bl sub_81C1CB0
- ldr r0, =gUnknown_0861CBF8
- ldr r1, [r5]
- adds r1, 0xBC
- adds r2, r4, 0
- movs r3, 0
- bl sub_81C1CB0
- b _081C20E2
- .pool
-_081C20C8:
- ldr r0, =sub_81C20F0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- strh r5, [r1, 0xA]
-_081C20E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2074
-
- thumb_func_start sub_81C20F0
-sub_81C20F0: @ 81C20F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldrh r0, [r5]
- ldrh r1, [r5, 0x2]
- adds r0, r1
- strh r0, [r5, 0x2]
- lsls r0, 16
- cmp r0, 0
- bge _081C2120
- movs r0, 0
- strh r0, [r5, 0x2]
- ldr r7, =gUnknown_0861CBEC
- b _081C2130
- .pool
-_081C2120:
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- ldr r0, =gUnknown_0861CBEC
- ldrb r2, [r0, 0x6]
- adds r7, r0, 0
- cmp r1, r2
- ble _081C2130
- strh r2, [r5, 0x2]
-_081C2130:
- ldr r4, =gUnknown_0203CF1C
- ldr r1, [r4]
- adds r1, 0xBC
- ldrb r2, [r5, 0x2]
- adds r0, r7, 0
- movs r3, 0
- bl sub_81C1CB0
- ldr r0, =gUnknown_0861CBF8
- ldr r1, [r4]
- adds r1, 0xBC
- ldrb r2, [r5, 0x2]
- movs r3, 0
- bl sub_81C1CB0
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- ble _081C2162
- ldrb r7, [r7, 0x6]
- cmp r0, r7
- blt _081C2180
-_081C2162:
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _081C217A
- bl sub_81C4A88
- movs r0, 0xD
- bl PutWindowTilemap
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
-_081C217A:
- adds r0, r6, 0
- bl DestroyTask
-_081C2180:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C20F0
-
- thumb_func_start sub_81C2194
-sub_81C2194: @ 81C2194
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r2, 24
- lsls r1, 28
- lsrs r4, r1, 16
- ldr r7, =0x0000056a
- cmp r2, 0
- bne _081C21E4
- movs r3, 0
- ldr r5, =gUnknown_08DC3CD4
-_081C21A8:
- adds r2, r7, r3
- lsls r2, 1
- adds r2, r6
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r2]
- adds r0, r2, 0
- adds r0, 0x40
- strh r1, [r0]
- adds r2, 0x80
- adds r0, r3, 0
- adds r0, 0x14
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _081C21A8
- b _081C221C
- .pool
-_081C21E4:
- movs r3, 0
- ldr r5, =gUnknown_08DC3CD4
-_081C21E8:
- adds r1, r7, r3
- lsls r1, 1
- adds r1, r6
- adds r0, r3, 0
- adds r0, 0x14
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r1]
- adds r2, r1, 0
- adds r2, 0x40
- adds r0, r3, 0
- adds r0, 0x28
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- adds r0, r4, r0
- strh r0, [r2]
- adds r1, 0x80
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x13
- bls _081C21E8
-_081C221C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2194
-
- thumb_func_start sub_81C2228
-sub_81C2228: @ 81C2228
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- bne _081C225C
- adds r0, r4, 0
- movs r1, 0
- bl CheckPartyHasHadPokerus
- lsls r0, 24
- cmp r0, 0
- beq _081C225C
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r2, =0x00000502
- adds r1, r0, r2
- movs r2, 0x2C
- b _081C2266
- .pool
-_081C225C:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r2, =0x00000502
- adds r1, r0, r2
- ldr r2, =0x0000081a
-_081C2266:
- strh r2, [r1]
- ldr r1, =0x00000d02
- adds r0, r1
- strh r2, [r0]
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2228
-
- thumb_func_start sub_81C228C
-sub_81C228C: @ 81C228C
- push {lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081C22AC
- movs r0, 0x8
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0x8
- bl sub_8199C30
- b _081C22C0
-_081C22AC:
- movs r0, 0x8
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x4
- movs r3, 0x8
- bl sub_8199C30
-_081C22C0:
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_81C228C
-
- thumb_func_start sub_81C22CC
-sub_81C22CC: @ 81C22CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- adds r6, r1, 0
- adds r6, 0x70
- ldrb r1, [r6, 0x5]
- mov r8, r0
- cmp r1, 0x63
- bhi _081C2340
- ldr r5, =gExperienceTables
- adds r2, r1, 0
- adds r1, r2, 0x1
- lsls r1, 2
- ldr r4, =gBaseStats
- ldrh r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r3, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r3
- adds r1, r0
- adds r1, r5
- lsls r2, 2
- adds r2, r0
- adds r2, r5
- ldr r1, [r1]
- ldr r2, [r2]
- subs r1, r2
- ldr r0, [r6, 0x10]
- subs r4, r0, r2
- lsls r0, r4, 6
- bl __udivsi3
- adds r6, r0, 0
- movs r7, 0
- adds r0, r7, 0
- orrs r0, r6
- cmp r0, 0
- bne _081C2344
- cmp r4, 0
- beq _081C2344
- movs r6, 0x1
- movs r7, 0
- b _081C2344
- .pool
-_081C2340:
- movs r6, 0
- movs r7, 0
-_081C2344:
- mov r1, r8
- ldr r0, [r1]
- ldr r2, =0x00001d66
- adds r2, r0
- mov r9, r2
- movs r0, 0
- mov r12, r0
- ldr r1, =0x00002062
- mov r10, r1
-_081C2356:
- cmp r7, 0
- bgt _081C2362
- cmp r7, 0
- bne _081C237C
- cmp r6, 0x7
- bls _081C237C
-_081C2362:
- mov r2, r12
- lsls r0, r2, 1
- add r0, r9
- ldr r2, =0x0000206a
- adds r1, r2, 0
- strh r1, [r0]
- b _081C23B6
- .pool
-_081C237C:
- mov r1, r12
- lsls r0, r1, 1
- add r0, r9
- mov r8, r0
- adds r5, r7, 0
- adds r4, r6, 0
- cmp r7, 0
- bge _081C2394
- movs r4, 0x7
- movs r5, 0
- adds r4, r6
- adcs r5, r7
-_081C2394:
- lsls r3, r5, 29
- lsrs r2, r4, 3
- adds r0, r3, 0
- orrs r0, r2
- asrs r1, r5, 3
- lsrs r5, r0, 29
- lsls r4, r1, 3
- adds r3, r5, 0
- orrs r3, r4
- lsls r2, r0, 3
- adds r1, r7, 0
- adds r0, r6, 0
- subs r0, r2
- sbcs r1, r3
- add r0, r10
- mov r2, r8
- strh r0, [r2]
-_081C23B6:
- movs r0, 0x8
- negs r0, r0
- asrs r1, r0, 31
- adds r6, r0
- adcs r7, r1
- cmp r7, 0
- bge _081C23C8
- movs r6, 0
- movs r7, 0
-_081C23C8:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x7
- bls _081C2356
- movs r0, 0x1
- bl GetBgTilemapBuffer
- ldr r1, =gUnknown_0203CF1C
- ldr r1, [r1]
- ldr r2, =0x000010bc
- adds r1, r2
- cmp r0, r1
- bne _081C23F8
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- b _081C23FE
- .pool
-_081C23F8:
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
-_081C23FE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81C22CC
-
- thumb_func_start sub_81C240C
-sub_81C240C: @ 81C240C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000038bc
- adds r5, r0, r1
- cmp r3, 0
- beq _081C2510
- ldr r1, =gContestEffects
- ldr r2, =gContestMoves
- lsls r3, 3
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x1]
- mov r9, r1
- mov r8, r2
- mov r10, r3
- cmp r4, 0xFF
- beq _081C244C
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_081C244C:
- movs r2, 0
- movs r6, 0x3
- movs r3, 0xF3
- lsls r3, 2
-_081C2454:
- cmp r4, 0xFF
- beq _081C2484
- cmp r2, r4
- bcs _081C2484
- lsrs r0, r2, 2
- adds r1, r2, 0
- ands r1, r6
- lsls r0, 5
- adds r0, r1
- lsls r0, 1
- adds r0, r5
- adds r0, r3
- ldr r7, =0x0000103a
- b _081C2496
- .pool
-_081C2484:
- lsrs r0, r2, 2
- adds r1, r2, 0
- ands r1, r6
- lsls r0, 5
- adds r0, r1
- lsls r0, 1
- adds r0, r5
- adds r0, r3
- ldr r7, =0x00001039
-_081C2496:
- adds r1, r7, 0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081C2454
- mov r0, r10
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r9
- ldrb r4, [r0, 0x2]
- cmp r4, 0xFF
- beq _081C24C0
- adds r0, r4, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 24
-_081C24C0:
- movs r2, 0
- movs r6, 0x3
- ldr r3, =0x0000044c
-_081C24C6:
- cmp r4, 0xFF
- beq _081C24F0
- cmp r2, r4
- bcs _081C24F0
- lsrs r0, r2, 2
- adds r1, r2, 0
- ands r1, r6
- lsls r0, 5
- adds r0, r1
- lsls r0, 1
- adds r0, r5
- adds r0, r3
- ldr r7, =0x0000103c
- b _081C2502
- .pool
-_081C24F0:
- lsrs r0, r2, 2
- adds r1, r2, 0
- ands r1, r6
- lsls r0, 5
- adds r0, r1
- lsls r0, 1
- adds r0, r5
- adds r0, r3
- ldr r7, =0x0000103d
-_081C2502:
- adds r1, r7, 0
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _081C24C6
-_081C2510:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C240C
-
- thumb_func_start sub_81C2524
-sub_81C2524: @ 81C2524
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C2544
- movs r1, 0x80
- lsls r1, 9
- movs r0, 0x3
- movs r2, 0
- bl ChangeBgX
- b _081C254E
- .pool
-_081C2544:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
-_081C254E:
- pop {r0}
- bx r0
- thumb_func_end sub_81C2524
-
- thumb_func_start sub_81C2554
-sub_81C2554: @ 81C2554
- push {r4,r5,lr}
- ldr r0, =gUnknown_0861CC24
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r4, 0
-_081C2562:
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081C2562
- movs r4, 0
- ldr r5, =gUnknown_0203CF1C
- ldr r3, =0x000040cb
- movs r2, 0xFF
-_081C257C:
- ldr r0, [r5]
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081C257C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2554
-
- thumb_func_start sub_81C25A4
-sub_81C25A4: @ 81C25A4
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r4, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0
- str r6, [sp]
- str r4, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_0861CD2C
- adds r4, r5
- str r4, [sp, 0x8]
- str r6, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- bl AddTextPrinterParametrized2
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C25A4
-
- thumb_func_start sub_81C25E8
-sub_81C25E8: @ 81C25E8
- push {lr}
- movs r0, 0x11
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x12
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x13
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C2618
- bl sub_81C2628
- b _081C261C
- .pool
-_081C2618:
- bl sub_81C2794
-_081C261C:
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r0}
- bx r0
- thumb_func_end sub_81C25E8
-
- thumb_func_start sub_81C2628
-sub_81C2628: @ 81C2628
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x18
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- movs r1, 0xC
- adds r1, r0
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0x70
- ldrh r0, [r7]
- bl SpeciesToPokedexNum
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, =0x0000ffff
- cmp r5, r0
- beq _081C26CE
- ldr r6, =gStringVar1
- ldr r1, =gText_UnkCtrlF908Clear01
- adds r0, r6, 0
- bl StringCopy
- ldr r4, =gStringVar2
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringAppend
- mov r0, r8
- bl IsMonShiny
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _081C26AC
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x11
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- movs r0, 0
- bl sub_81C228C
- b _081C26C6
- .pool
-_081C26AC:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0x11
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- movs r0, 0x1
- bl sub_81C228C
-_081C26C6:
- movs r0, 0x11
- bl PutWindowTilemap
- b _081C26EE
-_081C26CE:
- movs r0, 0x11
- bl ClearWindowTilemap
- mov r0, r8
- bl IsMonShiny
- lsls r0, 24
- cmp r0, 0
- bne _081C26E8
- movs r0, 0
- bl sub_81C228C
- b _081C26EE
-_081C26E8:
- movs r0, 0x1
- bl sub_81C228C
-_081C26EE:
- ldr r4, =gStringVar1
- ldr r1, =gText_LevelSymbol
- adds r0, r4, 0
- bl StringCopy
- ldr r5, =gStringVar2
- ldrb r1, [r7, 0x5]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- adds r1, r5, 0
- bl StringAppend
- movs r6, 0
- str r6, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- movs r0, 0x13
- adds r1, r4, 0
- movs r2, 0x18
- movs r3, 0x11
- bl sub_81C25A4
- mov r0, r8
- adds r1, r4, 0
- bl GetMonNickname
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- add r1, sp, 0x8
- movs r0, 0xBA
- strb r0, [r1]
- mov r0, sp
- adds r0, 0x9
- ldrh r2, [r7, 0x2]
- movs r1, 0xB
- muls r1, r2
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringCopy
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x13
- add r1, sp, 0x8
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldrh r1, [r7, 0x2]
- mov r0, r8
- bl sub_81C27DC
- movs r0, 0x12
- bl PutWindowTilemap
- movs r0, 0x13
- bl PutWindowTilemap
- add sp, 0x18
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2628
-
- thumb_func_start sub_81C2794
-sub_81C2794: @ 81C2794
- push {r4,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0xC
- ldr r4, =gStringVar1
- adds r1, r4, 0
- bl GetMonNickname
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x12
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- movs r0, 0x12
- bl PutWindowTilemap
- movs r0, 0x11
- bl ClearWindowTilemap
- movs r0, 0x13
- bl ClearWindowTilemap
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2794
-
- thumb_func_start sub_81C27DC
-sub_81C27DC: @ 81C27DC
- push {lr}
- sub sp, 0x8
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0x20
- beq _081C282C
- cmp r1, 0x1D
- beq _081C282C
- bl GetMonGender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081C27FE
- cmp r0, 0xFE
- beq _081C2818
- b _081C282C
-_081C27FE:
- ldr r1, =gText_MaleSymbol
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x13
- movs r2, 0x39
- movs r3, 0x11
- bl sub_81C25A4
- b _081C282C
- .pool
-_081C2818:
- ldr r1, =gText_FemaleSymbol
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0x13
- movs r2, 0x39
- movs r3, 0x11
- bl sub_81C25A4
-_081C282C:
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C27DC
-
- thumb_func_start sub_81C2838
-sub_81C2838: @ 81C2838
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- ldr r3, =gUnknown_0861CDD3
- cmp r1, 0
- bne _081C284A
- subs r3, 0x80
-_081C284A:
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x10
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r1, r3, 0
- movs r3, 0
- bl BlitBitmapToWindow
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2838
-
- thumb_func_start sub_81C286C
-sub_81C286C: @ 81C286C
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r1, =gText_PkmnInfo
- movs r5, 0
- str r5, [sp]
- movs r6, 0x1
- str r6, [sp, 0x4]
- movs r0, 0
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_PkmnSkills
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_BattleMoves
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x2
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_ContestMoves
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x3
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- ldr r7, =gText_Cancel2
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x3E
- bl GetStringRightAlignXOffset
- adds r4, r0, 0
- adds r2, r4, 0
- subs r2, 0x10
- cmp r2, 0
- bge _081C28CC
- movs r2, 0
-_081C28CC:
- movs r0, 0x4
- movs r1, 0
- bl sub_81C2838
- lsls r2, r4, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x4
- adds r1, r7, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r7, =gText_Info
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x3E
- bl GetStringRightAlignXOffset
- adds r4, r0, 0
- adds r2, r4, 0
- subs r2, 0x10
- cmp r2, 0
- bge _081C28FE
- movs r2, 0
-_081C28FE:
- movs r0, 0x5
- movs r1, 0
- bl sub_81C2838
- lsls r2, r4, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x5
- adds r1, r7, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r7, =gText_Switch
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x3E
- bl GetStringRightAlignXOffset
- adds r4, r0, 0
- adds r2, r4, 0
- subs r2, 0x10
- cmp r2, 0
- bge _081C2930
- movs r2, 0
-_081C2930:
- movs r0, 0x6
- movs r1, 0
- bl sub_81C2838
- lsls r2, r4, 24
- lsrs r2, 24
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x6
- adds r1, r7, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_RentalPkmn
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_TypeSlash
- str r5, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x9
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r4, =gText_HP4
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2A
- bl GetStringCenterAlignXOffset
- adds r0, 0x6
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xA
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r4, =gText_Attack3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2A
- bl GetStringCenterAlignXOffset
- adds r0, 0x6
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xA
- adds r1, r4, 0
- movs r3, 0x11
- bl sub_81C25A4
- ldr r4, =gText_Defense3
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2A
- bl GetStringCenterAlignXOffset
- adds r0, 0x6
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xA
- adds r1, r4, 0
- movs r3, 0x21
- bl sub_81C25A4
- ldr r4, =gText_SpAtk4
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x24
- bl GetStringCenterAlignXOffset
- adds r0, 0x2
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xB
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r4, =gText_SpDef4
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x24
- bl GetStringCenterAlignXOffset
- adds r0, 0x2
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xB
- adds r1, r4, 0
- movs r3, 0x11
- bl sub_81C25A4
- ldr r4, =gText_Speed2
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x24
- bl GetStringCenterAlignXOffset
- adds r0, 0x2
- lsls r2, r0, 24
- lsrs r2, 24
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xB
- adds r1, r4, 0
- movs r3, 0x21
- bl sub_81C25A4
- ldr r1, =gText_ExpPoints
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xC
- movs r2, 0x6
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_NextLv
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xC
- movs r2, 0x6
- movs r3, 0x11
- bl sub_81C25A4
- ldr r1, =gText_Status
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xD
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_Power
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xE
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_Accuracy2
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xE
- movs r2, 0
- movs r3, 0x11
- bl sub_81C25A4
- ldr r1, =gText_Appeal
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xF
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_Jam
- str r5, [sp]
- str r6, [sp, 0x4]
- movs r0, 0xF
- movs r2, 0
- movs r3, 0x11
- bl sub_81C25A4
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C286C
-
- thumb_func_start sub_81C2AFC
-sub_81C2AFC: @ 81C2AFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0x1
- bl ClearWindowTilemap
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x3
- bl ClearWindowTilemap
- cmp r4, 0x1
- beq _081C2B66
- cmp r4, 0x1
- bgt _081C2B2A
- cmp r4, 0
- beq _081C2B34
- b _081C2C06
-_081C2B2A:
- cmp r5, 0x2
- beq _081C2B80
- cmp r5, 0x3
- beq _081C2BC4
- b _081C2C06
-_081C2B34:
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x4
- bl PutWindowTilemap
- bl sub_81A6BF4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2B58
- bl sub_81B9E94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C2B5E
-_081C2B58:
- movs r0, 0x8
- bl PutWindowTilemap
-_081C2B5E:
- movs r0, 0x9
- bl PutWindowTilemap
- b _081C2C06
-_081C2B66:
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0xA
- bl PutWindowTilemap
- movs r0, 0xB
- bl PutWindowTilemap
- movs r0, 0xC
- bl PutWindowTilemap
- b _081C2C06
-_081C2B80:
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C2BBC
- adds r2, 0x8
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C2C06
- movs r0, 0xE
- bl PutWindowTilemap
- b _081C2C06
- .pool
-_081C2BBC:
- movs r0, 0x5
- bl PutWindowTilemap
- b _081C2C06
-_081C2BC4:
- movs r0, 0x3
- bl PutWindowTilemap
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C2C00
- adds r2, 0x8
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C2C06
- movs r0, 0xF
- bl PutWindowTilemap
- b _081C2C06
- .pool
-_081C2C00:
- movs r0, 0x5
- bl PutWindowTilemap
-_081C2C06:
- movs r4, 0
- ldr r5, =gUnknown_0203CF1C
-_081C2C0A:
- ldr r0, [r5]
- ldr r1, =0x000040cb
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- bl PutWindowTilemap
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081C2C0A
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2AFC
-
- thumb_func_start sub_81C2C38
-sub_81C2C38: @ 81C2C38
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _081C2C84
- cmp r0, 0x1
- bgt _081C2C4E
- cmp r0, 0
- beq _081C2C58
- b _081C2D0E
-_081C2C4E:
- cmp r1, 0x2
- beq _081C2C98
- cmp r1, 0x3
- beq _081C2CD4
- b _081C2D0E
-_081C2C58:
- movs r0, 0x4
- bl ClearWindowTilemap
- bl sub_81A6BF4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2C76
- bl sub_81B9E94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C2C7C
-_081C2C76:
- movs r0, 0x8
- bl ClearWindowTilemap
-_081C2C7C:
- movs r0, 0x9
- bl ClearWindowTilemap
- b _081C2D0E
-_081C2C84:
- movs r0, 0xA
- bl ClearWindowTilemap
- movs r0, 0xB
- bl ClearWindowTilemap
- movs r0, 0xC
- bl ClearWindowTilemap
- b _081C2D0E
-_081C2C98:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C2CCC
- adds r2, 0x8
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C2D0E
- movs r0, 0xE
- bl ClearWindowTilemap
- b _081C2D0E
- .pool
-_081C2CCC:
- movs r0, 0x5
- bl ClearWindowTilemap
- b _081C2D0E
-_081C2CD4:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C2D08
- adds r2, 0x8
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C2D0E
- movs r0, 0xF
- bl ClearWindowTilemap
- b _081C2D0E
- .pool
-_081C2D08:
- movs r0, 0x5
- bl ClearWindowTilemap
-_081C2D0E:
- movs r4, 0
-_081C2D10:
- adds r0, r4, 0
- bl sub_81C2D68
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081C2D10
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C2C38
-
- thumb_func_start sub_81C2D2C
-sub_81C2D2C: @ 81C2D2C
- push {r4,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- ldr r0, =gUnknown_0203CF1C
- ldr r4, =0x000040cb
- adds r1, r2, r4
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081C2D56
- lsls r0, r2, 3
- adds r0, r3, r0
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- movs r1, 0
- bl FillWindowPixelBuffer
-_081C2D56:
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81C2D2C
-
- thumb_func_start sub_81C2D68
-sub_81C2D68: @ 81C2D68
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203CF1C
- ldr r2, =0x000040cb
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- ldrb r0, [r4]
- cmp r0, 0xFF
- beq _081C2D8C
- bl ClearWindowTilemap
- ldrb r0, [r4]
- bl RemoveWindow
- movs r0, 0xFF
- strb r0, [r4]
-_081C2D8C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2D68
-
- thumb_func_start sub_81C2D9C
-sub_81C2D9C: @ 81C2D9C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081C2DA4:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040cb
- adds r0, r1
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _081C2DBA
- movs r1, 0
- bl FillWindowPixelBuffer
-_081C2DBA:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x7
- bls _081C2DA4
- ldr r0, =gUnknown_0861CE54
- lsls r1, r5, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2D9C
-
- thumb_func_start sub_81C2DE4
-sub_81C2DE4: @ 81C2DE4
- push {lr}
- lsls r0, 24
- ldr r1, =gUnknown_0861CE64
- lsrs r0, 22
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2DE4
-
- thumb_func_start sub_81C2E00
-sub_81C2E00: @ 81C2E00
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x74
- ldrb r0, [r0]
- cmp r0, 0
- beq _081C2E24
- bl sub_81C335C
- bl sub_81C33CC
- bl sub_81C3428
- bl sub_81C349C
- b _081C2E3C
- .pool
-_081C2E24:
- bl sub_81C2EC4
- bl sub_81C2F5C
- bl sub_81C2FD8
- bl sub_81C302C
- bl sub_81C307C
- bl sub_81C3194
-_081C2E3C:
- pop {r0}
- bx r0
- thumb_func_end sub_81C2E00
-
- thumb_func_start sub_81C2E40
-sub_81C2E40: @ 81C2E40
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bhi _081C2EB8
- lsls r0, 2
- ldr r1, =_081C2E70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C2E70:
- .4byte _081C2E8C
- .4byte _081C2E92
- .4byte _081C2E98
- .4byte _081C2E9E
- .4byte _081C2EA4
- .4byte _081C2EAA
- .4byte _081C2EB0
-_081C2E8C:
- bl sub_81C2EC4
- b _081C2EB8
-_081C2E92:
- bl sub_81C2F5C
- b _081C2EB8
-_081C2E98:
- bl sub_81C2FD8
- b _081C2EB8
-_081C2E9E:
- bl sub_81C302C
- b _081C2EB8
-_081C2EA4:
- bl sub_81C307C
- b _081C2EB8
-_081C2EAA:
- bl sub_81C3194
- b _081C2EB8
-_081C2EB0:
- adds r0, r2, 0
- bl DestroyTask
- b _081C2EBE
-_081C2EB8:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081C2EBE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C2E40
-
- thumb_func_start sub_81C2EC4
-sub_81C2EC4: @ 81C2EC4
- push {r4-r6,lr}
- sub sp, 0x8
- bl sub_81A6BF4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2F54
- bl sub_81B9E94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2F54
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gText_OTSlash
- movs r6, 0
- str r6, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- adds r2, r0, 0
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xA2
- ldrb r0, [r0]
- cmp r0, 0
- bne _081C2F40
- adds r1, 0xA6
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r3, 0x1
- bl sub_81C25A4
- b _081C2F54
- .pool
-_081C2F40:
- adds r1, 0xA6
- lsls r2, 24
- lsrs r2, 24
- str r6, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r3, 0x1
- bl sub_81C25A4
-_081C2F54:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81C2EC4
-
- thumb_func_start sub_81C2F5C
-sub_81C2F5C: @ 81C2F5C
- push {r4,r5,lr}
- sub sp, 0x8
- bl sub_81A6BF4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2FC0
- bl sub_81B9E94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C2FC0
- ldr r5, =gStringVar1
- ldr r1, =gText_UnkCtrlF907F908
- adds r0, r5, 0
- bl StringCopy
- ldr r1, =gUnknown_0203CF1C
- ldr r1, [r1]
- adds r1, 0xB8
- ldrh r1, [r1]
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x38
- bl GetStringRightAlignXOffset
- adds r4, r0, 0
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x1
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
-_081C2FC0:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2F5C
-
- thumb_func_start sub_81C2FD8
-sub_81C2FD8: @ 81C2FD8
- push {r4,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r0, [r0]
- adds r1, 0x78
- ldrb r1, [r1]
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x2
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- muls r1, r4
- ldr r2, =gAbilityNames
- adds r1, r2
- movs r2, 0
- str r2, [sp]
- movs r2, 0x1
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C2FD8
-
- thumb_func_start sub_81C302C
-sub_81C302C: @ 81C302C
- push {r4,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x70
- ldrh r0, [r0]
- adds r1, 0x78
- ldrb r1, [r1]
- bl GetAbilityBySpecies
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x2
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gAbilityDescriptionPointers
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- movs r2, 0
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r3, 0x11
- bl sub_81C25A4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C302C
-
- thumb_func_start sub_81C307C
-sub_81C307C: @ 81C307C
- push {r4-r6,lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0x70
- bl sub_81AFBF0
- ldr r1, =gUnknown_0861CE74
- movs r0, 0
- bl sub_81AFC0C
- ldr r1, =gUnknown_0861CE7B
- movs r0, 0x1
- bl sub_81AFC0C
- bl sub_81C31C0
- bl sub_81A6BF4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C30C2
- bl sub_81B9E94
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081C30C2
- bl sub_81C3304
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C30E0
-_081C30C2:
- ldr r0, =gStringVar4
- ldr r1, =gText_XNature
- bl sub_81AFC28
- b _081C3182
- .pool
-_081C30E0:
- movs r0, 0x20
- bl Alloc
- adds r6, r0, 0
- movs r0, 0x20
- bl Alloc
- adds r5, r0, 0
- adds r0, r6, 0
- bl sub_81C31F0
- ldrb r0, [r4, 0x9]
- cmp r0, 0xD4
- bhi _081C310C
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8124610
- movs r0, 0x4
- adds r1, r5, 0
- bl sub_81AFC0C
-_081C310C:
- bl sub_81C3220
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C3148
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _081C3134
- ldrb r0, [r4, 0x9]
- ldr r1, =gText_XNatureHatchedAtYZ
- cmp r0, 0xD4
- bls _081C3170
- ldr r1, =gText_XNatureHatchedSomewhereAt
- b _081C3170
- .pool
-_081C3134:
- ldrb r0, [r4, 0x9]
- ldr r1, =gText_XNatureMetAtYZ
- cmp r0, 0xD4
- bls _081C3170
- ldr r1, =gText_XNatureMetSomewhereAt
- b _081C3170
- .pool
-_081C3148:
- ldrb r0, [r4, 0x9]
- cmp r0, 0xFF
- bne _081C3158
- ldr r1, =gText_XNatureFatefulEncounter
- b _081C3170
- .pool
-_081C3158:
- cmp r0, 0xFE
- beq _081C316E
- bl sub_81C32BC
- lsls r0, 24
- cmp r0, 0
- beq _081C316E
- ldrb r0, [r4, 0x9]
- ldr r1, =gText_XNatureProbablyMetAt
- cmp r0, 0xD4
- bls _081C3170
-_081C316E:
- ldr r1, =gText_XNatureObtainedInTrade
-_081C3170:
- ldr r0, =gStringVar4
- bl sub_81AFC28
- adds r0, r6, 0
- bl Free
- adds r0, r5, 0
- bl Free
-_081C3182:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C307C
-
- thumb_func_start sub_81C3194
-sub_81C3194: @ 81C3194
- push {lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x3
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar4
- movs r2, 0
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3194
-
- thumb_func_start sub_81C31C0
-sub_81C31C0: @ 81C31C0
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =gNatureNamePointers
- adds r0, 0xA3
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x2
- bl sub_81AFC0C
- ldr r1, =gText_EmptyString5
- movs r0, 0x5
- bl sub_81AFC0C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C31C0
-
- thumb_func_start sub_81C31F0
-sub_81C31F0: @ 81C31F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x7A
- ldrb r1, [r0]
- cmp r1, 0
- bne _081C3202
- movs r1, 0x5
-_081C3202:
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x3
- adds r1, r4, 0
- bl sub_81AFC0C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C31F0
-
- thumb_func_start sub_81C3220
-sub_81C3220: @ 81C3220
- push {r4-r6,lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r6, r0, 0
- adds r6, 0x70
- ldr r1, [r0]
- ldr r0, =gEnemyParty
- cmp r1, r0
- bne _081C326C
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gLinkPlayers
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldrh r4, [r0]
- adds r0, r1, r2
- ldrb r5, [r0, 0x13]
- ldr r0, =gStringVar1
- adds r2, 0x8
- adds r1, r2
- bl StringCopy
- b _081C3282
- .pool
-_081C326C:
- bl GetPlayerIDAsU32
- adds r4, r0, 0
- ldr r0, =0x0000ffff
- ands r4, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r5, [r1, 0x8]
- ldr r0, =gStringVar1
- bl StringCopy
-_081C3282:
- adds r0, r6, 0
- adds r0, 0x32
- ldrb r0, [r0]
- cmp r5, r0
- bne _081C32A4
- ldr r0, [r6, 0x48]
- ldr r1, =0x0000ffff
- ands r0, r1
- cmp r4, r0
- bne _081C32A4
- ldr r0, =gStringVar1
- adds r1, r6, 0
- adds r1, 0x36
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _081C32B4
-_081C32A4:
- movs r0, 0
- b _081C32B6
- .pool
-_081C32B4:
- movs r0, 0x1
-_081C32B6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81C3220
-
- thumb_func_start sub_81C32BC
-sub_81C32BC: @ 81C32BC
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x70
- ldrb r0, [r0, 0xB]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _081C32D8
- movs r0, 0
- b _081C32DA
- .pool
-_081C32D8:
- movs r0, 0x1
-_081C32DA:
- pop {r1}
- bx r1
- thumb_func_end sub_81C32BC
-
- thumb_func_start sub_81C32E0
-sub_81C32E0: @ 81C32E0
- push {lr}
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r0, 0x70
- ldrb r0, [r0, 0xB]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _081C32FC
- movs r0, 0
- b _081C32FE
- .pool
-_081C32FC:
- movs r0, 0x1
-_081C32FE:
- pop {r1}
- bx r1
- thumb_func_end sub_81C32E0
-
- thumb_func_start sub_81C3304
-sub_81C3304: @ 81C3304
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 15
- ands r0, r1
- cmp r0, 0
- beq _081C3354
- ldr r0, =gMain
- ldr r1, =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081C3354
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040be
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081C333A
- cmp r0, 0x4
- beq _081C333A
- cmp r0, 0x5
- bne _081C3354
-_081C333A:
- movs r0, 0x1
- b _081C3356
- .pool
-_081C3354:
- movs r0, 0
-_081C3356:
- pop {r1}
- bx r1
- thumb_func_end sub_81C3304
-
- thumb_func_start sub_81C335C
-sub_81C335C: @ 81C335C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0
- bl sub_81C2D2C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gText_OTSlash
- mov r8, r0
- movs r0, 0x1
- mov r1, r8
- movs r2, 0
- bl GetStringWidth
- adds r5, r0, 0
- movs r0, 0
- mov r9, r0
- str r0, [sp]
- movs r6, 0x1
- str r6, [sp, 0x4]
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gText_FiveMarks
- lsls r5, 24
- lsrs r5, 24
- mov r0, r9
- str r0, [sp]
- str r6, [sp, 0x4]
- adds r0, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C335C
-
- thumb_func_start sub_81C33CC
-sub_81C33CC: @ 81C33CC
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r5, =gStringVar1
- ldr r1, =gText_UnkCtrlF907F908
- adds r0, r5, 0
- bl StringCopy
- ldr r1, =gText_FiveMarks
- adds r0, r5, 0
- bl StringAppend
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x38
- bl GetStringRightAlignXOffset
- adds r4, r0, 0
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x1
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C33CC
-
- thumb_func_start sub_81C3428
-sub_81C3428: @ 81C3428
- push {r4,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x70
- adds r0, 0xA5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081C3448
- ldr r4, =gText_EggWillTakeALongTime
- b _081C346C
- .pool
-_081C3448:
- ldrh r0, [r1, 0x30]
- cmp r0, 0x5
- bhi _081C3458
- ldr r4, =gText_EggAboutToHatch
- b _081C346C
- .pool
-_081C3458:
- cmp r0, 0xA
- bhi _081C3464
- ldr r4, =gText_EggWillHatchSoon
- b _081C346C
- .pool
-_081C3464:
- ldr r4, =gText_EggWillTakeALongTime
- cmp r0, 0x28
- bhi _081C346C
- ldr r4, =gText_EggWillTakeSomeTime
-_081C346C:
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x2
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3428
-
- thumb_func_start sub_81C349C
-sub_81C349C: @ 81C349C
- push {r4,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r4, r0, 0
- adds r4, 0x70
- adds r0, 0xA5
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081C3500
- ldrb r0, [r4, 0x9]
- cmp r0, 0xFF
- bne _081C34C4
- ldr r4, =gText_PeculiarEggNicePlace
- b _081C3502
- .pool
-_081C34C4:
- bl sub_81C32BC
- lsls r0, 24
- cmp r0, 0
- beq _081C34D8
- bl sub_81C3220
- lsls r0, 24
- cmp r0, 0
- bne _081C34E0
-_081C34D8:
- ldr r4, =gText_PeculiarEggTrade
- b _081C3502
- .pool
-_081C34E0:
- ldrb r0, [r4, 0x9]
- cmp r0, 0xFD
- bne _081C3500
- bl sub_81C32E0
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gText_EggFromTraveler
- cmp r0, 0x1
- bne _081C3502
- ldr r4, =gText_EggFromHotSprings
- b _081C3502
- .pool
-_081C3500:
- ldr r4, =gText_OddEggFoundByCouple
-_081C3502:
- ldr r0, =gUnknown_0861CCCC
- movs r1, 0x3
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C349C
-
- thumb_func_start sub_81C3530
-sub_81C3530: @ 81C3530
- push {lr}
- bl sub_81C35E4
- bl sub_81C3690
- bl sub_81C3710
- bl sub_81C37D8
- bl sub_81C3808
- bl sub_81C3890
- bl sub_81C38C0
- pop {r0}
- bx r0
- thumb_func_end sub_81C3530
-
- thumb_func_start sub_81C3554
-sub_81C3554: @ 81C3554
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _081C35D6
- lsls r0, 2
- ldr r1, =_081C3584
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C3584:
- .4byte _081C35A4
- .4byte _081C35AA
- .4byte _081C35B0
- .4byte _081C35B6
- .4byte _081C35BC
- .4byte _081C35C2
- .4byte _081C35C8
- .4byte _081C35CE
-_081C35A4:
- bl sub_81C35E4
- b _081C35D6
-_081C35AA:
- bl sub_81C3690
- b _081C35D6
-_081C35B0:
- bl sub_81C3710
- b _081C35D6
-_081C35B6:
- bl sub_81C37D8
- b _081C35D6
-_081C35BC:
- bl sub_81C3808
- b _081C35D6
-_081C35C2:
- bl sub_81C3890
- b _081C35D6
-_081C35C8:
- bl sub_81C38C0
- b _081C35D6
-_081C35CE:
- adds r0, r2, 0
- bl DestroyTask
- b _081C35DC
-_081C35D6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081C35DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C3554
-
- thumb_func_start sub_81C35E4
-sub_81C35E4: @ 81C35E4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0x9E
- ldrh r0, [r0]
- cmp r0, 0xAF
- bne _081C3628
- bl sub_81B1250
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081C3628
- ldr r0, [r4]
- ldr r1, =0x000040be
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _081C3614
- cmp r0, 0x4
- beq _081C3614
- cmp r0, 0x5
- bne _081C3628
-_081C3614:
- movs r0, 0xAF
- bl ItemId_GetItem
- adds r5, r0, 0
- b _081C3650
- .pool
-_081C3628:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x9E
- ldrh r0, [r1]
- cmp r0, 0
- bne _081C3644
- ldr r5, =gText_None
- b _081C3650
- .pool
-_081C3644:
- ldrh r0, [r1]
- ldr r4, =gStringVar1
- adds r1, r4, 0
- bl CopyItemName
- adds r5, r4, 0
-_081C3650:
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x48
- bl GetStringCenterAlignXOffset
- adds r4, r0, 0
- adds r4, 0x6
- ldr r0, =gUnknown_0861CCEC
- movs r1, 0
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C35E4
-
- thumb_func_start sub_81C3690
-sub_81C3690: @ 81C3690
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x76
- ldrb r0, [r1]
- cmp r0, 0
- bne _081C36B0
- ldr r5, =gText_None
- b _081C36C8
- .pool
-_081C36B0:
- ldr r0, =gStringVar1
- ldrb r1, [r1]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gText_RibbonsVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r5, r4, 0
-_081C36C8:
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x46
- bl GetStringCenterAlignXOffset
- adds r4, r0, 0
- adds r4, 0x6
- ldr r0, =gUnknown_0861CCEC
- movs r1, 0x1
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3690
-
- thumb_func_start sub_81C3710
-sub_81C3710: @ 81C3710
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- movs r0, 0x8
- bl Alloc
- mov r9, r0
- movs r0, 0x8
- bl Alloc
- mov r8, r0
- movs r0, 0x8
- bl Alloc
- adds r6, r0, 0
- movs r0, 0x8
- bl Alloc
- adds r5, r0, 0
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0x90
- ldrh r1, [r0]
- mov r0, r9
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, 0x92
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, 0x94
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x7
- bl ConvertIntToDecimalStringN
- ldr r0, [r4]
- adds r0, 0x96
- ldrh r1, [r0]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x7
- bl ConvertIntToDecimalStringN
- bl sub_81AFBF0
- movs r0, 0
- mov r1, r9
- bl sub_81AFC0C
- movs r0, 0x1
- mov r1, r8
- bl sub_81AFC0C
- movs r0, 0x2
- adds r1, r6, 0
- bl sub_81AFC0C
- movs r0, 0x3
- adds r1, r5, 0
- bl sub_81AFC0C
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_0861CE82
- bl sub_81AFC28
- mov r0, r9
- bl Free
- mov r0, r8
- bl Free
- adds r0, r6, 0
- bl Free
- adds r0, r5, 0
- bl Free
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3710
-
- thumb_func_start sub_81C37D8
-sub_81C37D8: @ 81C37D8
- push {lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0861CCEC
- movs r1, 0x2
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar4
- movs r2, 0
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r2, 0x4
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C37D8
-
- thumb_func_start sub_81C3808
-sub_81C3808: @ 81C3808
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, =gStringVar1
- mov r8, r0
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- adds r0, 0x98
- ldrh r1, [r0]
- mov r0, r8
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r6, =gStringVar2
- ldr r0, [r4]
- adds r0, 0x9A
- ldrh r1, [r0]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r5, =gStringVar3
- ldr r0, [r4]
- adds r0, 0x9C
- ldrh r1, [r0]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- bl sub_81AFBF0
- movs r0, 0
- mov r1, r8
- bl sub_81AFC0C
- movs r0, 0x1
- adds r1, r6, 0
- bl sub_81AFC0C
- movs r0, 0x2
- adds r1, r5, 0
- bl sub_81AFC0C
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_0861CE8E
- bl sub_81AFC28
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3808
-
- thumb_func_start sub_81C3890
-sub_81C3890: @ 81C3890
- push {lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0861CCEC
- movs r1, 0x3
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar4
- movs r2, 0
- str r2, [sp]
- str r2, [sp, 0x4]
- movs r2, 0x2
- movs r3, 0x1
- bl sub_81C25A4
- add sp, 0x8
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3890
-
- thumb_func_start sub_81C38C0
-sub_81C38C0: @ 81C38C0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- adds r5, r0, 0
- adds r5, 0x70
- ldr r0, =gUnknown_0861CCEC
- movs r1, 0x4
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, =gStringVar1
- ldr r1, [r5, 0x10]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x7
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2A
- bl GetStringRightAlignXOffset
- adds r0, 0x2
- lsls r2, r0, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_81C25A4
- ldrb r0, [r5, 0x5]
- cmp r0, 0x63
- bhi _081C3948
- ldr r4, =gExperienceTables
- adds r1, r0, 0
- adds r1, 0x1
- lsls r1, 2
- ldr r3, =gBaseStats
- ldrh r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r4
- ldr r1, [r1]
- ldr r0, [r5, 0x10]
- subs r1, r0
- b _081C394A
- .pool
-_081C3948:
- movs r1, 0
-_081C394A:
- ldr r4, =gStringVar1
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x6
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x2A
- bl GetStringRightAlignXOffset
- adds r0, 0x2
- lsls r2, r0, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r6, 0
- adds r1, r4, 0
- movs r3, 0x11
- bl sub_81C25A4
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C38C0
-
- thumb_func_start sub_81C3984
-sub_81C3984: @ 81C3984
- push {r4,lr}
- movs r0, 0
- bl sub_81C3B08
- movs r0, 0x1
- bl sub_81C3B08
- movs r0, 0x2
- bl sub_81C3B08
- movs r0, 0x3
- bl sub_81C3B08
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r1, =0x000040bc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C39EA
- bl sub_81C3F44
- ldr r1, [r4]
- ldr r0, =0x000040c6
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _081C39DC
- ldr r0, =0x000040c4
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _081C39EA
- bl sub_81C3E9C
- b _081C39EA
- .pool
-_081C39DC:
- ldrb r0, [r2]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r0, [r1]
- bl sub_81C3E9C
-_081C39EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C3984
-
- thumb_func_start sub_81C39F0
-sub_81C39F0: @ 81C39F0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _081C3AFC
- lsls r0, 2
- ldr r1, =_081C3A20
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C3A20:
- .4byte _081C3A40
- .4byte _081C3A48
- .4byte _081C3A50
- .4byte _081C3A58
- .4byte _081C3A60
- .4byte _081C3A7C
- .4byte _081C3ABE
- .4byte _081C3AF4
-_081C3A40:
- movs r0, 0
- bl sub_81C3B08
- b _081C3AFC
-_081C3A48:
- movs r0, 0x1
- bl sub_81C3B08
- b _081C3AFC
-_081C3A50:
- movs r0, 0x2
- bl sub_81C3B08
- b _081C3AFC
-_081C3A58:
- movs r0, 0x3
- bl sub_81C3B08
- b _081C3AFC
-_081C3A60:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040bc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3AFC
- bl sub_81C3F44
- b _081C3AFC
- .pool
-_081C3A7C:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3AFC
- ldr r0, =0x000040c6
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _081C3AB0
- ldr r2, =0x000040c4
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r4, 0x2]
- b _081C3AFC
- .pool
-_081C3AB0:
- ldrb r0, [r2]
- lsls r0, 1
- adds r1, 0x84
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4, 0x2]
- b _081C3AFC
-_081C3ABE:
- ldr r0, =gUnknown_0203CF1C
- ldr r1, [r0]
- ldr r2, =0x000040bc
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3AFC
- adds r2, 0x8
- adds r0, r1, r2
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C3AFC
- ldrh r0, [r4, 0x2]
- bl sub_81C3E9C
- b _081C3AFC
- .pool
-_081C3AF4:
- adds r0, r2, 0
- bl DestroyTask
- b _081C3B02
-_081C3AFC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081C3B02:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C39F0
-
- thumb_func_start sub_81C3B08
-sub_81C3B08: @ 81C3B08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- mov r10, r0
- ldr r4, =gUnknown_0861CD14
- adds r0, r4, 0
- movs r1, 0
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81C2D2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, r7, 1
- mov r0, r10
- adds r0, 0x84
- adds r0, r1
- ldrh r5, [r0]
- cmp r5, 0
- beq _081C3C00
- mov r0, r10
- adds r0, 0xA4
- ldrb r1, [r0]
- adds r0, r5, 0
- adds r2, r7, 0
- bl CalculatePPWithBonus
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0xD
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- lsls r0, r7, 4
- mov r9, r0
- mov r3, r9
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r0, r8
- movs r2, 0
- bl sub_81C25A4
- ldr r0, =gStringVar1
- mov r8, r0
- mov r5, r10
- adds r5, 0x8C
- adds r5, r7
- ldrb r1, [r5]
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar2
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- bl sub_81AFBF0
- movs r0, 0
- mov r1, r8
- bl sub_81AFC0C
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_81AFC0C
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_0861CE97
- adds r0, r4, 0
- bl sub_81AFC28
- adds r7, r4, 0
- ldrb r0, [r5]
- adds r1, r6, 0
- bl GetCurrentPpToMaxPpState
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- adds r5, 0x9
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x2C
- bl GetStringRightAlignXOffset
- mov r4, r9
- b _081C3C26
- .pool
-_081C3C00:
- ldr r1, =gText_OneDash
- lsls r4, r7, 4
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- str r5, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- mov r0, r8
- movs r2, 0
- bl sub_81C25A4
- ldr r7, =gText_TwoDashes
- movs r5, 0xC
- movs r0, 0x1
- adds r1, r7, 0
- movs r2, 0x2C
- bl GetStringCenterAlignXOffset
-_081C3C26:
- lsls r2, r0, 24
- lsrs r2, 24
- adds r3, r4, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- lsls r0, r5, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x8]
- adds r1, r7, 0
- bl sub_81C25A4
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3B08
-
- thumb_func_start sub_81C3C5C
-sub_81C3C5C: @ 81C3C5C
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _081C3CFC
- movs r0, 0x13
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x35
- movs r3, 0
- bl FillWindowPixelRect
- ldr r2, =gBattleMoves
- lsls r1, r5, 1
- adds r0, r1, r5
- lsls r0, 2
- adds r2, r0, r2
- ldrb r0, [r2, 0x1]
- adds r6, r1, 0
- cmp r0, 0x1
- bhi _081C3C9C
- ldr r1, =gText_ThreeDashes
- b _081C3CAC
- .pool
-_081C3C9C:
- ldr r4, =gStringVar1
- ldrb r1, [r2, 0x1]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r1, r4, 0
-_081C3CAC:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xE
- movs r2, 0x35
- movs r3, 0x1
- bl sub_81C25A4
- ldr r1, =gBattleMoves
- adds r0, r6, r5
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _081C3CDC
- ldr r1, =gText_ThreeDashes
- b _081C3CEC
- .pool
-_081C3CDC:
- ldr r4, =gStringVar1
- ldrb r1, [r1, 0x3]
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r1, r4, 0
-_081C3CEC:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xE
- movs r2, 0x35
- movs r3, 0x11
- bl sub_81C25A4
-_081C3CFC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3C5C
-
- thumb_func_start sub_81C3D08
-sub_81C3D08: @ 81C3D08
- push {r4,lr}
- movs r0, 0
- bl sub_81C3B08
- movs r0, 0x1
- bl sub_81C3B08
- movs r0, 0x2
- bl sub_81C3B08
- movs r0, 0x3
- bl sub_81C3B08
- ldr r4, =gUnknown_0203CF1C
- ldr r0, [r4]
- ldr r1, =0x000040bc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3D40
- bl sub_81C3F44
- ldr r0, [r4]
- ldr r1, =0x000040c6
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81C3E2C
-_081C3D40:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81C3D08
-
- thumb_func_start sub_81C3D54
-sub_81C3D54: @ 81C3D54
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldrh r0, [r4]
- subs r0, 0x1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bhi _081C3E20
- lsls r0, 2
- ldr r1, =_081C3D84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081C3D84:
- .4byte _081C3DA0
- .4byte _081C3DA8
- .4byte _081C3DB0
- .4byte _081C3DB8
- .4byte _081C3DC0
- .4byte _081C3DDC
- .4byte _081C3E18
-_081C3DA0:
- movs r0, 0
- bl sub_81C3B08
- b _081C3E20
-_081C3DA8:
- movs r0, 0x1
- bl sub_81C3B08
- b _081C3E20
-_081C3DB0:
- movs r0, 0x2
- bl sub_81C3B08
- b _081C3E20
-_081C3DB8:
- movs r0, 0x3
- bl sub_81C3B08
- b _081C3E20
-_081C3DC0:
- ldr r0, =gUnknown_0203CF1C
- ldr r0, [r0]
- ldr r1, =0x000040bc
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3E20
- bl sub_81C3F44
- b _081C3E20
- .pool
-_081C3DDC:
- ldr r0, =gUnknown_0203CF1C
- ldr r2, [r0]
- ldr r1, =0x000040bc
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081C3E20
- adds r1, 0x8
- adds r0, r2, r1
- ldr r0, [r0]
- ldr r1, =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 11
- cmp r0, r1
- beq _081C3E20
- ldr r1, =0x000040c6
- adds r0, r2, r1
- ldrb r0, [r0]
- bl sub_81C3E2C
- b _081C3E20
- .pool
-_081C3E18:
- adds r0, r2, 0
- bl DestroyTask
- b _081C3E26
-_081C3E20:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_081C3E26:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81C3D54
-
thumb_func_start sub_81C3E2C
sub_81C3E2C: @ 81C3E2C
push {r4,lr}
diff --git a/asm/rayquaza_scene.s b/asm/rayquaza_scene.s
index fdfd22979..f9936f1ca 100755
--- a/asm/rayquaza_scene.s
+++ b/asm/rayquaza_scene.s
@@ -5968,26 +5968,5 @@ _081D99B4:
bx r0
thumb_func_end sub_81D98B4
- thumb_func_start sub_81D99BC
-sub_81D99BC: @ 81D99BC
- push {r4,lr}
- bl sub_80D2578
- cmp r0, 0
- bne _081D99DC
- ldr r4, =gStringVar1
- bl sub_80D2548
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- b _081D99DE
- .pool
-_081D99DC:
- movs r0, 0
-_081D99DE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81D99BC
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 31d8d55e9..7e9ea30d1 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -1135,7 +1135,7 @@ _080E76DC:
bl memcpy
_080E76E4:
mov r0, r8
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
mov r0, r9
lsls r1, r0, 1
adds r1, r5, r1
diff --git a/asm/rom3.s b/asm/rom3.s
deleted file mode 100644
index 0159a453a..000000000
--- a/asm/rom3.s
+++ /dev/null
@@ -1,3775 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start HandleLinkBattleSetup
-HandleLinkBattleSetup: @ 8032654
- push {lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08032686
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803266E
- bl sub_800B488
-_0803266E:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803267A
- bl sub_8009734
-_0803267A:
- ldr r0, =task00_08081A90
- movs r1, 0
- bl CreateTask
- bl sub_8033244
-_08032686:
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleLinkBattleSetup
-
- thumb_func_start SetUpBattleVarsAndBirchZigzagoon
-SetUpBattleVarsAndBirchZigzagoon: @ 803269C
- push {r4-r7,lr}
- sub sp, 0x14
- ldr r0, =gBattleMainFunc
- ldr r1, =nullsub_20
- str r1, [r0]
- movs r0, 0
- str r0, [sp, 0x10]
- movs r1, 0
- ldr r7, =gBattleBankFunc
- ldr r6, =gActionSelectionCursor
- movs r2, 0
- ldr r5, =gMoveSelectionCursor
- ldr r4, =nullsub_21
- ldr r3, =gBanksBySide
-_080326B8:
- lsls r0, r1, 2
- adds r0, r7
- str r4, [r0]
- adds r1, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, [sp, 0x10]
- adds r0, r6
- strb r2, [r0]
- ldr r0, [sp, 0x10]
- adds r0, r5
- strb r2, [r0]
- ldr r0, [sp, 0x10]
- adds r0, 0x1
- str r0, [sp, 0x10]
- adds r1, r0, 0
- cmp r1, 0x3
- ble _080326B8
- bl HandleLinkBattleSetup
- ldr r0, =gBattleExecBuffer
- movs r5, 0
- str r5, [r0]
- bl sub_80A3934
- bl ClearBattleMonForms
- movs r0, 0xF
- bl BattleAI_HandleItemUseBeforeAISetup
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08032728
- bl ZeroEnemyPartyMons
- ldr r4, =gEnemyParty
- movs r1, 0x90
- lsls r1, 1
- str r5, [sp]
- str r5, [sp, 0x4]
- str r5, [sp, 0x8]
- str r5, [sp, 0xC]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x20
- bl CreateMon
- str r5, [sp, 0x10]
- adds r0, r4, 0
- movs r1, 0xC
- add r2, sp, 0x10
- bl SetMonData
-_08032728:
- ldr r0, =gUnknown_02022FF4
- str r5, [r0]
- ldr r0, =gUnknown_0202428C
- strb r5, [r0]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpBattleVarsAndBirchZigzagoon
-
- thumb_func_start sub_8032768
-sub_8032768: @ 8032768
- push {r4,r5,lr}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08032784
- movs r0, 0x1
- bl sub_8184DA4
- b _0803278A
- .pool
-_08032784:
- movs r0, 0x2
- bl sub_8184DA4
-_0803278A:
- ldr r4, =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0803279C
- bl sub_8185EB8
-_0803279C:
- ldr r0, [r4]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080327B0
- bl b_setup_bx_link
- b _080327B4
- .pool
-_080327B0:
- bl b_setup_bx
-_080327B4:
- bl sub_8033050
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080327E2
- movs r4, 0
- ldr r0, =gNoOfAllBanks
- ldrb r1, [r0]
- cmp r4, r1
- bge _080327E2
- adds r5, r0, 0
-_080327D0:
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_81B8D64
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _080327D0
-_080327E2:
- movs r4, 0
- ldr r3, =gBattleStruct
- movs r2, 0xD2
- lsls r2, 1
- movs r1, 0
-_080327EC:
- ldr r0, [r3]
- adds r0, r4, r0
- adds r0, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x5F
- bls _080327EC
- movs r4, 0
- ldr r3, =gBattleStruct
- movs r2, 0x81
- lsls r2, 2
- movs r1, 0
-_08032804:
- ldr r0, [r3]
- adds r0, r4, r0
- adds r0, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x67
- bls _08032804
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8032768
-
- thumb_func_start b_setup_bx
-b_setup_bx: @ 8032824
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gBattleTypeFlags
- ldr r3, [r0]
- movs r5, 0x80
- lsls r5, 15
- ands r5, r3
- cmp r5, 0
- beq _080328E4
- ldr r1, =gBattleMainFunc
- ldr r0, =BeginBattleIntro
- str r0, [r1]
- movs r4, 0x80
- lsls r4, 17
- ands r4, r3
- cmp r4, 0
- beq _08032874
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r2]
- ldr r1, =gBanksBySide
- movs r0, 0
- strb r0, [r1]
- b _0803287E
- .pool
-_08032874:
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2]
- ldr r1, =gBanksBySide
- strb r4, [r1]
-_0803287E:
- ldr r3, =SetBankFuncToOpponentBufferRunCommand
- str r3, [r2, 0x4]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, =SetBankFuncToPlayerPartnerBufferRunCommand
- str r0, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- str r3, [r2, 0xC]
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r1, =gNoOfAllBanks
- movs r0, 0x4
- strb r0, [r1]
- movs r0, 0
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x1
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x2
- movs r1, 0x1
- bl sub_81B8D64
- movs r0, 0x3
- movs r1, 0x1
- bl sub_81B8D64
- ldr r0, =gBattlePartyID
- movs r1, 0
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x3
- b _08032A76
- .pool
-_080328E4:
- movs r7, 0x1
- adds r0, r3, 0
- ands r0, r7
- cmp r0, 0
- beq _080328F0
- b _080329E0
-_080328F0:
- ldr r0, =gBattleMainFunc
- ldr r2, =BeginBattleIntro
- str r2, [r0]
- movs r1, 0x80
- ands r1, r3
- mov r12, r2
- cmp r1, 0
- beq _08032918
- ldr r1, =gBattleBankFunc
- ldr r0, =SetBankFuncToSafariBufferRunCommand
- b _08032934
- .pool
-_08032918:
- movs r0, 0x80
- lsls r0, 2
- ands r3, r0
- cmp r3, 0
- beq _08032930
- ldr r1, =gBattleBankFunc
- ldr r0, =SetBankFuncToWallyBufferRunCommand
- b _08032934
- .pool
-_08032930:
- ldr r1, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
-_08032934:
- str r0, [r1]
- mov r10, r1
- ldr r4, =gBanksBySide
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strb r1, [r4]
- mov r5, r10
- ldr r2, =SetBankFuncToOpponentBufferRunCommand
- mov r8, r2
- str r2, [r5, 0x4]
- movs r6, 0x1
- strb r6, [r4, 0x1]
- ldr r2, =gNoOfAllBanks
- movs r7, 0x2
- strb r7, [r2]
- ldr r0, =gBattleTypeFlags
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r3
- cmp r0, 0
- bne _08032964
- b _08032CB2
-_08032964:
- movs r1, 0x80
- lsls r1, 18
- ands r1, r3
- cmp r1, 0
- beq _080329CC
- movs r1, 0x80
- lsls r1, 24
- ands r1, r3
- cmp r1, 0
- beq _080329B4
- mov r1, r12
- ldr r0, =gBattleMainFunc
- str r1, [r0]
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r5]
- mov r1, r9
- strb r1, [r4]
- ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand
- str r0, [r5, 0x4]
- strb r6, [r4, 0x1]
- strb r7, [r2]
- b _08032CB2
- .pool
-_080329B4:
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r5, 0x4]
- strb r1, [r4, 0x1]
- ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand
- str r0, [r5]
- strb r6, [r4]
- strb r7, [r2]
- b _08032CB2
- .pool
-_080329CC:
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- mov r2, r10
- str r0, [r2]
- strb r1, [r4]
- mov r0, r8
- str r0, [r2, 0x4]
- strb r6, [r4, 0x1]
- b _08032CB2
- .pool
-_080329E0:
- ldr r1, =BeginBattleIntro
- ldr r2, =gBattleMainFunc
- str r1, [r2]
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2]
- ldr r4, =gBanksBySide
- strb r5, [r4]
- ldr r6, =SetBankFuncToOpponentBufferRunCommand
- str r6, [r2, 0x4]
- strb r7, [r4, 0x1]
- str r0, [r2, 0x8]
- movs r0, 0x2
- mov r12, r0
- mov r1, r12
- strb r1, [r4, 0x2]
- str r6, [r2, 0xC]
- movs r0, 0x3
- mov r8, r0
- mov r1, r8
- strb r1, [r4, 0x3]
- ldr r0, =gNoOfAllBanks
- mov r10, r0
- movs r1, 0x4
- mov r9, r1
- strb r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r3
- cmp r0, 0
- bne _08032A20
- b _08032CB2
-_08032A20:
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, r1
- bne _08032AA0
- ldr r0, =BeginBattleIntro
- ldr r1, =gBattleMainFunc
- str r0, [r1]
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r2]
- strb r5, [r4]
- str r6, [r2, 0x4]
- strb r7, [r4, 0x1]
- str r0, [r2, 0x8]
- mov r0, r12
- strb r0, [r4, 0x2]
- str r6, [r2, 0xC]
- mov r1, r8
- strb r1, [r4, 0x3]
- mov r0, r9
- mov r2, r10
- strb r0, [r2]
- movs r0, 0
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x1
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x2
- movs r1, 0x1
- bl sub_81B8D64
- movs r0, 0x3
- movs r1, 0x1
- bl sub_81B8D64
- ldr r0, =gBattlePartyID
- strh r5, [r0]
- strh r5, [r0, 0x2]
- mov r1, r8
-_08032A76:
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- b _08032CB2
- .pool
-_08032AA0:
- movs r5, 0x40
- ands r5, r3
- cmp r5, 0
- bne _08032AAA
- b _08032C3C
-_08032AAA:
- ldr r0, =gUnknown_0203C7B4
- ldrb r5, [r0]
- movs r0, 0
- mov r10, r0
- ldr r1, =gLinkPlayers
- mov r12, r1
- adds r7, r4, 0
- mov r8, r0
- ldr r6, =gBattlePartyID
- movs r4, 0
- movs r2, 0x3
- mov r9, r2
-_08032AC2:
- mov r1, r12
- adds r0, r4, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08032AE4
- cmp r0, 0x1
- bge _08032AFC
- cmp r0, 0
- beq _08032AE8
- b _08032B06
- .pool
-_08032AE4:
- cmp r0, 0x3
- bne _08032B06
-_08032AE8:
- ldr r0, =gLinkPlayers
- adds r0, r4, r0
- ldrb r0, [r0, 0x18]
- movs r1, 0
- bl sub_81B8D64
- b _08032B06
- .pool
-_08032AFC:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_81B8D64
-_08032B06:
- cmp r10, r5
- bne _08032B56
- ldr r0, =gLinkPlayers
- adds r3, r4, r0
- ldrh r1, [r3, 0x18]
- lsls r1, 2
- ldr r2, =gBattleBankFunc
- adds r1, r2
- ldr r2, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r2, [r1]
- ldrh r1, [r3, 0x18]
- mov r12, r0
- cmp r1, 0x2
- bgt _08032B38
- cmp r1, 0x1
- bge _08032B4C
- cmp r1, 0
- beq _08032B3C
- b _08032C2C
- .pool
-_08032B38:
- cmp r1, 0x3
- bne _08032C2C
-_08032B3C:
- mov r1, r12
- adds r0, r4, r1
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _08032C12
-_08032B4C:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- ldrh r0, [r3, 0x18]
- b _08032C24
-_08032B56:
- ldr r2, =gLinkPlayers
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- bne _08032B80
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032B92
- b _08032BD8
- .pool
-_08032B80:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032BD8
-_08032B92:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, =gBattleBankFunc
- adds r0, r1
- ldr r1, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r1, [r0]
- ldrh r1, [r2, 0x18]
- cmp r1, 0x2
- bgt _08032BBC
- cmp r1, 0x1
- bge _08032BD0
- cmp r1, 0
- beq _08032BC0
- b _08032C2C
- .pool
-_08032BBC:
- cmp r1, 0x3
- bne _08032C2C
-_08032BC0:
- mov r2, r12
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _08032C12
-_08032BD0:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- b _08032C22
-_08032BD8:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, =gBattleBankFunc
- adds r0, r1
- ldr r1, =SetBankFuncToRecordedOpponentBufferRunCommand
- str r1, [r0]
- ldrh r0, [r2, 0x18]
- cmp r0, 0x2
- bgt _08032C00
- cmp r0, 0x1
- bge _08032C1C
- cmp r0, 0
- beq _08032C04
- b _08032C2C
- .pool
-_08032C00:
- cmp r0, 0x3
- bne _08032C2C
-_08032C04:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r2, 0x18]
-_08032C12:
- lsls r0, 1
- adds r0, r6
- mov r1, r8
- strh r1, [r0]
- b _08032C2C
-_08032C1C:
- adds r0, r7
- mov r1, r9
- strb r1, [r0]
-_08032C22:
- ldrh r0, [r2, 0x18]
-_08032C24:
- lsls r0, 1
- adds r0, r6
- mov r2, r9
- strh r2, [r0]
-_08032C2C:
- adds r4, 0x1C
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x3
- bgt _08032C3A
- b _08032AC2
-_08032C3A:
- b _08032CB2
-_08032C3C:
- movs r1, 0x4
- ands r1, r3
- cmp r1, 0
- beq _08032C7C
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r2]
- strb r5, [r4]
- str r0, [r2, 0x8]
- mov r0, r12
- strb r0, [r4, 0x2]
- movs r0, 0x80
- lsls r0, 18
- ands r3, r0
- cmp r3, 0
- beq _08032C70
- ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand
- str r0, [r2, 0x4]
- strb r7, [r4, 0x1]
- str r0, [r2, 0xC]
- mov r1, r8
- strb r1, [r4, 0x3]
- b _08032CB2
- .pool
-_08032C70:
- str r6, [r2, 0x4]
- strb r7, [r4, 0x1]
- str r6, [r2, 0xC]
- mov r2, r8
- strb r2, [r4, 0x3]
- b _08032CB2
-_08032C7C:
- ldr r0, =SetBankFuncToRecordedPlayerBufferRunCommand
- str r0, [r2, 0x4]
- strb r1, [r4, 0x1]
- str r0, [r2, 0xC]
- mov r0, r12
- strb r0, [r4, 0x3]
- movs r0, 0x80
- lsls r0, 18
- ands r3, r0
- cmp r3, 0
- beq _08032CA8
- ldr r0, =SetBankFuncToRecordedOpponentBufferRunCommand
- str r0, [r2]
- strb r7, [r4]
- str r0, [r2, 0x8]
- mov r1, r8
- strb r1, [r4, 0x2]
- b _08032CB2
- .pool
-_08032CA8:
- str r6, [r2]
- strb r7, [r4]
- str r6, [r2, 0x8]
- mov r2, r8
- strb r2, [r4, 0x2]
-_08032CB2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_setup_bx
-
- thumb_func_start b_setup_bx_link
-b_setup_bx_link: @ 8032CC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, =gBattleTypeFlags
- ldr r1, [r4]
- movs r5, 0x1
- adds r3, r1, 0
- ands r3, r5
- cmp r3, 0
- bne _08032D48
- movs r4, 0x4
- ands r4, r1
- cmp r4, 0
- beq _08032D1C
- ldr r1, =gBattleMainFunc
- ldr r0, =BeginBattleIntro
- str r0, [r1]
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2]
- ldr r1, =gBanksBySide
- strb r3, [r1]
- ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand
- str r0, [r2, 0x4]
- strb r5, [r1, 0x1]
- ldr r1, =gNoOfAllBanks
- movs r0, 0x2
- b _0803303A
- .pool
-_08032D1C:
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2, 0x4]
- ldr r1, =gBanksBySide
- strb r4, [r1, 0x1]
- ldr r0, =SetBankFuncToLinkOpponentBufferRunCommand
- str r0, [r2]
- strb r5, [r1]
- ldr r1, =gNoOfAllBanks
- movs r0, 0x2
- b _0803303A
- .pool
-_08032D48:
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08032DD0
- movs r6, 0x4
- adds r3, r6, 0
- ands r3, r1
- cmp r3, 0
- beq _08032D98
- ldr r1, =gBattleMainFunc
- ldr r0, =BeginBattleIntro
- str r0, [r1]
- ldr r2, =gBattleBankFunc
- ldr r4, =SetBankFuncToPlayerBufferRunCommand
- str r4, [r2]
- ldr r1, =gBanksBySide
- movs r0, 0
- strb r0, [r1]
- ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
- str r3, [r2, 0x4]
- strb r5, [r1, 0x1]
- str r4, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- str r3, [r2, 0xC]
- movs r0, 0x3
- strb r0, [r1, 0x3]
- b _08032DB4
- .pool
-_08032D98:
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2, 0x4]
- ldr r1, =gBanksBySide
- strb r3, [r1, 0x1]
- ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
- str r3, [r2]
- strb r5, [r1]
- str r0, [r2, 0xC]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- str r3, [r2, 0x8]
- movs r0, 0x3
- strb r0, [r1, 0x2]
-_08032DB4:
- ldr r0, =gNoOfAllBanks
- strb r6, [r0]
- b _0803303C
- .pool
-_08032DD0:
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08032E8C
- movs r4, 0x4
- adds r3, r4, 0
- ands r3, r1
- cmp r3, 0
- beq _08032E1C
- ldr r1, =gBattleMainFunc
- ldr r0, =BeginBattleIntro
- str r0, [r1]
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
- str r0, [r2]
- ldr r1, =gBanksBySide
- movs r0, 0
- strb r0, [r1]
- ldr r3, =SetBankFuncToOpponentBufferRunCommand
- str r3, [r2, 0x4]
- strb r5, [r1, 0x1]
- ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand
- b _08032E2E
- .pool
-_08032E1C:
- ldr r2, =gBattleBankFunc
- ldr r0, =SetBankFuncToLinkPartnerBufferRunCommand
- str r0, [r2]
- ldr r1, =gBanksBySide
- strb r3, [r1]
- ldr r3, =SetBankFuncToLinkOpponentBufferRunCommand
- str r3, [r2, 0x4]
- strb r5, [r1, 0x1]
- ldr r0, =SetBankFuncToPlayerBufferRunCommand
-_08032E2E:
- str r0, [r2, 0x8]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- str r3, [r2, 0xC]
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, =gNoOfAllBanks
- strb r4, [r0]
- movs r0, 0
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x1
- movs r1, 0
- bl sub_81B8D64
- movs r0, 0x2
- movs r1, 0x1
- bl sub_81B8D64
- movs r0, 0x3
- movs r1, 0x1
- bl sub_81B8D64
- ldr r0, =gBattlePartyID
- movs r1, 0
- strh r1, [r0]
- strh r1, [r0, 0x2]
- movs r1, 0x3
- strh r1, [r0, 0x4]
- strh r1, [r0, 0x6]
- b _0803303C
- .pool
-_08032E8C:
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, [r4]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032EA4
- ldr r1, =gBattleMainFunc
- ldr r0, =BeginBattleIntro
- str r0, [r1]
-_08032EA4:
- movs r0, 0
- mov r10, r0
- ldr r1, =gLinkPlayers
- mov r12, r1
- ldr r7, =gBanksBySide
- mov r8, r0
- ldr r6, =gBattlePartyID
- movs r4, 0
- movs r2, 0x3
- mov r9, r2
-_08032EB8:
- mov r1, r12
- adds r0, r4, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08032EE0
- cmp r0, 0x1
- bge _08032EF8
- cmp r0, 0
- beq _08032EE4
- b _08032F02
- .pool
-_08032EE0:
- cmp r0, 0x3
- bne _08032F02
-_08032EE4:
- ldr r0, =gLinkPlayers
- adds r0, r4, r0
- ldrb r0, [r0, 0x18]
- movs r1, 0
- bl sub_81B8D64
- b _08032F02
- .pool
-_08032EF8:
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_81B8D64
-_08032F02:
- cmp r10, r5
- bne _08032F52
- ldr r0, =gLinkPlayers
- adds r3, r4, r0
- ldrh r1, [r3, 0x18]
- lsls r1, 2
- ldr r2, =gBattleBankFunc
- adds r1, r2
- ldr r2, =SetBankFuncToPlayerBufferRunCommand
- str r2, [r1]
- ldrh r1, [r3, 0x18]
- mov r12, r0
- cmp r1, 0x2
- bgt _08032F34
- cmp r1, 0x1
- bge _08032F48
- cmp r1, 0
- beq _08032F38
- b _08033028
- .pool
-_08032F34:
- cmp r1, 0x3
- bne _08033028
-_08032F38:
- mov r1, r12
- adds r0, r4, r1
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _0803300E
-_08032F48:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- ldrh r0, [r3, 0x18]
- b _08033020
-_08032F52:
- ldr r2, =gLinkPlayers
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- bne _08032F7C
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032F8E
- b _08032FD4
- .pool
-_08032F7C:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r12
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032FD4
-_08032F8E:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, =gBattleBankFunc
- adds r0, r1
- ldr r1, =SetBankFuncToLinkPartnerBufferRunCommand
- str r1, [r0]
- ldrh r1, [r2, 0x18]
- cmp r1, 0x2
- bgt _08032FB8
- cmp r1, 0x1
- bge _08032FCC
- cmp r1, 0
- beq _08032FBC
- b _08033028
- .pool
-_08032FB8:
- cmp r1, 0x3
- bne _08033028
-_08032FBC:
- mov r2, r12
- adds r0, r4, r2
- ldrh r1, [r0, 0x18]
- adds r1, r7
- mov r2, r8
- strb r2, [r1]
- ldrh r0, [r0, 0x18]
- b _0803300E
-_08032FCC:
- adds r1, r7
- movs r0, 0x2
- strb r0, [r1]
- b _0803301E
-_08032FD4:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- lsls r0, 2
- ldr r1, =gBattleBankFunc
- adds r0, r1
- ldr r1, =SetBankFuncToLinkOpponentBufferRunCommand
- str r1, [r0]
- ldrh r0, [r2, 0x18]
- cmp r0, 0x2
- bgt _08032FFC
- cmp r0, 0x1
- bge _08033018
- cmp r0, 0
- beq _08033000
- b _08033028
- .pool
-_08032FFC:
- cmp r0, 0x3
- bne _08033028
-_08033000:
- mov r0, r12
- adds r2, r4, r0
- ldrh r0, [r2, 0x18]
- adds r0, r7
- movs r1, 0x1
- strb r1, [r0]
- ldrh r0, [r2, 0x18]
-_0803300E:
- lsls r0, 1
- adds r0, r6
- mov r1, r8
- strh r1, [r0]
- b _08033028
-_08033018:
- adds r0, r7
- mov r1, r9
- strb r1, [r0]
-_0803301E:
- ldrh r0, [r2, 0x18]
-_08033020:
- lsls r0, 1
- adds r0, r6
- mov r2, r9
- strh r2, [r0]
-_08033028:
- adds r4, 0x1C
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x3
- bgt _08033036
- b _08032EB8
-_08033036:
- ldr r1, =gNoOfAllBanks
- movs r0, 0x4
-_0803303A:
- strb r0, [r1]
-_0803303C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end b_setup_bx_link
-
- thumb_func_start sub_8033050
-sub_8033050: @ 8033050
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08033068
- b _0803319C
-_08033068:
- movs r0, 0
- mov r8, r0
- b _0803317A
- .pool
-_08033074:
- movs r5, 0
- movs r0, 0x1
- add r0, r8
- mov r10, r0
- ldr r0, =gBanksBySide
- add r0, r8
- mov r9, r0
- mov r0, r8
- lsls r6, r0, 1
- movs r7, 0
-_08033088:
- mov r0, r8
- cmp r0, 0x1
- bgt _080330F0
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080330A8
- ldr r0, =gPlayerParty
- b _080330AA
- .pool
-_080330A8:
- ldr r0, =gEnemyParty
-_080330AA:
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08033170
- ldr r0, =gBattlePartyID
- adds r0, r6, r0
- strh r5, [r0]
- b _08033178
- .pool
-_080330F0:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08033118
- ldr r0, =gPlayerParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08033170
- adds r0, r4, 0
- movs r1, 0xB
- b _0803312C
- .pool
-_08033118:
- ldr r0, =gEnemyParty
- adds r4, r7, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x41
-_0803312C:
- bl GetMonData
- cmp r0, 0
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08033170
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08033170
- ldr r1, =gBattlePartyID
- mov r0, r8
- subs r0, 0x2
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r5
- beq _08033170
- adds r0, r6, r1
- strh r5, [r0]
- b _08033178
- .pool
-_08033170:
- adds r7, 0x64
- adds r5, 0x1
- cmp r5, 0x5
- ble _08033088
-_08033178:
- mov r8, r10
-_0803317A:
- ldr r0, =gNoOfAllBanks
- ldrb r0, [r0]
- cmp r8, r0
- bge _08033184
- b _08033074
-_08033184:
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0803319C
- ldr r0, =gBattlePartyID
- movs r1, 0
- strh r1, [r0, 0x2]
- movs r1, 0x3
- strh r1, [r0, 0x6]
-_0803319C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8033050
-
- thumb_func_start dp01_prepare_buffer
-dp01_prepare_buffer: @ 80331B8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080331E4
- adds r0, r3, 0
- adds r1, r2, 0
- adds r2, r4, 0
- bl PrepareBufferDataTransferLink
- b _08033236
- .pool
-_080331E4:
- cmp r5, 0
- beq _080331EE
- cmp r5, 0x1
- beq _08033218
- b _08033236
-_080331EE:
- movs r3, 0
- cmp r3, r2
- bge _08033236
- ldr r6, =gBattleBufferA
- ldr r5, =gActiveBank
-_080331F8:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _080331F8
- b _08033236
- .pool
-_08033218:
- movs r3, 0
- cmp r3, r2
- bge _08033236
- ldr r6, =gBattleBufferB
- ldr r5, =gActiveBank
-_08033222:
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3, r0
- adds r0, r6
- ldrb r1, [r4]
- strb r1, [r0]
- adds r4, 0x1
- adds r3, 0x1
- cmp r3, r2
- blt _08033222
-_08033236:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_prepare_buffer
-
- thumb_func_start sub_8033244
-sub_8033244: @ 8033244
- push {r4-r6,lr}
- ldr r0, =task00_wireless_something
- movs r1, 0
- bl CreateTask
- ldr r2, =gUnknown_02022D08
- strb r0, [r2]
- ldr r5, =gTasks
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r6, 0
- movs r4, 0
- strh r4, [r0, 0x1E]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, =sub_803375C
- movs r1, 0
- bl CreateTask
- ldr r2, =gUnknown_02022D09
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x20]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x22]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x24]
- ldrb r1, [r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r4, [r0, 0x26]
- ldr r0, =gUnknown_02022D0A
- strb r6, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8033244
-
- thumb_func_start PrepareBufferDataTransferLink
-PrepareBufferDataTransferLink: @ 80332F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r1, 16
- mov r12, r1
- movs r1, 0x3
- mov r0, r12
- bics r0, r1
- adds r0, 0x4
- mov r8, r0
- ldr r2, =gTasks
- ldr r3, =gUnknown_02022D08
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r2
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- add r0, r8
- adds r0, 0x9
- movs r1, 0x80
- lsls r1, 5
- adds r5, r2, 0
- cmp r0, r1
- ble _08033346
- ldrh r0, [r4, 0x24]
- movs r2, 0
- strh r0, [r4, 0x20]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- strh r2, [r0, 0x24]
-_08033346:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r4, =gUnknown_020244A0
- ldr r0, [r4]
- adds r0, r1
- strb r6, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- ldr r0, [r4]
- adds r1, r0
- ldr r0, =gActiveBank
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r0, [r4]
- adds r1, r0
- ldr r0, =gBankAttacker
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- ldr r0, [r4]
- adds r1, r0
- ldr r0, =gBankTarget
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- ldr r1, [r4]
- adds r0, r1
- mov r2, r8
- strb r2, [r0, 0x4]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- ldr r0, [r4]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- mov r2, r8
- ands r0, r2
- asrs r0, 8
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- ldr r0, [r4]
- adds r1, r0
- ldr r0, =gAbsentBankFlags
- ldrb r0, [r0]
- strb r0, [r1, 0x6]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldr r0, [r4]
- adds r1, r0
- ldr r0, =gEffectBank
- ldrb r0, [r0]
- strb r0, [r1, 0x7]
- movs r2, 0
- cmp r2, r12
- bge _08033434
- mov r10, r5
- adds r6, r3, 0
-_08033412:
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r10
- movs r7, 0x24
- ldrsh r1, [r0, r7]
- ldr r0, [r4]
- adds r1, r2, r1
- adds r1, r0
- mov r7, r9
- adds r0, r7, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x8]
- adds r2, 0x1
- cmp r2, r12
- blt _08033412
-_08033434:
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x24]
- add r0, r8
- adds r0, 0x8
- strh r0, [r1, 0x24]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PrepareBufferDataTransferLink
-
- thumb_func_start task00_wireless_something
-task00_wireless_something: @ 8033474
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x1E
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0x5
- bls _08033490
- b _08033640
-_08033490:
- lsls r0, 2
- ldr r1, =_080334A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080334A4:
- .4byte _080334BC
- .4byte _080334CA
- .4byte _080334E6
- .4byte _08033570
- .4byte _080335E6
- .4byte _08033624
-_080334BC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- movs r1, 0x64
- strh r1, [r0, 0x1C]
- b _080334F6
-_080334CA:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x1C]
- subs r0, 0x1
- strh r0, [r1, 0x1C]
- lsls r0, 16
- cmp r0, 0
- beq _080334E0
- b _08033640
-_080334E0:
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0803363E
-_080334E6:
- ldr r0, =gLinkVSyncDisabled
- ldrb r0, [r0]
- cmp r0, 0
- beq _08033504
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
-_080334F6:
- ldrh r1, [r0, 0x1E]
- adds r1, 0x1
- strh r1, [r0, 0x1E]
- b _08033640
- .pool
-_08033504:
- ldr r0, =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0803351C
- movs r5, 0x2
- b _0803352A
- .pool
-_0803351C:
- movs r0, 0x40
- ands r1, r0
- movs r0, 0x2
- cmp r1, 0
- beq _08033528
- movs r0, 0x4
-_08033528:
- adds r5, r0, 0
-_0803352A:
- bl sub_800ABAC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bcs _08033538
- b _08033640
-_08033538:
- bl sub_800ABBC
- lsls r0, 24
- cmp r0, 0
- beq _0803355C
- bl sub_800A620
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0803363E
- .pool
-_0803355C:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1E]
- adds r0, 0x1
- b _0803363E
- .pool
-_08033570:
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r2, r0, r7
- movs r3, 0x26
- ldrsh r5, [r2, r3]
- movs r0, 0x24
- ldrsh r6, [r2, r0]
- mov r12, r6
- cmp r5, r12
- beq _08033640
- ldrh r0, [r2, 0x22]
- movs r6, 0x22
- ldrsh r3, [r2, r6]
- cmp r3, 0
- bne _080335E0
- cmp r5, r12
- ble _080335A0
- movs r6, 0x20
- ldrsh r0, [r2, r6]
- cmp r5, r0
- bne _080335A0
- strh r3, [r2, 0x20]
- strh r3, [r2, 0x26]
-_080335A0:
- adds r4, r1, r4
- lsls r4, 3
- adds r4, r7
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- ldr r5, =gUnknown_020244A0
- ldr r0, [r5]
- adds r1, r0
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- lsls r1, 8
- orrs r0, r1
- adds r0, 0x8
- lsls r0, 16
- lsrs r6, r0, 16
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- ldr r1, [r5]
- adds r1, r2
- adds r2, r6, 0
- bl SendBlock
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- b _08033640
- .pool
-_080335E0:
- subs r0, 0x1
- strh r0, [r2, 0x22]
- b _08033640
-_080335E6:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08033640
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r3, 0x26
- ldrsh r2, [r1, r3]
- ldr r0, =gUnknown_020244A0
- ldr r0, [r0]
- adds r2, r0
- ldrb r0, [r2, 0x4]
- ldrb r2, [r2, 0x5]
- lsls r2, 8
- movs r3, 0x1
- strh r3, [r1, 0x22]
- orrs r0, r2
- ldrh r6, [r1, 0x26]
- adds r0, r6
- adds r0, 0x8
- strh r0, [r1, 0x26]
- b _0803363C
- .pool
-_08033624:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r7
- ldrh r0, [r1, 0x22]
- subs r0, 0x1
- strh r0, [r1, 0x22]
- lsls r0, 16
- cmp r0, 0
- bne _08033640
- movs r0, 0x1
- strh r0, [r1, 0x22]
-_0803363C:
- movs r0, 0x3
-_0803363E:
- strh r0, [r1, 0x1E]
-_08033640:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end task00_wireless_something
-
- thumb_func_start sub_8033648
-sub_8033648: @ 8033648
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08033738
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08033738
- bl sub_8011BD0
- movs r4, 0
- ldr r0, =gBlockRecvBuffer
- mov r10, r0
- b _0803372C
- .pool
-_08033680:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gBitTable
- lsls r1, r4, 2
- adds r1, r2
- ldr r1, [r1]
- ands r0, r1
- adds r1, r4, 0x1
- mov r9, r1
- cmp r0, 0
- beq _08033726
- adds r0, r4, 0
- bl sub_800A5EC
- lsls r0, r4, 8
- mov r4, r10
- adds r3, r0, r4
- ldr r1, =gBlockRecvBuffer + 4
- adds r0, r1
- ldrh r6, [r0]
- ldr r7, =gTasks
- ldr r4, =gUnknown_02022D09
- mov r12, r4
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0, r7
- movs r0, 0x24
- ldrsh r1, [r2, r0]
- adds r0, r6, 0
- adds r0, 0x9
- adds r1, r0
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- ble _080336E0
- ldrh r0, [r2, 0x24]
- strh r0, [r2, 0x20]
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x24]
-_080336E0:
- ldr r2, =gUnknown_020244A4
- mov r4, r12
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r7
- movs r4, 0x24
- ldrsh r1, [r0, r4]
- ldr r0, [r2]
- adds r5, r0, r1
- adds r4, r3, 0
- movs r2, 0
- adds r3, r6, 0
- adds r3, 0x8
- mov r8, r7
- mov r7, r12
- cmp r2, r3
- bge _08033714
-_08033706:
- adds r0, r5, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r3
- blt _08033706
-_08033714:
- ldrb r0, [r7]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- add r1, r8
- ldrh r0, [r1, 0x24]
- adds r0, r6, r0
- adds r0, 0x8
- strh r0, [r1, 0x24]
-_08033726:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r4, r0, 24
-_0803372C:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08033680
-_08033738:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8033648
-
- thumb_func_start sub_803375C
-sub_803375C: @ 803375C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- movs r0, 0x26
- ldrsh r2, [r3, r0]
- movs r4, 0x24
- ldrsh r0, [r3, r4]
- cmp r2, r0
- bne _08033780
- b _0803389C
-_08033780:
- cmp r2, r0
- ble _08033792
- movs r4, 0x20
- ldrsh r0, [r3, r4]
- cmp r2, r0
- bne _08033792
- movs r0, 0
- strh r0, [r3, 0x20]
- strh r0, [r3, 0x26]
-_08033792:
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- ldr r3, =gUnknown_020244A4
- mov r8, r3
- ldr r0, [r3]
- adds r3, r1, r0
- ldrb r4, [r3, 0x1]
- ldrb r6, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r3]
- mov r9, r2
- cmp r0, 0x1
- beq _0803385C
- cmp r0, 0x1
- bgt _080337CC
- cmp r0, 0
- beq _080337D2
- b _0803388A
- .pool
-_080337CC:
- cmp r0, 0x2
- beq _08033874
- b _0803388A
-_080337D2:
- ldr r2, =gBattleExecBuffer
- ldr r1, =gBitTable
- lsls r0, r4, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803389C
- lsls r0, r4, 9
- ldr r1, =gBattleBufferA
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x8
- adds r2, r6, 0
- bl memcpy
- adds r0, r4, 0
- bl sub_803F850
- ldr r0, =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0803388A
- ldr r2, =gBankAttacker
- movs r4, 0x26
- ldrsh r0, [r5, r4]
- mov r3, r8
- ldr r1, [r3]
- adds r0, r1
- ldrb r0, [r0, 0x2]
- strb r0, [r2]
- ldr r2, =gBankTarget
- movs r4, 0x26
- ldrsh r0, [r5, r4]
- adds r0, r1
- ldrb r0, [r0, 0x3]
- strb r0, [r2]
- ldr r2, =gAbsentBankFlags
- movs r3, 0x26
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0, 0x6]
- strb r0, [r2]
- ldr r2, =gEffectBank
- movs r4, 0x26
- ldrsh r0, [r5, r4]
- adds r0, r1
- ldrb r0, [r0, 0x7]
- strb r0, [r2]
- b _0803388A
- .pool
-_0803385C:
- lsls r0, r4, 9
- ldr r1, =gBattleBufferB
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0x8
- adds r2, r6, 0
- bl memcpy
- b _0803388A
- .pool
-_08033874:
- ldrb r2, [r3, 0x8]
- ldr r3, =gBattleExecBuffer
- ldr r1, =gBitTable
- lsls r0, r4, 2
- adds r0, r1
- lsls r2, 2
- ldr r1, [r0]
- lsls r1, r2
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
-_0803388A:
- ldr r0, =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, r6, r0
- adds r0, 0x8
- strh r0, [r1, 0x26]
-_0803389C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_803375C
-
- thumb_func_start EmitGetMonData
-EmitGetMonData: @ 80338B4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r3, 0
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitGetMonData
-
- thumb_func_start dp01_build_cmdbuf_x01_a_b_0
-dp01_build_cmdbuf_x01_a_b_0: @ 80338D8
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r4, 0
- movs r3, 0x1
- strb r3, [r1]
- strb r5, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r4, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x01_a_b_0
-
- thumb_func_start EmitSetMonData
-EmitSetMonData: @ 8033900
- push {r4-r6,lr}
- ldr r4, [sp, 0x10]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, =gUnknown_02022D10
- movs r3, 0x2
- strb r3, [r0]
- strb r1, [r0, 0x1]
- strb r2, [r0, 0x2]
- adds r1, r0, 0
- cmp r5, 0
- beq _0803392E
- adds r3, r1, 0x3
- adds r2, r5, 0
-_08033920:
- ldrb r0, [r4]
- strb r0, [r3]
- adds r4, 0x1
- adds r3, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _08033920
-_0803392E:
- adds r2, r5, 0x3
- adds r0, r6, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitSetMonData
-
- thumb_func_start sub_8033940
-sub_8033940: @ 8033940
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r4, r2, 24
- ldr r0, =gUnknown_02022D10
- movs r2, 0x3
- strb r2, [r0]
- strb r1, [r0, 0x1]
- strb r4, [r0, 0x2]
- adds r5, r0, 0
- cmp r4, 0
- beq _0803396C
- adds r1, r5, 0x3
- adds r2, r4, 0
-_0803395E:
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r1, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _0803395E
-_0803396C:
- adds r2, r4, 0x3
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8033940
-
- thumb_func_start EmitLoadMonSprite
-EmitLoadMonSprite: @ 8033980
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x4
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitLoadMonSprite
-
- thumb_func_start EmitSwitchInAnim
-EmitSwitchInAnim: @ 80339A0
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r3, 0x5
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitSwitchInAnim
-
- thumb_func_start EmitReturnPokeToBall
-EmitReturnPokeToBall: @ 80339C4
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x6
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitReturnPokeToBall
-
- thumb_func_start EmitDrawTrainerPic
-EmitDrawTrainerPic: @ 80339E4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x7
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitDrawTrainerPic
-
- thumb_func_start EmitTrainerSlide
-EmitTrainerSlide: @ 8033A04
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x8
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitTrainerSlide
-
- thumb_func_start EmitTrainerSlideBack
-EmitTrainerSlideBack: @ 8033A24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x9
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitTrainerSlideBack
-
- thumb_func_start EmitFaintAnimation
-EmitFaintAnimation: @ 8033A44
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0xA
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitFaintAnimation
-
- thumb_func_start dp01_build_cmdbuf_x0B_B_B_B
-dp01_build_cmdbuf_x0B_B_B_B: @ 8033A64
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0xB
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x0B_B_B_B
-
- thumb_func_start dp01_build_cmdbuf_x0C_C_C_C
-dp01_build_cmdbuf_x0C_C_C_C: @ 8033A84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0xC
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x0C_C_C_C
-
- thumb_func_start EmitBallThrow
-EmitBallThrow: @ 8033AA4
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0xD
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitBallThrow
-
- thumb_func_start sub_8033AC4
-sub_8033AC4: @ 8033AC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, =gUnknown_02022D10
- movs r0, 0xE
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsls r0, r4, 1
- adds r0, r4
- adds r5, r1, 0
- cmp r0, 0
- beq _08033AF2
- adds r1, r5, 0x2
- adds r3, r0, 0
-_08033AE4:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _08033AE4
-_08033AF2:
- lsls r2, r4, 1
- adds r2, r4
- adds r2, 0x2
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8033AC4
-
- thumb_func_start EmitMoveAnimation
-EmitMoveAnimation: @ 8033B0C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, [sp, 0x20]
- ldr r5, [sp, 0x24]
- ldr r6, [sp, 0x2C]
- mov r8, r6
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 16
- lsrs r1, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r7, =gUnknown_02022D10
- movs r0, 0
- mov r12, r0
- movs r0, 0xF
- strb r0, [r7]
- strb r1, [r7, 0x1]
- lsrs r1, 8
- strb r1, [r7, 0x2]
- strb r2, [r7, 0x3]
- strb r3, [r7, 0x4]
- movs r6, 0xFF
- lsls r6, 8
- lsrs r3, 8
- strb r3, [r7, 0x5]
- strb r4, [r7, 0x6]
- adds r0, r4, 0
- ands r0, r6
- asrs r0, 8
- strb r0, [r7, 0x7]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- asrs r0, 16
- strb r0, [r7, 0x8]
- lsrs r4, 24
- strb r4, [r7, 0x9]
- strb r5, [r7, 0xA]
- mov r0, r8
- strb r0, [r7, 0xB]
- mov r0, r12
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08033BAC
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08033BAC
- ldr r0, =gBattleWeather
- ldrh r0, [r0]
- strb r0, [r7, 0xC]
- ands r6, r0
- lsrs r0, r6, 8
- strb r0, [r7, 0xD]
- adds r4, r7, 0
- b _08033BB6
- .pool
-_08033BAC:
- ldr r0, =gUnknown_02022D10
- movs r1, 0
- strb r1, [r0, 0xC]
- strb r1, [r0, 0xD]
- adds r4, r0, 0
-_08033BB6:
- movs r0, 0
- strb r0, [r4, 0xE]
- strb r0, [r4, 0xF]
- adds r0, r4, 0
- adds r0, 0x10
- ldr r1, [sp, 0x28]
- movs r2, 0x1C
- bl memcpy
- mov r0, r9
- adds r1, r4, 0
- movs r2, 0x2C
- bl dp01_prepare_buffer
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitMoveAnimation
-
- thumb_func_start EmitPrintString
-EmitPrintString: @ 8033BE4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, =gUnknown_02022D10
- movs r0, 0x10
- strb r0, [r2]
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- lsrs r1, 8
- strb r1, [r2, 0x3]
- adds r0, r2, 0x4
- mov r12, r0
- ldr r4, =gCurrentMove
- ldrh r0, [r4]
- strh r0, [r2, 0x4]
- ldr r0, =gLastUsedMove
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1, 0x2]
- ldr r0, =gLastUsedItem
- ldrh r0, [r0]
- strh r0, [r1, 0x4]
- ldr r0, =gLastUsedAbility
- ldrb r0, [r0]
- strb r0, [r1, 0x6]
- ldr r0, =gBattleScripting
- ldrb r0, [r0, 0x17]
- strb r0, [r1, 0x7]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x52
- ldrb r1, [r1]
- mov r3, r12
- strb r1, [r3, 0x8]
- adds r0, 0xB1
- ldrb r0, [r0]
- strb r0, [r3, 0x9]
- ldr r0, =gStringBank
- ldrb r0, [r0]
- strb r0, [r3, 0xA]
- ldr r3, =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- mov r7, r12
- strb r0, [r7, 0xB]
- movs r3, 0
- mov r9, r2
- ldr r0, =gBattleTextBuff3
- mov r8, r0
- adds r2, 0x10
- ldr r0, =gBattleMons
- adds r4, r0, 0
- adds r4, 0x20
-_08033C6A:
- adds r1, r2, r3
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x58
- adds r3, 0x1
- cmp r3, 0x3
- ble _08033C6A
- movs r3, 0
- mov r5, r12
- adds r5, 0x10
- mov r4, r12
- adds r4, 0x20
- ldr r6, =gBattleTextBuff2
- mov r2, r12
- adds r2, 0x30
-_08033C88:
- adds r1, r5, r3
- ldr r7, =gBattleTextBuff1
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r4, r3
- adds r0, r3, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r3
- mov r7, r8
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0xF
- ble _08033C88
- mov r0, r10
- mov r1, r9
- movs r2, 0x44
- bl dp01_prepare_buffer
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitPrintString
-
- thumb_func_start EmitPrintStringPlayerOnly
-EmitPrintStringPlayerOnly: @ 8033CFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r2, =gUnknown_02022D10
- movs r0, 0x11
- strb r0, [r2]
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- lsrs r1, 8
- strb r1, [r2, 0x3]
- adds r0, r2, 0x4
- mov r12, r0
- ldr r0, =gCurrentMove
- ldrh r0, [r0]
- strh r0, [r2, 0x4]
- ldr r0, =gLastUsedMove
- ldrh r0, [r0]
- mov r1, r12
- strh r0, [r1, 0x2]
- ldr r0, =gLastUsedItem
- ldrh r0, [r0]
- strh r0, [r1, 0x4]
- ldr r0, =gLastUsedAbility
- ldrb r0, [r0]
- strb r0, [r1, 0x6]
- ldr r0, =gBattleScripting
- ldrb r0, [r0, 0x17]
- strb r0, [r1, 0x7]
- ldr r0, =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x52
- ldrb r0, [r0]
- strb r0, [r1, 0x8]
- movs r3, 0
- mov r9, r2
- ldr r7, =gBattleTextBuff3
- mov r8, r7
- mov r4, r9
- adds r4, 0x10
- ldr r0, =gBattleMons
- adds r2, r0, 0
- adds r2, 0x20
-_08033D5E:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x58
- adds r3, 0x1
- cmp r3, 0x3
- ble _08033D5E
- movs r3, 0
- mov r5, r12
- adds r5, 0x10
- mov r4, r12
- adds r4, 0x20
- ldr r6, =gBattleTextBuff2
- mov r2, r12
- adds r2, 0x30
-_08033D7C:
- adds r1, r5, r3
- ldr r7, =gBattleTextBuff1
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r4, r3
- adds r0, r3, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r3
- mov r7, r8
- adds r0, r3, r7
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0xF
- ble _08033D7C
- mov r0, r10
- mov r1, r9
- movs r2, 0x44
- bl dp01_prepare_buffer
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitPrintStringPlayerOnly
-
- thumb_func_start EmitChooseAction
-EmitChooseAction: @ 8033DE4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, =gUnknown_02022D10
- movs r3, 0x12
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitChooseAction
-
- thumb_func_start EmitCmd13
-EmitCmd13: @ 8033E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x13
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitCmd13
-
- thumb_func_start EmitChooseMove
-EmitChooseMove: @ 8033E30
- push {r4-r6,lr}
- adds r5, r3, 0
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, =gUnknown_02022D10
- movs r4, 0
- movs r0, 0x14
- strb r0, [r3]
- strb r1, [r3, 0x1]
- strb r2, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0
- adds r1, r3, 0
- adds r4, r1, 0x4
-_08033E4C:
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r4]
- adds r4, 0x1
- adds r2, 0x1
- cmp r2, 0x13
- bls _08033E4C
- adds r0, r6, 0
- movs r2, 0x18
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitChooseMove
-
- thumb_func_start EmitOpenBag
-EmitOpenBag: @ 8033E6C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gUnknown_02022D10
- movs r0, 0x15
- strb r0, [r1]
- movs r2, 0
- adds r3, r1, 0x1
-_08033E7E:
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _08033E7E
- adds r0, r5, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitOpenBag
-
- thumb_func_start EmitChoosePokemon
-EmitChoosePokemon: @ 8033EA0
- push {r4-r6,lr}
- ldr r6, [sp, 0x10]
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_02022D10
- movs r0, 0x16
- strb r0, [r4]
- strb r1, [r4, 0x1]
- strb r2, [r4, 0x2]
- strb r3, [r4, 0x3]
- movs r2, 0
- adds r1, r4, 0
- adds r3, r1, 0x4
-_08033EBA:
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- ble _08033EBA
- adds r0, r5, 0
- movs r2, 0x8
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitChoosePokemon
-
- thumb_func_start dp01_build_cmdbuf_x17_17_17_17
-dp01_build_cmdbuf_x17_17_17_17: @ 8033EDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x17
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x17_17_17_17
-
- thumb_func_start EmitHealthBarUpdate
-EmitHealthBarUpdate: @ 8033EFC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, =gUnknown_02022D10
- movs r4, 0
- movs r2, 0x18
- strb r2, [r3]
- strb r4, [r3, 0x1]
- strb r1, [r3, 0x2]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xFF
- lsls r2, 8
- ands r1, r2
- asrs r1, 8
- strb r1, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitHealthBarUpdate
-
- thumb_func_start EmitExpUpdate
-EmitExpUpdate: @ 8033F34
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, =gUnknown_02022D10
- movs r3, 0x19
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsls r2, 16
- asrs r2, 16
- movs r3, 0xFF
- lsls r3, 8
- ands r2, r3
- asrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitExpUpdate
-
- thumb_func_start EmitStatusIconUpdate
-EmitStatusIconUpdate: @ 8033F68
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r3, 0x1A
- strb r3, [r1]
- strb r4, [r1, 0x1]
- movs r6, 0xFF
- lsls r6, 8
- adds r3, r4, 0
- ands r3, r6
- lsrs r3, 8
- strb r3, [r1, 0x2]
- movs r5, 0xFF
- lsls r5, 16
- adds r3, r4, 0
- ands r3, r5
- lsrs r3, 16
- strb r3, [r1, 0x3]
- lsrs r4, 24
- strb r4, [r1, 0x4]
- strb r2, [r1, 0x5]
- adds r3, r2, 0
- ands r3, r6
- lsrs r3, 8
- strb r3, [r1, 0x6]
- adds r3, r2, 0
- ands r3, r5
- lsrs r3, 16
- strb r3, [r1, 0x7]
- lsrs r2, 24
- strb r2, [r1, 0x8]
- movs r2, 0x9
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitStatusIconUpdate
-
- thumb_func_start EmitStatusAnimation
-EmitStatusAnimation: @ 8033FBC
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r3, 0x1B
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r3, r2
- lsrs r3, 8
- strb r3, [r1, 0x3]
- movs r3, 0xFF
- lsls r3, 16
- ands r3, r2
- lsrs r3, 16
- strb r3, [r1, 0x4]
- lsrs r2, 24
- strb r2, [r1, 0x5]
- movs r2, 0x6
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitStatusAnimation
-
- thumb_func_start dp01_build_cmdbuf_x1C_a
-dp01_build_cmdbuf_x1C_a: @ 8033FF8
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x1C
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x1C_a
-
- thumb_func_start dp01_build_cmdbuf_x1D_1D_numargs_varargs
-dp01_build_cmdbuf_x1D_1D_numargs_varargs: @ 8034018
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, =gUnknown_02022D10
- movs r0, 0x1D
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- adds r5, r1, 0
- cmp r4, 0
- beq _08034048
- adds r1, r5, 0x4
- adds r3, r4, 0
-_0803403A:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0803403A
-_08034048:
- adds r2, r4, 0x4
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x1D_1D_numargs_varargs
-
- thumb_func_start sub_8034060
-sub_8034060: @ 8034060
- push {r4-r6,lr}
- adds r4, r3, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r5, r2, 16
- ldr r2, =gUnknown_02022D10
- movs r0, 0x1E
- strb r0, [r2]
- strb r1, [r2, 0x1]
- movs r3, 0xFF
- lsls r3, 8
- adds r0, r1, 0
- ands r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r2, 0x3]
- lsrs r1, 24
- strb r1, [r2, 0x4]
- strb r5, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r3
- lsrs r0, 8
- strb r0, [r2, 0x6]
- adds r1, r2, 0
- cmp r5, 0
- beq _080340B0
- adds r3, r1, 0x7
- adds r2, r5, 0
-_080340A2:
- ldrb r0, [r4]
- strb r0, [r3]
- adds r4, 0x1
- adds r3, 0x1
- subs r2, 0x1
- cmp r2, 0
- bne _080340A2
-_080340B0:
- adds r2, r5, 0x7
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8034060
-
- thumb_func_start sub_80340C8
-sub_80340C8: @ 80340C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, =gUnknown_02022D10
- movs r0, 0x1F
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsrs r0, r4, 8
- strb r0, [r1, 0x2]
- adds r5, r1, 0
- cmp r4, 0
- beq _080340F6
- adds r1, r5, 0x3
- adds r3, r4, 0
-_080340E8:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _080340E8
-_080340F6:
- adds r2, r4, 0x3
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80340C8
-
- thumb_func_start sub_8034110
-sub_8034110: @ 8034110
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, =gUnknown_02022D10
- movs r0, 0x20
- strb r0, [r1]
- strb r4, [r1, 0x1]
- lsrs r0, r4, 8
- strb r0, [r1, 0x2]
- adds r5, r1, 0
- cmp r4, 0
- beq _0803413E
- adds r1, r5, 0x3
- adds r3, r4, 0
-_08034130:
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _08034130
-_0803413E:
- adds r2, r4, 0x3
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl dp01_prepare_buffer
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8034110
-
- thumb_func_start EmitCmd_x21
-EmitCmd_x21: @ 8034158
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, =gUnknown_02022D10
- movs r3, 0x21
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitCmd_x21
-
- thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes
-dp01_build_cmdbuf_x22_a_three_bytes: @ 8034184
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gUnknown_02022D10
- movs r0, 0x22
- strb r0, [r2]
- strb r1, [r2, 0x1]
- movs r3, 0
- adds r1, r2, 0x2
-_08034198:
- adds r0, r4, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08034198
- adds r0, r5, 0
- adds r1, r2, 0
- movs r2, 0x5
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x22_a_three_bytes
-
- thumb_func_start dp01_build_cmdbuf_x23_aa_0
-dp01_build_cmdbuf_x23_aa_0: @ 80341BC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, =gUnknown_02022D10
- movs r4, 0
- movs r2, 0x23
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x23_aa_0
-
- thumb_func_start dp01_build_cmdbuf_x24_aa_0
-dp01_build_cmdbuf_x24_aa_0: @ 80341E8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, =gUnknown_02022D10
- movs r4, 0
- movs r2, 0x24
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x24_aa_0
-
- thumb_func_start dp01_build_cmdbuf_x25_25_25_25
-dp01_build_cmdbuf_x25_25_25_25: @ 8034214
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x25
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x25_25_25_25
-
- thumb_func_start dp01_build_cmdbuf_x26_a
-dp01_build_cmdbuf_x26_a: @ 8034234
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x26
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x26_a
-
- thumb_func_start dp01_build_cmdbuf_x27_27_27_27
-dp01_build_cmdbuf_x27_27_27_27: @ 8034254
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x27
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x27_27_27_27
-
- thumb_func_start dp01_build_cmdbuf_x28_28_28_28
-dp01_build_cmdbuf_x28_28_28_28: @ 8034274
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x28
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01_build_cmdbuf_x28_28_28_28
-
- thumb_func_start EmitHitAnimation
-EmitHitAnimation: @ 8034294
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x29
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitHitAnimation
-
- thumb_func_start Emit_x2A
-Emit_x2A: @ 80342B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x2A
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end Emit_x2A
-
- thumb_func_start EmitEffectivenessSound
-EmitEffectivenessSound: @ 80342D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r3, =gUnknown_02022D10
- movs r4, 0
- movs r2, 0x2B
- strb r2, [r3]
- strb r1, [r3, 0x1]
- lsrs r1, 8
- strb r1, [r3, 0x2]
- strb r4, [r3, 0x3]
- adds r1, r3, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitEffectivenessSound
-
- thumb_func_start EmitPlaySound
-EmitPlaySound: @ 8034300
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, =gUnknown_02022D10
- movs r3, 0x2C
- strb r3, [r4]
- strb r1, [r4, 0x1]
- lsrs r1, 8
- strb r1, [r4, 0x2]
- strb r2, [r4, 0x3]
- adds r1, r4, 0
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitPlaySound
-
- thumb_func_start EmitFaintingCry
-EmitFaintingCry: @ 803432C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x2D
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitFaintingCry
-
- thumb_func_start EmitIntroSlide
-EmitIntroSlide: @ 803434C
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x2E
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitIntroSlide
-
- thumb_func_start EmitIntroTrainerBallThrow
-EmitIntroTrainerBallThrow: @ 803436C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x2F
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitIntroTrainerBallThrow
-
- thumb_func_start EmitDrawPartyStatusSummary
-EmitDrawPartyStatusSummary: @ 803438C
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r1, =gUnknown_02022D10
- movs r3, 0x30
- strb r3, [r1]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x1]
- movs r0, 0x80
- ands r0, r2
- lsls r0, 24
- lsrs r0, 31
- strb r0, [r1, 0x2]
- strb r3, [r1, 0x3]
- movs r2, 0
- adds r3, r1, 0x4
-_080343B4:
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2F
- ble _080343B4
- adds r0, r5, 0
- movs r2, 0x34
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitDrawPartyStatusSummary
-
- thumb_func_start EmitCmd49
-EmitCmd49: @ 80343D4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x31
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitCmd49
-
- thumb_func_start Emit_x32
-Emit_x32: @ 80343F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x32
- strb r2, [r1]
- strb r2, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end Emit_x32
-
- thumb_func_start EmitSpriteInvisibility
-EmitSpriteInvisibility: @ 8034414
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x33
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitSpriteInvisibility
-
- thumb_func_start EmitBattleAnimation
-EmitBattleAnimation: @ 8034438
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, =gUnknown_02022D10
- movs r3, 0x34
- strb r3, [r1]
- strb r4, [r1, 0x1]
- strb r2, [r1, 0x2]
- lsrs r2, 8
- strb r2, [r1, 0x3]
- movs r2, 0x4
- bl dp01_prepare_buffer
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitBattleAnimation
-
- thumb_func_start EmitLinkStandbyMsg
-EmitLinkStandbyMsg: @ 8034464
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r4, =gUnknown_02022D10
- movs r0, 0x35
- strb r0, [r4]
- strb r1, [r4, 0x1]
- cmp r2, 0
- beq _0803448C
- adds r0, r4, 0x4
- bl sub_81850DC
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- b _08034490
- .pool
-_0803448C:
- strb r2, [r4, 0x2]
- strb r2, [r4, 0x3]
-_08034490:
- ldr r1, =gUnknown_02022D10
- ldrb r2, [r1, 0x2]
- adds r2, 0x4
- adds r0, r5, 0
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitLinkStandbyMsg
-
- thumb_func_start EmitResetActionMoveSelection
-EmitResetActionMoveSelection: @ 80344A8
- push {lr}
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_02022D10
- movs r2, 0x36
- strb r2, [r1]
- strb r3, [r1, 0x1]
- movs r2, 0x2
- bl dp01_prepare_buffer
- pop {r0}
- bx r0
- .pool
- thumb_func_end EmitResetActionMoveSelection
-
- thumb_func_start Emit_x37
-Emit_x37: @ 80344C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, =gUnknown_02022D10
- movs r0, 0x37
- strb r0, [r4]
- strb r1, [r4, 0x1]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0x00000ca9
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 31
- strb r0, [r4, 0x2]
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 31
- strb r0, [r4, 0x3]
- adds r0, r4, 0x6
- bl sub_81850DC
- strb r0, [r4, 0x4]
- strb r0, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- adds r2, 0x6
- adds r0, r5, 0
- adds r1, r4, 0
- bl dp01_prepare_buffer
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Emit_x37
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
index 5a2584edd..b729369c8 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -11676,7 +11676,7 @@ _0813B62E:
ldrh r0, [r0]
strh r0, [r5]
movs r0, 0x1
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
ldr r0, =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x1
@@ -11756,7 +11756,7 @@ _0813B6E4:
ldrh r0, [r0]
strh r0, [r1]
movs r0, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
_0813B708:
ldr r1, =gTasks
lsls r0, r4, 2
diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s
index 0e328358b..bf273ac53 100644
--- a/asm/rom_80A5C6C.s
+++ b/asm/rom_80A5C6C.s
@@ -74,7 +74,7 @@ _080A5D00:
lsls r0, 24
cmp r0, 0
beq _080A5D28
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrb r1, [r2, 0x4]
@@ -180,7 +180,7 @@ _080A5DDA:
lsls r0, 24
cmp r0, 0
beq _080A5E04
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrb r1, [r2, 0x4]
@@ -531,7 +531,7 @@ sub_80A60AC: @ 80A60AC
lsls r0, 24
cmp r0, 0
beq _080A60E8
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrb r1, [r2, 0x4]
@@ -554,7 +554,7 @@ _080A60E8:
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A610C
- ldr r1, =gUnknown_02038438
+ ldr r1, =gAnimSpeciesByBanks
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
@@ -724,9 +724,9 @@ GetAnimBankSpriteId: @ 80A6240
adds r1, r0, 0
cmp r0, 0
bne _080A6268
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _080A62B6
@@ -737,9 +737,9 @@ GetAnimBankSpriteId: @ 80A6240
_080A6268:
cmp r0, 0x1
bne _080A6288
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
- bl sub_80A6A90
+ bl AnimBankSpriteExists
lsls r0, 24
cmp r0, 0
beq _080A62B6
@@ -750,22 +750,22 @@ _080A6268:
_080A6288:
cmp r1, 0x2
bne _080A62A4
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A62B6
b _080A62C0
.pool
_080A62A4:
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r4, 0x2
eors r0, r4
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
bne _080A62C0
@@ -1242,7 +1242,7 @@ sub_80A65EC: @ 80A65EC
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -1421,7 +1421,7 @@ move_anim_8074EE0: @ 80A674C
adds r4, r0, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -1439,7 +1439,7 @@ sub_80A6760: @ 80A6760
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x34]
- ldr r5, =gAnimationBankAttacker
+ ldr r5, =gAnimBankAttacker
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -1518,7 +1518,7 @@ sub_80A67F4: @ 80A67F4
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
pop {r4}
pop {r0}
bx r0
@@ -1537,7 +1537,7 @@ sub_80A6814: @ 80A6814
movs r1, 0
bl SetGpuReg
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r4}
pop {r0}
bx r0
@@ -1547,7 +1547,7 @@ sub_80A6814: @ 80A6814
sub_80A6838: @ 80A6838
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -1575,13 +1575,13 @@ sub_80A6864: @ 80A6864
lsls r1, 16
lsrs r5, r1, 16
mov r8, r5
- ldr r7, =gAnimationBankAttacker
+ ldr r7, =gAnimBankAttacker
ldrb r0, [r7]
movs r1, 0
bl sub_80A5C6C
lsls r0, 24
lsrs r6, r0, 24
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
movs r1, 0
bl sub_80A5C6C
@@ -1729,7 +1729,7 @@ sub_80A6980: @ 80A6980
lsls r1, 24
cmp r1, 0
bne _080A69A8
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0
bl sub_80A60AC
@@ -1765,7 +1765,7 @@ sub_80A69CC: @ 80A69CC
lsls r1, 24
cmp r1, 0
bne _080A69F0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0
bl sub_80A60AC
@@ -1777,7 +1777,7 @@ sub_80A69CC: @ 80A69CC
b _080A6A04
.pool
_080A69F0:
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A60AC
@@ -1810,7 +1810,7 @@ _080A6A04:
GetBankSide: @ 80A6A30
lsls r0, 24
lsrs r0, 24
- ldr r1, =gBanksBySide
+ ldr r1, =gBanksByIdentity
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
@@ -1823,7 +1823,7 @@ GetBankSide: @ 80A6A30
GetBankIdentity: @ 80A6A44
lsls r0, 24
lsrs r0, 24
- ldr r1, =gBanksBySide
+ ldr r1, =gBanksByIdentity
adds r0, r1
ldrb r0, [r0]
bx lr
@@ -1840,7 +1840,7 @@ GetBankByIdentity: @ 80A6A54
ldrb r2, [r0]
cmp r1, r2
bcs _080A6A7E
- ldr r4, =gBanksBySide
+ ldr r4, =gBanksByIdentity
ldrb r0, [r4]
cmp r0, r3
beq _080A6A7E
@@ -1862,8 +1862,8 @@ _080A6A7E:
.pool
thumb_func_end GetBankByIdentity
- thumb_func_start sub_80A6A90
-sub_80A6A90: @ 80A6A90
+ thumb_func_start AnimBankSpriteExists
+AnimBankSpriteExists: @ 80A6A90
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -1872,18 +1872,18 @@ sub_80A6A90: @ 80A6A90
lsls r0, 24
cmp r0, 0
beq _080A6ABC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
cmp r0, r4
beq _080A6B0A
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
cmp r0, r4
beq _080A6B0A
b _080A6B18
.pool
_080A6ABC:
- ldr r0, =gBanksBySide
+ ldr r0, =gBanksByIdentity
adds r0, r4, r0
ldrb r0, [r0]
cmp r0, 0xFF
@@ -1926,7 +1926,7 @@ _080A6B1A:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80A6A90
+ thumb_func_end AnimBankSpriteExists
thumb_func_start IsDoubleBattle
IsDoubleBattle: @ 80A6B20
@@ -2061,9 +2061,9 @@ sub_80A6BFC: @ 80A6BFC
b _080A6C60
.pool
_080A6C30:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
- bl GetBankIdentity_permutated
+ bl sub_80A8364
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x1
@@ -2271,21 +2271,21 @@ _080A6DBE:
movs r0, 0x3
movs r1, 0
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x3
movs r1, 0x1
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
b _080A6DE8
_080A6DD4:
movs r0, 0x3
movs r1, 0
movs r2, 0x1
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
movs r0, 0x3
movs r1, 0x1
movs r2, 0
- bl lcd_bg_operations
+ bl SetAnimBgAttribute
_080A6DE8:
pop {r0}
bx r0
@@ -2934,7 +2934,7 @@ sub_80A7270: @ 80A7270
cmp r0, 0
bne _080A72A6
adds r0, r7, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A72B4
@@ -3372,7 +3372,7 @@ _080A75F6:
_080A7602:
cmp r7, 0
beq _080A7614
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3383,7 +3383,7 @@ _080A7614:
mov r0, r8
cmp r0, 0
beq _080A7628
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
adds r1, r0, 0
adds r1, 0x10
@@ -3394,11 +3394,11 @@ _080A7628:
mov r0, r9
cmp r0, 0
beq _080A764E
- ldr r6, =gAnimationBankAttacker
+ ldr r6, =gAnimBankAttacker
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A764E
@@ -3413,11 +3413,11 @@ _080A764E:
mov r0, r10
cmp r0, 0
beq _080A7674
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7674
@@ -3499,7 +3499,7 @@ _080A76F2:
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A771A
@@ -3517,7 +3517,7 @@ _080A771A:
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7746
@@ -3537,7 +3537,7 @@ _080A7746:
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A7772
@@ -3558,7 +3558,7 @@ _080A7772:
bl GetBankByIdentity
lsls r0, 24
lsrs r0, 24
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A77A0
@@ -3670,7 +3670,7 @@ _080A7838:
_080A7842:
adds r0, r5, 0
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3682,7 +3682,7 @@ _080A7842:
_080A785C:
ldrh r0, [r6, 0x8]
strh r0, [r5, 0x2E]
- ldr r4, =gAnimationBankTarget
+ ldr r4, =gAnimBankTarget
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -3701,7 +3701,7 @@ _080A785C:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4-r7}
@@ -3716,7 +3716,7 @@ sub_80A78AC: @ 80A78AC
adds r6, r0, 0
movs r1, 0x1
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3730,7 +3730,7 @@ _080A78CC:
ldr r4, =gBattleAnimArgs
ldrh r0, [r4, 0x8]
strh r0, [r6, 0x2E]
- ldr r5, =gAnimationBankTarget
+ ldr r5, =gAnimBankTarget
ldrb r0, [r5]
movs r1, 0x2
bl sub_80A5C6C
@@ -3768,7 +3768,7 @@ sub_80A791C: @ 80A791C
cmp r0, 0
beq _080A7930
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080A7930:
pop {r4}
pop {r0}
@@ -3799,17 +3799,17 @@ _080A7954:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80A69CC
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
b _080A7976
.pool
_080A796C:
adds r0, r5, 0
adds r1, r4, 0
bl sub_80A6980
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
_080A7976:
ldrb r6, [r0]
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -3844,7 +3844,7 @@ _080A798E:
strh r0, [r5, 0x36]
ldr r0, =sub_80A6EEC
str r0, [r5, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
pop {r4-r7}
@@ -4070,7 +4070,7 @@ _080A7B60:
cmp r1, r0
bne _080A7B90
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080A7B90:
pop {r4,r5}
pop {r0}
@@ -4090,7 +4090,7 @@ sub_80A7B98: @ 80A7B98
cmp r3, 0xFF
bne _080A7BBC
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080A7BE2
.pool
_080A7BBC:
@@ -4210,7 +4210,7 @@ _080A7C78:
b _080A7CAC
_080A7CA6:
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080A7CAC:
pop {r4,r5}
pop {r0}
@@ -4230,7 +4230,7 @@ sub_80A7CB4: @ 80A7CB4
cmp r2, 0xFF
bne _080A7CD8
adds r0, r4, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
b _080A7CEE
.pool
_080A7CD8:
@@ -4554,7 +4554,7 @@ _080A7F42:
lsls r0, 24
cmp r0, 0
beq _080A7F78
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r0, [r0, 0x18]
ldrh r2, [r0]
@@ -4807,7 +4807,7 @@ sub_80A8140: @ 80A8140
push {lr}
lsls r0, 24
lsrs r2, r0, 24
- ldr r0, =gHappinessMoveAnim
+ ldr r0, =gAnimFriendship
ldrb r0, [r0]
movs r1, 0
cmp r0, 0x1E
@@ -4823,7 +4823,7 @@ _080A815E:
ldr r0, =gBattleAnimArgs
strh r1, [r0, 0xE]
adds r0, r2, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
pop {r0}
bx r0
.pool
@@ -4837,9 +4837,9 @@ sub_80A8174: @ 80A8174
lsls r0, 24
lsrs r4, r0, 24
adds r7, r4, 0
- ldr r6, =gAnimationBankTarget
+ ldr r6, =gAnimBankTarget
ldrb r0, [r6]
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A81B4
@@ -4863,10 +4863,10 @@ sub_80A8174: @ 80A8174
orrs r0, r2
strb r0, [r1, 0x5]
_080A81B4:
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
mov r8, r0
ldrb r0, [r0]
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A81EC
@@ -4894,7 +4894,7 @@ _080A81EC:
ldrb r0, [r6]
movs r5, 0x2
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A8224
@@ -4922,7 +4922,7 @@ _080A8224:
mov r1, r8
ldrb r0, [r1]
eors r0, r5
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A825C
@@ -4968,7 +4968,7 @@ _080A8286:
lsls r0, r5, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl b_side_obj__get_some_boolean
+ bl IsAnimBankSpriteVisible
lsls r0, 24
cmp r0, 0
beq _080A82C8
@@ -5083,8 +5083,8 @@ _080A835C:
bx r1
thumb_func_end sub_80A8328
- thumb_func_start GetBankIdentity_permutated
-GetBankIdentity_permutated: @ 80A8364
+ thumb_func_start sub_80A8364
+sub_80A8364: @ 80A8364
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
@@ -5109,7 +5109,7 @@ _080A838C:
pop {r4}
pop {r1}
bx r1
- thumb_func_end GetBankIdentity_permutated
+ thumb_func_end sub_80A8364
thumb_func_start sub_80A8394
sub_80A8394: @ 80A8394
@@ -5416,7 +5416,7 @@ sub_80A861C: @ 80A861C
lsls r0, 24
cmp r0, 0
beq _080A86C4
- ldr r0, =gUnknown_02039F34
+ ldr r0, =gContestResources
ldr r0, [r0]
ldr r2, [r0, 0x18]
ldrb r1, [r2, 0x4]
@@ -5941,7 +5941,7 @@ sub_80A8A6C: @ 80A8A6C
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -5998,7 +5998,7 @@ _080A8AB6:
sub_80A8AEC: @ 80A8AEC
push {r4,lr}
adds r4, r0, 0
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6054,7 +6054,7 @@ sub_80A8B64: @ 80A8B64
push {r4,lr}
adds r4, r0, 0
bl sub_80A6838
- ldr r0, =gAnimationBankAttacker
+ ldr r0, =gAnimBankAttacker
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6081,7 +6081,7 @@ _080A8B9C:
strh r0, [r4, 0x22]
ldr r0, =sub_80A67D8
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4}
@@ -6106,7 +6106,7 @@ sub_80A8BC4: @ 80A8BC4
lsrs r0, 24
movs r6, 0
strh r0, [r5, 0x8]
- ldr r7, =gAnimationBankAttacker
+ ldr r7, =gAnimBankAttacker
ldrb r0, [r7]
bl GetBankSide
lsls r0, 24
@@ -6283,7 +6283,7 @@ _080A8D58:
ldr r0, =0x00002771
bl FreeSpritePaletteByTag
adds r0, r5, 0
- bl move_anim_task_del
+ bl DestroyAnimVisualTask
_080A8D6C:
pop {r4,r5}
pop {r0}
@@ -6389,7 +6389,7 @@ _080A8E26:
sub_80A8E30: @ 80A8E30
push {r4,r5,lr}
adds r5, r0, 0
- ldr r4, =gAnimationBankAttacker
+ ldr r4, =gAnimBankAttacker
ldrb r0, [r4]
movs r1, 0x2
bl sub_80A5C6C
@@ -6465,7 +6465,7 @@ _080A8EC4:
cmp r0, r1
bge _080A8EDC
adds r0, r4, 0
- bl move_anim_8072740
+ bl DestroyAnimSprite
_080A8EDC:
pop {r4,r5}
pop {r0}
@@ -6487,7 +6487,7 @@ sub_80A8EE4: @ 80A8EE4
ldrh r1, [r4, 0x22]
adds r0, r1
strh r0, [r4, 0x36]
- ldr r0, =gAnimationBankTarget
+ ldr r0, =gAnimBankTarget
ldrb r0, [r0]
bl GetBankSide
lsls r0, 24
@@ -6514,7 +6514,7 @@ _080A8F32:
strh r0, [r4, 0x22]
ldr r0, =sub_80A6EEC
str r0, [r4, 0x1C]
- ldr r1, =move_anim_8072740
+ ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
pop {r4,r5}
diff --git a/asm/secret_base.s b/asm/secret_base.s
index d433f5df2..69cfff512 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -1192,7 +1192,7 @@ _080E9462:
mov r3, r10
ldrb r1, [r3]
lsls r1, 5
- ldr r2, =gUnknown_085A5C24
+ ldr r2, =gDecorations + 0x1c
adds r1, r2
ldr r1, [r1]
ldrh r1, [r1]
diff --git a/asm/title_screen.s b/asm/title_screen.s
index 961b14210..bc9401fb6 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -1228,7 +1228,7 @@ c2_clear_save_data_screen_1: @ 80AAEF0
lsls r0, 24
cmp r0, 0
bne _080AAF02
- ldr r0, =c2_clear_save_data_screen_2
+ ldr r0, =CB2_InitClearSaveDataScreen
bl SetMainCallback2
_080AAF02:
pop {r0}
diff --git a/asm/trade.s b/asm/trade.s
index 31c16195e..51b517a0b 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -125,7 +125,7 @@ sub_8077234: @ 8077234
_08077250:
lsls r0, r4, 24
lsrs r0, 24
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
_08077258:
pop {r4}
pop {r0}
@@ -5954,7 +5954,7 @@ _0807A488:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8075060
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x5D
adds r1, r6
@@ -5997,7 +5997,7 @@ _0807A4E8:
asrs r0, 16
lsls r1, 16
asrs r1, 16
- bl sub_8075060
+ bl GetHPBarLevel
ldr r1, [r7]
adds r1, 0x63
adds r1, r6
@@ -12903,7 +12903,7 @@ _0807E504:
strb r6, [r0]
_0807E514:
movs r0, 0
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
_0807E51A:
movs r0, 0x2
ands r0, r5
@@ -12924,7 +12924,7 @@ _0807E51A:
strb r1, [r0]
_0807E53C:
movs r0, 0x1
- bl sub_800A5EC
+ bl ResetBlockReceivedFlag
_0807E542:
pop {r4-r6}
pop {r0}
diff --git a/asm/trader.s b/asm/trader.s
index 8c21648fc..8e0b17905 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -351,7 +351,7 @@ sub_8133CF4: @ 8133CF4
ldr r5, =gScriptResult
_08133CFA:
adds r0, r4, 0
- bl sub_8161AD0
+ bl CountDecorationCategoryN
lsls r0, 24
cmp r0, 0
beq _08133D10
@@ -395,7 +395,7 @@ sub_8133D2C: @ 8133D2C
cmp r1, r0
beq _08133D72
adds r0, r1, 0
- bl sub_81618D0
+ bl GetFirstEmptyDecorSlot
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -433,15 +433,15 @@ sub_8133DA0: @ 8133DA0
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
- bl sub_81279C4
+ bl IsSelectedDecorInThePC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08133DFC
ldr r5, =gSpecialVar_0x8006
- ldr r0, =gUnknown_0203A172
+ ldr r0, =gCurDecorationIndex
ldrb r1, [r0]
- ldr r0, =gUnknown_0203A14C
+ ldr r0, =gCurDecorInventoryItems
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0]
diff --git a/asm/walda_phrase.s b/asm/walda_phrase.s
deleted file mode 100755
index be754f386..000000000
--- a/asm/walda_phrase.s
+++ /dev/null
@@ -1,543 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start walda_maybe
-walda_maybe: @ 81D99E4
- push {r4,lr}
- sub sp, 0x8
- ldr r4, =gStringVar2
- bl sub_80D2548
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- str r0, [sp]
- ldr r0, =sub_81D9A1C
- str r0, [sp, 0x4]
- movs r0, 0x4
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl DoNamingScreen
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end walda_maybe
-
- thumb_func_start sub_81D9A1C
-sub_81D9A1C: @ 81D9A1C
- push {r4,r5,lr}
- ldr r4, =gSpecialVar_0x8004
- ldr r5, =gStringVar2
- adds r0, r5, 0
- bl sub_81D9A98
- strh r0, [r4]
- ldrh r0, [r4]
- cmp r0, 0x1
- beq _081D9A68
- cmp r0, 0x1
- bgt _081D9A44
- cmp r0, 0
- beq _081D9A62
- b _081D9A68
- .pool
-_081D9A44:
- cmp r0, 0x2
- bne _081D9A68
- bl sub_80D2578
- cmp r0, 0
- beq _081D9A5C
- ldr r0, =gText_Peekaboo
- bl sub_80D255C
- b _081D9A68
- .pool
-_081D9A5C:
- movs r0, 0x1
- strh r0, [r4]
- b _081D9A68
-_081D9A62:
- adds r0, r5, 0
- bl sub_80D255C
-_081D9A68:
- ldr r4, =gStringVar1
- bl sub_80D2548
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, =gFieldCallback
- ldr r0, =sub_80AF168
- str r0, [r1]
- ldr r0, =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81D9A1C
-
- thumb_func_start sub_81D9A98
-sub_81D9A98: @ 81D9A98
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _081D9AA6
- movs r0, 0x2
- b _081D9ABC
-_081D9AA6:
- bl sub_80D2548
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _081D9ABA
- movs r0, 0
- b _081D9ABC
-_081D9ABA:
- movs r0, 0x1
-_081D9ABC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81D9A98
-
- thumb_func_start sub_81D9AC4
-sub_81D9AC4: @ 81D9AC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xA
- bl ReadUnalignedWord
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =gScriptResult
- mov r8, r0
- bl sub_80D2548
- mov r7, sp
- adds r7, 0xA
- add r6, sp, 0xC
- mov r5, sp
- adds r5, 0xD
- str r4, [sp]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_81D9B68
- mov r1, r8
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _081D9B1E
- ldrb r0, [r5]
- bl sub_80D24BC
- ldrb r0, [r6]
- bl sub_80D24F0
- add r0, sp, 0x8
- ldrh r0, [r0]
- ldrh r1, [r7]
- bl sub_80D2524
-_081D9B1E:
- mov r1, r8
- ldrh r0, [r1]
- bl sub_80D2480
- mov r1, r8
- ldrb r0, [r1]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81D9AC4
-
- thumb_func_start sub_81D9B40
-sub_81D9B40: @ 81D9B40
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, =gUnknown_0862AD14
-_081D9B4A:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081D9B5C
- lsls r0, r1, 24
- lsrs r0, 24
- b _081D9B64
- .pool
-_081D9B5C:
- adds r1, 0x1
- cmp r1, 0x1F
- bls _081D9B4A
- movs r0, 0x20
-_081D9B64:
- pop {r1}
- bx r1
- thumb_func_end sub_81D9B40
-
- thumb_func_start sub_81D9B68
-sub_81D9B68: @ 81D9B68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- mov r10, r0
- str r1, [sp, 0x20]
- str r2, [sp, 0x24]
- str r3, [sp, 0x28]
- ldr r0, [sp, 0x4C]
- ldr r5, [sp, 0x50]
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- adds r0, r5, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF
- bne _081D9C7E
- movs r4, 0
- add r7, sp, 0x10
-_081D9B98:
- adds r0, r5, r4
- ldrb r0, [r0]
- bl sub_81D9B40
- adds r1, r7, r4
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x20
- beq _081D9C7E
- adds r4, 0x1
- cmp r4, 0xE
- ble _081D9B98
- movs r6, 0x3
- movs r5, 0
- movs r0, 0x5
- mov r8, r0
- movs r4, 0xD
-_081D9BBC:
- mov r1, r8
- str r1, [sp]
- add r0, sp, 0x4
- adds r1, r7, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_81D9D5C
- adds r6, 0x8
- adds r5, 0x5
- subs r4, 0x1
- cmp r4, 0
- bge _081D9BBC
- movs r0, 0x2
- str r0, [sp]
- add r0, sp, 0x4
- adds r1, r7, 0
- movs r2, 0x46
- movs r3, 0x73
- bl sub_81D9D5C
- add r0, sp, 0x4
- movs r1, 0
- movs r2, 0x3
- bl sub_81D9DAC
- adds r4, r0, 0
- adds r0, r7, 0
- movs r1, 0x75
- movs r2, 0x3
- bl sub_81D9DAC
- cmp r4, r0
- bne _081D9C7E
- add r0, sp, 0x4
- movs r1, 0x9
- movs r2, 0x15
- bl sub_81D9C90
- add r0, sp, 0x4
- ldrb r0, [r0, 0x8]
- movs r2, 0xF
- ands r2, r0
- add r0, sp, 0x4
- movs r1, 0x8
- bl sub_81D9C90
- add r0, sp, 0x4
- ldrb r2, [r0, 0x8]
- lsrs r2, 4
- movs r1, 0x8
- bl sub_81D9CDC
- add r0, sp, 0x4
- ldrb r2, [r0, 0x6]
- adds r1, r0, 0
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- eors r0, r1
- add r1, sp, 0x4
- ldrb r4, [r1, 0x4]
- eors r0, r4
- mov r3, r9
- lsrs r1, r3, 8
- eors r0, r1
- cmp r2, r0
- bne _081D9C7E
- add r0, sp, 0x4
- ldrb r3, [r0, 0x7]
- adds r2, r0, 0
- ldrb r1, [r0, 0x1]
- ldrb r0, [r2, 0x3]
- eors r1, r0
- adds r0, r2, 0
- ldrb r2, [r0, 0x5]
- eors r1, r2
- movs r0, 0xFF
- mov r5, r9
- ands r0, r5
- eors r1, r0
- cmp r3, r1
- bne _081D9C7E
- add r0, sp, 0x4
- ldrh r0, [r0]
- mov r1, r10
- strh r0, [r1]
- mov r0, sp
- adds r0, 0x6
- ldrh r0, [r0]
- ldr r3, [sp, 0x20]
- strh r0, [r3]
- ldr r5, [sp, 0x24]
- strb r4, [r5]
- ldr r0, [sp, 0x28]
- strb r2, [r0]
- movs r0, 0x1
- b _081D9C80
-_081D9C7E:
- movs r0, 0
-_081D9C80:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81D9B68
-
- thumb_func_start sub_81D9C90
-sub_81D9C90: @ 81D9C90
- push {r4-r7,lr}
- adds r7, r0, 0
- mov r12, r1
- subs r3, r2, 0x1
- cmp r2, 0
- beq _081D9CD6
-_081D9C9C:
- ldrb r1, [r7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 31
- mov r2, r12
- subs r2, 0x1
- subs r5, r3, 0x1
- cmp r2, 0
- blt _081D9CCC
- movs r6, 0x80
- adds r3, r2, r7
-_081D9CB4:
- ldrb r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- lsls r0, 24
- lsls r1, 1
- orrs r4, r1
- strb r4, [r3]
- lsrs r4, r0, 31
- subs r3, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _081D9CB4
-_081D9CCC:
- adds r3, r5, 0
- movs r0, 0x1
- negs r0, r0
- cmp r3, r0
- bne _081D9C9C
-_081D9CD6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D9C90
-
- thumb_func_start sub_81D9CDC
-sub_81D9CDC: @ 81D9CDC
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r0, r3, 4
- orrs r3, r0
- lsls r0, r3, 24
- lsrs r3, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _081D9D04
-_081D9CF4:
- adds r2, r6, r4
- ldrb r1, [r2]
- adds r0, r3, 0
- eors r0, r1
- strb r0, [r2]
- adds r4, 0x1
- cmp r4, r5
- bcc _081D9CF4
-_081D9D04:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81D9CDC
-
- thumb_func_start sub_81D9D0C
-sub_81D9D0C: @ 81D9D0C
- push {lr}
- lsrs r3, r1, 3
- movs r2, 0x7
- ands r2, r1
- movs r1, 0x80
- asrs r1, r2
- adds r0, r3
- ldrb r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _081D9D24
- movs r0, 0x1
-_081D9D24:
- pop {r1}
- bx r1
- thumb_func_end sub_81D9D0C
-
- thumb_func_start sub_81D9D28
-sub_81D9D28: @ 81D9D28
- lsrs r3, r1, 3
- movs r2, 0x7
- ands r2, r1
- movs r1, 0x80
- asrs r1, r2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r3
- ldrb r2, [r0]
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_81D9D28
-
- thumb_func_start sub_81D9D40
-sub_81D9D40: @ 81D9D40
- lsrs r3, r1, 3
- movs r2, 0x7
- ands r2, r1
- movs r1, 0x80
- asrs r1, r2
- mvns r1, r1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r3
- ldrb r2, [r0]
- ands r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_81D9D40
-
- thumb_func_start sub_81D9D5C
-sub_81D9D5C: @ 81D9D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- mov r9, r1
- adds r1, r2, 0
- mov r8, r3
- ldr r7, [sp, 0x1C]
- movs r5, 0
- cmp r5, r7
- bcs _081D9DA0
- adds r4, r1, 0
-_081D9D76:
- mov r0, r8
- adds r1, r0, r5
- mov r0, r9
- bl sub_81D9D0C
- lsls r0, 24
- cmp r0, 0
- beq _081D9D90
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81D9D28
- b _081D9D98
-_081D9D90:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81D9D40
-_081D9D98:
- adds r4, 0x1
- adds r5, 0x1
- cmp r5, r7
- bcc _081D9D76
-_081D9DA0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81D9D5C
-
- thumb_func_start sub_81D9DAC
-sub_81D9DAC: @ 81D9DAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r7, r1, 0
- adds r6, r2, 0
- movs r4, 0
- movs r5, 0
- cmp r4, r6
- bcs _081D9DD6
-_081D9DC0:
- lsls r4, 1
- adds r1, r7, r5
- mov r0, r8
- bl sub_81D9D0C
- lsls r0, 24
- lsrs r0, 24
- orrs r4, r0
- adds r5, 0x1
- cmp r5, r6
- bcc _081D9DC0
-_081D9DD6:
- adds r0, r4, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81D9DAC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index b657ae179..e97943840 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -6,7 +6,7 @@
gUnknown_082C8D64:: @ 82C8D64
.incbin "baserom.gba", 0x2c8d64, 0x8
-gUnknown_082C8D6C:: @ 82C8D6C
+gBattleAnims_Moves:: @ 82C8D6C
.incbin "baserom.gba", 0x2c8d6c, 0x590
gUnknown_082C92FC:: @ 82C92FC
diff --git a/data/battle_anims.s b/data/battle_anims.s
index 13e1bdc2f..082a86fa1 100644
--- a/data/battle_anims.s
+++ b/data/battle_anims.s
@@ -294,7 +294,7 @@ gUnknown_08524B3C:: @ 8524B3C
.byte 0x00, 0x87, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00
.align 2
-gUnknown_08524B44:: @ 8524B44
+gBattleAnimPicTable:: @ 8524B44
obj_tiles 0x08c02538, 0x0200, 0x2710
obj_tiles 0x08c1c6e0, 0x0300, 0x2711
obj_tiles 0x08c20784, 0x0200, 0x2712
@@ -353,9 +353,6 @@ gUnknown_08524B44:: @ 8524B44
obj_tiles 0x08c0a8bc, 0x0200, 0x2747
obj_tiles 0x08c0a3ec, 0x1000, 0x2748
obj_tiles 0x08c0a980, 0x0180, 0x2749
-
- .align 2
-gUnknown_08524D14:: @ 8524D14
obj_tiles 0x08c0aa2c, 0x0c00, 0x274a
obj_tiles 0x08c0aebc, 0x0100, 0x274b
obj_tiles 0x08c0af38, 0x0040, 0x274c
@@ -434,9 +431,6 @@ gUnknown_08524D14:: @ 8524D14
obj_tiles 0x08c14b78, 0x0100, 0x2795
obj_tiles 0x08c14c1c, 0x0200, 0x2796
obj_tiles 0x08c1a3a0, 0x0200, 0x2797
-
- .align 2
-gUnknown_08524F84:: @ 8524F84
obj_tiles 0x08c1a540, 0x0020, 0x2798
obj_tiles 0x08c1a58c, 0x0a00, 0x2799
obj_tiles 0x08c1ab40, 0x0800, 0x279a
@@ -534,9 +528,6 @@ gUnknown_08524F84:: @ 8524F84
obj_tiles 0x08c258b8, 0x0800, 0x27f6
obj_tiles 0x08c28394, 0x0380, 0x27f7
obj_tiles 0x08c27e34, 0x0800, 0x27f8
-
- .align 2
-gUnknown_0852528C:: @ 852528C
obj_tiles 0x08c28564, 0x00c0, 0x27f9
obj_tiles 0x08c28610, 0x0800, 0x27fa
obj_tiles 0x08c28880, 0x0060, 0x27fb
@@ -573,9 +564,6 @@ gUnknown_0852528C:: @ 852528C
obj_tiles 0x08d93b9c, 0x0080, 0x281a
obj_tiles 0x08c2407c, 0x0800, 0x281b
obj_tiles 0x08d8ea54, 0x0020, 0x281c
-
- .align 2
-gUnknown_085253AC:: @ 85253AC
obj_tiles 0x08d8ef2c, 0x0080, 0x281d
obj_tiles 0x08dba378, 0x0400, 0x281e
obj_tiles 0x08dba4b8, 0x0080, 0x281f
@@ -597,6 +585,8 @@ gUnknown_085253AC:: @ 85253AC
obj_tiles 0x08c0a3ec, 0x1000, 0x282f
obj_tiles 0x08c1bee4, 0x0100, 0x2830
+ .align 2
+gBattleAnimPaletteTable:: @ 852544C
obj_pal 0x08c028cc, 0x2710
obj_pal 0x08c1c794, 0x2711
obj_pal 0x08c20868, 0x2712
@@ -655,9 +645,6 @@ gUnknown_085253AC:: @ 85253AC
obj_pal 0x08c09fd8, 0x2747
obj_pal 0x08c0a894, 0x2748
obj_pal 0x08c0aa08, 0x2749
-
- .align 2
-gUnknown_0852561C:: @ 852561C
obj_pal 0x08c0ae94, 0x274a
obj_pal 0x08c0af1c, 0x274b
obj_pal 0x08c0af60, 0x274c
@@ -736,9 +723,6 @@ gUnknown_0852561C:: @ 852561C
obj_pal 0x08c14bf4, 0x2795
obj_pal 0x08c14bf4, 0x2796
obj_pal 0x08c1a478, 0x2797
-
- .align 2
-gUnknown_0852588C:: @ 852588C
obj_pal 0x08c1a564, 0x2798
obj_pal 0x08c1a478, 0x2799
obj_pal 0x08c1a478, 0x279a
@@ -836,9 +820,6 @@ gUnknown_0852588C:: @ 852588C
obj_pal 0x08c25890, 0x27f6
obj_pal 0x08c2836c, 0x27f7
obj_pal 0x08c2836c, 0x27f8
-
- .align 2
-gUnknown_08525B94:: @ 8525B94
obj_pal 0x08c285e8, 0x27f9
obj_pal 0x08c287d0, 0x27fa
obj_pal 0x08c288d0, 0x27fb
@@ -875,9 +856,6 @@ gUnknown_08525B94:: @ 8525B94
obj_pal 0x08d93bdc, 0x281a
obj_pal 0x08d93bf4, 0x281b
obj_pal 0x08d93c0c, 0x281c
-
- .align 2
-gUnknown_08525CB4:: @ 8525CB4
obj_pal 0x08d8ef80, 0x281d
obj_pal 0x08dba35c, 0x281e
obj_pal 0x08dba4a0, 0x281f
@@ -900,7 +878,7 @@ gUnknown_08525CB4:: @ 8525CB4
obj_pal 0x08c1bf5c, 0x2830
.align 2
-gUnknown_08525D54:: @ 8525D54
+gBattleAnimBackgroundTable:: @ 8525D54
.4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c
.4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c
.4byte 0x08d90074, 0x08d90d3c, 0x08d90d58
@@ -928,105 +906,3 @@ gUnknown_08525D54:: @ 8525D54
.4byte 0x08c25bec, 0x08d91074, 0x08c26958
.4byte 0x08c25bec, 0x08d91074, 0x08c26e54
.4byte 0x08c25bec, 0x08d91074, 0x08c27324
-
- .align 2
-gUnknown_08525E98:: @ 8525E98
- .4byte ma00_load_graphics
- .4byte ma01_080728D0
- .4byte ma02_instanciate_template
- .4byte sub_80A3ECC
- .4byte ma04_wait_countdown
- .4byte sub_80A3F88
- .4byte nullsub_6
- .4byte nullsub_7
- .4byte sub_80A3FC4
- .4byte ma09_play_sound
- .4byte sub_80A41D8
- .4byte ma0B_0807324C
- .4byte ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument
- .4byte ma0D_reset_BLDCNT_and_BLDALPHA
- .4byte ma0E_call
- .4byte sub_80A4D00
- .4byte ma10_080736AC
- .4byte ma11_if_else
- .4byte ma12_cond_if
- .4byte ma13_goto
- .4byte ma14_load_background
- .4byte ma15_load_battle_screen_elements
- .4byte ma16_wait_for_battle_screen_elements_s2
- .4byte sub_80A5124
- .4byte ma18_load_background_probably
- .4byte ma19_08073BC8
- .4byte ma1A_8073C00
- .4byte ma1B_8073C2C
- .4byte ma1C_8073ED0
- .4byte ma1D_08073FB4
- .4byte ma1E_set_BLDCNT
- .4byte sub_80A57F8
- .4byte ma20_wait_for_something
- .4byte ma21_08074164
- .4byte sub_80A4A18
- .4byte ma23_8073484
- .4byte sub_80A5944
- .4byte sub_80A4E5C
- .4byte sub_80A5508
- .4byte sub_80A559C
- .4byte sub_80A5984
- .4byte sub_80A59DC
- .4byte sub_80A5A0C
- .4byte ma2B_make_side_invisible
- .4byte ma2C_make_side_visible
- .4byte sub_80A5AFC
- .4byte sub_80A5BAC
- .4byte ma2F_stop_music
-
- .align 2
-gUnknown_08525F58:: @ 8525F58
- .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00
- .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00
- .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00
- .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00
-
- .align 2
-gCastformFrontSpriteCoords:: @ 8525F78
- .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00
- .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00
-
- .align 2
-gUnknown_08525F88:: @ 8525F88
- .byte 0x0d, 0x0e, 0x0d, 0x0d
-
- .align 2
-gUnknown_08525F8C:: @ 8525F8C
- .byte 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_08525F90:: @ 8525F90
- spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
- spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_08525FC0:: @ 8525FC0
- obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755
- obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756
-
- .align 2
-@ the mother of all baserom includes
- .incbin "baserom.gba", 0x525fd0, 0x18f60
-
- .align 2
-gUnknown_0853EF30:: @ 853EF30
- .byte 0xf0, 0xf0, 0x0c, 0x80, 0xf0, 0x30, 0x0d, 0x84, 0x30, 0xf0, 0x0e, 0x86, 0x30, 0x30, 0x08, 0x88
-
- .align 2
-gUnknown_0853EF40:: @ 853EF40
- .4byte 0x00000004, gUnknown_0853EF30
-
- .align 2
-gUnknown_0853EF48:: @ 853EF48
- spr_template 0x271a, 0x271a, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0853EF60:: @ 853EF60
- spr_template 0x2798, 0x2798, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9E44
-
diff --git a/data/battle_interface.s b/data/battle_interface.s
deleted file mode 100644
index 766f34752..000000000
--- a/data/battle_interface.s
+++ /dev/null
@@ -1,180 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_0832C138:: @ 832C138
- .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00
-
- .align 2
-gUnknown_0832C140:: @ 832C140
- spr_template 0xd6ff, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0832C158:: @ 832C158
- spr_template 0xd700, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0832C170:: @ 832C170
- spr_template 0xd701, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0832C188:: @ 832C188
- spr_template 0xd702, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0832C1A0:: @ 832C1A0
- spr_template 0xd70b, 0xd6ff, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_0832C1B8:: @ 832C1B8
- .byte 0x00, 0x40, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00
-
- .align 2
-gUnknown_0832C1C0:: @ 832C1C0
- spr_template 0xd704, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4
-
- .align 2
-gUnknown_0832C1D8:: @ 832C1D8
- spr_template 0xd705, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4
-
- .align 2
-gUnknown_0832C1F0:: @ 832C1F0
- spr_template 0xd706, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4
-
- .align 2
-gUnknown_0832C208:: @ 832C208
- spr_template 0xd707, 0xd704, gUnknown_0832C1B8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80728B4
-
- .align 2
-gUnknown_0832C220:: @ 832C220
- .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42
- .byte 0xf0, 0x20, 0x05, 0x43, 0x10, 0x20, 0x45, 0x43
- .byte 0x30, 0x20, 0x85, 0x43
-
- .align 2
-gUnknown_0832C234:: @ 832C234
- .byte 0xf0, 0x00, 0x0d, 0x44, 0x30, 0x00, 0x08, 0x46
- .byte 0xf0, 0x20, 0x05, 0x47, 0x10, 0x20, 0x45, 0x47
- .byte 0x30, 0x20, 0x85, 0x47
-
- .align 2
-gUnknown_0832C248:: @ 832C248
- .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42
-
- .align 2
-gUnknown_0832C250:: @ 832C250
- .byte 0xf0, 0x00, 0x0d, 0x40, 0x30, 0x00, 0x08, 0x42
-
- .align 2
-gUnknown_0832C258:: @ 832C258
- .byte 0xf0, 0x00, 0x05, 0x40, 0x10, 0x00, 0x45, 0x40
-
- .align 2
-gUnknown_0832C260:: @ 832C260
- .byte 0xf0, 0x00, 0x05, 0x40, 0x10, 0x00, 0x45, 0x40
- .byte 0xe0, 0x00, 0x80, 0x40
-
- .align 2
-gUnknown_0832C26C:: @ 832C26C
- .4byte 0x00000005, gUnknown_0832C220
- .4byte 0x00000002, gUnknown_0832C248
- .4byte 0x00000005, gUnknown_0832C234
- .4byte 0x00000002, gUnknown_0832C250
-
- .align 2
-gUnknown_0832C28C:: @ 832C28C
- .4byte 0x00000002, gUnknown_0832C258
- .4byte 0x00000003, gUnknown_0832C260
-
- .align 2
-gUnknown_0832C29C:: @ 832C29C
- .byte 0xa0, 0x00, 0x05, 0x40, 0xc0, 0x00, 0x45, 0x40
- .byte 0xe0, 0x00, 0x85, 0x40, 0x00, 0x00, 0xc5, 0x40
-
- .align 2
-gUnknown_0832C2AC:: @ 832C2AC
- .byte 0xa0, 0x00, 0x05, 0x40, 0xc0, 0x00, 0x45, 0x40
- .byte 0xe0, 0x00, 0x85, 0x40, 0x00, 0x00, 0x85, 0x40
- .byte 0x20, 0x00, 0x85, 0x40, 0x40, 0x00, 0xc5, 0x40
-
- .align 2
-gUnknown_0832C2C4:: @ 832C2C4
- .4byte 0x00000004, gUnknown_0832C29C
-
- .align 2
-gUnknown_0832C2CC:: @ 832C2CC
- .4byte 0x00000006, gUnknown_0832C2AC
-
- .align 2
-gUnknown_0832C2D4:: @ 832C2D4
- .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222
- .2byte 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777, 0x7777
-
- .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222
- .2byte 0x7777, 0x7777, 0x7777, 0x7717, 0x1777, 0x7177, 0x7777, 0x7771
-
- .2byte 0x0000, 0x0000, 0x3333, 0x3333, 0x4444, 0x4444, 0x2222, 0x2222
- .2byte 0x7777, 0x7777, 0x7777, 0x7111, 0x7777, 0x7171, 0x7777, 0x7111
-
- .align 2
-gUnknown_0832C334:: @ 832C334
- obj_tiles gBattleInterface_BallStatusBarGfx, 0x0200, 0xd70c
-
- .align 2
-gUnknown_0832C33C:: @ 832C33C
- obj_pal gBattleInterface_BallStatusBarPal, 0xd710
-
- .align 2
-gUnknown_0832C344:: @ 832C344
- obj_pal gBattleInterface_BallDisplayPal, 0xd712
-
- .align 2
-gUnknown_0832C34C:: @ 832C34C
- obj_tiles gBattleInterface_BallDisplayGfx, 0x0080, 0xd714
-
- .align 2
-gUnknown_0832C354:: @ 832C354
- .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x04, 0x00, 0x00
-
- .align 2
-gUnknown_0832C35C:: @ 832C35C
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00
-
- .align 2
-gUnknown_0832C364:: @ 832C364
- spr_template 0xd70c, 0xd710, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8074078
-
- .align 2
-gUnknown_0832C37C:: @ 832C37C
- spr_template 0xd70c, 0xd710, gUnknown_0832C138, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8074078
-
- .align 2
-gUnknown_0832C394:: @ 832C394
- spr_template 0xd714, 0xd712, gUnknown_0832C35C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80740C4
-
- .align 2
-gUnknown_0832C3AC:: @ 832C3AC
- spr_template 0xd714, 0xd712, gUnknown_0832C35C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80740C4
-
- .align 2
-gUnknown_0832C3C4:: @ 832C3C4
- .byte 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x02, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0832C3D8:: @ 832C3D8
- .byte 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_0832C3EC:: @ 832C3EC
- .byte 0x98, 0x61, 0xf7, 0x0e, 0x94, 0x46, 0xd1, 0x72
- .byte 0xdc, 0x29, 0x00, 0x00
-
- .align 2
-gUnknown_0832C3F8:: @ 832C3F8
- .byte 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00
diff --git a/data/clear_save_data_screen.s b/data/clear_save_data_screen.s
deleted file mode 100644
index 3abf9bf6d..000000000
--- a/data/clear_save_data_screen.s
+++ /dev/null
@@ -1,17 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_085F06C0:: @ 85F06C0
- .4byte 0x000001f0, 0x000011e3
-
- .align 2
-gUnknown_085F06C8:: @ 85F06C8
- window_template 0x00, 0x03, 0x0f, 0x1a, 0x04, 0x0f, 0x000b
- window_template_terminator
-
- .align 2
-gUnknown_085F06D8:: @ 85F06D8
- window_template 0x00, 0x03, 0x02, 0x05, 0x04, 0x0f, 0x0073
diff --git a/data/cute_sketch.s b/data/cute_sketch.s
index ebdf1e39d..8a8ee1481 100644
--- a/data/cute_sketch.s
+++ b/data/cute_sketch.s
@@ -5,4 +5,4 @@
.align 2, 0
gUnknown_085A1F94:: @ 85A1F94
- .incbin "baserom.gba", 0x5a1f94, 0x3c74
+ .incbin "baserom.gba", 0x5a1f94, 0x2580
diff --git a/data/decoration.s b/data/decoration.s
deleted file mode 100644
index de4478f8d..000000000
--- a/data/decoration.s
+++ /dev/null
@@ -1,86 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gDecorations:: @ 85A5C08
- .incbin "baserom.gba", 0x5a5c08, 0x1c
-
-gUnknown_085A5C24:: @ 85A5C24
- .incbin "baserom.gba", 0x5a5c24, 0xf04
-
-gUnknown_085A6B28:: @ 85A6B28
- .incbin "baserom.gba", 0x5a6b28, 0x20
-
-gUnknown_085A6B48:: @ 85A6B48
- .incbin "baserom.gba", 0x5a6b48, 0x20
-
-gUnknown_085A6B68:: @ 85A6B68
- .incbin "baserom.gba", 0x5a6b68, 0x10
-
-gUnknown_085A6B78:: @ 85A6B78
- .incbin "baserom.gba", 0x5a6b78, 0x18
-
-gUnknown_085A6B90:: @ 85A6B90
- .incbin "baserom.gba", 0x5a6b90, 0x20
-
-gUnknown_085A6BB0:: @ 85A6BB0
- .incbin "baserom.gba", 0x5a6bb0, 0x20
-
-gUnknown_085A6BD0:: @ 85A6BD0
- .incbin "baserom.gba", 0x5a6bd0, 0x18
-
-gUnknown_085A6BE8:: @ 85A6BE8
- .incbin "baserom.gba", 0x5a6be8, 0x5c8
-
-gUnknown_085A71B0:: @ 85A71B0
- .incbin "baserom.gba", 0x5a71b0, 0xa0
-
-gUnknown_085A7250:: @ 85A7250
- .incbin "baserom.gba", 0x5a7250, 0x3c
-
-gUnknown_085A728C:: @ 85A728C
- .incbin "baserom.gba", 0x5a728c, 0x18
-
-gUnknown_085A72A4:: @ 85A72A4
- .incbin "baserom.gba", 0x5a72a4, 0x18
-
-gUnknown_085A72BC:: @ 85A72BC
- .incbin "baserom.gba", 0x5a72bc, 0x8
-
-gUnknown_085A72C4:: @ 85A72C4
- .incbin "baserom.gba", 0x5a72c4, 0x8
-
-gUnknown_085A72CC:: @ 85A72CC
- .incbin "baserom.gba", 0x5a72cc, 0x8
-
-gUnknown_085A72D4:: @ 85A72D4
- .incbin "baserom.gba", 0x5a72d4, 0x10
-
-gUnknown_085A72E4:: @ 85A72E4
- .incbin "baserom.gba", 0x5a72e4, 0x8
-
-gUnknown_085A72EC:: @ 85A72EC
- .incbin "baserom.gba", 0x5a72ec, 0x8
-
-gUnknown_085A72F4:: @ 85A72F4
- .incbin "baserom.gba", 0x5a72f4, 0x54
-
-gUnknown_085A7348:: @ 85A7348
- .incbin "baserom.gba", 0x5a7348, 0x8
-
-gUnknown_085A7350:: @ 85A7350
- .incbin "baserom.gba", 0x5a7350, 0x88
-
-gUnknown_085A73D8:: @ 85A73D8
- .incbin "baserom.gba", 0x5a73d8, 0x8
-
-gUnknown_085A73E0:: @ 85A73E0
- .incbin "baserom.gba", 0x5a73e0, 0x24
-
-gUnknown_085A7404:: @ 85A7404
- .incbin "baserom.gba", 0x5a7404, 0x18
-
-gUnknown_085A741C:: @ 85A741C
- .incbin "baserom.gba", 0x5a741c, 0x8
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 05cd014dd..2383907ee 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -14,8 +14,7 @@ gScriptCmdTableEnd:: @ 81DBA08
gSpecialVars:: @ 81DBA0C
.incbin "baserom.gba", 0x1dba0c, 0x58
-gSpecials:: @ 81DBA64
- .incbin "baserom.gba", 0x1dba64, 0x83c
+ .include "data/specials.inc"
gStdScripts:: @ 81DC2A0
.incbin "baserom.gba", 0x1dc2a0, 0x2c
diff --git a/data/graphics.s b/data/graphics.s
index e1b76565a..e89177a1d 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -39,7 +39,7 @@ gBattleInterface_BallDisplayPal:: @ 8C11BBC
.incbin "graphics/battle_interface/ball_display.gbapal"
.align 2
-gUnknown_08C11BDC:: @ 8C11BDC
+gHealthboxElementsGfxTable:: @ 8C11BDC
.incbin "baserom.gba", 0xc11bdc, 0x840
.align 2
@@ -881,7 +881,10 @@ gUnknown_08DAAFEC:: @ 8DAAFEC
.include "data/graphics/items/item_graphics.inc"
@ 8DB7AA0
- .incbin "baserom.gba", 0xdb7aa0, 0x2a78
+ .include "data/graphics/decorations/decoration_graphics.inc"
+
+@ 8DBA14C
+ .incbin "baserom.gba", 0xdba14c, 0x3cc
gUnknown_08DBA518:: @ 8DBA518
.incbin "baserom.gba", 0xdba518, 0x80
@@ -910,8 +913,116 @@ gCableCarCord_Gfx:: @ 8DBC2C0
gUnknown_08DBC2E8:: @ 8DBC2E8
.incbin "baserom.gba", 0xdbc2e8, 0x72c
-gUnknown_08DBCA14:: @ 8DBCA14
- .incbin "baserom.gba", 0xdbca14, 0x3d00
+gUnknown_08DBCA14:: @ 0x08DBCA14
+ .incbin "baserom.gba", 0xdbca14, 0x1e04
+
+gUnknown_08DBE818:: @ 0x08DBE818
+ .incbin "baserom.gba", 0xdbe818, 0x20
+
+gUnknown_08DBE838:: @ 0x08DBE838
+ .incbin "baserom.gba", 0xdbe838, 0x20
+
+gUnknown_08DBE858:: @ 0x08DBE858
+ .incbin "baserom.gba", 0xdbe858, 0x20
+
+gUnknown_08DBE878:: @ 0x08DBE878
+ .incbin "baserom.gba", 0xdbe878, 0x20
+
+gUnknown_08DBE898:: @ 0x08DBE898
+ .incbin "baserom.gba", 0xdbe898, 0x20
+
+gUnknown_08DBE8B8:: @ 0x08DBE8B8
+ .incbin "baserom.gba", 0xdbe8b8, 0x20
+
+gUnknown_08DBE8D8:: @ 0x08DBE8D8
+ .incbin "baserom.gba", 0xdbe8d8, 0x20
+
+gUnknown_08DBE8F8:: @ 0x08DBE8F8
+ .incbin "baserom.gba", 0xdbe8f8, 0x20
+
+gUnknown_08DBE918:: @ 0x08DBE918
+ .incbin "baserom.gba", 0xdbe918, 0x20
+
+gUnknown_08DBE938:: @ 0x08DBE938
+ .incbin "baserom.gba", 0xdbe938, 0x20
+
+gUnknown_08DBE958:: @ 0x08DBE958
+ .incbin "baserom.gba", 0xdbe958, 0x20
+
+gUnknown_08DBE978:: @ 0x08DBE978
+ .incbin "baserom.gba", 0xdbe978, 0x20
+
+gUnknown_08DBE998:: @ 0x08DBE998
+ .incbin "baserom.gba", 0xdbe998, 0x1a0
+
+gUnknown_08DBEB38:: @ 0x08DBEB38
+ .incbin "baserom.gba", 0xdbeb38, 0x13c
+
+gUnknown_08DBEC74:: @ 0x08DBEC74
+ .incbin "baserom.gba", 0xdbec74, 0x210
+
+gUnknown_08DBEE84:: @ 0x08DBEE84
+ .incbin "baserom.gba", 0xdbee84, 0xd8
+
+gUnknown_08DBEF5C:: @ 0x08DBEF5C
+ .incbin "baserom.gba", 0xdbef5c, 0x1f8
+
+gUnknown_08DBF154:: @ 0x08DBF154
+ .incbin "baserom.gba", 0xdbf154, 0x180
+
+gUnknown_08DBF2D4:: @ 0x08DBF2D4
+ .incbin "baserom.gba", 0xdbf2d4, 0xa8
+
+gUnknown_08DBF37C:: @ 0x08DBF37C
+ .incbin "baserom.gba", 0xdbf37c, 0x190
+
+gUnknown_08DBF50C:: @ 0x08DBF50C
+ .incbin "baserom.gba", 0xdbf50c, 0x140
+
+gUnknown_08DBF64C:: @ 0x08DBF64C
+ .incbin "baserom.gba", 0xdbf64c, 0x168
+
+gUnknown_08DBF7B4:: @ 0x08DBF7B4
+ .incbin "baserom.gba", 0xdbf7b4, 0x150
+
+gUnknown_08DBF904:: @ 0x08DBF904
+ .incbin "baserom.gba", 0xdbf904, 0x2a0
+
+gUnknown_08DBFBA4:: @ 0x08DBFBA4
+ .incbin "baserom.gba", 0xdbfba4, 0xd8
+
+gUnknown_08DBFC7C:: @ 0x08DBFC7C
+ .incbin "baserom.gba", 0xdbfc7c, 0xe0
+
+gUnknown_08DBFD5C:: @ 0x08DBFD5C
+ .incbin "baserom.gba", 0xdbfd5c, 0x10c
+
+gUnknown_08DBFE68:: @ 0x08DBFE68
+ .incbin "baserom.gba", 0xdbfe68, 0xdc
+
+gUnknown_08DBFF44:: @ 0x08DBFF44
+ .incbin "baserom.gba", 0xdbff44, 0xf0
+
+gUnknown_08DC0034:: @ 0x08DC0034
+ .incbin "baserom.gba", 0xdc0034, 0xe0
+
+gUnknown_08DC0114:: @ 0x08DC0114
+ .incbin "baserom.gba", 0xdc0114, 0xe0
+
+gUnknown_08DC01F4:: @ 0x08DC01F4
+ .incbin "baserom.gba", 0xdc01f4, 0x10c
+
+gUnknown_08DC0300:: @ 0x08DC0300
+ .incbin "baserom.gba", 0xdc0300, 0xf0
+
+gUnknown_08DC03F0:: @ 0x08DC03F0
+ .incbin "baserom.gba", 0xdc03f0, 0xf8
+
+gUnknown_08DC04E8:: @ 0x08DC04E8
+ .incbin "baserom.gba", 0xdc04e8, 0x118
+
+gUnknown_08DC0600:: @ 0x08DC0600
+ .incbin "baserom.gba", 0xdc0600, 0x114
gUnknown_08DC0714:: @ 8DC0714
.incbin "baserom.gba", 0xdc0714, 0x40
diff --git a/data/graphics/decorations/decoration_graphics.inc b/data/graphics/decorations/decoration_graphics.inc
new file mode 100644
index 000000000..c7ea9be70
--- /dev/null
+++ b/data/graphics/decorations/decoration_graphics.inc
@@ -0,0 +1,252 @@
+gUnknown_08DB7AA0::
+ .incbin "graphics/decorations/decor_heavy_desk.4bpp.lz"
+
+gUnknown_08DB7B34::
+ .incbin "graphics/decorations/decor_heavy_desk.gbapal.lz"
+
+gUnknown_08DB7B5C::
+ .incbin "graphics/decorations/decor_ragged_desk.4bpp.lz"
+
+gUnknown_08DB7BEC::
+ .incbin "graphics/decorations/decor_ragged_desk.gbapal.lz"
+
+gUnknown_08DB7C08::
+ .incbin "graphics/decorations/decor_comfort_desk.4bpp.lz"
+
+gUnknown_08DB7CE8::
+ .incbin "graphics/decorations/decor_comfort_desk.gbapal.lz"
+
+gUnknown_08DB7D08::
+ .incbin "graphics/decorations/decor_pretty_desk.4bpp.lz"
+
+gUnknown_08DB7DCC::
+ .incbin "graphics/decorations/decor_pretty_desk.gbapal.lz"
+
+gUnknown_08DB7DF4::
+ .incbin "graphics/decorations/decor_brick_desk.4bpp.lz"
+
+gUnknown_08DB7EA0::
+ .incbin "graphics/decorations/decor_brick_desk.gbapal.lz"
+
+gUnknown_08DB7EC4::
+ .incbin "graphics/decorations/decor_camp_desk.4bpp.lz"
+
+gUnknown_08DB7F60::
+ .incbin "graphics/decorations/decor_camp_desk.gbapal.lz"
+
+gUnknown_08DB7F7C::
+ .incbin "graphics/decorations/decor_hard_desk.4bpp.lz"
+
+gUnknown_08DB8070::
+ .incbin "graphics/decorations/decor_hard_desk.gbapal.lz"
+
+gUnknown_08DB808C::
+ .incbin "graphics/decorations/decor_red_plant.4bpp.lz"
+
+gUnknown_08DB8138::
+ .incbin "graphics/decorations/decor_red_plant.gbapal.lz"
+
+gUnknown_08DB8160::
+ .incbin "graphics/decorations/decor_tropical_plant.4bpp.lz"
+
+gUnknown_08DB8218::
+ .incbin "graphics/decorations/decor_tropical_plant.gbapal.lz"
+
+gUnknown_08DB823C::
+ .incbin "graphics/decorations/decor_pretty_flowers.4bpp.lz"
+
+gUnknown_08DB8300::
+ .incbin "graphics/decorations/decor_pretty_flowers.gbapal.lz"
+
+gUnknown_08DB8328::
+ .incbin "graphics/decorations/decor_colorful_plant.4bpp.lz"
+
+gUnknown_08DB8430::
+ .incbin "graphics/decorations/decor_colorful_plant.gbapal.lz"
+
+gUnknown_08DB8458::
+ .incbin "graphics/decorations/decor_big_plant.4bpp.lz"
+
+gUnknown_08DB8528::
+ .incbin "graphics/decorations/decor_big_plant.gbapal.lz"
+
+gUnknown_08DB854C::
+ .incbin "graphics/decorations/decor_gorgeous_plant.4bpp.lz"
+
+gUnknown_08DB862C::
+ .incbin "graphics/decorations/decor_gorgeous_plant.gbapal.lz"
+
+gUnknown_08DB8654::
+ .incbin "graphics/decorations/decor_red_brick.4bpp.lz"
+
+gUnknown_08DB86C4::
+ .incbin "graphics/decorations/decor_red_brick.gbapal.lz"
+
+gUnknown_08DB86E0::
+ .incbin "graphics/decorations/decor_yellow_brick.4bpp.lz"
+
+gUnknown_08DB8750::
+ .incbin "graphics/decorations/decor_yellow_brick.gbapal.lz"
+
+gUnknown_08DB876C::
+ .incbin "graphics/decorations/decor_blue_brick.4bpp.lz"
+
+gUnknown_08DB87DC::
+ .incbin "graphics/decorations/decor_blue_brick.gbapal.lz"
+
+gUnknown_08DB87F8::
+ .incbin "graphics/decorations/decor_red_tent.4bpp.lz"
+
+gUnknown_08DB88D8::
+ .incbin "graphics/decorations/decor_red_tent.gbapal.lz"
+
+gUnknown_08DB8900::
+ .incbin "graphics/decorations/decor_blue_tent.4bpp.lz"
+
+gUnknown_08DB89E0::
+ .incbin "graphics/decorations/decor_blue_tent.gbapal.lz"
+
+gUnknown_08DB8A08::
+ .incbin "graphics/decorations/decor_solid_board.4bpp.lz"
+
+gUnknown_08DB8A68::
+ .incbin "graphics/decorations/decor_solid_board.gbapal.lz"
+
+gUnknown_08DB8A84::
+ .incbin "graphics/decorations/decor_slide.4bpp.lz"
+
+gUnknown_08DB8B40::
+ .incbin "graphics/decorations/decor_slide.gbapal.lz"
+
+gUnknown_08DB8B68::
+ .incbin "graphics/decorations/decor_tire.4bpp.lz"
+
+gUnknown_08DB8C40::
+ .incbin "graphics/decorations/decor_tire.gbapal.lz"
+
+gUnknown_08DB8C5C::
+ .incbin "graphics/decorations/decor_stand.4bpp.lz"
+
+gUnknown_08DB8CF4::
+ .incbin "graphics/decorations/decor_stand.gbapal.lz"
+
+gUnknown_08DB8D18::
+ .incbin "graphics/decorations/decor_breakable_door.4bpp.lz"
+
+gUnknown_08DB8DB0::
+ .incbin "graphics/decorations/decor_breakable_door.gbapal.lz"
+
+gUnknown_08DB8DD4::
+ .incbin "graphics/decorations/decor_sand_ornament.4bpp.lz"
+
+gUnknown_08DB8E80::
+ .incbin "graphics/decorations/decor_sand_ornament.gbapal.lz"
+
+gUnknown_08DB8EA0::
+ .incbin "graphics/decorations/decor_glass_ornament.4bpp.lz"
+
+gUnknown_08DB8F58::
+ .incbin "graphics/decorations/decor_glass_ornament.gbapal.lz"
+
+gUnknown_08DB8F7C::
+ .incbin "graphics/decorations/decor_surf_mat.4bpp.lz"
+
+gUnknown_08DB9038::
+ .incbin "graphics/decorations/decor_surf_mat.gbapal.lz"
+
+gUnknown_08DB9058::
+ .incbin "graphics/decorations/decor_thunder_mat.4bpp.lz"
+
+gUnknown_08DB9130::
+ .incbin "graphics/decorations/decor_thunder_mat.gbapal.lz"
+
+gUnknown_08DB9154::
+ .incbin "graphics/decorations/decor_fire_blast_mat.4bpp.lz"
+
+gUnknown_08DB9218::
+ .incbin "graphics/decorations/decor_fire_blast_mat.gbapal.lz"
+
+gUnknown_08DB9234::
+ .incbin "graphics/decorations/decor_powder_snow_mat.4bpp.lz"
+
+gUnknown_08DB92FC::
+ .incbin "graphics/decorations/decor_powder_snow_mat.gbapal.lz"
+
+gUnknown_08DB931C::
+ .incbin "graphics/decorations/decor_attract_mat.4bpp.lz"
+
+gUnknown_08DB93E8::
+ .incbin "graphics/decorations/decor_attract_mat.gbapal.lz"
+
+gUnknown_08DB940C::
+ .incbin "graphics/decorations/decor_fissure_mat.4bpp.lz"
+
+gUnknown_08DB94CC::
+ .incbin "graphics/decorations/decor_fissure_mat.gbapal.lz"
+
+gUnknown_08DB94E8::
+ .incbin "graphics/decorations/decor_spikes_mat.4bpp.lz"
+
+gUnknown_08DB95AC::
+ .incbin "graphics/decorations/decor_spikes_mat.gbapal.lz"
+
+gUnknown_08DB95D0::
+ .incbin "graphics/decorations/decor_snorlax_doll.4bpp.lz"
+
+gUnknown_08DB96C4::
+ .incbin "graphics/decorations/decor_snorlax_doll.gbapal.lz"
+
+gUnknown_08DB96EC::
+ .incbin "graphics/decorations/decor_rhydon_doll.4bpp.lz"
+
+gUnknown_08DB97F4::
+ .incbin "graphics/decorations/decor_rhydon_doll.gbapal.lz"
+
+gUnknown_08DB981C::
+ .incbin "graphics/decorations/decor_lapras_doll.4bpp.lz"
+
+gUnknown_08DB9908::
+ .incbin "graphics/decorations/decor_lapras_doll.gbapal.lz"
+
+gUnknown_08DB9930::
+ .incbin "graphics/decorations/decor_venusaur_doll.4bpp.lz"
+
+gUnknown_08DB9A54::
+ .incbin "graphics/decorations/decor_venusaur_doll.gbapal.lz"
+
+gUnknown_08DB9A7C::
+ .incbin "graphics/decorations/decor_charizard_doll.4bpp.lz"
+
+gUnknown_08DB9B7C::
+ .incbin "graphics/decorations/decor_charizard_doll.gbapal.lz"
+
+gUnknown_08DB9BA4::
+ .incbin "graphics/decorations/decor_blastoise_doll.4bpp.lz"
+
+gUnknown_08DB9CB0::
+ .incbin "graphics/decorations/decor_blastoise_doll.gbapal.lz"
+
+gUnknown_08DB9CD8::
+ .incbin "graphics/decorations/decor_wailmer_doll.4bpp.lz"
+
+gUnknown_08DB9DAC::
+ .incbin "graphics/decorations/decor_wailmer_doll.gbapal.lz"
+
+gUnknown_08DB9DD4::
+ .incbin "graphics/decorations/decor_regice_doll.4bpp.lz"
+
+gUnknown_08DB9EE4::
+ .incbin "graphics/decorations/decor_regice_doll.gbapal.lz"
+
+gUnknown_08DB9F08::
+ .incbin "graphics/decorations/decor_regirock_doll.4bpp.lz"
+
+gUnknown_08DB9FFC::
+ .incbin "graphics/decorations/decor_regirock_doll.gbapal.lz"
+
+gUnknown_08DBA020::
+ .incbin "graphics/decorations/decor_registeel_doll.4bpp.lz"
+
+gUnknown_08DBA12C::
+ .incbin "graphics/decorations/decor_registeel_doll.gbapal.lz"
+
diff --git a/data/mail.s b/data/mail.s
deleted file mode 100644
index 5dc8270bc..000000000
--- a/data/mail.s
+++ /dev/null
@@ -1,26 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_0859F290:: @ 859F290
- .incbin "baserom.gba", 0x59f290, 0xc
-
-gUnknown_0859F29C:: @ 859F29C
- .incbin "baserom.gba", 0x59f29c, 0x10
-
-gUnknown_0859F2AC:: @ 859F2AC
- .incbin "baserom.gba", 0x59f2ac, 0x4
-
-gUnknown_0859F2B0:: @ 859F2B0
- .incbin "baserom.gba", 0x59f2b0, 0x8
-
-gUnknown_0859F2B8:: @ 859F2B8
- .incbin "baserom.gba", 0x59f2b8, 0xfc
-
-gUnknown_0859F3B4:: @ 859F3B4
- .incbin "baserom.gba", 0x59f3b4, 0xa4
-
-gUnknown_0859F458:: @ 859F458
- .incbin "baserom.gba", 0x59f458, 0xbc
diff --git a/data/pokemon_summary_screen.s b/data/pokemon_summary_screen.s
index ac28d47c5..fc1c79096 100644
--- a/data/pokemon_summary_screen.s
+++ b/data/pokemon_summary_screen.s
@@ -40,7 +40,10 @@ gUnknown_0861CD14:: @ 861CD14
.incbin "baserom.gba", 0x61cd14, 0x18
gUnknown_0861CD2C:: @ 861CD2C
- .incbin "baserom.gba", 0x61cd2c, 0xa7
+ .incbin "baserom.gba", 0x61cd2c, 0x27
+
+gUnknown_0861CD53:: @ 861CD53
+ .incbin "baserom.gba", 0x61cd53, 0x80
gUnknown_0861CDD3:: @ 861CDD3
.incbin "baserom.gba", 0x61cdd3, 0x81
diff --git a/data/rom_8525F58.s b/data/rom_8525F58.s
new file mode 100644
index 000000000..1cee7112a
--- /dev/null
+++ b/data/rom_8525F58.s
@@ -0,0 +1,57 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .section .rodata
+
+ .align 2
+
+
+gUnknown_08525F58:: @ 8525F58
+ .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00
+ .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00
+ .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00
+ .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00
+
+ .align 2
+gCastformFrontSpriteCoords:: @ 8525F78
+ .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00
+ .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00
+
+ .align 2
+gUnknown_08525F88:: @ 8525F88
+ .byte 0x0d, 0x0e, 0x0d, 0x0d
+
+ .align 2
+gUnknown_08525F8C:: @ 8525F8C
+ .byte 0x00, 0x00, 0x00, 0x00
+
+ .align 2
+gUnknown_08525F90:: @ 8525F90
+ spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_08525FC0:: @ 8525FC0
+ obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755
+ obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756
+
+ .align 2
+@ the mother of all baserom includes
+ .incbin "baserom.gba", 0x525fd0, 0x18f60
+
+ .align 2
+gUnknown_0853EF30:: @ 853EF30
+ .byte 0xf0, 0xf0, 0x0c, 0x80, 0xf0, 0x30, 0x0d, 0x84, 0x30, 0xf0, 0x0e, 0x86, 0x30, 0x30, 0x08, 0x88
+
+ .align 2
+gUnknown_0853EF40:: @ 853EF40
+ .4byte 0x00000004, gUnknown_0853EF30
+
+ .align 2
+gUnknown_0853EF48:: @ 853EF48
+ spr_template 0x271a, 0x271a, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+
+ .align 2
+gUnknown_0853EF60:: @ 853EF60
+ spr_template 0x2798, 0x2798, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9E44
+
diff --git a/data/specials.inc b/data/specials.inc
new file mode 100644
index 000000000..49f6b91a0
--- /dev/null
+++ b/data/specials.inc
@@ -0,0 +1,537 @@
+.macro def_special ptr
+.set SPECIAL_\ptr, __special__
+.set __special__, __special__ + 1
+ .4byte \ptr
+ .endm
+
+.set __special__, 0
+ .align 2
+gSpecials:: @ 81DBA64
+ def_special sp000_heal_pokemon
+ def_special sub_809D2BC
+ def_special sub_80AF948
+ def_special sub_80AF9F8
+ def_special sub_80B36EC
+ def_special sub_80B371C
+ def_special sub_80E8E18
+ def_special sub_80E8BC8
+ def_special sub_80E9068
+ def_special sub_80E9A90
+ def_special sub_80E9AC0
+ def_special sub_80E9744
+ def_special sub_80E9BDC
+ def_special sub_80E9C2C
+ def_special sub_80E9C74
+ def_special sub_80E9C88
+ def_special sub_80EA2E4
+ def_special sub_80EA354
+ def_special sub_80E933C
+ def_special sub_8127E18
+ def_special sub_81297AC
+ def_special sub_80E8C98
+ def_special sub_80E95D4
+ def_special sub_8129708
+ def_special sub_80E91F8
+ def_special sub_80EA30C
+ def_special sub_80FA57C
+ def_special sub_80E6BE8
+ def_special sub_80B2DA4
+ def_special sub_80B2E4C
+ def_special sub_80B2E74
+ def_special sub_80B2EA8
+ def_special sub_80097E8
+ def_special sub_80B3968
+ def_special sub_80B3924
+ def_special nullsub_37
+ def_special sub_80B3254
+ def_special sub_80B2FD8
+ def_special sub_8138240
+ def_special SpawnLinkPartnerFieldObject
+ def_special copy_player_party_to_sav1
+ def_special copy_player_party_from_sav1
+ def_special sub_80F9438
+ def_special sp02A_crash_sound
+ def_special FieldObjectInteractionGetBerryTreeData
+ def_special FieldObjectInteractionGetBerryName
+ def_special FieldObjectInteractionGetBerryCountString
+ def_special Bag_ChooseBerry
+ def_special FieldObjectInteractionPlantBerryTree
+ def_special FieldObjectInteractionPickBerryTree
+ def_special FieldObjectInteractionRemoveBerryTree
+ def_special FieldObjectInteractionWaterBerryTree
+ def_special PlayerHasBerries
+ def_special IsEnigmaBerryValid
+ def_special sub_80B170C
+ def_special sub_80B1A14
+ def_special special_trainer_unable_to_battle
+ def_special check_trainer_flag
+ def_special sub_80B45AC
+ def_special SetUpTrainerEncounterMusic
+ def_special sub_80B226C
+ def_special sub_80B22A0
+ def_special sub_80B19EC
+ def_special sub_80C7578
+ def_special sub_80F92F8
+ def_special TurnOffTVScreen
+ def_special DoTVShow
+ def_special DoPokeNews
+ def_special special_0x44
+ def_special special_0x45
+ def_special InterviewBefore
+ def_special InterviewAfter
+ def_special sub_80EF8F8
+ def_special SetContestCategoryStringVarForInterview
+ def_special special_0x4a
+ def_special TV_IsScriptShowKindAlreadyInQueue
+ def_special CheckForBigMovieOrEmergencyNewsOnTV
+ def_special GetMomOrDadStringForTVMessage
+ def_special ResetTVShowState
+ def_special sub_80F831C
+ def_special sub_80F84B0
+ def_special sub_80F8814
+ def_special sub_80F834C
+ def_special sub_80F8390
+ def_special sub_80F8850
+ def_special sub_80F82B4
+ def_special sub_80F87D8
+ def_special sub_80F7F30
+ def_special sub_80F8970
+ def_special sub_80F8AFC
+ def_special sub_80F82FC
+ def_special sub_80F7F7C
+ def_special sub_80F7FFC
+ def_special sub_80F8D24
+ def_special sub_80F8C7C
+ def_special sub_80B3000
+ def_special sub_809FF80
+ def_special sub_80FAFF8
+ def_special easy_chat_input_maybe
+ def_special sub_811EECC
+ def_special sub_81201DC
+ def_special sub_81201F4
+ def_special sub_8120210
+ def_special sub_8120358
+ def_special sub_8120374
+ def_special sub_812038C
+ def_special sub_8120340
+ def_special sub_8120B5C
+ def_special sub_81203FC
+ def_special sub_81203C4
+ def_special sub_81213B0
+ def_special sub_812139C
+ def_special sub_8121388
+ def_special sub_81213D8
+ def_special sub_8121450
+ def_special sub_8121424
+ def_special sub_8133EC0
+ def_special sub_8133CD8
+ def_special sub_8133CF4
+ def_special sub_8133D2C
+ def_special sub_8133D8C
+ def_special sub_8133E38
+ def_special GetSeedotSizeRecordInfo
+ def_special CompareSeedotSize
+ def_special GetLotadSizeRecordInfo
+ def_special CompareLotadSize
+ def_special TV_PutNameRaterShowOnTheAirIfNicnkameChanged
+ def_special TV_CopyNicknameToStringVar1AndEnsureTerminated
+ def_special TV_CheckMonOTIDEqualsPlayerID
+ def_special sub_8122998
+ def_special sub_81229C8
+ def_special sub_811EF6C
+ def_special sub_8122A30
+ def_special sub_80D6EDC
+ def_special CalculatePlayerPartyCount
+ def_special sub_80C7008
+ def_special sub_80C70AC
+ def_special sub_80F88E8
+ def_special sub_80F88DC
+ def_special sub_80F8864
+ def_special sub_80F8940
+ def_special ShowContestWinner
+ def_special sub_8138540
+ def_special sub_81384F0
+ def_special sub_8138AC0
+ def_special DrawWholeMapView
+ def_special sub_8138AD0
+ def_special sub_8138750
+ def_special sub_81388E4
+ def_special sub_8138AA4
+ def_special sub_8138AF0
+ def_special sub_8138B10
+ def_special sub_8138B48
+ def_special sub_8138BC8
+ def_special sub_8138B8C
+ def_special sub_814FC9C
+ def_special sub_8085784
+ def_special Special_StartWallClock
+ def_special Special_ViewWallClock
+ def_special sub_80B1138
+ def_special sub_80B086C
+ def_special ChangePokemonNickname
+ def_special sub_81B94B0
+ def_special sub_8136EF4
+ def_special sub_807FA80
+ def_special sub_8142BC8
+ def_special sub_813BD60
+ def_special sub_813BCA8
+ def_special sub_813BDB4
+ def_special sub_813BA30
+ def_special sub_813BCE8
+ def_special sub_813BF60
+ def_special sub_813BA60
+ def_special sub_813BF7C
+ def_special rock_smash_wild_pokemon_encounter
+ def_special GabbyAndTyGetBattleNum
+ def_special GabbyAndTyAfterInterview
+ def_special GabbyAndTyBeforeInterview
+ def_special DoTVShowInSearchOfTrainers
+ def_special IsTVShowInSearchOfTrainersAiring
+ def_special GabbyAndTyGetLastQuote
+ def_special GabbyAndTyGetLastBattleTrivia
+ def_special GabbyAndTySetScriptVarsToFieldObjectLocalIds
+ def_special sub_8138B80
+ def_special sp0B5_daycare
+ def_special sp0B6_daycare
+ def_special sub_8070728
+ def_special sp0B8_daycare
+ def_special sp0B9_daycare_relationship_comment
+ def_special sub_8070C58
+ def_special daycare_send_selected_pokemon
+ def_special sub_8071330
+ def_special sub_80712C0
+ def_special sub_806FF30
+ def_special sub_806FED8
+ def_special sub_806FDC4
+ def_special ScriptHatchMon
+ def_special EggHatch
+ def_special sub_8071614
+ def_special sub_813C4BC
+ def_special IsEnoughForCostInVar0x8005
+ def_special SubtractMoneyFromVar0x8005
+ def_special sub_80F972C
+ def_special sp0C8_whiteout_maybe
+ def_special sub_80FBE90
+ def_special sub_80FBED0
+ def_special sub_8137F90
+ def_special sub_8137FB0
+ def_special EnterSafariMode
+ def_special ExitSafariMode
+ def_special GetPokeblockFeederInFront
+ def_special sub_8135908
+ def_special sub_813793C
+ def_special sub_8137988
+ def_special sub_8137A0C
+ def_special sub_8137A4C
+ def_special sub_8137C10
+ def_special sp0D9_ComputerRelated
+ def_special sub_8138E20
+ def_special sub_8139994
+ def_special sub_8138EC0
+ def_special sub_8138FAC
+ def_special sub_81B951C
+ def_special sub_81B968C
+ def_special sub_81B9770
+ def_special sub_81B9718
+ def_special sub_81B96D0
+ def_special sub_8160638
+ def_special sub_8137EFC
+ def_special sub_8137D0C
+ def_special sp0E3_walkrun_bitfield_interpretation
+ def_special sub_8137E6C
+ def_special sub_8137F44
+ def_special sub_8138C04
+ def_special sub_81A1780
+ def_special sub_8161F74
+ def_special sub_818E9AC
+ def_special sub_8195960
+ def_special sub_8165360
+ def_special sub_8163AC4
+ def_special sub_81A5238
+ def_special sub_81A5E74
+ def_special sub_81A703C
+ def_special sub_81A8E7C
+ def_special StopMapMusic
+ def_special sub_81B99B4
+ def_special sub_81B9B80
+ def_special sub_81B9D08
+ def_special sub_80F9490
+ def_special sub_81652B4
+ def_special sub_8139228
+ def_special sub_80F94E8
+ def_special sub_816AE58
+ def_special sub_816AE98
+ def_special sub_8138C94
+ def_special sub_807E73C
+ def_special sub_807EA10
+ def_special sub_807F0E4
+ def_special sub_807E9D4
+ def_special sub_8138BDC
+ def_special RetrieveLotteryNumber
+ def_special PickLotteryCornerTicket
+ def_special ShowBerryBlenderRecordWindow
+ def_special sub_8138FEC
+ def_special sub_8138FD4
+ def_special sp109_CreatePCMenu
+ def_special sub_8137C28
+ def_special sub_8137CB4
+ def_special sub_8139004
+ def_special sub_8139030
+ def_special sub_813905C
+ def_special sub_8139088
+ def_special sub_81390B4
+ def_special sub_80FB7A4
+ def_special DoSoftReset
+ def_special sub_8137734
+ def_special sub_8139A78
+ def_special nullsub_55
+ def_special SpawnScriptFieldObject
+ def_special RemoveScriptFieldObject
+ def_special sub_81391D0
+ def_special sub_8139200
+ def_special CheckRelicanthWailord
+ def_special ShouldDoBrailleStrengthEffectOld
+ def_special sub_80B0534
+ def_special sub_80B058C
+ def_special sub_81379F8
+ def_special sub_8139238
+ def_special sub_8139248
+ def_special player_get_direction_lower_nybble
+ def_special sub_81392AC
+ def_special sub_81392D4
+ def_special sub_81392F8
+ def_special sub_8139320
+ def_special sub_8139348
+ def_special sub_8139370
+ def_special sub_81393C8
+ def_special sub_8098574
+ def_special sub_809859C
+ def_special InitRoamer
+ def_special sub_81393FC
+ def_special sub_81390E0
+ def_special sub_80AFC60
+ def_special sub_813946C
+ def_special sub_81394D8
+ def_special sub_80E980C
+ def_special sub_8139530
+ def_special DoSealedChamberShakingEffect1
+ def_special sub_8139B60
+ def_special sub_80FAC78
+ def_special sub_8139540
+ def_special sub_809E1C8
+ def_special sub_8139560
+ def_special sub_80B0A18
+ def_special sub_80B0934
+ def_special sub_80B0A74
+ def_special sub_80B16D8
+ def_special DoSealedChamberShakingEffect2
+ def_special sub_8139634
+ def_special sub_80AC81C
+ def_special sp13E_warp_to_last_warp
+ def_special sp13F_fall_to_last_warp
+ def_special sub_80F8D28
+ def_special sub_80F8EB8
+ def_special sub_8162794
+ def_special sub_80B08EC
+ def_special sub_8139648
+ def_special sub_8139668
+ def_special sub_80F8FA0
+ def_special sub_81396E0
+ def_special sub_81B98DC
+ def_special nullsub_54
+ def_special sub_80E9B70
+ def_special copy_bags_and_unk_data_from_save_blocks
+ def_special sub_80B05B4
+ def_special sub_8139754
+ def_special sub_813970C
+ def_special sub_80C08E4
+ def_special sub_8139770
+ def_special sub_81397C4
+ def_special sub_81653CC
+ def_special sub_80F9370
+ def_special sub_80F8FE8
+ def_special sub_81AFDD0
+ def_special sub_80EDCE8
+ def_special sub_80EE2CC
+ def_special sub_80EE72C
+ def_special sub_80EE7C0
+ def_special nullsub_55
+ def_special PutFanClubSpecialOnTheAir
+ def_special sub_80EED10
+ def_special sub_80EED34
+ def_special sub_80EB1AC
+ def_special sub_80EBE7C
+ def_special sub_80EB300
+ def_special sub_80EB438
+ def_special sub_80EB368
+ def_special sub_80EB3D0
+ def_special sub_80EB290
+ def_special sub_80EB2C8
+ def_special sub_80EB56C
+ def_special sub_80EB9E0
+ def_special sub_80EBB28
+ def_special sub_80EB498
+ def_special sub_818D9C0
+ def_special sub_818DAEC
+ def_special sub_818DBE8
+ def_special sub_818DC2C
+ def_special sub_818DC60
+ def_special sub_818DCC8
+ def_special sub_818DD14
+ def_special sub_818DD54
+ def_special sub_818DD78
+ def_special sub_818DE44
+ def_special sub_818DE5C
+ def_special sub_818DEA0
+ def_special sub_818DEDC
+ def_special sub_818E038
+ def_special sub_818E06C
+ def_special sub_818E2D8
+ def_special sub_811A858
+ def_special sub_818E2FC
+ def_special sub_818E308
+ def_special sub_818E358
+ def_special sub_818E37C
+ def_special sub_818E298
+ def_special sub_818E39C
+ def_special sub_818E3BC
+ def_special sub_818E3E0
+ def_special sub_818E430
+ def_special sub_818E47C
+ def_special sub_818E490
+ def_special sub_813986C
+ def_special sub_818E4A4
+ def_special sub_818E510
+ def_special sub_818E538
+ def_special sub_818E274
+ def_special sub_818E3EC
+ def_special sub_818E8E0
+ def_special sub_818E8B4
+ def_special sub_818E914
+ def_special sub_818E92C
+ def_special sub_818E940
+ def_special sub_818E960
+ def_special sub_818E990
+ def_special PutLilycoveContestLadyShowOnTheAir
+ def_special sub_813B880
+ def_special sub_81A085C
+ def_special CheckIfMultipleTrainersWantBattle
+ def_special AddMapNamePopUpWindowTask
+ def_special AddMapNamePopUpWindowTask
+ def_special sub_81BE994
+ def_special sub_81BE79C
+ def_special sub_81BE7F4
+ def_special sub_81398C0
+ def_special sub_80093CC
+ def_special BerryBlenderLinkBecomeLeader
+ def_special BerryBlenderLinkJoinGroup
+ def_special UnionRoomSpecial
+ def_special sub_801A42C
+ def_special sub_8016934
+ def_special sp182_move_string
+ def_special sub_801DC20
+ def_special sub_81B8958
+ def_special sub_8018090
+ def_special sub_813990C
+ def_special sub_801B27C
+ def_special HasAtLeastOneBerry
+ def_special sub_802C920
+ def_special sub_802E3C4
+ def_special sub_8027A5C
+ def_special sub_8027AAC
+ def_special sub_8139980
+ def_special sub_81399F4
+ def_special sub_8139D98
+ def_special sub_80F905C
+ def_special sub_800B518
+ def_special sub_80F90DC
+ def_special sub_80F910C
+ def_special sub_80F9160
+ def_special sub_81A4AA0
+ def_special sub_81A4AE8
+ def_special sub_8139F20
+ def_special sub_80F9134
+ def_special sub_80F9154
+ def_special sub_80B3028
+ def_special sub_813A128
+ def_special sub_813A630
+ def_special sub_813A080
+ def_special sub_81C6A94
+ def_special sub_81C4F24
+ def_special sub_81B95E0
+ def_special sub_81B9620
+ def_special sub_813A76C
+ def_special sub_813A7B8
+ def_special sub_813A958
+ def_special sub_813A8FC
+ def_special sub_813A988
+ def_special sub_813A9D0
+ def_special sub_813A9A4
+ def_special sub_813AA04
+ def_special sub_813AA18
+ def_special sub_813AA44
+ def_special sub_80248B0
+ def_special sub_8024918
+ def_special sub_80246D4
+ def_special sub_802477C
+ def_special sub_802488C
+ def_special sub_813A820
+ def_special sub_813A854
+ def_special sub_813B7D8
+ def_special sub_81C72A4
+ def_special sp106_CreateStartMenu
+ def_special sub_80C2E40
+ def_special sub_813AC7C
+ def_special sub_813ADB8
+ def_special sub_813ADD4
+ def_special sub_81B892C
+ def_special sub_813AEB4
+ def_special sub_813AF48
+ def_special sub_813AFC8
+ def_special sub_813B1D0
+ def_special DoScriptedWildBattle
+ def_special sub_81BEB54
+ def_special sub_81BEB68
+ def_special sub_81BEB7C
+ def_special ChangeBoxPokemonNickname
+ def_special get_unknown_box_id
+ def_special sub_813B21C
+ def_special sub_81D1C20
+ def_special sub_8175280
+ def_special sub_813B2E4
+ def_special sub_813B374
+ def_special sub_813B490
+ def_special sub_80A08CC
+ def_special sub_813B484
+ def_special sub_81AFDA0
+ def_special sub_813B4E0
+ def_special ShouldDoBrailleRegicePuzzle
+ def_special EnableNationalPokedex
+ def_special sub_80E2548
+ def_special sub_80E2878
+ def_special TurnOnTVScreen
+ def_special sub_81D4A90
+ def_special sub_813B514
+ def_special sub_813B568
+ def_special sub_813B534
+ def_special sp194_trainer_tower
+ def_special sub_813B7D8
+ def_special sub_813B80C
+ def_special sub_81D4BEC
+ def_special sub_80224D0
+ def_special TryBufferWaldaPhrase
+ def_special DoWaldaNamingScreen
+ def_special TryGetWallpaperWithWaldaPhrase
+ def_special sub_8139ED0
+ def_special sub_813B968
+ def_special sub_80F8B94
+ def_special sub_813C904
+ def_special sub_80B4808
+ def_special sub_813B9A0
+ def_special sub_81B9918
+ def_special sub_80722E0
+ def_special sub_80B45D0
+ def_special sub_813C5A0
+ def_special sub_8139C10
+ def_special sub_80B3BC4
+
diff --git a/data/strings.s b/data/strings.s
index 90ccad90f..2b88c6d03 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -1517,52 +1517,52 @@ gUnknown_085EA79D:: @ 85EA79D
gUnknown_085EA7A9:: @ 85EA7A9
.string "{STR_VAR_3}{STR_VAR_1}/{STR_VAR_2}$"
-gUnknown_085EA7B1:: @ 85EA7B1
+gText_Decorate:: @ 85EA7B1
.string "DECORATE$"
-gUnknown_085EA7BA:: @ 85EA7BA
+gText_PutAway:: @ 85EA7BA
.string "PUT AWAY$"
-gUnknown_085EA7C3:: @ 85EA7C3
+gText_Toss2:: @ 85EA7C3
.string "TOSS$"
gText_Color161Shadow161:: @ 85EA7C8
.string "{COLOR 161}{SHADOW 161}$"
-gUnknown_085EA7CF:: @ 85EA7CF
+gText_PutOutSelectedDecorItem:: @ 85EA7CF
.string "Put out the selected decoration item.$"
-gUnknown_085EA7F5:: @ 85EA7F5
+gText_StoreChosenDecorInPC:: @ 85EA7F5
.string "Store the chosen decoration in the PC.$"
-gUnknown_085EA81C:: @ 85EA81C
+gText_ThrowAwayUnwantedDecors:: @ 85EA81C
.string "Throw away unwanted decorations.$"
gText_NoDecorations:: @ 85EA83D
.string "There are no decorations.{PAUSE_UNTIL_PRESS}$"
-gUnknown_085EA859:: @ 85EA859
+gText_Desk:: @ 85EA859
.string "DESK$"
-gUnknown_085EA85E:: @ 85EA85E
+gText_Chair:: @ 85EA85E
.string "CHAIR$"
-gUnknown_085EA864:: @ 85EA864
+gText_Plant:: @ 85EA864
.string "PLANT$"
-gUnknown_085EA86A:: @ 85EA86A
+gText_Ornament:: @ 85EA86A
.string "ORNAMENT$"
-gUnknown_085EA873:: @ 85EA873
+gText_Mat:: @ 85EA873
.string "MAT$"
-gUnknown_085EA877:: @ 85EA877
+gText_Poster:: @ 85EA877
.string "POSTER$"
-gUnknown_085EA87E:: @ 85EA87E
+gText_Doll:: @ 85EA87E
.string "DOLL$"
-gUnknown_085EA883:: @ 85EA883
+gText_Cushion:: @ 85EA883
.string "CUSHION$"
gText_Gold:: @ 85EA88B
diff --git a/data/walda_phrase.s b/data/walda_phrase.s
deleted file mode 100644
index c168353b4..000000000
--- a/data/walda_phrase.s
+++ /dev/null
@@ -1,7 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_0862AD14:: @ 862AD14
- .incbin "baserom.gba", 0x62ad14, 0x20
diff --git a/graphics/battle_interface/unknown_32C2D4.png b/graphics/battle_interface/unknown_32C2D4.png
new file mode 100644
index 000000000..8672ac614
--- /dev/null
+++ b/graphics/battle_interface/unknown_32C2D4.png
Binary files differ
diff --git a/graphics/decorations/decor_attract_mat.pal b/graphics/decorations/decor_attract_mat.pal
new file mode 100644
index 000000000..6f188b725
--- /dev/null
+++ b/graphics/decorations/decor_attract_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+255 230 222
+255 197 197
+246 156 156
+213 115 172
+197 189 131
+246 148 205
+123 82 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_attract_mat.png b/graphics/decorations/decor_attract_mat.png
new file mode 100644
index 000000000..16528d9f3
--- /dev/null
+++ b/graphics/decorations/decor_attract_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_big_plant.pal b/graphics/decorations/decor_big_plant.pal
new file mode 100644
index 000000000..6e5a869f3
--- /dev/null
+++ b/graphics/decorations/decor_big_plant.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+189 230 106
+123 172 74
+90 139 65
+57 98 41
+213 180 106
+180 139 82
+139 98 49
+82 57 32
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_big_plant.png b/graphics/decorations/decor_big_plant.png
new file mode 100644
index 000000000..e5eedd859
--- /dev/null
+++ b/graphics/decorations/decor_big_plant.png
Binary files differ
diff --git a/graphics/decorations/decor_blastoise_doll.pal b/graphics/decorations/decor_blastoise_doll.pal
new file mode 100644
index 000000000..a4ad56936
--- /dev/null
+++ b/graphics/decorations/decor_blastoise_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+197 222 255
+131 189 255
+90 139 213
+57 90 131
+213 156 90
+230 189 131
+156 131 90
+98 82 41
+139 90 74
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_blastoise_doll.png b/graphics/decorations/decor_blastoise_doll.png
new file mode 100644
index 000000000..00c55f229
--- /dev/null
+++ b/graphics/decorations/decor_blastoise_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_blue_brick.pal b/graphics/decorations/decor_blue_brick.pal
new file mode 100644
index 000000000..e8720d82f
--- /dev/null
+++ b/graphics/decorations/decor_blue_brick.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+156 180 246
+82 131 230
+57 98 189
+24 65 131
+106 106 106
+74 74 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_blue_brick.png b/graphics/decorations/decor_blue_brick.png
new file mode 100644
index 000000000..88e058712
--- /dev/null
+++ b/graphics/decorations/decor_blue_brick.png
Binary files differ
diff --git a/graphics/decorations/decor_blue_tent.pal b/graphics/decorations/decor_blue_tent.pal
new file mode 100644
index 000000000..e38cb56af
--- /dev/null
+++ b/graphics/decorations/decor_blue_tent.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+148 172 255
+115 139 238
+65 90 189
+49 57 123
+0 0 0
+197 205 230
+164 164 164
+131 131 131
+90 82 74
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_blue_tent.png b/graphics/decorations/decor_blue_tent.png
new file mode 100644
index 000000000..575b35241
--- /dev/null
+++ b/graphics/decorations/decor_blue_tent.png
Binary files differ
diff --git a/graphics/decorations/decor_breakable_door.pal b/graphics/decorations/decor_breakable_door.pal
new file mode 100644
index 000000000..85ece26dc
--- /dev/null
+++ b/graphics/decorations/decor_breakable_door.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+139 189 255
+106 156 213
+213 189 115
+156 131 41
+123 98 8
+90 74 57
+189 164 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+197 197 197
diff --git a/graphics/decorations/decor_breakable_door.png b/graphics/decorations/decor_breakable_door.png
new file mode 100644
index 000000000..01ba82d28
--- /dev/null
+++ b/graphics/decorations/decor_breakable_door.png
Binary files differ
diff --git a/graphics/decorations/decor_brick_desk.pal b/graphics/decorations/decor_brick_desk.pal
new file mode 100644
index 000000000..16b581470
--- /dev/null
+++ b/graphics/decorations/decor_brick_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+255 180 82
+230 139 49
+189 90 16
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+148 148 156
+106 106 98
+74 74 74
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_brick_desk.png b/graphics/decorations/decor_brick_desk.png
new file mode 100644
index 000000000..829e45349
--- /dev/null
+++ b/graphics/decorations/decor_brick_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_camp_desk.pal b/graphics/decorations/decor_camp_desk.pal
new file mode 100644
index 000000000..0ac362c8a
--- /dev/null
+++ b/graphics/decorations/decor_camp_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+205 189 123
+172 156 90
+148 131 65
+123 98 32
+82 57 41
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_camp_desk.png b/graphics/decorations/decor_camp_desk.png
new file mode 100644
index 000000000..b40429229
--- /dev/null
+++ b/graphics/decorations/decor_camp_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_charizard_doll.pal b/graphics/decorations/decor_charizard_doll.pal
new file mode 100644
index 000000000..3e3e6bb79
--- /dev/null
+++ b/graphics/decorations/decor_charizard_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+238 172 98
+255 205 74
+222 156 41
+115 74 24
+164 98 24
+0 0 0
+230 82 65
+180 49 32
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+255 238 197
diff --git a/graphics/decorations/decor_charizard_doll.png b/graphics/decorations/decor_charizard_doll.png
new file mode 100644
index 000000000..ffc3dfcef
--- /dev/null
+++ b/graphics/decorations/decor_charizard_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_colorful_plant.pal b/graphics/decorations/decor_colorful_plant.pal
new file mode 100644
index 000000000..996b183d2
--- /dev/null
+++ b/graphics/decorations/decor_colorful_plant.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+205 180 115
+180 139 98
+131 90 57
+156 222 90
+139 189 139
+98 148 98
+41 90 57
+106 189 255
+255 123 172
+255 213 74
+0 0 0
+238 238 238
+0 0 0
diff --git a/graphics/decorations/decor_colorful_plant.png b/graphics/decorations/decor_colorful_plant.png
new file mode 100644
index 000000000..cc0efecc7
--- /dev/null
+++ b/graphics/decorations/decor_colorful_plant.png
Binary files differ
diff --git a/graphics/decorations/decor_comfort_desk.pal b/graphics/decorations/decor_comfort_desk.pal
new file mode 100644
index 000000000..f686f4b5c
--- /dev/null
+++ b/graphics/decorations/decor_comfort_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+180 222 139
+139 189 139
+90 139 90
+41 90 41
+115 164 115
+0 0 0
+164 131 65
+115 82 57
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_comfort_desk.png b/graphics/decorations/decor_comfort_desk.png
new file mode 100644
index 000000000..e7a72ff08
--- /dev/null
+++ b/graphics/decorations/decor_comfort_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_fire_blast_mat.pal b/graphics/decorations/decor_fire_blast_mat.pal
new file mode 100644
index 000000000..ea2301df2
--- /dev/null
+++ b/graphics/decorations/decor_fire_blast_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+255 180 82
+238 148 41
+213 98 24
+139 65 41
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_fire_blast_mat.png b/graphics/decorations/decor_fire_blast_mat.png
new file mode 100644
index 000000000..510675ee6
--- /dev/null
+++ b/graphics/decorations/decor_fire_blast_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_fissure_mat.pal b/graphics/decorations/decor_fissure_mat.pal
new file mode 100644
index 000000000..d2a4efb6d
--- /dev/null
+++ b/graphics/decorations/decor_fissure_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+205 189 131
+189 172 106
+156 139 74
+123 106 41
+98 74 32
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_fissure_mat.png b/graphics/decorations/decor_fissure_mat.png
new file mode 100644
index 000000000..6de66ef9d
--- /dev/null
+++ b/graphics/decorations/decor_fissure_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_glass_ornament.pal b/graphics/decorations/decor_glass_ornament.pal
new file mode 100644
index 000000000..1027a9501
--- /dev/null
+++ b/graphics/decorations/decor_glass_ornament.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+189 230 255
+156 197 255
+115 164 238
+82 139 189
+57 98 131
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+238 246 246
+0 0 0
diff --git a/graphics/decorations/decor_glass_ornament.png b/graphics/decorations/decor_glass_ornament.png
new file mode 100644
index 000000000..fcc895eb9
--- /dev/null
+++ b/graphics/decorations/decor_glass_ornament.png
Binary files differ
diff --git a/graphics/decorations/decor_gorgeous_plant.pal b/graphics/decorations/decor_gorgeous_plant.pal
new file mode 100644
index 000000000..782b82eef
--- /dev/null
+++ b/graphics/decorations/decor_gorgeous_plant.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+180 222 139
+139 180 139
+90 139 106
+49 82 41
+0 0 0
+148 115 82
+115 82 24
+0 0 0
+230 230 230
+164 164 164
+106 106 106
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_gorgeous_plant.png b/graphics/decorations/decor_gorgeous_plant.png
new file mode 100644
index 000000000..dc8639c65
--- /dev/null
+++ b/graphics/decorations/decor_gorgeous_plant.png
Binary files differ
diff --git a/graphics/decorations/decor_hard_desk.pal b/graphics/decorations/decor_hard_desk.pal
new file mode 100644
index 000000000..7aa8154ab
--- /dev/null
+++ b/graphics/decorations/decor_hard_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+197 197 197
+156 156 156
+115 115 115
+98 98 98
+74 74 74
+139 139 139
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_hard_desk.png b/graphics/decorations/decor_hard_desk.png
new file mode 100644
index 000000000..aa0c7feea
--- /dev/null
+++ b/graphics/decorations/decor_hard_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_heavy_desk.pal b/graphics/decorations/decor_heavy_desk.pal
new file mode 100644
index 000000000..c0ec71f09
--- /dev/null
+++ b/graphics/decorations/decor_heavy_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+180 180 197
+148 148 156
+90 90 90
+255 180 82
+230 139 49
+197 90 8
+90 41 8
+0 0 0
+123 123 123
+65 65 65
+106 106 115
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_heavy_desk.png b/graphics/decorations/decor_heavy_desk.png
new file mode 100644
index 000000000..141bcd831
--- /dev/null
+++ b/graphics/decorations/decor_heavy_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_lapras_doll.pal b/graphics/decorations/decor_lapras_doll.pal
new file mode 100644
index 000000000..c7d2fe61a
--- /dev/null
+++ b/graphics/decorations/decor_lapras_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+189 230 255
+115 180 246
+74 139 189
+32 90 139
+0 0 0
+0 0 0
+246 197 131
+222 156 98
+197 156 123
+106 74 41
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_lapras_doll.png b/graphics/decorations/decor_lapras_doll.png
new file mode 100644
index 000000000..517553a4a
--- /dev/null
+++ b/graphics/decorations/decor_lapras_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_powder_snow_mat.pal b/graphics/decorations/decor_powder_snow_mat.pal
new file mode 100644
index 000000000..9f365a3da
--- /dev/null
+++ b/graphics/decorations/decor_powder_snow_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+238 238 246
+180 205 255
+131 164 205
+197 222 255
+213 238 255
+98 131 172
+148 180 222
+49 82 123
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_powder_snow_mat.png b/graphics/decorations/decor_powder_snow_mat.png
new file mode 100644
index 000000000..82dbbfa66
--- /dev/null
+++ b/graphics/decorations/decor_powder_snow_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_pretty_desk.pal b/graphics/decorations/decor_pretty_desk.pal
new file mode 100644
index 000000000..7681a17cc
--- /dev/null
+++ b/graphics/decorations/decor_pretty_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+189 222 255
+156 197 255
+0 0 0
+131 164 246
+49 82 123
+0 0 0
+0 0 0
+0 0 0
+180 180 180
+131 131 131
+90 90 90
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_pretty_desk.png b/graphics/decorations/decor_pretty_desk.png
new file mode 100644
index 000000000..5be05ebcb
--- /dev/null
+++ b/graphics/decorations/decor_pretty_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_pretty_flowers.pal b/graphics/decorations/decor_pretty_flowers.pal
new file mode 100644
index 000000000..c3b0ffce9
--- /dev/null
+++ b/graphics/decorations/decor_pretty_flowers.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+205 180 74
+156 139 32
+90 74 49
+123 106 41
+115 180 98
+74 123 57
+41 82 32
+255 205 180
+123 74 49
+238 156 139
+246 246 246
+222 197 197
diff --git a/graphics/decorations/decor_pretty_flowers.png b/graphics/decorations/decor_pretty_flowers.png
new file mode 100644
index 000000000..b9fc0f5de
--- /dev/null
+++ b/graphics/decorations/decor_pretty_flowers.png
Binary files differ
diff --git a/graphics/decorations/decor_ragged_desk.pal b/graphics/decorations/decor_ragged_desk.pal
new file mode 100644
index 000000000..bac2a7372
--- /dev/null
+++ b/graphics/decorations/decor_ragged_desk.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 205 98
+49 49 49
+238 222 172
+213 197 139
+180 164 106
+148 131 74
+123 98 49
+82 65 32
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_ragged_desk.png b/graphics/decorations/decor_ragged_desk.png
new file mode 100644
index 000000000..953c1862f
--- /dev/null
+++ b/graphics/decorations/decor_ragged_desk.png
Binary files differ
diff --git a/graphics/decorations/decor_red_brick.pal b/graphics/decorations/decor_red_brick.pal
new file mode 100644
index 000000000..f9d647dda
--- /dev/null
+++ b/graphics/decorations/decor_red_brick.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+238 123 123
+189 74 65
+148 32 32
+123 16 16
+106 106 106
+74 74 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_red_brick.png b/graphics/decorations/decor_red_brick.png
new file mode 100644
index 000000000..3481044dd
--- /dev/null
+++ b/graphics/decorations/decor_red_brick.png
Binary files differ
diff --git a/graphics/decorations/decor_red_plant.pal b/graphics/decorations/decor_red_plant.pal
new file mode 100644
index 000000000..c3021eee5
--- /dev/null
+++ b/graphics/decorations/decor_red_plant.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+222 115 123
+189 74 82
+139 32 32
+82 32 16
+0 0 0
+115 164 106
+65 123 57
+24 82 41
+0 0 0
+205 172 98
+156 123 82
+106 82 57
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_red_plant.png b/graphics/decorations/decor_red_plant.png
new file mode 100644
index 000000000..c12e656f7
--- /dev/null
+++ b/graphics/decorations/decor_red_plant.png
Binary files differ
diff --git a/graphics/decorations/decor_red_tent.pal b/graphics/decorations/decor_red_tent.pal
new file mode 100644
index 000000000..61951623b
--- /dev/null
+++ b/graphics/decorations/decor_red_tent.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+246 123 123
+222 90 90
+180 49 49
+115 49 57
+0 0 0
+197 205 230
+164 164 164
+131 131 131
+90 82 74
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_red_tent.png b/graphics/decorations/decor_red_tent.png
new file mode 100644
index 000000000..22e435691
--- /dev/null
+++ b/graphics/decorations/decor_red_tent.png
Binary files differ
diff --git a/graphics/decorations/decor_regice_doll.pal b/graphics/decorations/decor_regice_doll.pal
new file mode 100644
index 000000000..39404f681
--- /dev/null
+++ b/graphics/decorations/decor_regice_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+238 238 255
+180 189 205
+139 148 172
+82 98 115
+115 123 139
+0 0 0
+0 0 0
+246 180 65
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_regice_doll.png b/graphics/decorations/decor_regice_doll.png
new file mode 100644
index 000000000..88a28df6d
--- /dev/null
+++ b/graphics/decorations/decor_regice_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_regirock_doll.pal b/graphics/decorations/decor_regirock_doll.pal
new file mode 100644
index 000000000..5c39edb2f
--- /dev/null
+++ b/graphics/decorations/decor_regirock_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+180 164 98
+123 115 49
+82 74 49
+0 0 0
+205 115 82
+148 65 82
+0 0 0
+189 74 24
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_regirock_doll.png b/graphics/decorations/decor_regirock_doll.png
new file mode 100644
index 000000000..16372281c
--- /dev/null
+++ b/graphics/decorations/decor_regirock_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_registeel_doll.pal b/graphics/decorations/decor_registeel_doll.pal
new file mode 100644
index 000000000..328f35a4f
--- /dev/null
+++ b/graphics/decorations/decor_registeel_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+238 238 238
+197 197 197
+164 164 164
+123 123 131
+82 82 90
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+172 82 65
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_registeel_doll.png b/graphics/decorations/decor_registeel_doll.png
new file mode 100644
index 000000000..f06de37ab
--- /dev/null
+++ b/graphics/decorations/decor_registeel_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_rhydon_doll.pal b/graphics/decorations/decor_rhydon_doll.pal
new file mode 100644
index 000000000..432dae5a9
--- /dev/null
+++ b/graphics/decorations/decor_rhydon_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+222 222 222
+164 164 164
+189 189 189
+139 139 139
+106 106 106
+82 82 82
+230 197 115
+189 148 74
+131 98 74
+0 0 0
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_rhydon_doll.png b/graphics/decorations/decor_rhydon_doll.png
new file mode 100644
index 000000000..ac4714c35
--- /dev/null
+++ b/graphics/decorations/decor_rhydon_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_sand_ornament.pal b/graphics/decorations/decor_sand_ornament.pal
new file mode 100644
index 000000000..e2fca6e31
--- /dev/null
+++ b/graphics/decorations/decor_sand_ornament.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+213 197 156
+189 164 90
+148 123 49
+90 74 24
+131 106 32
+172 148 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_sand_ornament.png b/graphics/decorations/decor_sand_ornament.png
new file mode 100644
index 000000000..9eafc8644
--- /dev/null
+++ b/graphics/decorations/decor_sand_ornament.png
Binary files differ
diff --git a/graphics/decorations/decor_slide.pal b/graphics/decorations/decor_slide.pal
new file mode 100644
index 000000000..395694fa3
--- /dev/null
+++ b/graphics/decorations/decor_slide.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+148 189 238
+106 148 205
+65 115 172
+180 222 255
+0 0 0
+0 0 0
+0 0 0
+213 213 213
+189 189 189
+156 156 156
+106 106 106
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_slide.png b/graphics/decorations/decor_slide.png
new file mode 100644
index 000000000..8a5dbada5
--- /dev/null
+++ b/graphics/decorations/decor_slide.png
Binary files differ
diff --git a/graphics/decorations/decor_snorlax_doll.pal b/graphics/decorations/decor_snorlax_doll.pal
new file mode 100644
index 000000000..21026b10d
--- /dev/null
+++ b/graphics/decorations/decor_snorlax_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+131 139 164
+82 90 115
+0 0 0
+255 238 222
+255 197 148
+222 156 90
+139 90 49
+172 106 49
+230 172 123
+0 0 0
+238 238 238
+189 189 197
diff --git a/graphics/decorations/decor_snorlax_doll.png b/graphics/decorations/decor_snorlax_doll.png
new file mode 100644
index 000000000..6ff891c13
--- /dev/null
+++ b/graphics/decorations/decor_snorlax_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_solid_board.pal b/graphics/decorations/decor_solid_board.pal
new file mode 100644
index 000000000..9995483b4
--- /dev/null
+++ b/graphics/decorations/decor_solid_board.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+189 164 98
+156 131 65
+123 90 41
+106 90 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_solid_board.png b/graphics/decorations/decor_solid_board.png
new file mode 100644
index 000000000..d0251d847
--- /dev/null
+++ b/graphics/decorations/decor_solid_board.png
Binary files differ
diff --git a/graphics/decorations/decor_spikes_mat.pal b/graphics/decorations/decor_spikes_mat.pal
new file mode 100644
index 000000000..ec37e1fe0
--- /dev/null
+++ b/graphics/decorations/decor_spikes_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 213 98
+49 49 49
+0 0 0
+148 197 148
+106 172 115
+82 148 90
+139 156 98
+222 205 139
+180 164 98
+205 189 131
+49 98 57
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_spikes_mat.png b/graphics/decorations/decor_spikes_mat.png
new file mode 100644
index 000000000..67f023a0a
--- /dev/null
+++ b/graphics/decorations/decor_spikes_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_stand.pal b/graphics/decorations/decor_stand.pal
new file mode 100644
index 000000000..a85f0b7b2
--- /dev/null
+++ b/graphics/decorations/decor_stand.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+255 180 156
+238 115 106
+197 65 65
+0 0 0
+0 0 0
+0 0 0
+197 197 197
+172 172 172
+131 131 131
+106 106 106
+0 0 0
+0 0 0
+246 246 246
+0 0 0
diff --git a/graphics/decorations/decor_stand.png b/graphics/decorations/decor_stand.png
new file mode 100644
index 000000000..86b1e4d1f
--- /dev/null
+++ b/graphics/decorations/decor_stand.png
Binary files differ
diff --git a/graphics/decorations/decor_surf_mat.pal b/graphics/decorations/decor_surf_mat.pal
new file mode 100644
index 000000000..17be591b7
--- /dev/null
+++ b/graphics/decorations/decor_surf_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+205 238 255
+164 205 255
+148 180 255
+115 148 222
+57 90 156
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+246 246 255
+0 0 0
diff --git a/graphics/decorations/decor_surf_mat.png b/graphics/decorations/decor_surf_mat.png
new file mode 100644
index 000000000..d74cb97bb
--- /dev/null
+++ b/graphics/decorations/decor_surf_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_thunder_mat.pal b/graphics/decorations/decor_thunder_mat.pal
new file mode 100644
index 000000000..fbe488860
--- /dev/null
+++ b/graphics/decorations/decor_thunder_mat.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+189 222 255
+172 205 238
+139 172 205
+139 156 164
+255 230 123
+90 106 115
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+238 246 255
+0 0 0
diff --git a/graphics/decorations/decor_thunder_mat.png b/graphics/decorations/decor_thunder_mat.png
new file mode 100644
index 000000000..1c5c56e33
--- /dev/null
+++ b/graphics/decorations/decor_thunder_mat.png
Binary files differ
diff --git a/graphics/decorations/decor_tire.pal b/graphics/decorations/decor_tire.pal
new file mode 100644
index 000000000..18a3279fc
--- /dev/null
+++ b/graphics/decorations/decor_tire.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+0 0 0
+238 238 238
+189 189 189
+164 164 164
+131 131 131
+98 98 98
+74 74 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_tire.png b/graphics/decorations/decor_tire.png
new file mode 100644
index 000000000..e394ebbd4
--- /dev/null
+++ b/graphics/decorations/decor_tire.png
Binary files differ
diff --git a/graphics/decorations/decor_tropical_plant.pal b/graphics/decorations/decor_tropical_plant.pal
new file mode 100644
index 000000000..4057e7cb2
--- /dev/null
+++ b/graphics/decorations/decor_tropical_plant.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+197 172 82
+164 139 49
+131 106 16
+82 65 16
+0 0 0
+0 0 0
+148 222 90
+106 180 49
+74 131 24
+32 90 24
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_tropical_plant.png b/graphics/decorations/decor_tropical_plant.png
new file mode 100644
index 000000000..12e43df47
--- /dev/null
+++ b/graphics/decorations/decor_tropical_plant.png
Binary files differ
diff --git a/graphics/decorations/decor_venusaur_doll.pal b/graphics/decorations/decor_venusaur_doll.pal
new file mode 100644
index 000000000..dcd11bea2
--- /dev/null
+++ b/graphics/decorations/decor_venusaur_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+197 255 222
+123 189 57
+82 148 24
+74 115 24
+41 82 32
+238 156 139
+213 98 90
+164 74 74
+115 57 65
+230 189 65
+131 98 24
+82 32 41
+246 246 246
diff --git a/graphics/decorations/decor_venusaur_doll.png b/graphics/decorations/decor_venusaur_doll.png
new file mode 100644
index 000000000..57fbdd93a
--- /dev/null
+++ b/graphics/decorations/decor_venusaur_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_wailmer_doll.pal b/graphics/decorations/decor_wailmer_doll.pal
new file mode 100644
index 000000000..99347748e
--- /dev/null
+++ b/graphics/decorations/decor_wailmer_doll.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+0 0 0
+0 0 0
+106 148 172
+74 115 148
+57 98 123
+57 65 106
+230 180 106
+205 148 82
+180 139 57
+115 74 41
+0 0 0
+213 213 213
+246 246 246
+164 164 164
diff --git a/graphics/decorations/decor_wailmer_doll.png b/graphics/decorations/decor_wailmer_doll.png
new file mode 100644
index 000000000..ceedfa6fb
--- /dev/null
+++ b/graphics/decorations/decor_wailmer_doll.png
Binary files differ
diff --git a/graphics/decorations/decor_yellow_brick.pal b/graphics/decorations/decor_yellow_brick.pal
new file mode 100644
index 000000000..cfdd874ad
--- /dev/null
+++ b/graphics/decorations/decor_yellow_brick.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+98 197 98
+49 49 49
+255 230 106
+222 197 49
+180 156 8
+148 123 0
+106 106 106
+74 74 74
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
+0 0 0
diff --git a/graphics/decorations/decor_yellow_brick.png b/graphics/decorations/decor_yellow_brick.png
new file mode 100644
index 000000000..cb865760c
--- /dev/null
+++ b/graphics/decorations/decor_yellow_brick.png
Binary files differ
diff --git a/graphics/decorations/unk_85a6bb0.pal b/graphics/decorations/unk_85a6bb0.pal
new file mode 100644
index 000000000..4239a1f5e
--- /dev/null
+++ b/graphics/decorations/unk_85a6bb0.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 205 164
+255 255 255
+98 98 98
+213 213 205
+230 230 230
+197 197 197
+0 0 0
+238 238 238
+197 197 197
+148 148 148
+255 0 0
+180 0 0
+255 197 197
+82 82 255
+49 49 180
+197 197 255
diff --git a/graphics/decorations/unk_85a7308.pal b/graphics/decorations/unk_85a7308.pal
new file mode 100644
index 000000000..e7717d74e
--- /dev/null
+++ b/graphics/decorations/unk_85a7308.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+255 213 180
+255 197 148
+222 148 115
+123 65 65
+57 74 123
+41 57 98
+24 41 82
+16 32 57
+222 230 238
+255 197 90
+189 156 90
+255 98 90
+197 65 65
+255 255 255
+0 0 0
diff --git a/graphics/decorations/unk_85a7328.pal b/graphics/decorations/unk_85a7328.pal
new file mode 100644
index 000000000..e106ce693
--- /dev/null
+++ b/graphics/decorations/unk_85a7328.pal
@@ -0,0 +1,19 @@
+JASC-PAL
+0100
+16
+115 197 164
+255 222 205
+222 164 148
+205 131 115
+123 90 82
+98 98 115
+41 57 65
+164 106 82
+74 49 57
+205 205 222
+255 197 90
+189 156 90
+255 98 90
+197 65 65
+255 255 255
+0 0 0
diff --git a/graphics/misc/decoration_unk_85a7358.png b/graphics/misc/decoration_unk_85a7358.png
new file mode 100644
index 000000000..2dc8ed604
--- /dev/null
+++ b/graphics/misc/decoration_unk_85a7358.png
Binary files differ
diff --git a/include/battle.h b/include/battle.h
index f00b7f9ab..3328c691f 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -27,7 +27,9 @@
#define BIT_SIDE 0x1
#define BIT_MON 0x2
+#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
+#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
#define BATTLE_TYPE_DOUBLE 0x0001
#define BATTLE_TYPE_LINK 0x0002
@@ -254,6 +256,25 @@
#define TYPE_MUL_NORMAL 10
#define TYPE_MUL_SUPER_EFFECTIVE 20
+#define BS_GET_TARGET 0
+#define BS_GET_ATTACKER 1
+#define BS_GET_EFFECT_BANK 2
+#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
+#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
+#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
+#define BS_GET_SCRIPTING_BANK 10
+#define BS_GET_OPPONENT1 12
+#define BS_GET_PLAYER2 13
+#define BS_GET_OPPONENT2 14
+
+// for battle script commands
+#define CMP_EQUAL 0x0
+#define CMP_NOT_EQUAL 0x1
+#define CMP_GREATER_THAN 0x2
+#define CMP_LESS_THAN 0x3
+#define CMP_COMMON_BITS 0x4
+#define CMP_NO_COMMON_BITS 0x5
+
struct TrainerMonNoItemDefaultMoves
{
u16 iv;
@@ -261,6 +282,9 @@ struct TrainerMonNoItemDefaultMoves
u16 species;
};
+u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
+u8 GetBankSide(u8 bank);
+
struct TrainerMonItemDefaultMoves
{
u16 iv;
@@ -655,7 +679,9 @@ struct BattleStruct
u8 field_1A1;
bool8 overworldWeatherDone;
u8 atkCancellerTracker;
- u8 field_1A4[240];
+ u8 field_1A4[96];
+ u8 field_204[104];
+ u8 field_26C[40];
u8 field_294[4];
u8 field_298[8];
u8 field_2A0;
@@ -826,6 +852,7 @@ void LoadBattleTextboxAndBackground(void);
void LoadBattleEntryBackground(void);
void ApplyPlayerChosenFrameToBattleMenu(void);
bool8 LoadChosenBattleElement(u8 caseId);
+void DrawMainBattleBackground(void);
void task00_0800F6FC(u8 taskId);
// battle_5
@@ -883,6 +910,19 @@ struct BattleSpriteInfo
struct BattleAnimationInfo
{
u16 field; // to fill up later
+ u8 field_2;
+ u8 field_3;
+ u8 field_4;
+ u8 field_5;
+ u8 field_6;
+ u8 field_7;
+ u8 field_8;
+ u8 field_9_x1 : 1;
+ u8 field_9_x2 : 1;
+ u8 field_9_x1C : 3;
+ u8 field_9_x20 : 1;
+ u8 field_9_x40 : 1;
+ u8 field_9_x80 : 1;
};
struct BattleHealthboxInfo
@@ -890,6 +930,8 @@ struct BattleHealthboxInfo
u8 flag_x1 : 1;
u8 flag_x2 : 1;
u8 flag_x4 : 1;
+ u8 flag_x8 : 1;
+ u8 flag_x10 : 1;
u8 field_1;
u8 field_2;
u8 field_3;
@@ -903,15 +945,30 @@ struct BattleHealthboxInfo
u8 field_B;
};
+struct BattleBarInfo
+{
+ u8 healthboxSpriteId;
+ s32 maxValue;
+ s32 currentValue;
+ s32 field_C;
+ s32 field_10;
+};
+
struct BattleSpriteData
{
struct BattleSpriteInfo *bankData;
struct BattleHealthboxInfo *healthBoxesData;
struct BattleAnimationInfo *animationData;
+ struct BattleBarInfo *battleBars;
};
extern struct BattleSpriteData *gBattleSpritesDataPtr;
+#define BATTLE_BUFFER_LINK_SIZE 0x1000
+
+extern u8 *gLinkBattleSendBuffer;
+extern u8 *gLinkBattleRecvBuffer;
+
// Move this somewhere else
#include "sprite.h"
@@ -921,6 +978,8 @@ struct MonSpritesGfx
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
void* sprites[4];
struct SpriteTemplate templates[4];
+ u8 field_74[0x100];
+ u8 *fontPixels;
};
extern struct BattleSpritesGfx* gMonSpritesGfx;
diff --git a/include/battle_2.h b/include/battle_2.h
index 677bf0505..ceec2aa00 100644
--- a/include/battle_2.h
+++ b/include/battle_2.h
@@ -17,6 +17,8 @@ void RunBattleScriptCommands_PopCallbacksStack(void);
void RunBattleScriptCommands(void);
u32 sub_80397C4(u32 setId, u32 tableId);
void sub_8039E9C(struct Sprite *sprite);
+void nullsub_20(void);
+void BeginBattleIntro(void);
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];
diff --git a/include/battle_anim.h b/include/battle_anim.h
new file mode 100644
index 000000000..5282916c0
--- /dev/null
+++ b/include/battle_anim.h
@@ -0,0 +1,79 @@
+#ifndef GUARD_BATTLE_ANIM_H
+#define GUARD_BATTLE_ANIM_H
+
+enum
+{
+ ANIM_BANK_ATTACKER,
+ ANIM_BANK_TARGET,
+ ANIM_BANK_ATK_PARTNER,
+ ANIM_BANK_DEF_PARTNER,
+};
+
+enum
+{
+ BG_ANIM_SCREEN_SIZE,
+ BG_ANIM_AREA_OVERFLOW_MODE,
+ BG_ANIM2,
+ BG_ANIM3,
+ BG_ANIM_PRIORITY,
+ BG_ANIM_5,
+ BG_ANIM_6
+};
+
+struct UnknownAnimStruct2
+{
+ void *unk0;
+ u16 *unk4;
+ u8 unk8;
+ u8 unk9;
+ u16 unkA;
+ u16 unkC;
+};
+
+struct BattleAnimBackground
+{
+ void *image;
+ void *palette;
+ void *tilemap;
+};
+
+#define ANIM_ARGS_COUNT 8
+
+#define PAN_SIDE_PLAYER -64
+#define PAN_SIDE_OPPONENT 63
+
+extern void (*gAnimScriptCallback)(void);
+extern bool8 gAnimScriptActive;
+extern u8 gAnimVisualTaskCount;
+extern u8 gAnimSoundTaskCount;
+extern struct DisableStruct *gAnimDisableStructPtr;
+extern u32 gAnimMoveDmg;
+extern u16 gAnimMovePower;
+extern u8 gAnimFriendship;
+extern u16 gWeatherMoveAnim;
+extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
+extern u8 gAnimMoveTurn;
+extern u8 gAnimBankAttacker;
+extern u8 gAnimBankTarget;
+extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
+extern u8 gUnknown_02038440;
+
+void ClearBattleAnimationVars(void);
+void DoMoveAnim(u16 move);
+void DoBattleAnim(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
+void DestroyAnimSprite(struct Sprite *sprite);
+void DestroyAnimVisualTask(u8 taskId);
+void DestroyAnimSoundTask(u8 taskId);
+bool8 IsAnimBankSpriteVisible(u8 bank);
+void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
+bool8 IsContest(void);
+s8 BattleAnimAdjustPanning(s8 pan);
+s8 BattleAnimAdjustPanning2(s8 pan);
+s16 sub_80A52EC(s16 a);
+s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
+
+// battle_anim_80FE840.s
+void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
+void sub_8118FBC(u8 arg0, u8 arg1, u8 arg2, u8 bankIdentity, u8 arg4, void *arg5, u16 *arg6, u16 arg7);
+
+#endif // GUARD_BATTLE_ANIM_H
diff --git a/include/battle_controller_player.h b/include/battle_controller_player.h
deleted file mode 100644
index 6d095efe7..000000000
--- a/include/battle_controller_player.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef GUARD_BATTLE_CONTROLLER_PLAYER_H
-#define GUARD_BATTLE_CONTROLLER_PLAYER_H
-
-void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
-void ActionSelectionDestroyCursorAt(u8 cursorPos);
-
-#endif // GUARD_BATTLE_CONTROLLER_PLAYER_H
diff --git a/include/battle_controllers.h b/include/battle_controllers.h
index e710deea5..4bc6b7b84 100644
--- a/include/battle_controllers.h
+++ b/include/battle_controllers.h
@@ -1,8 +1,6 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H
-#include "battle_controller_player.h"
-
#define REQUEST_ALL_BATTLE 0x0
#define REQUEST_SPECIES_BATTLE 0x1
#define REQUEST_HELDITEM_BATTLE 0x2
@@ -48,44 +46,162 @@ struct ChooseMoveStruct
u8 monType2;
};
-// rom3.s, emitters
-void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data);
-void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct* disableStructPtr, u8 multihit);
-void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
-void EmitEffectivenessSound(u8 bufferId, u16 songId);
-void EmitPlaySound(u8 bufferId, u16 songId, u8 arg2);
-void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId);
-void EmitFaintAnimation(u8 bufferId);
-void Emit_x2A(u8 bufferId);
-void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
-void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
-void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
-void EmitReturnPokeToBall(u8 bufferId, u8 arg1);
+enum
+{
+ CONTROLLER_GETMONDATA,
+ CONTROLLER_GETRAWMONDATA,
+ CONTROLLER_SETMONDATA,
+ CONTROLLER_SETRAWMONDATA,
+ CONTROLLER_LOADMONSPRITE,
+ CONTROLLER_SWITCHINANIM,
+ CONTROLLER_RETURNMONTOBALL,
+ CONTROLLER_DRAWTRAINERPIC,
+ CONTROLLER_TRAINERSLIDE,
+ CONTROLLER_TRAINERSLIDEBACK,
+ CONTROLLER_FAINTANIMATION,
+ CONTROLLER_11,
+ CONTROLLER_12,
+ CONTROLLER_BALLTHROW,
+ CONTROLLER_PAUSE,
+ CONTROLLER_MOVEANIMATION,
+ CONTROLLER_PRINTSTRING,
+ CONTROLLER_PRINTSTRINGPLAYERONLY,
+ CONTROLLER_CHOOSEACTION,
+ CONTROLLER_19,
+ CONTROLLER_CHOOSEMOVE,
+ CONTROLLER_OPENBAG,
+ CONTROLLER_CHOOSEPOKEMON,
+ CONTROLLER_23,
+ CONTROLLER_HEALTHBARUPDATE,
+ CONTROLLER_EXPUPDATE,
+ CONTROLLER_STATUSICONUPDATE,
+ CONTROLLER_STATUSANIMATION,
+ CONTROLLER_STATUSXOR,
+ CONTROLLER_DATATRANSFER,
+ CONTROLLER_DMA3TRANSFER,
+ CONTROLLER_31,
+ CONTROLLER_32,
+ CONTROLLER_33,
+ CONTROLLER_34,
+ CONTROLLER_35,
+ CONTROLLER_36,
+ CONTROLLER_37,
+ CONTROLLER_38,
+ CONTROLLER_39,
+ CONTROLLER_40,
+ CONTROLLER_HITANIMATION,
+ CONTROLLER_42,
+ CONTROLLER_EFFECTIVENESSSOUND,
+ CONTROLLER_PLAYFANFAREORBGM,
+ CONTROLLER_FAINTINGCRY,
+ CONTROLLER_INTROSLIDE,
+ CONTROLLER_INTROTRAINERBALLTHROW,
+ CONTROLLER_DRAWPARTYSTATUSSUMMARY,
+ CONTROLLER_49,
+ CONTROLLER_50,
+ CONTROLLER_SPRITEINVISIBILITY,
+ CONTROLLER_BATTLEANIMATION,
+ CONTROLLER_LINKSTANDBYMSG,
+ CONTROLLER_RESETACTIONMOVESELECTION,
+ CONTROLLER_55,
+ CONTROLLER_56
+};
+
+#define LAST_CONTROLLER_CMD_ID CONTROLLER_56 + 1
+
+// general functions
+void HandleLinkBattleSetup(void);
+void SetUpBattleVarsAndBirchZigzagoon(void);
+void sub_8032768(void);
+void sub_8033648(void);
+void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
+
+// emitters
void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2);
+void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
+void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data);
+void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
+void EmitLoadMonSprite(u8 bufferId);
void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
-void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
-void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
+void EmitReturnMonToBall(u8 bufferId, u8 arg1);
+void EmitDrawTrainerPic(u8 bufferId);
void EmitTrainerSlide(u8 bufferId);
void EmitTrainerSlideBack(u8 bufferId);
-void EmitFaintingCry(u8 bufferId);
-void Emit_x37(u8 bufferId, u8 arg1);
-void EmitHitAnimation(u8 bufferId);
-void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
-void EmitCmd49(u8 bufferId);
-void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
-void EmitCmd13(u8 bufferId);
+void EmitFaintAnimation(u8 bufferId);
+void EmitCmd11(u8 bufferId); // unused
+void EmitCmd12(u8 bufferId); // unused
+void EmitBallThrow(u8 bufferId, u8 caseId);
+void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
+void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
+void EmitPrintString(u8 bufferId, u16 stringId);
+void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId);
+void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
+void EmitCmd19(u8 bufferId);
+void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
+void EmitOpenBag(u8 bufferId, u8* arg1);
+void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
+void EmitCmd23(u8 bufferId); // unused
+void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
+void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
+void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
+void EmitStatusXor(u8 bufferId, u8 b); // unused
+void EmitDataTransfer(u8 bufferId, u16 size, void *data);
+void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
+void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
+void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
+void EmitCmd33(u8 bufferId, u8 arg1, u16 arg2);
+void EmitCmd34(u8 bufferId, u8 b, u8 *c);
+void EmitCmd35(u8 bufferId, u16 b);
+void EmitCmd36(u8 bufferId, u16 b);
+void EmitCmd37(u8 bufferId);
+void EmitCmd38(u8 bufferId, u8 b);
+void EmitCmd39(u8 bufferId);
+void EmitCmd40(u8 bufferId);
+void EmitHitAnimation(u8 bufferId);
+void EmitCmd42(u8 bufferId);
+void EmitEffectivenessSound(u8 bufferId, u16 songId);
+void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
+void EmitFaintingCry(u8 bufferId);
void EmitIntroSlide(u8 bufferId, u8 terrainId);
-void EmitDrawTrainerPic(u8 bufferId);
-void EmitLoadMonSprite(u8 bufferId);
void EmitIntroTrainerBallThrow(u8 bufferId);
-void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
-void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct* movePpData);
-void EmitOpenBag(u8 bufferId, u8* arg1);
-void Emit_x32(u8 bufferId);
-void EmitPrintString(u8 bufferId, u16 stringId);
+void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
+void EmitCmd49(u8 bufferId);
+void EmitCmd50(u8 bufferId);
+void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
+void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
+void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
-void EmitBallThrow(u8 bufferId, u8 caseId);
-void EmitCmd_x21(u8 bufferId, u8 arg1, u16 arg2);
+void EmitCmd55(u8 bufferId, u8 arg1);
+
+// player controller
+void SetBankFuncToPlayerBufferRunCommand(void);
+void nullsub_21(void);
+void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
+void ActionSelectionDestroyCursorAt(u8 cursorPos);
+
+// recorded player controller
+void SetBankFuncToRecordedPlayerBufferRunCommand(void);
+
+// opponent controller
+void SetBankFuncToOpponentBufferRunCommand(void);
+
+// player partner controller
+void SetBankFuncToPlayerPartnerBufferRunCommand(void);
+
+// safari controller
+void SetBankFuncToSafariBufferRunCommand(void);
+
+// wally controller
+void SetBankFuncToWallyBufferRunCommand(void);
+
+// recorded opponent controller
+void SetBankFuncToRecordedOpponentBufferRunCommand(void);
+
+// link opponent
+void SetBankFuncToLinkOpponentBufferRunCommand(void);
+
+// link partner
+void SetBankFuncToLinkPartnerBufferRunCommand(void);
#endif // GUARD_BATTLE_CONTROLLERS_H
diff --git a/include/battle_interface.h b/include/battle_interface.h
index cecc7bd1f..05ea1c021 100644
--- a/include/battle_interface.h
+++ b/include/battle_interface.h
@@ -1,6 +1,22 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
+#include "battle_controllers.h"
+
+#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF
+#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700
+#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
+#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702
+
+#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
+
+#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
+#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
+
+#define TAG_HEALTHBOX_PAL 0xD6FF
+#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
+#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
+
enum
{
HEALTHBOX_ALL,
@@ -10,8 +26,8 @@ enum
HEALTHBOX_NICK,
HEALTHBOX_HEALTH_BAR,
HEALTHBOX_EXP_BAR,
- HEALTHBOX_7,
- HEALTHBOX_8,
+ HEALTHBOX_UNUSED_7,
+ HEALTHBOX_UNUSED_8,
HEALTHBOX_STATUS_ICON,
HEALTHBOX_SAFARI_ALL_TEXT,
HEALTHBOX_SAFARI_BALLS_TEXT
@@ -19,10 +35,20 @@ enum
u8 CreateBankHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
-void SetBankHealthboxSpritePos(u8 bank);
-void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
+void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 field_C);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
+void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
+void DestoryHealthboxSprite(u8 healthboxSpriteId);
+void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
+void UpdateOamPriorityInAllHealthboxes(u8 priority);
+void SetBankHealthboxSpritePos(u8 bank);
+void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
+void SwapHpBarsWithHpText(void);
+u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
+void sub_8073C30(u8 taskId);
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
-void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
+s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
+u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
+u8 GetHPBarLevel(s16 hp, s16 maxhp);
#endif // GUARD_BATTLE_INTERFACE_H
diff --git a/include/battle_util.h b/include/battle_util.h
index c1ff7d8ab..b21b250c4 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -33,6 +33,7 @@
#define ITEMEFFECT_ON_SWITCH_IN 0x0
#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
+#define WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0)))
#define BS_GET_TARGET 0
#define BS_GET_ATTACKER 1
diff --git a/include/contest.h b/include/contest.h
index 5c473bd2c..7dcde7da2 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -1,7 +1,8 @@
#ifndef GUARD_CONTEST_H
#define GUARD_CONTEST_H
-struct ContestStruct_02039E00 {
+struct ContestStruct_02039E00
+{
u16 unk_00;
u8 unk_02[11];
u8 unk_0d[8];
@@ -11,8 +12,30 @@ struct ContestStruct_02039E00 {
extern struct ContestStruct_02039E00 gUnknown_02039E00[4];
extern u8 gUnknown_02039F24;
-extern EWRAM_DATA u16 gScriptContestCategory;
-extern EWRAM_DATA u8 gUnknown_02039F2E;
-extern EWRAM_DATA u8 gUnknown_02039F30;
+extern u16 gScriptContestCategory;
+extern u8 gUnknown_02039F2E;
+extern u8 gUnknown_02039F30;
+
+struct ContestStruct_field_18
+{
+ // unknown size
+ u16 field_0;
+};
+
+struct ContestResources
+{
+ void *field_0;
+ void *field_4;
+ void *field_8;
+ void *field_C;
+ void *field_10;
+ void *field_14;
+ struct ContestStruct_field_18 *field_18;
+};
+
+extern struct ContestResources *gContestResources;
+
+bool8 IsSpeciesNotUnown(u16 species);
+void LoadContestBgAfterMoveAnim(void);
#endif //GUARD_CONTEST_H
diff --git a/include/data/decoration/description.h b/include/data/decoration/description.h
new file mode 100644
index 000000000..ba4c3dd54
--- /dev/null
+++ b/include/data/decoration/description.h
@@ -0,0 +1,581 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_DATA_DECORATION_DESCRIPTION_H
+#define GUARD_DATA_DECORATION_DESCRIPTION_H
+
+const u8 DecorDesc_SMALL_DESK[] = _(
+ "A small desk built\n"
+ "for one.");
+
+const u8 DecorDesc_POKEMON_DESK[] = _(
+ "A small desk built in\n"
+ "the shape of a POKé\n"
+ "BALL.");
+
+const u8 DecorDesc_HEAVY_DESK[] = _(
+ "A large desk made\n"
+ "of steel. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_RAGGED_DESK[] = _(
+ "A large desk made\n"
+ "of wood. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_COMFORT_DESK[] = _(
+ "A large desk made\n"
+ "of leaves. Put some\n"
+ "decorations on it.");
+
+const u8 DecorDesc_PRETTY_DESK[] = _(
+ "A huge desk made\n"
+ "of glass. Holds lots\n"
+ "of decorations.");
+
+const u8 DecorDesc_BRICK_DESK[] = _(
+ "A huge desk made\n"
+ "of brick. Holds lots\n"
+ "of decorations.");
+
+const u8 DecorDesc_CAMP_DESK[] = _(
+ "A huge desk made\n"
+ "of logs. Put lots of\n"
+ "decorations on it.");
+
+const u8 DecorDesc_HARD_DESK[] = _(
+ "A huge desk made\n"
+ "of rocks. Holds\n"
+ "many decorations.");
+
+const u8 DecorDesc_SMALL_CHAIR[] = _(
+ "A small chair made\n"
+ "for one.");
+
+const u8 DecorDesc_POKEMON_CHAIR[] = _(
+ "A small chair built\n"
+ "in the shape of a\n"
+ "POKé BALL.");
+
+const u8 DecorDesc_HEAVY_CHAIR[] = _(
+ "A small chair made\n"
+ "of steel.");
+
+const u8 DecorDesc_PRETTY_CHAIR[] = _(
+ "A small chair made\n"
+ "of glass.");
+
+const u8 DecorDesc_COMFORT_CHAIR[] = _(
+ "A small chair made\n"
+ "of leaves.");
+
+const u8 DecorDesc_RAGGED_CHAIR[] = _(
+ "A small chair made\n"
+ "of wood.");
+
+const u8 DecorDesc_BRICK_CHAIR[] = _(
+ "A small chair made\n"
+ "of brick.");
+
+const u8 DecorDesc_CAMP_CHAIR[] = _(
+ "A small chair made\n"
+ "of logs.");
+
+const u8 DecorDesc_HARD_CHAIR[] = _(
+ "A small chair made\n"
+ "of rock.");
+
+const u8 DecorDesc_RED_PLANT[] = _(
+ "A vivid red potted\n"
+ "plant.");
+
+const u8 DecorDesc_TROPICAL_PLANT[] = _(
+ "A flowering tropical\n"
+ "plant in a pot.");
+
+const u8 DecorDesc_PRETTY_FLOWERS[] = _(
+ "A pot of cute\n"
+ "flowers.");
+
+const u8 DecorDesc_COLORFUL_PLANT[] = _(
+ "A large pot with\n"
+ "many colorful\n"
+ "flowers.");
+
+const u8 DecorDesc_BIG_PLANT[] = _(
+ "A large, umbrella-\n"
+ "shaped plant in a\n"
+ "big pot.");
+
+const u8 DecorDesc_GORGEOUS_PLANT[] = _(
+ "A large, impressive\n"
+ "plant in a big pot.");
+
+const u8 DecorDesc_RED_BRICK[] = _(
+ "A red-colored brick.\n"
+ "Decorations can be\n"
+ "placed on top.");
+
+const u8 DecorDesc_YELLOW_BRICK[] = _(
+ "A yellow-colored\n"
+ "brick. Put some\n"
+ "decorations on top.");
+
+const u8 DecorDesc_BLUE_BRICK[] = _(
+ "A blue-colored\n"
+ "brick. Put some\n"
+ "decorations on top.");
+
+const u8 DecorDesc_RED_BALLOON[] = _(
+ "A red balloon filled\n"
+ "with water. Bursts\n"
+ "if stepped on.");
+
+const u8 DecorDesc_BLUE_BALLOON[] = _(
+ "A blue balloon filled\n"
+ "with water. Bursts\n"
+ "if stepped on.");
+
+const u8 DecorDesc_YELLOW_BALLOON[] = _(
+ "A yellow balloon\n"
+ "filled with water.\n"
+ "Pops if stepped on.");
+
+const u8 DecorDesc_RED_TENT[] = _(
+ "A large red tent.\n"
+ "You can hide inside\n"
+ "it.");
+
+const u8 DecorDesc_BLUE_TENT[] = _(
+ "A large blue tent.\n"
+ "You can hide inside\n"
+ "it.");
+
+const u8 DecorDesc_SOLID_BOARD[] = _(
+ "Place over a hole to\n"
+ "cross to the other\n"
+ "side.");
+
+const u8 DecorDesc_SLIDE[] = _(
+ "Use to slide down\n"
+ "from the platform.");
+
+const u8 DecorDesc_FENCE_LENGTH[] = _(
+ "A small fence that\n"
+ "blocks passage.");
+
+const u8 DecorDesc_FENCE_WIDTH[] = _(
+ "A small fence that\n"
+ "blocks passage.");
+
+const u8 DecorDesc_TIRE[] = _(
+ "An old large tire.\n"
+ "Decorations can be\n"
+ "placed on top.");
+
+const u8 DecorDesc_STAND[] = _(
+ "A large pedestal\n"
+ "with steps.");
+
+const u8 DecorDesc_MUD_BALL[] = _(
+ "A large ball of mud.\n"
+ "Crumbles if stepped\n"
+ "on.");
+
+const u8 DecorDesc_BREAKABLE_DOOR[] = _(
+ "A weird door that\n"
+ "people can walk\n"
+ "right through.");
+
+const u8 DecorDesc_SAND_ORNAMENT[] = _(
+ "An ornament made\n"
+ "of sand. Crumbles if\n"
+ "touched.");
+
+const u8 DecorDesc_SILVER_SHIELD[] = _(
+ "Awarded for 50\n"
+ "straight wins at\n"
+ "the BATTLE TOWER.");
+
+const u8 DecorDesc_GOLD_SHIELD[] = _(
+ "Awarded for 100\n"
+ "straight wins at\n"
+ "the BATTLE TOWER.");
+
+const u8 DecorDesc_GLASS_ORNAMENT[] = _(
+ "A glass replica of\n"
+ "a famous sculpture\n"
+ "at the ART MUSEUM.");
+
+const u8 DecorDesc_TV[] = _(
+ "A small, gray-\n"
+ "colored toy TV.");
+
+const u8 DecorDesc_ROUND_TV[] = _(
+ "A toy TV modeled\n"
+ "in the image of a\n"
+ "SEEDOT.");
+
+const u8 DecorDesc_CUTE_TV[] = _(
+ "A toy TV modeled\n"
+ "in the image of a\n"
+ "SKITTY.");
+
+const u8 DecorDesc_GLITTER_MAT[] = _(
+ "An odd mat that\n"
+ "glitters if stepped\n"
+ "on.");
+
+const u8 DecorDesc_JUMP_MAT[] = _(
+ "A trick mat that\n"
+ "jumps when it is\n"
+ "stepped on.");
+
+const u8 DecorDesc_SPIN_MAT[] = _(
+ "A trick mat that\n"
+ "spins around when\n"
+ "stepped on.");
+
+const u8 DecorDesc_C_LOW_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a low C note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_D_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a D note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_E_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an E note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_F_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an F note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_G_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a G note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_A_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "an A note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_B_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a B note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_C_HIGH_NOTE_MAT[] = _(
+ "A mat that plays\n"
+ "a high C note when\n"
+ "stepped on.");
+
+const u8 DecorDesc_SURF_MAT[] = _(
+ "A mat designed with\n"
+ "a SURF image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_THUNDER_MAT[] = _(
+ "A mat designed with\n"
+ "a THUNDER image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_FIRE_BLAST_MAT[] = _(
+ "A mat designed with\n"
+ "a FIRE BLAST image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_POWDER_SNOW_MAT[] = _(
+ "A mat with a POWDER\n"
+ "SNOW image design.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_ATTRACT_MAT[] = _(
+ "A mat designed with\n"
+ "an ATTRACT image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_FISSURE_MAT[] = _(
+ "A mat designed with\n"
+ "a FISSURE image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_SPIKES_MAT[] = _(
+ "A mat designed with\n"
+ "a SPIKES image.\n"
+ "Put items on top.");
+
+const u8 DecorDesc_BALL_POSTER[] = _(
+ "A small poster\n"
+ "printed with POKé\n"
+ "BALLS.");
+
+const u8 DecorDesc_GREEN_POSTER[] = _(
+ "A small poster with\n"
+ "a TREECKO print.");
+
+const u8 DecorDesc_RED_POSTER[] = _(
+ "A small poster with\n"
+ "a TORCHIC print.");
+
+const u8 DecorDesc_BLUE_POSTER[] = _(
+ "A small poster with\n"
+ "a MUDKIP print.");
+
+const u8 DecorDesc_CUTE_POSTER[] = _(
+ "A small poster with\n"
+ "an AZURILL print.");
+
+const u8 DecorDesc_PIKA_POSTER[] = _(
+ "A large poster with\n"
+ "a PIKACHU and\n"
+ "PICHU print.");
+
+const u8 DecorDesc_LONG_POSTER[] = _(
+ "A large poster with\n"
+ "a SEVIPER print.");
+
+const u8 DecorDesc_SEA_POSTER[] = _(
+ "A large poster with\n"
+ "a RELICANTH print.");
+
+const u8 DecorDesc_SKY_POSTER[] = _(
+ "A large poster with\n"
+ "a WINGULL print.");
+
+const u8 DecorDesc_KISS_POSTER[] = _(
+ "A large poster with\n"
+ "a SMOOCHUM print.");
+
+const u8 DecorDesc_PICHU_DOLL[] = _(
+ "A PICHU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_PIKACHU_DOLL[] = _(
+ "A PIKACHU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MARILL_DOLL[] = _(
+ "A MARILL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TOGEPI_DOLL[] = _(
+ "A TOGEPI doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CYNDAQUIL_DOLL[] = _(
+ "A CYNDAQUIL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CHIKORITA_DOLL[] = _(
+ "A CHIKORITA doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TOTODILE_DOLL[] = _(
+ "A TOTODILE doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_JIGGLYPUFF_DOLL[] = _(
+ "A JIGGLYPUFF doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MEOWTH_DOLL[] = _(
+ "A MEOWTH doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CLEFAIRY_DOLL[] = _(
+ "A CLEFAIRY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DITTO_DOLL[] = _(
+ "A DITTO doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SMOOCHUM_DOLL[] = _(
+ "A SMOOCHUM doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TREECKO_DOLL[] = _(
+ "A TREECKO doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_TORCHIC_DOLL[] = _(
+ "A TORCHIC doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_MUDKIP_DOLL[] = _(
+ "A MUDKIP doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DUSKULL_DOLL[] = _(
+ "A DUSKULL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_WYNAUT_DOLL[] = _(
+ "A WYNAUT doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BALTOY_DOLL[] = _(
+ "A BALTOY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_KECLEON_DOLL[] = _(
+ "A KECLEON doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_AZURILL_DOLL[] = _(
+ "An AZURILL doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SKITTY_DOLL[] = _(
+ "A SKITTY doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SWABLU_DOLL[] = _(
+ "A SWABLU doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_GULPIN_DOLL[] = _(
+ "A GULPIN doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_LOTAD_DOLL[] = _(
+ "A LOTAD doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_SEEDOT_DOLL[] = _(
+ "A SEEDOT doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_PIKA_CUSHION[] = _(
+ "A PIKACHU cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_ROUND_CUSHION[] = _(
+ "A MARILL cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_KISS_CUSHION[] = _(
+ "A SMOOCHUM\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_ZIGZAG_CUSHION[] = _(
+ "A ZIGZAGOON\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_SPIN_CUSHION[] = _(
+ "A SPINDA cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_DIAMOND_CUSHION[] = _(
+ "A SABLEYE cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BALL_CUSHION[] = _(
+ "A BALL cushion.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_GRASS_CUSHION[] = _(
+ "A grass-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_FIRE_CUSHION[] = _(
+ "A fire-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_WATER_CUSHION[] = _(
+ "A water-mark\n"
+ "cushion. Place it on\n"
+ "a mat or a desk.");
+
+const u8 DecorDesc_SNORLAX_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_RHYDON_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_LAPRAS_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_VENUSAUR_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_CHARIZARD_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_BLASTOISE_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_WAILMER_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGIROCK_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGICE_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+
+const u8 DecorDesc_REGISTEEL_DOLL[] = _(
+ "A large doll.\n"
+ "Place it on a mat\n"
+ "or a desk.");
+#endif //GUARD_DATA_DECORATION_DESCRIPTION_H
diff --git a/include/data/decoration/header.h b/include/data/decoration/header.h
new file mode 100644
index 000000000..64bed1c7e
--- /dev/null
+++ b/include/data/decoration/header.h
@@ -0,0 +1,1100 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_DATA_DECORATION_HEADER_H
+#define GUARD_DATA_DECORATION_HEADER_H
+
+const struct Decoration gDecorations[] = {
+ {
+ DECOR_NONE,
+ _("SMALL DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_DESK,
+ 0,
+ DecorDesc_SMALL_DESK,
+ DecorGfx_SMALL_DESK
+ }, {
+ DECOR_SMALL_DESK,
+ _("SMALL DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_DESK,
+ 3000,
+ DecorDesc_SMALL_DESK,
+ DecorGfx_SMALL_DESK
+ }, {
+ DECOR_POKEMON_DESK,
+ _("POKéMON DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_DESK,
+ 3000,
+ DecorDesc_POKEMON_DESK,
+ DecorGfx_POKEMON_DESK
+ }, {
+ DECOR_HEAVY_DESK,
+ _("HEAVY DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x2,
+ DECORCAT_DESK,
+ 6000,
+ DecorDesc_HEAVY_DESK,
+ DecorGfx_HEAVY_DESK
+ }, {
+ DECOR_RAGGED_DESK,
+ _("RAGGED DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x2,
+ DECORCAT_DESK,
+ 6000,
+ DecorDesc_RAGGED_DESK,
+ DecorGfx_RAGGED_DESK
+ }, {
+ DECOR_COMFORT_DESK,
+ _("COMFORT DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x2,
+ DECORCAT_DESK,
+ 6000,
+ DecorDesc_COMFORT_DESK,
+ DecorGfx_COMFORT_DESK
+ }, {
+ DECOR_PRETTY_DESK,
+ _("PRETTY DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_DESK,
+ 9000,
+ DecorDesc_PRETTY_DESK,
+ DecorGfx_PRETTY_DESK
+ }, {
+ DECOR_BRICK_DESK,
+ _("BRICK DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_DESK,
+ 9000,
+ DecorDesc_BRICK_DESK,
+ DecorGfx_BRICK_DESK
+ }, {
+ DECOR_CAMP_DESK,
+ _("CAMP DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_DESK,
+ 9000,
+ DecorDesc_CAMP_DESK,
+ DecorGfx_CAMP_DESK
+ }, {
+ DECOR_HARD_DESK,
+ _("HARD DESK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_DESK,
+ 9000,
+ DecorDesc_HARD_DESK,
+ DecorGfx_HARD_DESK
+ }, {
+ DECOR_SMALL_CHAIR,
+ _("SMALL CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_SMALL_CHAIR,
+ DecorGfx_SMALL_CHAIR
+ }, {
+ DECOR_POKEMON_CHAIR,
+ _("POKéMON CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_POKEMON_CHAIR,
+ DecorGfx_POKEMON_CHAIR
+ }, {
+ DECOR_HEAVY_CHAIR,
+ _("HEAVY CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_HEAVY_CHAIR,
+ DecorGfx_HEAVY_CHAIR
+ }, {
+ DECOR_PRETTY_CHAIR,
+ _("PRETTY CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_PRETTY_CHAIR,
+ DecorGfx_PRETTY_CHAIR
+ }, {
+ DECOR_COMFORT_CHAIR,
+ _("COMFORT CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_COMFORT_CHAIR,
+ DecorGfx_COMFORT_CHAIR
+ }, {
+ DECOR_RAGGED_CHAIR,
+ _("RAGGED CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_RAGGED_CHAIR,
+ DecorGfx_RAGGED_CHAIR
+ }, {
+ DECOR_BRICK_CHAIR,
+ _("BRICK CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_BRICK_CHAIR,
+ DecorGfx_BRICK_CHAIR
+ }, {
+ DECOR_CAMP_CHAIR,
+ _("CAMP CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_CAMP_CHAIR,
+ DecorGfx_CAMP_CHAIR
+ }, {
+ DECOR_HARD_CHAIR,
+ _("HARD CHAIR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_CHAIR,
+ 2000,
+ DecorDesc_HARD_CHAIR,
+ DecorGfx_HARD_CHAIR
+ }, {
+ DECOR_RED_PLANT,
+ _("RED PLANT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_PLANT,
+ 3000,
+ DecorDesc_RED_PLANT,
+ DecorGfx_RED_PLANT
+ }, {
+ DECOR_TROPICAL_PLANT,
+ _("TROPICAL PLANT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_PLANT,
+ 3000,
+ DecorDesc_TROPICAL_PLANT,
+ DecorGfx_TROPICAL_PLANT
+ }, {
+ DECOR_PRETTY_FLOWERS,
+ _("PRETTY FLOWERS"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_PLANT,
+ 3000,
+ DecorDesc_PRETTY_FLOWERS,
+ DecorGfx_PRETTY_FLOWERS
+ }, {
+ DECOR_COLORFUL_PLANT,
+ _("COLORFUL PLANT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_2x2,
+ DECORCAT_PLANT,
+ 5000,
+ DecorDesc_COLORFUL_PLANT,
+ DecorGfx_COLORFUL_PLANT
+ }, {
+ DECOR_BIG_PLANT,
+ _("BIG PLANT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_2x2,
+ DECORCAT_PLANT,
+ 5000,
+ DecorDesc_BIG_PLANT,
+ DecorGfx_BIG_PLANT
+ }, {
+ DECOR_GORGEOUS_PLANT,
+ _("GORGEOUS PLANT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_2x2,
+ DECORCAT_PLANT,
+ 5000,
+ DecorDesc_GORGEOUS_PLANT,
+ DecorGfx_GORGEOUS_PLANT
+ }, {
+ DECOR_RED_BRICK,
+ _("RED BRICK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_RED_BRICK,
+ DecorGfx_RED_BRICK
+ }, {
+ DECOR_YELLOW_BRICK,
+ _("YELLOW BRICK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_YELLOW_BRICK,
+ DecorGfx_YELLOW_BRICK
+ }, {
+ DECOR_BLUE_BRICK,
+ _("BLUE BRICK"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_BLUE_BRICK,
+ DecorGfx_BLUE_BRICK
+ }, {
+ DECOR_RED_BALLOON,
+ _("RED BALLOON"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_RED_BALLOON,
+ DecorGfx_RED_BALLOON
+ }, {
+ DECOR_BLUE_BALLOON,
+ _("BLUE BALLOON"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_BLUE_BALLOON,
+ DecorGfx_BLUE_BALLOON
+ }, {
+ DECOR_YELLOW_BALLOON,
+ _("YELLOW BALLOON"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_YELLOW_BALLOON,
+ DecorGfx_YELLOW_BALLOON
+ }, {
+ DECOR_RED_TENT,
+ _("RED TENT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_ORNAMENT,
+ 10000,
+ DecorDesc_RED_TENT,
+ DecorGfx_RED_TENT
+ }, {
+ DECOR_BLUE_TENT,
+ _("BLUE TENT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_ORNAMENT,
+ 10000,
+ DecorDesc_BLUE_TENT,
+ DecorGfx_BLUE_TENT
+ }, {
+ DECOR_SOLID_BOARD,
+ _("SOLID BOARD"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 3000,
+ DecorDesc_SOLID_BOARD,
+ DecorGfx_SOLID_BOARD
+ }, {
+ DECOR_SLIDE,
+ _("SLIDE"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_2x4,
+ DECORCAT_ORNAMENT,
+ 8000,
+ DecorDesc_SLIDE,
+ DecorGfx_SLIDE
+ }, {
+ DECOR_FENCE_LENGTH,
+ _("FENCE LENGTH"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_FENCE_LENGTH,
+ DecorGfx_FENCE_LENGTH
+ }, {
+ DECOR_FENCE_WIDTH,
+ _("FENCE WIDTH"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 500,
+ DecorDesc_FENCE_WIDTH,
+ DecorGfx_FENCE_WIDTH
+ }, {
+ DECOR_TIRE,
+ _("TIRE"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_2x2,
+ DECORCAT_ORNAMENT,
+ 800,
+ DecorDesc_TIRE,
+ DecorGfx_TIRE
+ }, {
+ DECOR_STAND,
+ _("STAND"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_4x2,
+ DECORCAT_ORNAMENT,
+ 7000,
+ DecorDesc_STAND,
+ DecorGfx_STAND
+ }, {
+ DECOR_MUD_BALL,
+ _("MUD BALL"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 200,
+ DecorDesc_MUD_BALL,
+ DecorGfx_MUD_BALL
+ }, {
+ DECOR_BREAKABLE_DOOR,
+ _("BREAKABLE DOOR"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 3000,
+ DecorDesc_BREAKABLE_DOOR,
+ DecorGfx_BREAKABLE_DOOR
+ }, {
+ DECOR_SAND_ORNAMENT,
+ _("SAND ORNAMENT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 3000,
+ DecorDesc_SAND_ORNAMENT,
+ DecorGfx_SAND_ORNAMENT
+ }, {
+ DECOR_SILVER_SHIELD,
+ _("SILVER SHIELD"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 0,
+ DecorDesc_SILVER_SHIELD,
+ DecorGfx_SILVER_SHIELD
+ }, {
+ DECOR_GOLD_SHIELD,
+ _("GOLD SHIELD"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 0,
+ DecorDesc_GOLD_SHIELD,
+ DecorGfx_GOLD_SHIELD
+ }, {
+ DECOR_GLASS_ORNAMENT,
+ _("GLASS ORNAMENT"),
+ DECORPERM_BEHIND_FLOOR,
+ DECORSHAPE_1x2,
+ DECORCAT_ORNAMENT,
+ 0,
+ DecorDesc_GLASS_ORNAMENT,
+ DecorGfx_GLASS_ORNAMENT
+ }, {
+ DECOR_TV,
+ _("TV"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 3000,
+ DecorDesc_TV,
+ DecorGfx_TV
+ }, {
+ DECOR_ROUND_TV,
+ _("ROUND TV"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 4000,
+ DecorDesc_ROUND_TV,
+ DecorGfx_ROUND_TV
+ }, {
+ DECOR_CUTE_TV,
+ _("CUTE TV"),
+ DECORPERM_SOLID_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_ORNAMENT,
+ 4000,
+ DecorDesc_CUTE_TV,
+ DecorGfx_CUTE_TV
+ }, {
+ DECOR_GLITTER_MAT,
+ _("GLITTER MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 2000,
+ DecorDesc_GLITTER_MAT,
+ DecorGfx_GLITTER_MAT
+ }, {
+ DECOR_JUMP_MAT,
+ _("JUMP MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 2000,
+ DecorDesc_JUMP_MAT,
+ DecorGfx_JUMP_MAT
+ }, {
+ DECOR_SPIN_MAT,
+ _("SPIN MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 2000,
+ DecorDesc_SPIN_MAT,
+ DecorGfx_SPIN_MAT
+ }, {
+ DECOR_C_LOW_NOTE_MAT,
+ _("C Low NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_C_LOW_NOTE_MAT,
+ DecorGfx_C_LOW_NOTE_MAT
+ }, {
+ DECOR_D_NOTE_MAT,
+ _("D NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_D_NOTE_MAT,
+ DecorGfx_D_NOTE_MAT
+ }, {
+ DECOR_E_NOTE_MAT,
+ _("E NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_E_NOTE_MAT,
+ DecorGfx_E_NOTE_MAT
+ }, {
+ DECOR_F_NOTE_MAT,
+ _("F NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_F_NOTE_MAT,
+ DecorGfx_F_NOTE_MAT
+ }, {
+ DECOR_G_NOTE_MAT,
+ _("G NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_G_NOTE_MAT,
+ DecorGfx_G_NOTE_MAT
+ }, {
+ DECOR_A_NOTE_MAT,
+ _("A NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_A_NOTE_MAT,
+ DecorGfx_A_NOTE_MAT
+ }, {
+ DECOR_B_NOTE_MAT,
+ _("B NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_B_NOTE_MAT,
+ DecorGfx_B_NOTE_MAT
+ }, {
+ DECOR_C_HIGH_NOTE_MAT,
+ _("C High NOTE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_1x1,
+ DECORCAT_MAT,
+ 500,
+ DecorDesc_C_HIGH_NOTE_MAT,
+ DecorGfx_C_HIGH_NOTE_MAT
+ }, {
+ DECOR_SURF_MAT,
+ _("SURF MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_SURF_MAT,
+ DecorGfx_SURF_MAT
+ }, {
+ DECOR_THUNDER_MAT,
+ _("THUNDER MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_THUNDER_MAT,
+ DecorGfx_THUNDER_MAT
+ }, {
+ DECOR_FIRE_BLAST_MAT,
+ _("FIRE BLAST MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_FIRE_BLAST_MAT,
+ DecorGfx_FIRE_BLAST_MAT
+ }, {
+ DECOR_POWDER_SNOW_MAT,
+ _("POWDER SNOW MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_POWDER_SNOW_MAT,
+ DecorGfx_POWDER_SNOW_MAT
+ }, {
+ DECOR_ATTRACT_MAT,
+ _("ATTRACT MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_ATTRACT_MAT,
+ DecorGfx_ATTRACT_MAT
+ }, {
+ DECOR_FISSURE_MAT,
+ _("FISSURE MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_FISSURE_MAT,
+ DecorGfx_FISSURE_MAT
+ }, {
+ DECOR_SPIKES_MAT,
+ _("SPIKES MAT"),
+ DECORPERM_PASS_FLOOR,
+ DECORSHAPE_3x3,
+ DECORCAT_MAT,
+ 4000,
+ DecorDesc_SPIKES_MAT,
+ DecorGfx_SPIKES_MAT
+ }, {
+ DECOR_BALL_POSTER,
+ _("BALL POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_1x1,
+ DECORCAT_POSTER,
+ 1000,
+ DecorDesc_BALL_POSTER,
+ DecorGfx_BALL_POSTER
+ }, {
+ DECOR_GREEN_POSTER,
+ _("GREEN POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_1x1,
+ DECORCAT_POSTER,
+ 1000,
+ DecorDesc_GREEN_POSTER,
+ DecorGfx_GREEN_POSTER
+ }, {
+ DECOR_RED_POSTER,
+ _("RED POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_1x1,
+ DECORCAT_POSTER,
+ 1000,
+ DecorDesc_RED_POSTER,
+ DecorGfx_RED_POSTER
+ }, {
+ DECOR_BLUE_POSTER,
+ _("BLUE POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_1x1,
+ DECORCAT_POSTER,
+ 1000,
+ DecorDesc_BLUE_POSTER,
+ DecorGfx_BLUE_POSTER
+ }, {
+ DECOR_CUTE_POSTER,
+ _("CUTE POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_1x1,
+ DECORCAT_POSTER,
+ 1000,
+ DecorDesc_CUTE_POSTER,
+ DecorGfx_CUTE_POSTER
+ }, {
+ DECOR_PIKA_POSTER,
+ _("PIKA POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_2x1,
+ DECORCAT_POSTER,
+ 1500,
+ DecorDesc_PIKA_POSTER,
+ DecorGfx_PIKA_POSTER
+ }, {
+ DECOR_LONG_POSTER,
+ _("LONG POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_2x1,
+ DECORCAT_POSTER,
+ 1500,
+ DecorDesc_LONG_POSTER,
+ DecorGfx_LONG_POSTER
+ }, {
+ DECOR_SEA_POSTER,
+ _("SEA POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_2x1,
+ DECORCAT_POSTER,
+ 1500,
+ DecorDesc_SEA_POSTER,
+ DecorGfx_SEA_POSTER
+ }, {
+ DECOR_SKY_POSTER,
+ _("SKY POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_2x1,
+ DECORCAT_POSTER,
+ 1500,
+ DecorDesc_SKY_POSTER,
+ DecorGfx_SKY_POSTER
+ }, {
+ DECOR_KISS_POSTER,
+ _("KISS POSTER"),
+ DECORPERM_NA_WALL,
+ DECORSHAPE_2x1,
+ DECORCAT_POSTER,
+ 1500,
+ DecorDesc_KISS_POSTER,
+ DecorGfx_KISS_POSTER
+ }, {
+ DECOR_PICHU_DOLL,
+ _("PICHU DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_PICHU_DOLL,
+ DecorGfx_PICHU_DOLL
+ }, {
+ DECOR_PIKACHU_DOLL,
+ _("PIKACHU DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_PIKACHU_DOLL,
+ DecorGfx_PIKACHU_DOLL
+ }, {
+ DECOR_MARILL_DOLL,
+ _("MARILL DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_MARILL_DOLL,
+ DecorGfx_MARILL_DOLL
+ }, {
+ DECOR_TOGEPI_DOLL,
+ _("TOGEPI DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_TOGEPI_DOLL,
+ DecorGfx_TOGEPI_DOLL
+ }, {
+ DECOR_CYNDAQUIL_DOLL,
+ _("CYNDAQUIL DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_CYNDAQUIL_DOLL,
+ DecorGfx_CYNDAQUIL_DOLL
+ }, {
+ DECOR_CHIKORITA_DOLL,
+ _("CHIKORITA DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_CHIKORITA_DOLL,
+ DecorGfx_CHIKORITA_DOLL
+ }, {
+ DECOR_TOTODILE_DOLL,
+ _("TOTODILE DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_TOTODILE_DOLL,
+ DecorGfx_TOTODILE_DOLL
+ }, {
+ DECOR_JIGGLYPUFF_DOLL,
+ _("JIGGLYPUFF DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_JIGGLYPUFF_DOLL,
+ DecorGfx_JIGGLYPUFF_DOLL
+ }, {
+ DECOR_MEOWTH_DOLL,
+ _("MEOWTH DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_MEOWTH_DOLL,
+ DecorGfx_MEOWTH_DOLL
+ }, {
+ DECOR_CLEFAIRY_DOLL,
+ _("CLEFAIRY DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_CLEFAIRY_DOLL,
+ DecorGfx_CLEFAIRY_DOLL
+ }, {
+ DECOR_DITTO_DOLL,
+ _("DITTO DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_DITTO_DOLL,
+ DecorGfx_DITTO_DOLL
+ }, {
+ DECOR_SMOOCHUM_DOLL,
+ _("SMOOCHUM DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_SMOOCHUM_DOLL,
+ DecorGfx_SMOOCHUM_DOLL
+ }, {
+ DECOR_TREECKO_DOLL,
+ _("TREECKO DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_TREECKO_DOLL,
+ DecorGfx_TREECKO_DOLL
+ }, {
+ DECOR_TORCHIC_DOLL,
+ _("TORCHIC DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_TORCHIC_DOLL,
+ DecorGfx_TORCHIC_DOLL
+ }, {
+ DECOR_MUDKIP_DOLL,
+ _("MUDKIP DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_MUDKIP_DOLL,
+ DecorGfx_MUDKIP_DOLL
+ }, {
+ DECOR_DUSKULL_DOLL,
+ _("DUSKULL DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_DUSKULL_DOLL,
+ DecorGfx_DUSKULL_DOLL
+ }, {
+ DECOR_WYNAUT_DOLL,
+ _("WYNAUT DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_WYNAUT_DOLL,
+ DecorGfx_WYNAUT_DOLL
+ }, {
+ DECOR_BALTOY_DOLL,
+ _("BALTOY DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_BALTOY_DOLL,
+ DecorGfx_BALTOY_DOLL
+ }, {
+ DECOR_KECLEON_DOLL,
+ _("KECLEON DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_KECLEON_DOLL,
+ DecorGfx_KECLEON_DOLL
+ }, {
+ DECOR_AZURILL_DOLL,
+ _("AZURILL DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_AZURILL_DOLL,
+ DecorGfx_AZURILL_DOLL
+ }, {
+ DECOR_SKITTY_DOLL,
+ _("SKITTY DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_SKITTY_DOLL,
+ DecorGfx_SKITTY_DOLL
+ }, {
+ DECOR_SWABLU_DOLL,
+ _("SWABLU DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_SWABLU_DOLL,
+ DecorGfx_SWABLU_DOLL
+ }, {
+ DECOR_GULPIN_DOLL,
+ _("GULPIN DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_GULPIN_DOLL,
+ DecorGfx_GULPIN_DOLL
+ }, {
+ DECOR_LOTAD_DOLL,
+ _("LOTAD DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_LOTAD_DOLL,
+ DecorGfx_LOTAD_DOLL
+ }, {
+ DECOR_SEEDOT_DOLL,
+ _("SEEDOT DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_DOLL,
+ 3000,
+ DecorDesc_SEEDOT_DOLL,
+ DecorGfx_SEEDOT_DOLL
+ }, {
+ DECOR_PIKA_CUSHION,
+ _("PIKA CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_PIKA_CUSHION,
+ DecorGfx_PIKA_CUSHION
+ }, {
+ DECOR_ROUND_CUSHION,
+ _("ROUND CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_ROUND_CUSHION,
+ DecorGfx_ROUND_CUSHION
+ }, {
+ DECOR_KISS_CUSHION,
+ _("KISS CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_KISS_CUSHION,
+ DecorGfx_KISS_CUSHION
+ }, {
+ DECOR_ZIGZAG_CUSHION,
+ _("ZIGZAG CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_ZIGZAG_CUSHION,
+ DecorGfx_ZIGZAG_CUSHION
+ }, {
+ DECOR_SPIN_CUSHION,
+ _("SPIN CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_SPIN_CUSHION,
+ DecorGfx_SPIN_CUSHION
+ }, {
+ DECOR_DIAMOND_CUSHION,
+ _("DIAMOND CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_DIAMOND_CUSHION,
+ DecorGfx_DIAMOND_CUSHION
+ }, {
+ DECOR_BALL_CUSHION,
+ _("BALL CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_BALL_CUSHION,
+ DecorGfx_BALL_CUSHION
+ }, {
+ DECOR_GRASS_CUSHION,
+ _("GRASS CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_GRASS_CUSHION,
+ DecorGfx_GRASS_CUSHION
+ }, {
+ DECOR_FIRE_CUSHION,
+ _("FIRE CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_FIRE_CUSHION,
+ DecorGfx_FIRE_CUSHION
+ }, {
+ DECOR_WATER_CUSHION,
+ _("WATER CUSHION"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x1,
+ DECORCAT_CUSHION,
+ 2000,
+ DecorDesc_WATER_CUSHION,
+ DecorGfx_WATER_CUSHION
+ }, {
+ DECOR_SNORLAX_DOLL,
+ _("SNORLAX DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_SNORLAX_DOLL,
+ DecorGfx_SNORLAX_DOLL
+ }, {
+ DECOR_RHYDON_DOLL,
+ _("RHYDON DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_RHYDON_DOLL,
+ DecorGfx_RHYDON_DOLL
+ }, {
+ DECOR_LAPRAS_DOLL,
+ _("LAPRAS DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_LAPRAS_DOLL,
+ DecorGfx_LAPRAS_DOLL
+ }, {
+ DECOR_VENUSAUR_DOLL,
+ _("VENUSAUR DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_VENUSAUR_DOLL,
+ DecorGfx_VENUSAUR_DOLL
+ }, {
+ DECOR_CHARIZARD_DOLL,
+ _("CHARIZARD DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_CHARIZARD_DOLL,
+ DecorGfx_CHARIZARD_DOLL
+ }, {
+ DECOR_BLASTOISE_DOLL,
+ _("BLASTOISE DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_BLASTOISE_DOLL,
+ DecorGfx_BLASTOISE_DOLL
+ }, {
+ DECOR_WAILMER_DOLL,
+ _("WAILMER DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_WAILMER_DOLL,
+ DecorGfx_WAILMER_DOLL
+ }, {
+ DECOR_REGIROCK_DOLL,
+ _("REGIROCK DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_REGIROCK_DOLL,
+ DecorGfx_REGIROCK_DOLL
+ }, {
+ DECOR_REGICE_DOLL,
+ _("REGICE DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_REGICE_DOLL,
+ DecorGfx_REGICE_DOLL
+ }, {
+ DECOR_REGISTEEL_DOLL,
+ _("REGISTEEL DOLL"),
+ DECORPERM_SOLID_MAT,
+ DECORSHAPE_1x2,
+ DECORCAT_DOLL,
+ 10000,
+ DecorDesc_REGISTEEL_DOLL,
+ DecorGfx_REGISTEEL_DOLL}
+};
+
+#endif //GUARD_DATA_DECORATION_HEADER_H
diff --git a/include/data/decoration/icon.h b/include/data/decoration/icon.h
new file mode 100644
index 000000000..1f11bc19f
--- /dev/null
+++ b/include/data/decoration/icon.h
@@ -0,0 +1,132 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_ICON_H
+#define GUARD_ICON_H
+
+const u8 *const gUnknown_085A6BE8[][2] = {
+ {gItemIcon_QuestionMark, gItemIconPalette_QuestionMark},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB7AA0, gUnknown_08DB7B34},
+ {gUnknown_08DB7B5C, gUnknown_08DB7BEC},
+ {gUnknown_08DB7C08, gUnknown_08DB7CE8},
+ {gUnknown_08DB7D08, gUnknown_08DB7DCC},
+ {gUnknown_08DB7DF4, gUnknown_08DB7EA0},
+ {gUnknown_08DB7EC4, gUnknown_08DB7F60},
+ {gUnknown_08DB7F7C, gUnknown_08DB8070},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB808C, gUnknown_08DB8138},
+ {gUnknown_08DB8160, gUnknown_08DB8218},
+ {gUnknown_08DB823C, gUnknown_08DB8300},
+ {gUnknown_08DB8328, gUnknown_08DB8430},
+ {gUnknown_08DB8458, gUnknown_08DB8528},
+ {gUnknown_08DB854C, gUnknown_08DB862C},
+ {gUnknown_08DB8654, gUnknown_08DB86C4},
+ {gUnknown_08DB86E0, gUnknown_08DB8750},
+ {gUnknown_08DB876C, gUnknown_08DB87DC},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB87F8, gUnknown_08DB88D8},
+ {gUnknown_08DB8900, gUnknown_08DB89E0},
+ {gUnknown_08DB8A08, gUnknown_08DB8A68},
+ {gUnknown_08DB8A84, gUnknown_08DB8B40},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB8B68, gUnknown_08DB8C40},
+ {gUnknown_08DB8C5C, gUnknown_08DB8CF4},
+ {NULL, NULL},
+ {gUnknown_08DB8D18, gUnknown_08DB8DB0},
+ {gUnknown_08DB8DD4, gUnknown_08DB8E80},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB8EA0, gUnknown_08DB8F58},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB8F7C, gUnknown_08DB9038},
+ {gUnknown_08DB9058, gUnknown_08DB9130},
+ {gUnknown_08DB9154, gUnknown_08DB9218},
+ {gUnknown_08DB9234, gUnknown_08DB92FC},
+ {gUnknown_08DB931C, gUnknown_08DB93E8},
+ {gUnknown_08DB940C, gUnknown_08DB94CC},
+ {gUnknown_08DB94E8, gUnknown_08DB95AC},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {NULL, NULL},
+ {gUnknown_08DB95D0, gUnknown_08DB96C4},
+ {gUnknown_08DB96EC, gUnknown_08DB97F4},
+ {gUnknown_08DB981C, gUnknown_08DB9908},
+ {gUnknown_08DB9930, gUnknown_08DB9A54},
+ {gUnknown_08DB9A7C, gUnknown_08DB9B7C},
+ {gUnknown_08DB9BA4, gUnknown_08DB9CB0},
+ {gUnknown_08DB9CD8, gUnknown_08DB9DAC},
+ {gUnknown_08DB9F08, gUnknown_08DB9FFC},
+ {gUnknown_08DB9DD4, gUnknown_08DB9EE4},
+ {gUnknown_08DBA020, gUnknown_08DBA12C}
+};
+
+#endif //GUARD_ICON_H
diff --git a/include/data/decoration/tilemaps.h b/include/data/decoration/tilemaps.h
new file mode 100644
index 000000000..1cca7ae0b
--- /dev/null
+++ b/include/data/decoration/tilemaps.h
@@ -0,0 +1,239 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_TILEMAPS_H
+#define GUARD_TILEMAPS_H
+
+const u8 Unknown_085A6FB0[] = {
+ 0x00, 0x01, 0x02, 0x03
+};
+
+const u8 Unknown_085A6FB4[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d
+};
+
+const u8 Unknown_085A6FC0[] = {
+ 0x00, 0x01, 0x02, 0x03,
+ 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b,
+ 0x0c, 0x0d, 0x0e, 0x0f
+};
+
+const u8 Unknown_085A6FD0[] = {
+ 0x00, 0x01, 0x04, 0x05,
+ 0x08, 0x09, 0x0c, 0x0d,
+ 0x10, 0x11, 0x14, 0x15
+};
+
+const u8 Unknown_085A6FDC[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
+};
+
+const u8 Unknown_085A6FE4[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
+};
+
+const u8 Unknown_085A7004[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d
+};
+
+const u8 Unknown_085A7028[] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d
+};
+
+const u8 Unknown_085A7040[] = {
+ 0x00, 0x00, 0x00, 0x00
+};
+
+const u8 Unknown_085A7044[] = {
+ 0x00, 0x00, 0x01, 0x01,
+ 0x00, 0x00, 0x01, 0x01
+};
+
+const u8 Unknown_085A704C[] = {
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02
+};
+
+const u8 Unknown_085A7058[] = {
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+ 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07,
+ 0x04, 0x04, 0x05, 0x05, 0x06, 0x06, 0x07, 0x07
+};
+
+const u8 Unknown_085A7078[] = {
+ 0x00, 0x00, 0x01, 0x01,
+ 0x00, 0x00, 0x01, 0x01,
+ 0x02, 0x02, 0x03, 0x03,
+ 0x02, 0x02, 0x03, 0x03
+};
+
+const u8 Unknown_085A7088[] = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01
+};
+
+const u8 Unknown_085A7090[] = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01,
+ 0x02, 0x02, 0x02, 0x02
+};
+
+const u8 Unknown_085A709C[] = {
+ 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01,
+ 0x02, 0x02, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03,
+ 0x04, 0x04, 0x05, 0x05, 0x04, 0x04, 0x05, 0x05,
+ 0x06, 0x06, 0x07, 0x07, 0x06, 0x06, 0x07, 0x07
+};
+
+const u8 Unknown_085A70BC[] = {
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x03, 0x03, 0x04, 0x04, 0x05, 0x05,
+ 0x03, 0x03, 0x04, 0x04, 0x05, 0x05,
+ 0x06, 0x06, 0x07, 0x07, 0x08, 0x08,
+ 0x06, 0x06, 0x07, 0x07, 0x08, 0x08
+};
+
+const u8 Unknown_085A70E0[] = {
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
+ 0x03, 0x03, 0x04, 0x04, 0x05, 0x05,
+ 0x03, 0x03, 0x04, 0x04, 0x05, 0x05
+};
+
+const u8 Unknown_085A70F8[] = {
+ 0x04, 0x05, 0x06, 0x07
+};
+
+const u8 Unknown_085A70FC[] = {
+ 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7104[] = {
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7110[] = {
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7130[] = {
+ 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7140[] = {
+ 0x04, 0x05, 0x06, 0x07,
+ 0x04, 0x05, 0x06, 0x07
+};
+
+const u8 Unknown_085A7148[] = {
+ 0x04, 0x05, 0x06, 0x07,
+ 0x04, 0x05, 0x06, 0x07,
+ 0x04, 0x05, 0x06, 0x07
+};
+
+const u8 Unknown_085A7154[] = {
+ 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7174[] = {
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07
+};
+
+const u8 Unknown_085A7198[] = {
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+ 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
+ 0x06, 0x07, 0x06, 0x07, 0x06, 0x07
+};
+
+const struct {
+ const u8 *tiles;
+ const u8 *y;
+ const u8 *x;
+ u8 size;
+} gUnknown_085A71B0[] = {
+ {
+ Unknown_085A6FB0,
+ Unknown_085A7040,
+ Unknown_085A70F8,
+ 0x04
+ }, {
+ Unknown_085A6FDC,
+ Unknown_085A7044,
+ Unknown_085A70FC,
+ 0x08
+ }, {
+ Unknown_085A6FB4,
+ Unknown_085A704C,
+ Unknown_085A7104,
+ 0x0c
+ }, {
+ Unknown_085A6FE4,
+ Unknown_085A7058,
+ Unknown_085A7110,
+ 0x20
+ }, {
+ Unknown_085A6FC0,
+ Unknown_085A7078,
+ Unknown_085A7130,
+ 0x10
+ }, {
+ Unknown_085A6FDC,
+ Unknown_085A7088,
+ Unknown_085A7140,
+ 0x08
+ }, {
+ Unknown_085A6FD0,
+ Unknown_085A7090,
+ Unknown_085A7148,
+ 0x0c
+ }, {
+ Unknown_085A6FE4,
+ Unknown_085A709C,
+ Unknown_085A7154,
+ 0x20
+ }, {
+ Unknown_085A7004,
+ Unknown_085A70BC,
+ Unknown_085A7174,
+ 0x24
+ }, {
+ Unknown_085A7028,
+ Unknown_085A70E0,
+ Unknown_085A7198,
+ 0x18
+ }};
+
+#endif //GUARD_TILEMAPS_H
diff --git a/include/data/decoration/tiles.h b/include/data/decoration/tiles.h
new file mode 100644
index 000000000..9a3f8a222
--- /dev/null
+++ b/include/data/decoration/tiles.h
@@ -0,0 +1,646 @@
+#ifndef GUARD_DATA_DECORATION_TILES
+#define GUARD_DATA_DECORATION_TILES
+
+const u16 DecorGfx_SMALL_DESK[] = {
+ 0x87
+};
+
+const u16 DecorGfx_POKEMON_DESK[] = {
+ 0x8F
+};
+
+const u16 DecorGfx_HEAVY_DESK[] = {
+ 0x90,
+ 0x91,
+ 0x92,
+ 0x98,
+ 0x99,
+ 0x9A
+};
+
+const u16 DecorGfx_RAGGED_DESK[] = {
+ 0x93,
+ 0x94,
+ 0x95,
+ 0x9B,
+ 0x9C,
+ 0x9D
+};
+
+const u16 DecorGfx_COMFORT_DESK[] = {
+ 0x96,
+ 0x97,
+ 0xA3,
+ 0x9E,
+ 0x9F,
+ 0xAB
+};
+
+const u16 DecorGfx_PRETTY_DESK[] = {
+ 0xBD,
+ 0xBE,
+ 0xBF,
+ 0xC5,
+ 0xC6,
+ 0xC7,
+ 0xCD,
+ 0xCE,
+ 0xCF
+};
+
+const u16 DecorGfx_BRICK_DESK[] = {
+ 0xA0,
+ 0xA1,
+ 0xA2,
+ 0xA8,
+ 0xA9,
+ 0xAA,
+ 0xB0,
+ 0xB1,
+ 0xB2
+};
+
+const u16 DecorGfx_CAMP_DESK[] = {
+ 0xA4,
+ 0xA5,
+ 0xA6,
+ 0xAC,
+ 0xAD,
+ 0xAE,
+ 0xB4,
+ 0xB5,
+ 0xB6
+};
+
+const u16 DecorGfx_HARD_DESK[] = {
+ 0xA7,
+ 0xBB,
+ 0xBC,
+ 0xAF,
+ 0xC3,
+ 0xC4,
+ 0xB7,
+ 0xCB,
+ 0xCC
+};
+
+const u16 DecorGfx_SMALL_CHAIR[] = {
+ 0xB8
+};
+
+const u16 DecorGfx_POKEMON_CHAIR[] = {
+ 0xB9
+};
+
+const u16 DecorGfx_HEAVY_CHAIR[] = {
+ 0xBA
+};
+
+const u16 DecorGfx_PRETTY_CHAIR[] = {
+ 0xC0
+};
+
+const u16 DecorGfx_COMFORT_CHAIR[] = {
+ 0xC1
+};
+
+const u16 DecorGfx_RAGGED_CHAIR[] = {
+ 0xC2
+};
+
+const u16 DecorGfx_BRICK_CHAIR[] = {
+ 0xC8
+};
+
+const u16 DecorGfx_CAMP_CHAIR[] = {
+ 0xC9
+};
+
+const u16 DecorGfx_HARD_CHAIR[] = {
+ 0xCA
+};
+
+const u16 DecorGfx_RED_PLANT[] = {
+ 0xD0,
+ 0xD8
+};
+
+const u16 DecorGfx_TROPICAL_PLANT[] = {
+ 0xD2,
+ 0xDA
+};
+
+const u16 DecorGfx_PRETTY_FLOWERS[] = {
+ 0xD4,
+ 0xDC
+};
+
+const u16 DecorGfx_COLORFUL_PLANT[] = {
+ 0xE0,
+ 0xE2,
+ 0xE8,
+ 0xE9
+};
+
+const u16 DecorGfx_BIG_PLANT[] = {
+ 0xE4,
+ 0xE6,
+ 0xEC,
+ 0xED
+};
+
+const u16 DecorGfx_GORGEOUS_PLANT[] = {
+ 0xF0,
+ 0xF2,
+ 0xF8,
+ 0xF9
+};
+
+const u16 DecorGfx_RED_BRICK[] = {
+ 0x25,
+ 0x2D
+};
+
+const u16 DecorGfx_YELLOW_BRICK[] = {
+ 0x26,
+ 0x2E
+};
+
+const u16 DecorGfx_BLUE_BRICK[] = {
+ 0x27,
+ 0x2F
+};
+
+const u16 DecorGfx_RED_BALLOON[] = {
+ 0x138
+};
+
+const u16 DecorGfx_BLUE_BALLOON[] = {
+ 0x13C
+};
+
+const u16 DecorGfx_YELLOW_BALLOON[] = {
+ 0x140
+};
+
+const u16 DecorGfx_RED_TENT[] = {
+ 0x30,
+ 0x31,
+ 0x32,
+ 0x38,
+ 0x39,
+ 0x3A,
+ 0x40,
+ 0x41,
+ 0x3B
+};
+
+const u16 DecorGfx_BLUE_TENT[] = {
+ 0x48,
+ 0x49,
+ 0x68,
+ 0x50,
+ 0x51,
+ 0x70,
+ 0x58,
+ 0x59,
+ 0x69
+};
+
+const u16 DecorGfx_SOLID_BOARD[] = {
+ 0x34,
+ 0x3C
+};
+
+const u16 DecorGfx_SLIDE[] = {
+ 0x35,
+ 0x36,
+ 0x3D,
+ 0x3E,
+ 0x63,
+ 0x64,
+ 0x6F,
+ 0x77
+};
+
+const u16 DecorGfx_FENCE_LENGTH[] = {
+ 0x33
+};
+
+const u16 DecorGfx_FENCE_WIDTH[] = {
+ 0x2C
+};
+
+const u16 DecorGfx_TIRE[] = {
+ 0x80,
+ 0x81,
+ 0x88,
+ 0x89
+};
+
+const u16 DecorGfx_STAND[] = {
+ 0x6A,
+ 0x6B,
+ 0x6C,
+ 0x6D,
+ 0x72,
+ 0x73,
+ 0x74,
+ 0x75
+};
+
+const u16 DecorGfx_MUD_BALL[] = {
+ 0x28
+};
+
+const u16 DecorGfx_BREAKABLE_DOOR[] = {
+ 0x37,
+ 0x3F
+};
+
+const u16 DecorGfx_SAND_ORNAMENT[] = {
+ 0x85,
+ 0x8D
+};
+
+const u16 DecorGfx_SILVER_SHIELD[] = {
+ 0xD6,
+ 0xDE
+};
+
+const u16 DecorGfx_GOLD_SHIELD[] = {
+ 0x12E,
+ 0x136
+};
+
+const u16 DecorGfx_GLASS_ORNAMENT[] = {
+ 0x82,
+ 0x8A
+};
+
+const u16 DecorGfx_TV[] = {
+ 0xF4
+};
+
+const u16 DecorGfx_ROUND_TV[] = {
+ 0xF5
+};
+
+const u16 DecorGfx_CUTE_TV[] = {
+ 0xF6
+};
+
+const u16 DecorGfx_GLITTER_MAT[] = {
+ 0x60
+};
+
+const u16 DecorGfx_JUMP_MAT[] = {
+ 0x61
+};
+
+const u16 DecorGfx_SPIN_MAT[] = {
+ 0x62
+};
+
+const u16 DecorGfx_C_LOW_NOTE_MAT[] = {
+ 0x78
+};
+
+const u16 DecorGfx_D_NOTE_MAT[] = {
+ 0x79
+};
+
+const u16 DecorGfx_E_NOTE_MAT[] = {
+ 0x7A
+};
+
+const u16 DecorGfx_F_NOTE_MAT[] = {
+ 0x7B
+};
+
+const u16 DecorGfx_G_NOTE_MAT[] = {
+ 0x7C
+};
+
+const u16 DecorGfx_A_NOTE_MAT[] = {
+ 0x7D
+};
+
+const u16 DecorGfx_B_NOTE_MAT[] = {
+ 0x7E
+};
+
+const u16 DecorGfx_C_HIGH_NOTE_MAT[] = {
+ 0xB3
+};
+
+const u16 DecorGfx_SURF_MAT[] = {
+ 0x42,
+ 0x43,
+ 0x44,
+ 0x4A,
+ 0x4B,
+ 0x4C,
+ 0x52,
+ 0x53,
+ 0x54
+};
+
+const u16 DecorGfx_THUNDER_MAT[] = {
+ 0x45,
+ 0x46,
+ 0x47,
+ 0x4D,
+ 0x4E,
+ 0x4F,
+ 0x55,
+ 0x56,
+ 0x57
+};
+
+const u16 DecorGfx_FIRE_BLAST_MAT[] = {
+ 0x5A,
+ 0x5B,
+ 0x5C,
+ 0x5D,
+ 0x5E,
+ 0x5F,
+ 0x65,
+ 0x66,
+ 0x67
+};
+
+const u16 DecorGfx_POWDER_SNOW_MAT[] = {
+ 0x100,
+ 0x101,
+ 0x102,
+ 0x108,
+ 0x109,
+ 0x10A,
+ 0x110,
+ 0x111,
+ 0x112
+};
+
+const u16 DecorGfx_ATTRACT_MAT[] = {
+ 0x103,
+ 0x104,
+ 0x105,
+ 0x10B,
+ 0x10C,
+ 0x10D,
+ 0x113,
+ 0x114,
+ 0x115
+};
+
+const u16 DecorGfx_FISSURE_MAT[] = {
+ 0x106,
+ 0x107,
+ 0x118,
+ 0x10E,
+ 0x10F,
+ 0x120,
+ 0x116,
+ 0x117,
+ 0x128
+};
+
+const u16 DecorGfx_SPIKES_MAT[] = {
+ 0x119,
+ 0x11A,
+ 0x11B,
+ 0x121,
+ 0x122,
+ 0x123,
+ 0x129,
+ 0x12A,
+ 0x12B
+};
+
+const u16 DecorGfx_BALL_POSTER[] = {
+ 0x130
+};
+
+const u16 DecorGfx_GREEN_POSTER[] = {
+ 0x131
+};
+
+const u16 DecorGfx_RED_POSTER[] = {
+ 0x132
+};
+
+const u16 DecorGfx_BLUE_POSTER[] = {
+ 0x133
+};
+
+const u16 DecorGfx_CUTE_POSTER[] = {
+ 0x134
+};
+
+const u16 DecorGfx_PIKA_POSTER[] = {
+ 0x11C,
+ 0x11D
+};
+
+const u16 DecorGfx_LONG_POSTER[] = {
+ 0x11E,
+ 0x11F
+};
+
+const u16 DecorGfx_SEA_POSTER[] = {
+ 0x124,
+ 0x125
+};
+
+const u16 DecorGfx_SKY_POSTER[] = {
+ 0x126,
+ 0x127
+};
+
+const u16 DecorGfx_KISS_POSTER[] = {
+ 0x12C,
+ 0x12D
+};
+
+const u16 DecorGfx_PICHU_DOLL[] = {
+ MAP_OBJ_GFX_PICHU_DOLL
+};
+
+const u16 DecorGfx_PIKACHU_DOLL[] = {
+ MAP_OBJ_GFX_PIKACHU_DOLL
+};
+
+const u16 DecorGfx_MARILL_DOLL[] = {
+ MAP_OBJ_GFX_MARILL_DOLL
+};
+
+const u16 DecorGfx_TOGEPI_DOLL[] = {
+ MAP_OBJ_GFX_TOGEPI_DOLL
+};
+
+const u16 DecorGfx_CYNDAQUIL_DOLL[] = {
+ MAP_OBJ_GFX_CYNDAQUIL_DOLL
+};
+
+const u16 DecorGfx_CHIKORITA_DOLL[] = {
+ MAP_OBJ_GFX_CHIKORITA_DOLL
+};
+
+const u16 DecorGfx_TOTODILE_DOLL[] = {
+ MAP_OBJ_GFX_TOTODILE_DOLL
+};
+
+const u16 DecorGfx_JIGGLYPUFF_DOLL[] = {
+ MAP_OBJ_GFX_JIGGLYPUFF_DOLL
+};
+
+const u16 DecorGfx_MEOWTH_DOLL[] = {
+ MAP_OBJ_GFX_MEOWTH_DOLL
+};
+
+const u16 DecorGfx_CLEFAIRY_DOLL[] = {
+ MAP_OBJ_GFX_CLEFAIRY_DOLL
+};
+
+const u16 DecorGfx_DITTO_DOLL[] = {
+ MAP_OBJ_GFX_DITTO_DOLL
+};
+
+const u16 DecorGfx_SMOOCHUM_DOLL[] = {
+ MAP_OBJ_GFX_SMOOCHUM_DOLL
+};
+
+const u16 DecorGfx_TREECKO_DOLL[] = {
+ MAP_OBJ_GFX_TREECKO_DOLL
+};
+
+const u16 DecorGfx_TORCHIC_DOLL[] = {
+ MAP_OBJ_GFX_TORCHIC_DOLL
+};
+
+const u16 DecorGfx_MUDKIP_DOLL[] = {
+ MAP_OBJ_GFX_MUDKIP_DOLL
+};
+
+const u16 DecorGfx_DUSKULL_DOLL[] = {
+ MAP_OBJ_GFX_DUSKULL_DOLL
+};
+
+const u16 DecorGfx_WYNAUT_DOLL[] = {
+ MAP_OBJ_GFX_WYNAUT_DOLL
+};
+
+const u16 DecorGfx_BALTOY_DOLL[] = {
+ MAP_OBJ_GFX_BALTOY_DOLL
+};
+
+const u16 DecorGfx_KECLEON_DOLL[] = {
+ MAP_OBJ_GFX_KECLEON_DOLL
+};
+
+const u16 DecorGfx_AZURILL_DOLL[] = {
+ MAP_OBJ_GFX_AZURILL_DOLL
+};
+
+const u16 DecorGfx_SKITTY_DOLL[] = {
+ MAP_OBJ_GFX_SKITTY_DOLL
+};
+
+const u16 DecorGfx_SWABLU_DOLL[] = {
+ MAP_OBJ_GFX_SWABLU_DOLL
+};
+
+const u16 DecorGfx_GULPIN_DOLL[] = {
+ MAP_OBJ_GFX_GULPIN_DOLL
+};
+
+const u16 DecorGfx_LOTAD_DOLL[] = {
+ MAP_OBJ_GFX_LOTAD_DOLL
+};
+
+const u16 DecorGfx_SEEDOT_DOLL[] = {
+ MAP_OBJ_GFX_SEEDOT_DOLL
+};
+
+const u16 DecorGfx_PIKA_CUSHION[] = {
+ MAP_OBJ_GFX_PIKA_CUSHION
+};
+
+const u16 DecorGfx_ROUND_CUSHION[] = {
+ MAP_OBJ_GFX_ROUND_CUSHION
+};
+
+const u16 DecorGfx_KISS_CUSHION[] = {
+ MAP_OBJ_GFX_KISS_CUSHION
+};
+
+const u16 DecorGfx_ZIGZAG_CUSHION[] = {
+ MAP_OBJ_GFX_ZIGZAG_CUSHION
+};
+
+const u16 DecorGfx_SPIN_CUSHION[] = {
+ MAP_OBJ_GFX_SPIN_CUSHION
+};
+
+const u16 DecorGfx_DIAMOND_CUSHION[] = {
+ MAP_OBJ_GFX_DIAMOND_CUSHION
+};
+
+const u16 DecorGfx_BALL_CUSHION[] = {
+ MAP_OBJ_GFX_BALL_CUSHION
+};
+
+const u16 DecorGfx_GRASS_CUSHION[] = {
+ MAP_OBJ_GFX_GRASS_CUSHION
+};
+
+const u16 DecorGfx_FIRE_CUSHION[] = {
+ MAP_OBJ_GFX_FIRE_CUSHION
+};
+
+const u16 DecorGfx_WATER_CUSHION[] = {
+ MAP_OBJ_GFX_WATER_CUSHION
+};
+
+const u16 DecorGfx_SNORLAX_DOLL[] = {
+ MAP_OBJ_GFX_BIG_SNORLAX_DOLL
+};
+
+const u16 DecorGfx_RHYDON_DOLL[] = {
+ MAP_OBJ_GFX_BIG_RHYDON_DOLL
+};
+
+const u16 DecorGfx_LAPRAS_DOLL[] = {
+ MAP_OBJ_GFX_BIG_LAPRAS_DOLL
+};
+
+const u16 DecorGfx_VENUSAUR_DOLL[] = {
+ MAP_OBJ_GFX_BIG_VENUSAUR_DOLL
+};
+
+const u16 DecorGfx_CHARIZARD_DOLL[] = {
+ MAP_OBJ_GFX_BIG_CHARIZARD_DOLL
+};
+
+const u16 DecorGfx_BLASTOISE_DOLL[] = {
+ MAP_OBJ_GFX_BIG_BLASTOISE_DOLL
+};
+
+const u16 DecorGfx_WAILMER_DOLL[] = {
+ MAP_OBJ_GFX_BIG_WAILMER_DOLL
+};
+
+const u16 DecorGfx_REGIROCK_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGIROCK_DOLL
+};
+
+const u16 DecorGfx_REGICE_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGICE_DOLL
+};
+
+const u16 DecorGfx_REGISTEEL_DOLL[] = {
+ MAP_OBJ_GFX_BIG_REGISTEEL_DOLL
+};
+
+#endif // GUARD_DATA_DECORATION_TILES
diff --git a/include/decompress.h b/include/decompress.h
index 6c925f730..c3a771893 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -8,7 +8,7 @@ void LZDecompressVram(const void *src, void *dest);
u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
-bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src);
+bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
diff --git a/include/decoration.h b/include/decoration.h
index bbb77d127..adefb2fd1 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -125,6 +125,47 @@ enum DecoId {
/*120*/ DECOR_REGISTEEL_DOLL
};
+enum DecorPerm {
+ /*
+ * The nomenclature here describes collision and placement permissions, in that order.
+ */
+ DECORPERM_SOLID_FLOOR,
+ DECORPERM_PASS_FLOOR,
+ DECORPERM_BEHIND_FLOOR,
+ DECORPERM_NA_WALL,
+ DECORPERM_SOLID_MAT
+};
+
+enum DecorShape {
+ /*
+ * Width-x-height
+ */
+ DECORSHAPE_1x1,
+ DECORSHAPE_2x1,
+ DECORSHAPE_3x1, // unused
+ DECORSHAPE_4x2,
+ DECORSHAPE_2x2,
+ DECORSHAPE_1x2,
+ DECORSHAPE_1x3, // unused
+ DECORSHAPE_2x4,
+ DECORSHAPE_3x3,
+ DECORSHAPE_3x2
+};
+
+enum DecorCat {
+ /*
+ * In which category you can find the decoration in the PC.
+ */
+ /*0*/ DECORCAT_DESK,
+ /*1*/ DECORCAT_CHAIR,
+ /*2*/ DECORCAT_PLANT,
+ /*3*/ DECORCAT_ORNAMENT,
+ /*4*/ DECORCAT_MAT,
+ /*5*/ DECORCAT_POSTER,
+ /*6*/ DECORCAT_DOLL,
+ /*7*/ DECORCAT_CUSHION
+};
+
struct Decoration
{
/*0x00*/ u8 id;
@@ -137,6 +178,18 @@ struct Decoration
/*0x1c*/ const u16 *tiles;
};
+struct DecorPCPointers
+{
+ /* 0x00 */ u8 *items;
+ /* 0x04 */ u8 *pos;
+ /* 0x08 */ u8 size;
+ /* 0x09 */ u8 isPlayerRoom;
+};
+
extern const struct Decoration gDecorations[];
+extern EWRAM_DATA u8 *gCurDecorInventoryItems;
+extern EWRAM_DATA u8 gCurDecorationIndex;
+
+void sub_8126968(void);
#endif //GUARD_DECORATION_H
diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h
index 5ca345933..e1fec36ea 100644
--- a/include/decoration_inventory.h
+++ b/include/decoration_inventory.h
@@ -1,10 +1,20 @@
#ifndef GUARD_DECORATION_INVENTORY_H
#define GUARD_DECORATION_INVENTORY_H
+struct DecorationInventory {
+ u8 *items;
+ u8 size;
+};
+
+extern struct DecorationInventory gDecorationInventories[];
void ClearDecorationInventories(void);
+s8 GetFirstEmptyDecorSlot(u8 idx);
u8 CheckHasDecoration(u8);
u8 DecorationAdd(u8);
u8 DecorationCheckSpace(u8);
s8 DecorationRemove(u8);
+void CondenseDecorationCategoryN(u8);
+u8 CountDecorationCategoryN(u8 idx);
+u8 CountDecorations(void);
#endif // GUARD_DECORATION_INVENTORY_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index bb0d6731b..ff02a110a 100755
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -5,6 +5,10 @@
#ifndef GUARD_EVENT_SCRIPTS_H
#define GUARD_EVENT_SCRIPTS_H
+extern const u8 gUnknown_0823B4E8[];
+extern const u8 gUnknown_08275D0C[];
+extern const u8 gUnknown_08275D1F[];
+extern const u8 gUnknown_08275D2E[];
extern const u8 gUnknown_082766A2[];
extern const u8 gUnknown_082766A6[];
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index b18b6cfd3..038233fe6 100755
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -74,6 +74,7 @@ u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
// Exported data declarations
diff --git a/include/field_screen.h b/include/field_screen.h
new file mode 100644
index 000000000..b15fdba7d
--- /dev/null
+++ b/include/field_screen.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_FIELD_SCREEN_H
+#define GUARD_FIELD_SCREEN_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void pal_fill_black(void);
+bool8 sub_80ABDFC(void);
+
+#endif //GUARD_FIELD_SCREEN_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 3efc5e36f..06cb7cc77 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -6,11 +6,14 @@ extern struct MapCoords {
int height;
} gUnknown_03005DC0;
+u32 MapGridGetMetatileIdAt(int, int);
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
+void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s16, s16);
s32 GetMapBorderIdAt(s16, s16);
bool32 CanCameraMoveInDirection(u8);
+u16 GetBehaviorByMetatileId(u16 metatileId);
#endif //GUARD_FIELDMAP_H
diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h
index 5234e5b6c..83a2a123b 100644
--- a/include/gba/io_reg.h
+++ b/include/gba/io_reg.h
@@ -137,6 +137,8 @@
#define REG_OFFSET_DMA3CNT_H 0xde
#define REG_OFFSET_TMCNT 0x100
+#define REG_OFFSET_TMCNT_L 0x100
+#define REG_OFFSET_TMCNT_H 0x102
#define REG_OFFSET_TM0CNT 0x100
#define REG_OFFSET_TM0CNT_L 0x100
#define REG_OFFSET_TM0CNT_H 0x102
@@ -298,6 +300,8 @@
#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H)
#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT)
+#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L)
+#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H)
#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT)
#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L)
#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H)
@@ -458,6 +462,8 @@
#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H)
#define REG_TMCNT(n) (*(vu16 *)(REG_ADDR_TMCNT + ((n) * 4)))
+#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4)))
+#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4)))
#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT)
#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L)
#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H)
@@ -521,6 +527,8 @@
#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled
#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled
+// BLDCNT
+
// SOUNDCNT_H
#define SOUND_CGB_MIX_QUARTER 0x0000
#define SOUND_CGB_MIX_HALF 0x0001
diff --git a/include/gba/macro.h b/include/gba/macro.h
index 0217898e8..7b6b98c06 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -86,4 +86,14 @@
dmaRegs[5]; \
}
+#define IntrEnable(flags) \
+{ \
+ u16 imeTemp; \
+ \
+ imeTemp = REG_IME; \
+ REG_IME = 0; \
+ REG_IE |= flags; \
+ REG_IME = imeTemp; \
+} \
+
#endif // GUARD_GBA_MACRO_H
diff --git a/include/gba/types.h b/include/gba/types.h
index fd8a20a4c..e9a380023 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -39,18 +39,18 @@ struct PlttData
struct OamData
{
/*0x00*/ u32 y:8;
- /*0x01*/ u32 affineMode:2;
- u32 objMode:2;
- u32 mosaic:1;
- u32 bpp:1;
- u32 shape:2;
+ /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4
+ u32 objMode:2; // 0x4, 0x8 -> 0xC
+ u32 mosaic:1; // 0x10
+ u32 bpp:1; // 0x20
+ u32 shape:2; // 0x40, 0x80 -> 0xC0
/*0x02*/ u32 x:9;
u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
u32 size:2;
- /*0x04*/ u16 tileNum:10;
- u16 priority:2;
+ /*0x04*/ u16 tileNum:10; // 0x33F
+ u16 priority:2; // 0x400, 0x800 -> 0xC00
u16 paletteNum:4;
/*0x06*/ u16 affineParam;
};
diff --git a/include/global.h b/include/global.h
index 58a0d79dc..8860b4ae3 100644
--- a/include/global.h
+++ b/include/global.h
@@ -12,8 +12,10 @@
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
#if defined (__APPLE__) || defined (__CYGWIN__)
-void memset(void *, int, size_t);
-void memcpy(void *, const void *, size_t);
+void *memset(void *, int, size_t);
+void *memcpy(void *, const void *, size_t);
+int strcmp(const char *s1, const char *s2);
+char* strcpy(char *dst0, const char *src0);
#endif // __APPLE__
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
@@ -500,6 +502,16 @@ typedef union // TODO
u8 id;
} LilycoveLady;
+struct WaldaPhrase
+{
+ u16 field_0;
+ u16 field_2;
+ u8 text[16];
+ u8 iconId;
+ u8 patternId;
+ bool8 patternUnlocked;
+};
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -586,7 +598,7 @@ struct SaveBlock1
/*0x3B24*/ u8 seen2[52];
/*0x3B58*/ LilycoveLady lilycoveLady;
/*0x3B88*/ u8 filler_3B88[0x1E8];
- /*0x3D70*/ u8 babyPhrase[24]; // TODO: convert to a struct
+ /*0x3D70*/ struct WaldaPhrase waldaPhrase;
// sizeof: 0x3D88
};
diff --git a/include/graphics.h b/include/graphics.h
new file mode 100644
index 000000000..c50fdef3f
--- /dev/null
+++ b/include/graphics.h
@@ -0,0 +1,95 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_GRAPHICS_H
+#define GUARD_GRAPHICS_H
+
+extern const u8 gItemIcon_QuestionMark[];
+extern const u8 gItemIconPalette_QuestionMark[];
+extern const u8 gUnknown_08DB7AA0[];
+extern const u8 gUnknown_08DB7B34[];
+extern const u8 gUnknown_08DB7B5C[];
+extern const u8 gUnknown_08DB7BEC[];
+extern const u8 gUnknown_08DB7C08[];
+extern const u8 gUnknown_08DB7CE8[];
+extern const u8 gUnknown_08DB7D08[];
+extern const u8 gUnknown_08DB7DCC[];
+extern const u8 gUnknown_08DB7DF4[];
+extern const u8 gUnknown_08DB7EA0[];
+extern const u8 gUnknown_08DB7EC4[];
+extern const u8 gUnknown_08DB7F60[];
+extern const u8 gUnknown_08DB7F7C[];
+extern const u8 gUnknown_08DB8070[];
+extern const u8 gUnknown_08DB808C[];
+extern const u8 gUnknown_08DB8138[];
+extern const u8 gUnknown_08DB8160[];
+extern const u8 gUnknown_08DB8218[];
+extern const u8 gUnknown_08DB823C[];
+extern const u8 gUnknown_08DB8300[];
+extern const u8 gUnknown_08DB8328[];
+extern const u8 gUnknown_08DB8430[];
+extern const u8 gUnknown_08DB8458[];
+extern const u8 gUnknown_08DB8528[];
+extern const u8 gUnknown_08DB854C[];
+extern const u8 gUnknown_08DB862C[];
+extern const u8 gUnknown_08DB8654[];
+extern const u8 gUnknown_08DB86C4[];
+extern const u8 gUnknown_08DB86E0[];
+extern const u8 gUnknown_08DB8750[];
+extern const u8 gUnknown_08DB876C[];
+extern const u8 gUnknown_08DB87DC[];
+extern const u8 gUnknown_08DB87F8[];
+extern const u8 gUnknown_08DB88D8[];
+extern const u8 gUnknown_08DB8900[];
+extern const u8 gUnknown_08DB89E0[];
+extern const u8 gUnknown_08DB8A08[];
+extern const u8 gUnknown_08DB8A68[];
+extern const u8 gUnknown_08DB8A84[];
+extern const u8 gUnknown_08DB8B40[];
+extern const u8 gUnknown_08DB8B68[];
+extern const u8 gUnknown_08DB8C40[];
+extern const u8 gUnknown_08DB8C5C[];
+extern const u8 gUnknown_08DB8CF4[];
+extern const u8 gUnknown_08DB8D18[];
+extern const u8 gUnknown_08DB8DB0[];
+extern const u8 gUnknown_08DB8DD4[];
+extern const u8 gUnknown_08DB8E80[];
+extern const u8 gUnknown_08DB8EA0[];
+extern const u8 gUnknown_08DB8F58[];
+extern const u8 gUnknown_08DB8F7C[];
+extern const u8 gUnknown_08DB9038[];
+extern const u8 gUnknown_08DB9058[];
+extern const u8 gUnknown_08DB9130[];
+extern const u8 gUnknown_08DB9154[];
+extern const u8 gUnknown_08DB9218[];
+extern const u8 gUnknown_08DB9234[];
+extern const u8 gUnknown_08DB92FC[];
+extern const u8 gUnknown_08DB931C[];
+extern const u8 gUnknown_08DB93E8[];
+extern const u8 gUnknown_08DB940C[];
+extern const u8 gUnknown_08DB94CC[];
+extern const u8 gUnknown_08DB94E8[];
+extern const u8 gUnknown_08DB95AC[];
+extern const u8 gUnknown_08DB95D0[];
+extern const u8 gUnknown_08DB96C4[];
+extern const u8 gUnknown_08DB96EC[];
+extern const u8 gUnknown_08DB97F4[];
+extern const u8 gUnknown_08DB981C[];
+extern const u8 gUnknown_08DB9908[];
+extern const u8 gUnknown_08DB9930[];
+extern const u8 gUnknown_08DB9A54[];
+extern const u8 gUnknown_08DB9A7C[];
+extern const u8 gUnknown_08DB9B7C[];
+extern const u8 gUnknown_08DB9BA4[];
+extern const u8 gUnknown_08DB9CB0[];
+extern const u8 gUnknown_08DB9CD8[];
+extern const u8 gUnknown_08DB9DAC[];
+extern const u8 gUnknown_08DB9DD4[];
+extern const u8 gUnknown_08DB9EE4[];
+extern const u8 gUnknown_08DB9F08[];
+extern const u8 gUnknown_08DB9FFC[];
+extern const u8 gUnknown_08DBA020[];
+extern const u8 gUnknown_08DBA12C[];
+
+#endif //GUARD_GRAPHICS_H
diff --git a/include/international_string_util.h b/include/international_string_util.h
index 0eb12a535..9d9735a52 100644
--- a/include/international_string_util.h
+++ b/include/international_string_util.h
@@ -1,13 +1,23 @@
-#ifndef GUARD_international_string_util_H
-#define GUARD_international_string_util_H
+#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H
+#define GUARD_INTERNATIONAL_STRING_UTIL_H
-// Exported type declarations
+#include "menu.h"
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void TVShowConvertInternationalString(void *dest, const void *src, u8 language);
+void sub_81DB52C(const u8 *src);
+void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language);
+s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
+s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
+s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
+s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
+s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
+s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
+// sub_81DB41C
+// sub_81DB468
+// sub_81DB494
+// sub_81DB4DC
+// sub_81DB554
+// sub_81DB5AC
u32 sub_81DB604(const u8 *);
+// sub_81DB620
-#endif //GUARD_international_string_util_H
+#endif // GUARD_INTERNATIONAL_STRING_UTIL_H
diff --git a/include/item_icon.h b/include/item_icon.h
new file mode 100644
index 000000000..a43b72f39
--- /dev/null
+++ b/include/item_icon.h
@@ -0,0 +1,17 @@
+//
+// Created by scott on 10/20/2017.
+//
+
+#ifndef GUARD_ITEM_ICON_H
+#define GUARD_ITEM_ICON_H
+
+extern EWRAM_DATA void *gUnknown_0203CEBC;
+extern EWRAM_DATA void *gUnknown_0203CEC0;
+
+extern const struct SpriteTemplate gUnknown_08614FF4;
+
+bool8 AllocItemIconTemporaryBuffers(void);
+void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
+void FreeItemIconTemporaryBuffers(void);
+
+#endif //GUARD_ITEM_ICON_H
diff --git a/include/librfu.h b/include/librfu.h
new file mode 100644
index 000000000..dbc8a41a6
--- /dev/null
+++ b/include/librfu.h
@@ -0,0 +1,108 @@
+#include "main.h"
+
+enum
+{
+ RFU_RESET = 0x10,
+ RFU_LINK_STATUS,
+ RFU_VERSION_STATUS,
+ RFU_SYSTEM_STATUS,
+ RFU_SLOT_STATUS,
+ RFU_CONFIG_STATUS,
+ RFU_GAME_CONFIG,
+ RFU_SYSTEM_CONFIG,
+ RFU_UNK18,
+ RFU_SC_START,
+ RFU_SC_POLLING,
+ RFU_SC_END,
+ RFU_SP_START,
+ RFU_SP_POLLING,
+ RFU_SP_END,
+ RFU_CP_START,
+ RFU_CP_POLLING,
+ RFU_CP_END,
+ RFU_UNK22,
+ RFU_UNK23,
+ RFU_DATA_TX,
+ RFU_DATA_TX_AND_CHANGE,
+ RFU_DATA_RX,
+ RFU_MS_CHANGE,
+ RFU_DATA_READY_AND_CHANGE,
+ RFU_DISCONNECTED_AND_CHANGE,
+ RFU_UNK2A,
+ RFU_UNK2B,
+ RFU_UNK2C,
+ RFU_UNK2D,
+ RFU_UNK2E,
+ RFU_UNK2F,
+ RFU_DISCONNECT,
+ RFU_TEST_MODE,
+ RFU_CPR_START,
+ RFU_CPR_POLLING,
+ RFU_CPR_END,
+ RFU_UNK35,
+ RFU_UNK36,
+ RFU_RESUME_RETRANSMIT_AND_CHANGE,
+ RFU_UNK38,
+ RFU_UNK39,
+ RFU_UNK3A,
+ RFU_UNK3B,
+ RFU_UNK3C,
+ RFU_STOP_MODE, //3D
+};
+
+struct RfuPacket8
+{
+ u8 data[0x74];
+};
+
+struct RfuPacket32
+{
+ u32 command;
+ u32 data[0x1C];
+};
+
+union RfuPacket
+{
+ struct RfuPacket32 rfuPacket32;
+ struct RfuPacket8 rfuPacket8;
+};
+
+struct RfuStruct
+{
+ vs32 unk_0;
+ u8 txParams;
+ u8 unk_5;
+ u8 activeCommand;
+ u8 unk_7;
+ u8 unk_8;
+ u8 unk_9;
+ u8 timerSelect;
+ u8 unk_b;
+ int timerState;
+ vu8 timerActive;
+ u8 unk_11;
+ vu16 unk_12;
+ vu8 msMode;
+ u8 unk_15;
+ u8 unk_16;
+ u8 unk_17;
+ void (*callbackM)();
+ void (*callbackS)();
+ u32 callbackID;
+ union RfuPacket *txPacket;
+ union RfuPacket *rxPacket;
+ vu8 unk_2c;
+ u8 padding[3];
+};
+
+struct RfuIntrStruct
+{
+ u8 rxPacketAlloc[0x74];
+ u8 txPacketAlloc[0x74];
+ u8 block1[0x960];
+ u8 block2[0x30];
+};
+
+extern struct RfuStruct *gRfuState;
+
+void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam);
diff --git a/include/link.h b/include/link.h
index 5f5654e4d..b8835ce04 100644
--- a/include/link.h
+++ b/include/link.h
@@ -141,6 +141,7 @@ extern u8 gShouldAdvanceLinkState;
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
+extern bool8 gLinkVSyncDisabled;
void Task_DestroySelf(u8);
void OpenLink(void);
@@ -184,5 +185,11 @@ bool8 sub_800A520(void);
bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
void sub_800ADF8(void);
+void sub_800B488(void);
+void sub_8009734(void);
+void sub_800A620(void);
+void sub_8011BD0(void);
+u8 sub_800ABAC(void);
+u8 sub_800ABBC(void);
#endif // GUARD_LINK_H
diff --git a/include/list_menu.h b/include/list_menu.h
new file mode 100644
index 000000000..93005e482
--- /dev/null
+++ b/include/list_menu.h
@@ -0,0 +1,54 @@
+#ifndef GUARD_LIST_MENU_H
+#define GUARD_LIST_MENU_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+struct ListMenuItem {
+ const u8 *unk_00;
+ s32 unk_04;
+};
+
+struct ListMenu;
+
+struct ListMenuTemplate {
+ struct ListMenuItem *unk_00;
+ void (* unk_04)(u32, bool8, struct ListMenu *);
+ void (* unk_08)(u8, s32, u8);
+ u16 unk_0c;
+ u16 unk_0e;
+ u8 unk_10;
+ u8 unk_11;
+ u8 unk_12;
+ u8 unk_13;
+ u32 unk_14_0:4;
+ u32 unk_14_4:4;
+ u32 unk_15_0:4;
+ u32 unk_15_4:4;
+ u32 unk_16_0:1;
+ u32 unk_16_1:6;
+ u32 unk_16_7:1;
+ u32 unk_17_0:6;
+};
+
+struct ListMenu {
+ struct ListMenuTemplate _template;
+ u16 scrollOffset;
+ u16 selectedRow;
+ u8 unk_1C;
+ u8 unk_1D;
+ u8 unk_1E;
+ u8 unk_1F;
+};
+
+extern struct ListMenuTemplate gUnknown_03006310;
+
+// Exported ROM declarations
+
+u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
+s32 ListMenuHandleInput(u8 id);
+void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
+void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
+
+#endif //GUARD_LIST_MENU_H
diff --git a/include/mail_data.h b/include/mail_data.h
new file mode 100644
index 000000000..bf6540bad
--- /dev/null
+++ b/include/mail_data.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_MAIL_DATA_H
+#define GUARD_MAIL_DATA_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+u16 sub_80D45E8(u16, u16 *);
+
+#endif //GUARD_MAIL_DATA_H
diff --git a/include/map_object_constants.h b/include/map_object_constants.h
new file mode 100644
index 000000000..79482b54a
--- /dev/null
+++ b/include/map_object_constants.h
@@ -0,0 +1,239 @@
+#ifndef GUARD_MAP_OBJECT_CONSTANTS_H
+#define GUARD_MAP_OBJECT_CONSTANTS_H
+
+enum
+{
+ MAP_OBJ_GFX_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_BRENDAN_MACH_BIKE,
+ MAP_OBJ_GFX_BRENDAN_SURFING,
+ MAP_OBJ_GFX_BRENDAN_FIELD_MOVE,
+ MAP_OBJ_GFX_QUINTY_PLUMP,
+ MAP_OBJ_GFX_LITTLE_BOY_1,
+ MAP_OBJ_GFX_LITTLE_GIRL_1,
+ MAP_OBJ_GFX_BOY_1,
+ MAP_OBJ_GFX_GIRL_1,
+ MAP_OBJ_GFX_BOY_2,
+ MAP_OBJ_GFX_GIRL_2,
+ MAP_OBJ_GFX_LITTLE_BOY_2,
+ MAP_OBJ_GFX_LITTLE_GIRL_2,
+ MAP_OBJ_GFX_BOY_3,
+ MAP_OBJ_GFX_GIRL_3,
+ MAP_OBJ_GFX_BOY_4,
+ MAP_OBJ_GFX_WOMAN_1,
+ MAP_OBJ_GFX_FAT_MAN,
+ MAP_OBJ_GFX_WOMAN_2,
+ MAP_OBJ_GFX_MAN_1,
+ MAP_OBJ_GFX_WOMAN_3,
+ MAP_OBJ_GFX_OLD_MAN_1,
+ MAP_OBJ_GFX_OLD_WOMAN_1,
+ MAP_OBJ_GFX_MAN_2,
+ MAP_OBJ_GFX_WOMAN_4,
+ MAP_OBJ_GFX_MAN_3,
+ MAP_OBJ_GFX_WOMAN_5,
+ MAP_OBJ_GFX_COOK,
+ MAP_OBJ_GFX_WOMAN_6,
+ MAP_OBJ_GFX_OLD_MAN_2,
+ MAP_OBJ_GFX_OLD_WOMAN_2,
+ MAP_OBJ_GFX_CAMPER,
+ MAP_OBJ_GFX_PICNICKER,
+ MAP_OBJ_GFX_MAN_4,
+ MAP_OBJ_GFX_WOMAN_7,
+ MAP_OBJ_GFX_YOUNGSTER,
+ MAP_OBJ_GFX_BUG_CATCHER,
+ MAP_OBJ_GFX_PSYCHIC_M,
+ MAP_OBJ_GFX_SCHOOL_KID_M,
+ MAP_OBJ_GFX_MANIAC,
+ MAP_OBJ_GFX_HEX_MANIAC,
+ MAP_OBJ_GFX_WOMAN_8,
+ MAP_OBJ_GFX_SWIMMER_M,
+ MAP_OBJ_GFX_SWIMMER_F,
+ MAP_OBJ_GFX_BLACK_BELT,
+ MAP_OBJ_GFX_BEAUTY,
+ MAP_OBJ_GFX_SCIENTIST_1,
+ MAP_OBJ_GFX_LASS,
+ MAP_OBJ_GFX_GENTLEMAN,
+ MAP_OBJ_GFX_SAILOR,
+ MAP_OBJ_GFX_FISHERMAN,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_M,
+ MAP_OBJ_GFX_RUNNING_TRIATHLETE_F,
+ MAP_OBJ_GFX_TUBER_F,
+ MAP_OBJ_GFX_TUBER_M,
+ MAP_OBJ_GFX_HIKER,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_M,
+ MAP_OBJ_GFX_CYCLING_TRIATHLETE_F,
+ MAP_OBJ_GFX_NURSE,
+ MAP_OBJ_GFX_ITEM_BALL,
+ MAP_OBJ_GFX_BERRY_TREE,
+ MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES,
+ MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES,
+ MAP_OBJ_GFX_BRENDAN_ACRO_BIKE,
+ MAP_OBJ_GFX_PROF_BIRCH,
+ MAP_OBJ_GFX_MAN_5,
+ MAP_OBJ_GFX_MAN_6,
+ MAP_OBJ_GFX_REPORTER_M,
+ MAP_OBJ_GFX_REPORTER_F,
+ MAP_OBJ_GFX_BARD,
+ MAP_OBJ_GFX_HIPSTER,
+ MAP_OBJ_GFX_TRADER,
+ MAP_OBJ_GFX_STORYTELLER,
+ MAP_OBJ_GFX_GIDDY,
+ MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1,
+ MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2,
+ MAP_OBJ_GFX_UNUSED_NATU_DOLL,
+ MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL,
+ MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL,
+ MAP_OBJ_GFX_UNUSED_WOOPER_DOLL,
+ MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL,
+ MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL,
+ MAP_OBJ_GFX_CUTTABLE_TREE,
+ MAP_OBJ_GFX_MART_EMPLOYEE,
+ MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN,
+ MAP_OBJ_GFX_TEALA,
+ MAP_OBJ_GFX_BREAKABLE_ROCK,
+ MAP_OBJ_GFX_PUSHABLE_BOULDER,
+ MAP_OBJ_GFX_MR_BRINEYS_BOAT,
+ MAP_OBJ_GFX_MAY_NORMAL,
+ MAP_OBJ_GFX_MAY_MACH_BIKE,
+ MAP_OBJ_GFX_MAY_ACRO_BIKE,
+ MAP_OBJ_GFX_MAY_SURFING,
+ MAP_OBJ_GFX_MAY_FIELD_MOVE,
+ MAP_OBJ_GFX_TRUCK,
+ MAP_OBJ_GFX_MACHOKE_CARRYING_BOX,
+ MAP_OBJ_GFX_MACHOKE_FACING_AWAY,
+ MAP_OBJ_GFX_BIRCHS_BAG,
+ MAP_OBJ_GFX_POOCHYENA,
+ MAP_OBJ_GFX_ARTIST,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING,
+ MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE,
+ MAP_OBJ_GFX_RIVAL_MAY_NORMAL,
+ MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE,
+ MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE,
+ MAP_OBJ_GFX_RIVAL_MAY_SURFING,
+ MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE,
+ MAP_OBJ_GFX_CAMERAMAN,
+ MAP_OBJ_GFX_BRENDAN_UNDERWATER,
+ MAP_OBJ_GFX_MAY_UNDERWATER,
+ MAP_OBJ_GFX_MOVING_BOX,
+ MAP_OBJ_GFX_CABLE_CAR,
+ MAP_OBJ_GFX_SCIENTIST_2,
+ MAP_OBJ_GFX_MAN_7,
+ MAP_OBJ_GFX_AQUA_MEMBER_M,
+ MAP_OBJ_GFX_AQUA_MEMBER_F,
+ MAP_OBJ_GFX_MAGMA_MEMBER_M,
+ MAP_OBJ_GFX_MAGMA_MEMBER_F,
+ MAP_OBJ_GFX_SIDNEY,
+ MAP_OBJ_GFX_PHOEBE,
+ MAP_OBJ_GFX_GLACIA,
+ MAP_OBJ_GFX_DRAKE,
+ MAP_OBJ_GFX_ROXANNE,
+ MAP_OBJ_GFX_BRAWLY,
+ MAP_OBJ_GFX_WATTSON,
+ MAP_OBJ_GFX_FLANNERY,
+ MAP_OBJ_GFX_NORMAN,
+ MAP_OBJ_GFX_WINONA,
+ MAP_OBJ_GFX_LIZA,
+ MAP_OBJ_GFX_TATE,
+ MAP_OBJ_GFX_WALLACE,
+ MAP_OBJ_GFX_STEVEN,
+ MAP_OBJ_GFX_WALLY,
+ MAP_OBJ_GFX_LITTLE_BOY_3,
+ MAP_OBJ_GFX_BRENDAN_FISHING,
+ MAP_OBJ_GFX_MAY_FISHING,
+ MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN,
+ MAP_OBJ_GFX_SS_TIDAL,
+ MAP_OBJ_GFX_SUBMARINE_SHADOW,
+ MAP_OBJ_GFX_PICHU_DOLL,
+ MAP_OBJ_GFX_PIKACHU_DOLL,
+ MAP_OBJ_GFX_MARILL_DOLL,
+ MAP_OBJ_GFX_TOGEPI_DOLL,
+ MAP_OBJ_GFX_CYNDAQUIL_DOLL,
+ MAP_OBJ_GFX_CHIKORITA_DOLL,
+ MAP_OBJ_GFX_TOTODILE_DOLL,
+ MAP_OBJ_GFX_JIGGLYPUFF_DOLL,
+ MAP_OBJ_GFX_MEOWTH_DOLL,
+ MAP_OBJ_GFX_CLEFAIRY_DOLL,
+ MAP_OBJ_GFX_DITTO_DOLL,
+ MAP_OBJ_GFX_SMOOCHUM_DOLL,
+ MAP_OBJ_GFX_TREECKO_DOLL,
+ MAP_OBJ_GFX_TORCHIC_DOLL,
+ MAP_OBJ_GFX_MUDKIP_DOLL,
+ MAP_OBJ_GFX_DUSKULL_DOLL,
+ MAP_OBJ_GFX_WYNAUT_DOLL,
+ MAP_OBJ_GFX_BALTOY_DOLL,
+ MAP_OBJ_GFX_KECLEON_DOLL,
+ MAP_OBJ_GFX_AZURILL_DOLL,
+ MAP_OBJ_GFX_SKITTY_DOLL,
+ MAP_OBJ_GFX_SWABLU_DOLL,
+ MAP_OBJ_GFX_GULPIN_DOLL,
+ MAP_OBJ_GFX_LOTAD_DOLL,
+ MAP_OBJ_GFX_SEEDOT_DOLL,
+ MAP_OBJ_GFX_PIKA_CUSHION,
+ MAP_OBJ_GFX_ROUND_CUSHION,
+ MAP_OBJ_GFX_KISS_CUSHION,
+ MAP_OBJ_GFX_ZIGZAG_CUSHION,
+ MAP_OBJ_GFX_SPIN_CUSHION,
+ MAP_OBJ_GFX_DIAMOND_CUSHION,
+ MAP_OBJ_GFX_BALL_CUSHION,
+ MAP_OBJ_GFX_GRASS_CUSHION,
+ MAP_OBJ_GFX_FIRE_CUSHION,
+ MAP_OBJ_GFX_WATER_CUSHION,
+ MAP_OBJ_GFX_BIG_SNORLAX_DOLL,
+ MAP_OBJ_GFX_BIG_RHYDON_DOLL,
+ MAP_OBJ_GFX_BIG_LAPRAS_DOLL,
+ MAP_OBJ_GFX_BIG_VENUSAUR_DOLL,
+ MAP_OBJ_GFX_BIG_CHARIZARD_DOLL,
+ MAP_OBJ_GFX_BIG_BLASTOISE_DOLL,
+ MAP_OBJ_GFX_BIG_WAILMER_DOLL,
+ MAP_OBJ_GFX_BIG_REGIROCK_DOLL,
+ MAP_OBJ_GFX_BIG_REGICE_DOLL,
+ MAP_OBJ_GFX_BIG_REGISTEEL_DOLL,
+ MAP_OBJ_GFX_LATIAS,
+ MAP_OBJ_GFX_LATIOS,
+ MAP_OBJ_GFX_BOY_5,
+ MAP_OBJ_GFX_CONTEST_JUDGE,
+ MAP_OBJ_GFX_BRENDAN_WATERING,
+ MAP_OBJ_GFX_MAY_WATERING,
+ MAP_OBJ_GFX_BRENDAN_DECORATING,
+ MAP_OBJ_GFX_MAY_DECORATING,
+ MAP_OBJ_GFX_ARCHIE,
+ MAP_OBJ_GFX_MAXIE,
+ MAP_OBJ_GFX_KYOGRE_1,
+ MAP_OBJ_GFX_GROUDON_1,
+ MAP_OBJ_GFX_FOSSIL,
+ MAP_OBJ_GFX_REGIROCK,
+ MAP_OBJ_GFX_REGICE,
+ MAP_OBJ_GFX_REGISTEEL,
+ MAP_OBJ_GFX_SKITTY,
+ MAP_OBJ_GFX_KECLEON_1,
+ MAP_OBJ_GFX_KYOGRE_2,
+ MAP_OBJ_GFX_GROUDON_2,
+ MAP_OBJ_GFX_RAYQUAZA,
+ MAP_OBJ_GFX_ZIGZAGOON,
+ MAP_OBJ_GFX_PIKACHU,
+ MAP_OBJ_GFX_AZUMARILL,
+ MAP_OBJ_GFX_WINGULL,
+ MAP_OBJ_GFX_KECLEON_2,
+ MAP_OBJ_GFX_TUBER_M_SWIMMING,
+ MAP_OBJ_GFX_AZURILL,
+ MAP_OBJ_GFX_MOM,
+ MAP_OBJ_GFX_LINK_BRENDAN,
+ MAP_OBJ_GFX_LINK_MAY,
+};
+
+enum {
+ SHADOW_SIZE_S,
+ SHADOW_SIZE_M,
+ SHADOW_SIZE_L,
+ SHADOW_SIZE_XL
+};
+
+enum {
+ TRACKS_NONE,
+ TRACKS_FOOT,
+ TRACKS_BIKE_TIRE
+};
+
+#endif // GUARD_MAP_OBJECT_CONSTANTS_H
diff --git a/include/menu.h b/include/menu.h
index 66ac73e03..927c3d3d4 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -5,20 +5,28 @@
struct MenuAction
{
- const u8 *text;
- u8 (*func)();
-};
-
-struct MenuAction2
-{
const u8 *text;
- void (*func)(u8);
+ union {
+ void (*void_u8)(u8);
+ u8 (*u8_void)(void);
+ } func;
};
void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
-void sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
+void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
+void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
+void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
+u8 GetMenuCursorPos(void);
+s8 ProcessMenuInput(void);
+void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
+void reset_temp_tile_data_buffers(void);
+int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
+bool8 free_temp_tile_data_buffers_if_possible(void);
+u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
+void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
+s8 sub_8198C58(void);
#endif // GUARD_MENU_H
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
new file mode 100644
index 000000000..f083a10e2
--- /dev/null
+++ b/include/menu_helpers.h
@@ -0,0 +1,20 @@
+#ifndef GUARD_MENU_HELPERS_H
+#define GUARD_MENU_HELPERS_H
+
+// Exported type declarations
+
+struct YesNoFuncTable {
+ TaskFunc yesFunc;
+ TaskFunc noFunc;
+};
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_812225C(u16 *, u16 *, u8, u8);
+void sub_8122298(u16 *, u16 *, u8, u8, u8);
+void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
+bool8 sub_81221AC(void);
+
+#endif //GUARD_MENU_HELPERS_H
diff --git a/include/menu_indicators.h b/include/menu_indicators.h
new file mode 100644
index 000000000..5a3b2e5b8
--- /dev/null
+++ b/include/menu_indicators.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_MENU_INDICATORS_H
+#define GUARD_MENU_INDICATORS_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u8, u8, u16 *);
+void RemoveScrollIndicatorArrowPair(u8);
+
+#endif //GUARD_MENU_INDICATORS_H
diff --git a/include/naming_screen.h b/include/naming_screen.h
index 55a8e75a3..3d69b834f 100644
--- a/include/naming_screen.h
+++ b/include/naming_screen.h
@@ -5,7 +5,7 @@
#define NAMING_SCREEN_BOX 1
#define NAMING_SCREEN_CAUGHT_MON 2
#define NAMING_SCREEN_3 3
-#define NAMING_SCREEN_WANDA 4
+#define NAMING_SCREEN_WALDA 4
void DoNamingScreen(u8 caseId, u8* dst, u16 monSpecies, u8 monGender, u32 monPersonality, void (*callback)(void));
diff --git a/include/new_game.h b/include/new_game.h
index 060279c25..2088d1826 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -2,6 +2,7 @@
#define GUARD_NEW_GAME_H
void WriteUnalignedWord(u32 var, u8 *dataPtr);
+u32 ReadUnalignedWord(u8* dataPtr);
void CopyUnalignedWord(u8 *copyTo, u8 *copyFrom);
void InitPlayerTrainerId(void);
void SetDefaultOptions(void);
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index 6377897d3..f588967bf 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -1,9 +1,16 @@
#ifndef GUARD_NEW_MENU_HELPERS_H
#define GUARD_NEW_MENU_HELPERS_H
+#include "text.h"
+#include "task.h"
+
void sub_81973A4(void);
void sub_81973C4(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void sub_81973FC(u8, u8);
+u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
+void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
+void sub_8197434(u8 a0, u8 a1);
+void sub_8197930(void);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index 0475e8e8c..5ac4cad29 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROM4_H
#define GUARD_ROM4_H
+#include "main.h"
+
struct UnkPlayerStruct
{
u8 player_field_0;
@@ -21,6 +23,7 @@ struct UCoords32
};
extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4];
+extern MainCallback gFieldCallback;
void IncrementGameStat(u8 index);
@@ -53,6 +56,8 @@ const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8);
void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
void sub_8086230(void);
void c2_exit_to_overworld_2_switch(void);
+bool32 sub_8087598(void);
void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+void warp_in(void);
#endif //GUARD_ROM4_H
diff --git a/include/player_pc.h b/include/player_pc.h
new file mode 100644
index 000000000..b14d1ede3
--- /dev/null
+++ b/include/player_pc.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_PLAYER_PC_H
+#define GUARD_PLAYER_PC_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_816B060(u8 taskId);
+
+#endif //GUARD_PLAYER_PC_H
diff --git a/include/pokemon.h b/include/pokemon.h
index c26c28afa..4159a2f96 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -30,7 +30,7 @@
#define MON_DATA_HP_EV 26
#define MON_DATA_ATK_EV 27
#define MON_DATA_DEF_EV 28
-#define MON_DATA_SPD_EV 29
+#define MON_DATA_SPEED_EV 29
#define MON_DATA_SPATK_EV 30
#define MON_DATA_SPDEF_EV 31
#define MON_DATA_FRIENDSHIP 32
@@ -43,7 +43,7 @@
#define MON_DATA_HP_IV 39
#define MON_DATA_ATK_IV 40
#define MON_DATA_DEF_IV 41
-#define MON_DATA_SPD_IV 42
+#define MON_DATA_SPEED_IV 42
#define MON_DATA_SPATK_IV 43
#define MON_DATA_SPDEF_IV 44
#define MON_DATA_IS_EGG 45
@@ -62,7 +62,7 @@
#define MON_DATA_MAX_HP 58
#define MON_DATA_ATK 59
#define MON_DATA_DEF 60
-#define MON_DATA_SPD 61
+#define MON_DATA_SPEED 61
#define MON_DATA_SPATK 62
#define MON_DATA_SPDEF 63
#define MON_DATA_MAIL 64
@@ -87,7 +87,7 @@
#define MON_DATA_RIBBONS 83
#define MON_DATA_ATK2 84
#define MON_DATA_DEF2 85
-#define MON_DATA_SPD2 86
+#define MON_DATA_SPEED2 86
#define MON_DATA_SPATK2 87
#define MON_DATA_SPDEF2 88
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index b82334355..b6d21823e 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -3,5 +3,10 @@
const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo);
const u16 *GetValidMonIconPalettePtr(u16 speciesId);
+u16 sub_80D2E84(u16 speciesId);
+void sub_80D2F68(u16 iconId);
+u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5);
+void sub_80D2FF0(u16 iconId);
+void sub_80D2EF8(struct Sprite *sprite);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/recorded_battle.h b/include/recorded_battle.h
index 65ad998e6..6b80e220f 100644
--- a/include/recorded_battle.h
+++ b/include/recorded_battle.h
@@ -3,6 +3,7 @@
extern u32 gRecordedBattleRngSeed;
+void sub_8184DA4(u8 arg0);
void sub_8185F84(void);
void sub_8184E58(void);
void RecordedBattle_SetBankAction(u8 bank, u8 action);
@@ -15,5 +16,7 @@ u8 MoveRecordedBattleToSaveData(void);
void sub_818603C(u8);
void sub_8185FD0(void);
void sub_8186444(void);
+void sub_8185EB8(void);
+u8 sub_81850DC(u8 *arg0);
#endif // GUARD_RECORDED_BATTLE_H
diff --git a/include/secret_base.h b/include/secret_base.h
index 4f7b411da..14defff26 100644
--- a/include/secret_base.h
+++ b/include/secret_base.h
@@ -6,6 +6,7 @@
// Exported RAM declarations
// Exported ROM declarations
+void sub_80E9578(void);
void sub_80E980C(void);
#endif //GUARD_SECRET_BASE_H
diff --git a/include/sprite.h b/include/sprite.h
index a9377165e..531314079 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -251,7 +251,7 @@ void BuildOamBuffer(void);
u8 CreateSprite(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateSpriteAtEnd(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
-u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
+u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
void DestroySprite(struct Sprite *sprite);
void ResetOamRange(u8 a, u8 b);
void LoadOam(void);
diff --git a/include/strings.h b/include/strings.h
index 5d1a9bba0..191b1809a 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,6 +1,13 @@
-#ifndef GUARD_strings_H
-#define GUARD_strings_H
+#ifndef GUARD_STRINGS_H
+#define GUARD_STRINGS_H
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+extern const u8 gText_FromSpace[];
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
extern const u8 gText_Mom[];
@@ -29,5 +36,39 @@ extern const u8 gText_Jackpot[];
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
+extern const u8 gText_NoDecorations[];
+extern const u8 gText_NoDecorationsInUse[];
+extern const u8 gText_Exit[];
+extern const u8 gText_Cancel[];
+extern const u8 gText_Color161Shadow161[];
+extern const u8 gText_GoBackPrevMenu[];
+extern const u8 gText_CantPlaceInRoom[];
+extern const u8 gText_NoMoreDecorations[];
+extern const u8 gText_NoMoreDecorations2[];
+extern const u8 gText_InUseAlready[];
+extern const u8 gText_CancelDecorating[];
+extern const u8 gText_PlaceItHere[];
+extern const u8 gText_CantBePlacedHere[];
+extern const u8 gText_DecorationReturnedToPC[];
+extern const u8 gText_StopPuttingAwayDecorations[];
+extern const u8 gText_ReturnDecorationToPC[];
+extern const u8 gText_NoDecorationHere[];
+extern const u8 gText_DecorationWillBeDiscarded[];
+extern const u8 gText_CantThrowAwayInUse[];
+extern const u8 gText_DecorationThrownAway[];
+extern const u8 gText_Desk[];
+extern const u8 gText_Chair[];
+extern const u8 gText_Plant[];
+extern const u8 gText_Ornament[];
+extern const u8 gText_Mat[];
+extern const u8 gText_Poster[];
+extern const u8 gText_PutOutSelectedDecorItem[];
+extern const u8 gText_StoreChosenDecorInPC[];
+extern const u8 gText_ThrowAwayUnwantedDecors[];
+extern const u8 gText_Doll[];
+extern const u8 gText_Cushion[];
+extern const u8 gText_Decorate[];
+extern const u8 gText_PutAway[];
+extern const u8 gText_Toss2[];
-#endif //GUARD_strings_H
+#endif //GUARD_STRINGS_H
diff --git a/include/tilesets.h b/include/tilesets.h
new file mode 100644
index 000000000..70609c046
--- /dev/null
+++ b/include/tilesets.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_tilesets_H
+#define GUARD_tilesets_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+extern struct Tileset *gTilesetPointer_SecretBase;
+extern struct Tileset *gTilesetPointer_SecretBaseRedCave;
+
+#endif //GUARD_tilesets_H
diff --git a/include/trader.h b/include/trader.h
new file mode 100644
index 000000000..71fd1f7c2
--- /dev/null
+++ b/include/trader.h
@@ -0,0 +1,11 @@
+//
+// Created by scott on 10/21/2017.
+//
+
+#ifndef GUARD_TRADER_H
+#define GUARD_TRADER_H
+
+void sub_8133DA0(u8 taskId);
+void sub_8133E1C(u8 taskId);
+
+#endif //GUARD_TRADER_H
diff --git a/include/tv.h b/include/tv.h
index 9495387ef..172754ae0 100644
--- a/include/tv.h
+++ b/include/tv.h
@@ -8,6 +8,7 @@ void PutPokemonTodayCaughtOnAir(void);
u32 GetPlayerIDAsU32(void);
bool8 GetPriceReduction(u8 newsKind);
u8 GetRibbonCount(struct Pokemon *pokemon);
+void TV_PutSecretBaseVisitOnTheAir(void);
void sub_80EE184(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
diff --git a/include/walda_phrase.h b/include/walda_phrase.h
new file mode 100644
index 000000000..3d7701123
--- /dev/null
+++ b/include/walda_phrase.h
@@ -0,0 +1,8 @@
+#ifndef GUARD_WALDA_PHRASE_H
+#define GUARD_WALDA_PHRASE_H
+
+u16 TryBufferWaldaPhrase(void);
+void DoWaldaNamingScreen(void);
+u16 TryGetWallpaperWithWaldaPhrase(void);
+
+#endif // GUARD_WALDA_PHRASE_H
diff --git a/ld_script.txt b/ld_script.txt
index 04e394b5c..f655711dd 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -54,7 +54,7 @@ SECTIONS {
asm/link.o(.text);
src/rtc.o(.text);
asm/main_menu.o(.text);
- asm/rom3.o(.text);
+ src/battle_controllers.o(.text);
src/decompress.o(.text);
asm/battle_1.o(.text);
src/battle_2.o(.text);
@@ -79,7 +79,7 @@ SECTIONS {
src/blend_palette.o(.text);
asm/daycare.o(.text);
src/egg_hatch.o(.text);
- asm/battle_interface.o(.text);
+ src/battle_interface.o(.text);
asm/smokescreen.o(.text);
asm/pokeball.o(.text);
src/load_save.o(.text);
@@ -113,7 +113,7 @@ SECTIONS {
src/tileset_anims.o(.text);
src/palette.o(.text);
src/sound.o(.text);
- asm/battle_anim.o(.text);
+ src/battle_anim.o(.text);
asm/rom_80A5C6C.o(.text);
src/task.o(.text);
src/reshow_battle_screen.o(.text);
@@ -164,13 +164,13 @@ SECTIONS {
asm/easy_chat.o(.text);
asm/mon_markings.o(.text);
asm/mauville_old_man.o(.text);
- asm/mail.o(.text);
+ src/mail.o(.text);
asm/menu_helpers.o(.text);
asm/dewford_trend.o(.text);
asm/heal_location.o(.text);
asm/region_map.o(.text);
asm/cute_sketch.o(.text);
- asm/decoration.o(.text);
+ src/decoration.o(.text);
asm/slot_machine.o(.text);
asm/contest_painting.o(.text);
src/battle_ai_script_commands.o(.text);
@@ -204,7 +204,7 @@ SECTIONS {
asm/battle_anim_815A0D4.o(.text);
asm/learn_move.o(.text);
asm/fldeff_softboiled.o(.text);
- asm/decoration_inventory.o(.text);
+ src/decoration_inventory.o(.text);
src/roamer.o(.text);
asm/battle_tower.o(.text);
asm/use_pokeblock.o(.text);
@@ -223,7 +223,7 @@ SECTIONS {
src/save_failed_screen.o(.text);
src/braille_puzzles.o(.text);
asm/pokeblock_feed.o(.text);
- asm/clear_save_data_screen.o(.text);
+ src/clear_save_data_screen.o(.text);
asm/intro_credits_graphics.o(.text);
asm/evolution_graphics.o(.text);
asm/bard_music.o(.text);
@@ -254,15 +254,17 @@ SECTIONS {
asm/fldeff_groundshake.o(.text);
asm/fossil_specials.o(.text);
src/berry_fix_program.o(.text);
+ src/pokemon_summary_screen.o(.text);
asm/pokemon_summary_screen.o(.text);
asm/pokenav.o(.text);
asm/rayquaza_scene.o(.text);
- asm/walda_phrase.o(.text);
+ src/walda_phrase.o(.text);
asm/contest_link_81D9DE4.o(.text);
asm/trainer_rematch.o(.text);
asm/unk_sprite_file.o(.text);
asm/unk_transition.o(.text);
asm/unk_transition_2.o(.text);
+ src/international_string_util.o(.text);
asm/international_string_util.o(.text);
} =0
@@ -291,6 +293,10 @@ SECTIONS {
src/agb_flash_1m.o(.text);
src/agb_flash_mx.o(.text);
src/siirtc.o(.text);
+ src/librfu_stwi.o(.text);
+ src/librfu_intr.o(.text);
+ asm/librfu_intr.o(.text);
+ src/librfu_rfu.o(.text);
asm/librfu.o(.text);
asm/libagbsyscall.o(.text);
tools/agbcc/lib/libgcc.a:_call_via_rX.o(.text);
@@ -339,7 +345,7 @@ SECTIONS {
data/daycare.o(.rodata);
src/egg_hatch.o(.rodata);
data/battle_7.o(.rodata);
- data/battle_interface.o(.rodata);
+ src/battle_interface.o(.rodata);
data/pokeball.o(.rodata);
data/trade.o(.rodata);
data/berry_blender.o(.rodata);
@@ -363,6 +369,8 @@ SECTIONS {
src/palette.o(.rodata);
data/fanfares.o(.rodata);
data/battle_anims.o(.rodata);
+ src/battle_anim.o(.rodata);
+ data/rom_8525F58.o(.rodata);
data/title_screen.o(.rodata);
data/field_screen.o(.rodata);
data/battle_setup.o(.rodata);
@@ -400,12 +408,12 @@ SECTIONS {
data/easy_chat.o(.rodata);
data/mon_markings.o(.rodata);
data/mauville_old_man.o(.rodata);
- data/mail.o(.rodata);
+ src/mail.o(.rodata);
data/menu_helpers.o(.rodata);
data/heal_location.o(.rodata);
data/region_map.o(.rodata);
data/cute_sketch.o(.rodata);
- data/decoration.o(.rodata);
+ src/decoration.o(.rodata);
data/slot_machine.o(.rodata);
data/contest_painting.o(.rodata);
src/battle_ai_script_commands.o(.rodata);
@@ -437,7 +445,7 @@ SECTIONS {
src/save_failed_screen.o(.rodata);
data/braille_puzzles.o(.rodata);
data/pokeblock_feed.o(.rodata);
- data/clear_save_data_screen.o(.rodata);
+ src/clear_save_data_screen.o(.rodata);
data/intro_credits_graphics.o(.rodata);
data/evolution_graphics.o(.rodata);
data/bard_music.o(.rodata);
@@ -463,7 +471,7 @@ SECTIONS {
data/pokemon_summary_screen.o(.rodata);
data/pokenav.o(.rodata);
data/rayquaza_scene.o(.rodata);
- data/walda_phrase.o(.rodata);
+ src/walda_phrase.o(.rodata);
data/trainer_rematch.o(.rodata);
data/unk_sprite_file.o(.rodata);
data/unk_transition.o(.rodata);
diff --git a/src/battle_2.c b/src/battle_2.c
index cee845c75..6b7c4063e 100644
--- a/src/battle_2.c
+++ b/src/battle_2.c
@@ -205,9 +205,6 @@ extern const u8 BattleScript_ActionSwitch[];
extern const u8 BattleScript_PrintFailedToRunString[];
// functions
-extern void HandleLinkBattleSetup(void); // rom_3
-extern void SetUpBattleVarsAndBirchZigzagoon(void); // rom_3
-extern void sub_8032768(void); // rom_3
extern void dp12_8087EA4(void);
extern void sub_80356D0(void);
extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower
@@ -4075,7 +4072,7 @@ static void HandleTurnActionSelectionState(void)
if (gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_MULTIPLETURNS
|| gBattleMons[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)].status2 & STATUS2_RECHARGE)
{
- Emit_x32(0);
+ EmitCmd50(0);
MarkBufferBankForExecution(gActiveBank);
return;
}
@@ -4103,7 +4100,7 @@ static void HandleTurnActionSelectionState(void)
{
RecordedBattle_ClearBankAction(GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON), 3);
}
- Emit_x32(0);
+ EmitCmd50(0);
MarkBufferBankForExecution(gActiveBank);
return;
}
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index 661759a98..d86be6fad 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -39,7 +39,7 @@ static bool8 ShouldSwitchIfPerishSong(void)
&& gDisableStructs[gActiveBank].perishSong1 == 0)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
@@ -121,7 +121,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
{
// we found a mon
*(gBattleStruct->field_294 + gActiveBank) = i;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
}
@@ -221,7 +221,7 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
{
// we found a mon
*(gBattleStruct->field_294 + gActiveBank) = i;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
}
@@ -241,13 +241,13 @@ static bool8 ShouldSwitchIfNaturalCure(void)
if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
@@ -258,7 +258,7 @@ static bool8 ShouldSwitchIfNaturalCure(void)
if (Random() & 1)
{
*(gBattleStruct->field_294 + gActiveBank) = 6;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
@@ -426,7 +426,7 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0)
{
*(gBattleStruct->field_294 + gActiveBank) = i;
- EmitCmd_x21(1, 2, 0);
+ EmitCmd33(1, 2, 0);
return TRUE;
}
}
@@ -611,7 +611,7 @@ void AI_TrySwitchOrUseItem(void)
}
}
- EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8);
+ EmitCmd33(1, 0, (gActiveBank ^ BIT_SIDE) << 8);
}
#define TYPE_FORESIGHT 0xFE
@@ -940,7 +940,7 @@ static bool8 ShouldUseItem(void)
if (shouldUse)
{
- EmitCmd_x21(1, 1, 0);
+ EmitCmd33(1, 1, 0);
*(gBattleStruct->field_C0 + (gActiveBank / 2) * 2) = item;
gBattleResources->battleHistory->trainerItems[i] = 0;
return shouldUse;
diff --git a/src/battle_anim.c b/src/battle_anim.c
new file mode 100644
index 000000000..023272017
--- /dev/null
+++ b/src/battle_anim.c
@@ -0,0 +1,1850 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_anim.h"
+#include "sprite.h"
+#include "contest.h"
+#include "m4a.h"
+#include "pokemon.h"
+#include "battle_interface.h"
+#include "task.h"
+#include "decompress.h"
+#include "sound.h"
+#include "dma3.h"
+#include "bg.h"
+#include "gpu_regs.h"
+#include "palette.h"
+#include "main.h"
+
+// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
+#define GET_TRUE_SPRITE_INDEX(i) ((i - 10000))
+
+#define SCRIPT_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define SCRIPT_READ_32(ptr) (((ptr)[0]) + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define SCRIPT_READ_PTR(ptr) ((const u8*)(SCRIPT_READ_32(ptr)))
+
+#define ANIM_SPRITE_INDEX_COUNT 8
+
+extern u8 gBankAttacker;
+extern u8 gBankTarget;
+extern u16 gBattle_WIN0H;
+extern u16 gBattle_WIN0V;
+extern u16 gBattle_WIN1H;
+extern u16 gBattle_WIN1V;
+extern u16 gBattle_BG1_X;
+extern u16 gBattle_BG1_Y;
+extern u16 gBattle_BG2_X;
+extern u16 gBattle_BG2_Y;
+extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT];
+extern struct MusicPlayerInfo gMPlay_BGM;
+extern struct MusicPlayerInfo gMPlay_SE1;
+extern struct MusicPlayerInfo gMPlay_SE2;
+extern u8 gDecompressionBuffer[];
+
+extern const u16 gUnknown_082C8D64[];
+extern const u8 * const gBattleAnims_Moves[];
+extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
+extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
+extern const struct BattleAnimBackground gBattleAnimBackgroundTable[];
+
+extern void sub_80A8278(void); // rom_80A5C6C.s
+extern void sub_80A6B30(struct UnknownAnimStruct2*); // rom_80A5C6C.s
+extern void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); // rom_80A5C6C.s
+extern u8 sub_80A82E4(u8 bank); // rom_80A5C6C.s
+extern u8 sub_80A5C6C(u8 bank, u8 attributeId); // rom_80A5C6C.s
+extern bool8 AnimBankSpriteExists(u8 bank); // rom_80A5C6C.s
+extern void sub_80A6C68(u8 arg0); // rom_80A5C6C.s
+extern u8 GetAnimBankSpriteId(u8 wantedBank); // rom_80A5C6C.s
+extern u8 sub_80A6D94(void);
+extern u8 sub_80A8364(u8);
+extern bool8 IsDoubleBattle(void);
+
+// this file's functions
+static void ScriptCmd_loadspritegfx(void);
+static void ScriptCmd_unloadspritegfx(void);
+static void ScriptCmd_createsprite(void);
+static void ScriptCmd_createvisualtask(void);
+static void ScriptCmd_delay(void);
+static void ScriptCmd_waitforvisualfinish(void);
+static void ScriptCmd_hang1(void);
+static void ScriptCmd_hang2(void);
+static void ScriptCmd_end(void);
+static void ScriptCmd_playse(void);
+static void ScriptCmd_monbg(void);
+static void ScriptCmd_clearmonbg(void);
+static void ScriptCmd_setalpha(void);
+static void ScriptCmd_blendoff(void);
+static void ScriptCmd_call(void);
+static void ScriptCmd_return(void);
+static void ScriptCmd_setarg(void);
+static void ScriptCmd_choosetwoturnanim(void);
+static void ScriptCmd_jumpifmoveturn(void);
+static void ScriptCmd_jump(void);
+static void ScriptCmd_fadetobg(void);
+static void ScriptCmd_restorebg(void);
+static void ScriptCmd_waitbgfadeout(void);
+static void ScriptCmd_waitbgfadein(void);
+static void ScriptCmd_changebg(void);
+static void ScriptCmd_playsewithpan(void);
+static void ScriptCmd_setpan(void);
+static void ScriptCmd_panse_1B(void);
+static void ScriptCmd_loopsewithpan(void);
+static void ScriptCmd_waitplaysewithpan(void);
+static void ScriptCmd_setbldcnt(void);
+static void ScriptCmd_createsoundtask(void);
+static void ScriptCmd_waitsound(void);
+static void ScriptCmd_jumpargeq(void);
+static void ScriptCmd_monbg_22(void);
+static void ScriptCmd_clearmonbg_23(void);
+static void ScriptCmd_jumpifcontest(void);
+static void ScriptCmd_fadetobgfromset(void);
+static void ScriptCmd_panse_26(void);
+static void ScriptCmd_panse_27(void);
+static void ScriptCmd_monbgprio_28(void);
+static void ScriptCmd_monbgprio_29(void);
+static void ScriptCmd_monbgprio_2A(void);
+static void ScriptCmd_invisible(void);
+static void ScriptCmd_visible(void);
+static void ScriptCmd_doublebattle_2D(void);
+static void ScriptCmd_doublebattle_2E(void);
+static void ScriptCmd_stopsound(void);
+
+static void RunAnimScriptCommand(void);
+static void task_pA_ma0A_obj_to_bg_pal(u8 taskId);
+static void sub_80A46A0(void);
+static void sub_80A4980(u8 taskId);
+static void sub_80A4BB0(u8 taskId);
+static void Task_FadeToBg(u8 taskId);
+static void Task_PanFromInitialToTarget(u8 taskId);
+static void Task_LoopAndPlaySE(u8 taskId);
+static void Task_WaitAndPlaySE(u8 taskId);
+static void LoadDefaultBg(void);
+static void LoadMoveBg(u16 bgId);
+
+// ewram
+EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL;
+EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL;
+EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL;
+EWRAM_DATA static s8 gAnimFramesToWait = 0;
+EWRAM_DATA bool8 gAnimScriptActive = FALSE;
+EWRAM_DATA u8 gAnimVisualTaskCount = 0;
+EWRAM_DATA u8 gAnimSoundTaskCount = 0;
+EWRAM_DATA struct DisableStruct *gAnimDisableStructPtr = NULL;
+EWRAM_DATA u32 gAnimMoveDmg = 0;
+EWRAM_DATA u16 gAnimMovePower = 0;
+EWRAM_DATA static u16 sAnimSpriteIndexArray[ANIM_SPRITE_INDEX_COUNT] = {0};
+EWRAM_DATA u8 gAnimFriendship = 0;
+EWRAM_DATA u16 gWeatherMoveAnim = 0;
+EWRAM_DATA s16 gBattleAnimArgs[ANIM_ARGS_COUNT] = {0};
+EWRAM_DATA static u16 sSoundAnimFramesToWait = 0;
+EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0};
+EWRAM_DATA u8 gAnimMoveTurn = 0;
+EWRAM_DATA static u8 sAnimBackgroundFadeState = 0;
+EWRAM_DATA static u16 sAnimMoveIndex = 0; // set but unused.
+EWRAM_DATA u8 gAnimBankAttacker = 0;
+EWRAM_DATA u8 gAnimBankTarget = 0;
+EWRAM_DATA u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT] = {0};
+EWRAM_DATA u8 gUnknown_02038440 = 0;
+
+// const rom data
+static void (* const sScriptCmdTable[])(void) =
+{
+ ScriptCmd_loadspritegfx,
+ ScriptCmd_unloadspritegfx,
+ ScriptCmd_createsprite,
+ ScriptCmd_createvisualtask,
+ ScriptCmd_delay,
+ ScriptCmd_waitforvisualfinish,
+ ScriptCmd_hang1,
+ ScriptCmd_hang2,
+ ScriptCmd_end,
+ ScriptCmd_playse,
+ ScriptCmd_monbg,
+ ScriptCmd_clearmonbg,
+ ScriptCmd_setalpha,
+ ScriptCmd_blendoff,
+ ScriptCmd_call,
+ ScriptCmd_return,
+ ScriptCmd_setarg,
+ ScriptCmd_choosetwoturnanim,
+ ScriptCmd_jumpifmoveturn,
+ ScriptCmd_jump,
+ ScriptCmd_fadetobg,
+ ScriptCmd_restorebg,
+ ScriptCmd_waitbgfadeout,
+ ScriptCmd_waitbgfadein,
+ ScriptCmd_changebg,
+ ScriptCmd_playsewithpan,
+ ScriptCmd_setpan,
+ ScriptCmd_panse_1B,
+ ScriptCmd_loopsewithpan,
+ ScriptCmd_waitplaysewithpan,
+ ScriptCmd_setbldcnt,
+ ScriptCmd_createsoundtask,
+ ScriptCmd_waitsound,
+ ScriptCmd_jumpargeq,
+ ScriptCmd_monbg_22,
+ ScriptCmd_clearmonbg_23,
+ ScriptCmd_jumpifcontest,
+ ScriptCmd_fadetobgfromset,
+ ScriptCmd_panse_26,
+ ScriptCmd_panse_27,
+ ScriptCmd_monbgprio_28,
+ ScriptCmd_monbgprio_29,
+ ScriptCmd_monbgprio_2A,
+ ScriptCmd_invisible,
+ ScriptCmd_visible,
+ ScriptCmd_doublebattle_2D,
+ ScriptCmd_doublebattle_2E,
+ ScriptCmd_stopsound
+};
+
+void ClearBattleAnimationVars(void)
+{
+ s32 i;
+
+ gAnimFramesToWait = 0;
+ gAnimScriptActive = FALSE;
+ gAnimVisualTaskCount = 0;
+ gAnimSoundTaskCount = 0;
+ gAnimDisableStructPtr = NULL;
+ gAnimMoveDmg = 0;
+ gAnimMovePower = 0;
+ gAnimFriendship = 0;
+
+ // clear index array.
+ for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
+ sAnimSpriteIndexArray[i] |= 0xFFFF;
+
+ // clear anim args.
+ for (i = 0; i < ANIM_ARGS_COUNT; i++)
+ gBattleAnimArgs[i] = 0;
+
+ sMonAnimTaskIdArray[0] = 0xFF;
+ sMonAnimTaskIdArray[1] = 0xFF;
+ gAnimMoveTurn = 0;
+ sAnimBackgroundFadeState = 0;
+ sAnimMoveIndex = 0;
+ gAnimBankAttacker = 0;
+ gAnimBankTarget = 0;
+ gUnknown_02038440 = 0;
+}
+
+void DoMoveAnim(u16 move)
+{
+ gAnimBankAttacker = gBankAttacker;
+ gAnimBankTarget = gBankTarget;
+ DoBattleAnim(gBattleAnims_Moves, move, TRUE);
+}
+
+void DoBattleAnim(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim)
+{
+ s32 i;
+
+ if (!IsContest())
+ {
+ sub_80A8278();
+ UpdateOamPriorityInAllHealthboxes(0);
+ for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ {
+ if (GetBankSide(i) != 0)
+ gAnimSpeciesByBanks[i] = GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_SPECIES);
+ else
+ gAnimSpeciesByBanks[i] = GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_SPECIES);
+ }
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ gAnimSpeciesByBanks[i] = gContestResources->field_18->field_0;
+ }
+
+ if (!isMoveAnim)
+ sAnimMoveIndex = 0;
+ else
+ sAnimMoveIndex = tableId;
+
+ for (i = 0; i < ANIM_ARGS_COUNT; i++)
+ gBattleAnimArgs[i] = 0;
+
+ sMonAnimTaskIdArray[0] = 0xFF;
+ sMonAnimTaskIdArray[1] = 0xFF;
+ sBattleAnimScriptPtr = animsTable[tableId];
+ gAnimScriptActive = TRUE;
+ gAnimFramesToWait = 0;
+ gAnimScriptCallback = RunAnimScriptCommand;
+
+ for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
+ sAnimSpriteIndexArray[i] |= 0xFFFF;
+
+ if (isMoveAnim)
+ {
+ for (i = 0; gUnknown_082C8D64[i] != 0xFFFF; i++)
+ {
+ if (tableId == gUnknown_082C8D64[i])
+ {
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128);
+ break;
+ }
+ }
+ }
+
+ gBattle_WIN0H = 0;
+ gBattle_WIN0V = 0;
+ gBattle_WIN1H = 0;
+ gBattle_WIN1V = 0;
+}
+
+void DestroyAnimSprite(struct Sprite *sprite)
+{
+ FreeSpriteOamMatrix(sprite);
+ DestroySprite(sprite);
+ gAnimVisualTaskCount--;
+}
+
+void DestroyAnimVisualTask(u8 taskId)
+{
+ DestroyTask(taskId);
+ gAnimVisualTaskCount--;
+}
+
+void DestroyAnimSoundTask(u8 taskId)
+{
+ DestroyTask(taskId);
+ gAnimSoundTaskCount--;
+}
+
+static void AddSpriteIndex(u16 index)
+{
+ s32 i;
+
+ for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
+ {
+ if (sAnimSpriteIndexArray[i] == 0xFFFF)
+ {
+ sAnimSpriteIndexArray[i] = index;
+ return;
+ }
+ }
+}
+
+static void ClearSpriteIndex(u16 index)
+{
+ s32 i;
+
+ for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
+ {
+ if (sAnimSpriteIndexArray[i] == index)
+ {
+ sAnimSpriteIndexArray[i] |= 0xFFFF;
+ return;
+ }
+ }
+}
+
+static void WaitAnimFrameCount(void)
+{
+ if (gAnimFramesToWait <= 0)
+ {
+ gAnimScriptCallback = RunAnimScriptCommand;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait--;
+ }
+}
+
+static void RunAnimScriptCommand(void)
+{
+ do
+ {
+ sScriptCmdTable[sBattleAnimScriptPtr[0]]();
+ } while (gAnimFramesToWait == 0 && gAnimScriptActive);
+}
+
+static void ScriptCmd_loadspritegfx(void)
+{
+ u16 index;
+
+ sBattleAnimScriptPtr++;
+ index = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ LoadCompressedObjectPicUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
+ LoadCompressedObjectPaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
+ sBattleAnimScriptPtr += 2;
+ AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
+ gAnimFramesToWait = 1;
+ gAnimScriptCallback = WaitAnimFrameCount;
+}
+
+static void ScriptCmd_unloadspritegfx(void)
+{
+ u16 index;
+
+ sBattleAnimScriptPtr++;
+ index = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
+ FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
+ sBattleAnimScriptPtr += 2;
+ ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
+}
+
+static void ScriptCmd_createsprite(void)
+{
+ s32 i;
+ const struct SpriteTemplate *template;
+ u8 argVar;
+ u8 argsCount;
+ s16 subpriority;
+
+ sBattleAnimScriptPtr++;
+ template = (const struct SpriteTemplate *)(SCRIPT_READ_32(sBattleAnimScriptPtr));
+ sBattleAnimScriptPtr += 4;
+
+ argVar = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+
+ argsCount = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+ for (i = 0; i < argsCount; i++)
+ {
+ gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr += 2;
+ }
+
+ if (argVar & 0x80)
+ {
+ argVar ^= 0x80;
+ if (argVar >= 0x40)
+ argVar -= 0x40;
+ else
+ argVar *= -1;
+
+ subpriority = sub_80A82E4(gAnimBankTarget) + (s8)(argVar);
+ }
+ else
+ {
+ if (argVar >= 0x40)
+ argVar -= 0x40;
+ else
+ argVar *= -1;
+
+ subpriority = sub_80A82E4(gAnimBankAttacker) + (s8)(argVar);
+ }
+
+ if (subpriority < 3)
+ subpriority = 3;
+
+ CreateSpriteAndAnimate(template, sub_80A5C6C(gAnimBankTarget, 2), sub_80A5C6C(gAnimBankTarget, 3), subpriority);
+ gAnimVisualTaskCount++;
+}
+
+static void ScriptCmd_createvisualtask(void)
+{
+ TaskFunc taskFunc;
+ u8 taskPriority;
+ u8 taskId;
+ u8 numArgs;
+ s32 i;
+
+ sBattleAnimScriptPtr++;
+
+ taskFunc = (TaskFunc)SCRIPT_READ_32(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr += 4;
+
+ taskPriority = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+
+ numArgs = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+
+ for (i = 0; i < numArgs; i++)
+ {
+ gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr += 2;
+ }
+
+ taskId = CreateTask(taskFunc, taskPriority);
+ taskFunc(taskId);
+ gAnimVisualTaskCount++;
+}
+
+static void ScriptCmd_delay(void)
+{
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = sBattleAnimScriptPtr[0];
+ if (gAnimFramesToWait == 0)
+ gAnimFramesToWait = -1;
+ sBattleAnimScriptPtr++;
+ gAnimScriptCallback = WaitAnimFrameCount;
+}
+
+// wait for visual tasks to finish.
+static void ScriptCmd_waitforvisualfinish(void)
+{
+ if (gAnimVisualTaskCount == 0)
+ {
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+}
+
+static void ScriptCmd_hang1(void)
+{
+}
+
+static void ScriptCmd_hang2(void)
+{
+}
+
+static void ScriptCmd_end(void)
+{
+ s32 i;
+ bool32 continuousAnim = FALSE;
+
+ // keep waiting as long as there is animations to be done.
+ if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0
+ || sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF)
+ {
+ sSoundAnimFramesToWait = 0;
+ gAnimFramesToWait = 1;
+ return;
+ }
+
+ // finish the sound effects.
+ if (IsSEPlaying())
+ {
+ if (++sSoundAnimFramesToWait <= 90) // wait 90 frames, then halt the sound effect.
+ {
+ gAnimFramesToWait = 1;
+ return;
+ }
+ else
+ {
+ m4aMPlayStop(&gMPlay_SE1);
+ m4aMPlayStop(&gMPlay_SE2);
+ }
+ }
+
+ // the SE has halted, so set the SE Frame Counter to 0 and continue.
+ sSoundAnimFramesToWait = 0;
+
+ for (i = 0; i < ANIM_SPRITE_INDEX_COUNT; i++)
+ {
+ if (sAnimSpriteIndexArray[i] != 0xFFFF)
+ {
+ FreeSpriteTilesByTag(gBattleAnimPicTable[sAnimSpriteIndexArray[i]].tag);
+ FreeSpritePaletteByTag(gBattleAnimPicTable[sAnimSpriteIndexArray[i]].tag);
+ sAnimSpriteIndexArray[i] |= 0xFFFF; // set terminator.
+ }
+ }
+
+ if (!continuousAnim) // may have been used for debug?
+ {
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
+ if (!IsContest())
+ {
+ sub_80A8278();
+ UpdateOamPriorityInAllHealthboxes(1);
+ }
+ gAnimScriptActive = FALSE;
+ }
+}
+
+static void ScriptCmd_playse(void)
+{
+ sBattleAnimScriptPtr++;
+ PlaySE(SCRIPT_READ_16(sBattleAnimScriptPtr));
+ sBattleAnimScriptPtr += 2;
+}
+
+#define t1_MONBG_BANK 0
+#define t1_MON_IN_BG2 1
+#define t1_CREATE_ANOTHER_TASK 2
+#define t1_IS_SECONDMON_BG 3
+
+#define t2_BANK_SPRITE_ID 0
+#define t2_MON_IN_BG2 5
+#define t2_MONBG_BANK 6
+
+static void sub_80A40F4(u8 taskId)
+{
+ u8 newTaskId;
+
+ s16 *selfData = gTasks[taskId].data;
+ u8 bankSpriteId = gBankSpriteIds[selfData[t1_MONBG_BANK]];
+ gSprites[bankSpriteId].invisible = 1;
+
+ if (!selfData[t1_CREATE_ANOTHER_TASK])
+ {
+ DestroyAnimVisualTask(taskId);
+ return;
+ }
+
+ newTaskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10);
+ gTasks[newTaskId].data[t2_BANK_SPRITE_ID] = bankSpriteId;
+ gTasks[newTaskId].data[1] = gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x;
+ gTasks[newTaskId].data[2] = gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y;
+
+ if (!selfData[t1_MON_IN_BG2])
+ {
+ gTasks[newTaskId].data[3] = gBattle_BG1_X;
+ gTasks[newTaskId].data[4] = gBattle_BG1_Y;
+ }
+ else
+ {
+ gTasks[newTaskId].data[3] = gBattle_BG2_X;
+ gTasks[newTaskId].data[4] = gBattle_BG2_Y;
+ }
+
+ gTasks[newTaskId].data[t2_MON_IN_BG2] = selfData[t1_MON_IN_BG2];
+ gTasks[newTaskId].data[t2_MONBG_BANK] = selfData[t1_MONBG_BANK];
+ sMonAnimTaskIdArray[selfData[t1_IS_SECONDMON_BG]] = newTaskId;
+ DestroyAnimVisualTask(taskId);
+}
+
+static void ScriptCmd_monbg(void)
+{
+ bool8 toBG_2;
+ u8 taskId;
+ u8 bank;
+ u8 animBank;
+
+ sBattleAnimScriptPtr++;
+
+ animBank = sBattleAnimScriptPtr[0];
+ if (animBank & ANIM_BANK_TARGET)
+ bank = gAnimBankTarget;
+ else
+ bank = gAnimBankAttacker;
+
+ if (IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ taskId = CreateTask(sub_80A40F4, 10);
+ gAnimVisualTaskCount++;
+ gTasks[taskId].data[t1_MONBG_BANK] = bank;
+ gTasks[taskId].data[t1_MON_IN_BG2] = toBG_2;
+ gTasks[taskId].data[t1_CREATE_ANOTHER_TASK] = TRUE;
+ gTasks[taskId].data[t1_IS_SECONDMON_BG] = 0;
+
+ }
+
+ bank ^= BIT_MON;
+ if (IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ taskId = CreateTask(sub_80A40F4, 10);
+ gAnimVisualTaskCount++;
+ gTasks[taskId].data[0] = bank;
+ gTasks[taskId].data[1] = toBG_2;
+ gTasks[taskId].data[t1_CREATE_ANOTHER_TASK] = TRUE;
+ gTasks[taskId].data[t1_IS_SECONDMON_BG] = 1;
+ }
+
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = 1;
+ gAnimScriptCallback = WaitAnimFrameCount;
+}
+
+bool8 IsAnimBankSpriteVisible(u8 bank)
+{
+ if (IsContest())
+ {
+ if (bank == gAnimBankAttacker)
+ return TRUE;
+ else
+ return FALSE;
+ }
+ if (!AnimBankSpriteExists(bank))
+ return FALSE;
+ if (IsContest())
+ return TRUE; // this line wont ever be reached.
+ if (!gBattleSpritesDataPtr->bankData[bank].invisible || !gSprites[gBankSpriteIds[bank]].invisible)
+ return TRUE;
+
+ return FALSE;
+}
+
+void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible)
+{
+ struct UnknownAnimStruct2 unknownStruct;
+ u8 bankSpriteId;
+
+ if (!toBG_2)
+ {
+ u8 bankIdentity;
+
+ if (IsContest() == TRUE)
+ {
+ RequestDma3Fill(0, (void*)(VRAM + 0x8000), 0x2000, 1);
+ RequestDma3Fill(0xFF, (void*)(VRAM + 0xF000), 0x1000, 0);
+ }
+ else
+ {
+ RequestDma3Fill(0, (void*)(VRAM + 0x4000), 0x2000, 1);
+ RequestDma3Fill(0xFF, (void*)(VRAM + 0xe000), 0x1000, 0);
+ }
+
+ sub_80A6B30(&unknownStruct);
+ CpuFill16(0, unknownStruct.unk0, 0x1000);
+ CpuFill16(0xFF, unknownStruct.unk4, 0x800);
+
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 2);
+ SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
+ SetAnimBgAttribute(1, BG_ANIM_AREA_OVERFLOW_MODE, 0);
+
+ bankSpriteId = gBankSpriteIds[bank];
+
+ gBattle_BG1_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20;
+ if (IsContest() && IsSpeciesNotUnown(gContestResources->field_18->field_0))
+ gBattle_BG1_X--;
+
+ gBattle_BG1_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20;
+ if (setSpriteInvisible)
+ gSprites[gBankSpriteIds[bank]].invisible = 1;
+
+ SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
+ SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
+
+ LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], unknownStruct.unk8 * 16, 0x20);
+ CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + unknownStruct.unk8 * 32), 0x20);
+
+ if (IsContest())
+ bankIdentity = 0;
+ else
+ bankIdentity = GetBankIdentity(bank);
+
+ sub_8118FBC(1, 0, 0, bankIdentity, unknownStruct.unk8, unknownStruct.unk0, unknownStruct.unk4, unknownStruct.unkA);
+
+ if (IsContest())
+ sub_80A46A0();
+ }
+ else
+ {
+ RequestDma3Fill(0, (void*)(VRAM + 0x6000), 0x2000, 1);
+ RequestDma3Fill(0, (void*)(VRAM + 0xF000), 0x1000, 1);
+ sub_80A6B90(&unknownStruct, 2);
+ CpuFill16(0, unknownStruct.unk0 + 0x1000, 0x1000);
+ CpuFill16(0, unknownStruct.unk4 + 0x400, 0x800);
+ SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
+ SetAnimBgAttribute(2, BG_ANIM_SCREEN_SIZE, 1);
+ SetAnimBgAttribute(2, BG_ANIM_AREA_OVERFLOW_MODE, 0);
+
+ bankSpriteId = gBankSpriteIds[bank];
+
+ gBattle_BG2_X = -(gSprites[bankSpriteId].pos1.x + gSprites[bankSpriteId].pos2.x) + 0x20;
+ gBattle_BG2_Y = -(gSprites[bankSpriteId].pos1.y + gSprites[bankSpriteId].pos2.y) + 0x20;
+
+ if (setSpriteInvisible)
+ gSprites[gBankSpriteIds[bank]].invisible = 1;
+
+ SetGpuReg(REG_OFFSET_BG2HOFS, gBattle_BG2_X);
+ SetGpuReg(REG_OFFSET_BG2VOFS, gBattle_BG2_Y);
+
+ LoadPalette(&gPlttBufferUnfaded[0x100 + bank * 16], 0x90, 0x20);
+ CpuCopy32(&gPlttBufferUnfaded[0x100 + bank * 16], (void*)(BG_PLTT + 0x120), 0x20);
+
+ sub_8118FBC(2, 0, 0, GetBankIdentity(bank), unknownStruct.unk8, unknownStruct.unk0 + 0x1000, unknownStruct.unk4 + 0x400, unknownStruct.unkA);
+ }
+}
+
+static void sub_80A46A0(void)
+{
+ s32 i, j;
+ struct UnknownAnimStruct2 unknownStruct;
+ u16 *ptr;
+
+ if (IsSpeciesNotUnown(gContestResources->field_18->field_0))
+ {
+ sub_80A6B30(&unknownStruct);
+ ptr = unknownStruct.unk4;
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ u16 temp = ptr[j + i * 32];
+
+ ptr[j + i * 32] = ptr[7 - j + i * 32];
+ ptr[7 - j + i * 32] = temp;
+ }
+ }
+ for (i = 0; i < 8; i++)
+ {
+ for (j = 0; j < 8; j++)
+ ptr[j + i * 32] ^= 0x400;
+ }
+ }
+}
+
+void sub_80A4720(u16 a, u16 *b, u32 c, u8 d)
+{
+ s32 i, j;
+ s32 var;
+
+ if (d == 0)
+ var = 32;
+ else
+ var = 64;
+ a <<= 12;
+ for (i = 0; i < var; i++)
+ {
+ for (j = 0; j < 32; j++)
+ b[j + i * 32] = ((b[j + i * 32] & 0xFFF) | a) + c;
+ }
+}
+
+void sub_80A477C(bool8 to_BG2)
+{
+ struct UnknownAnimStruct2 unknownStruct;
+ sub_80A6B30(&unknownStruct);
+
+ if (!to_BG2 || IsContest())
+ {
+ sub_80A6C68(1);
+ gBattle_BG1_X = 0;
+ gBattle_BG1_Y = 0;
+ }
+ else
+ {
+ sub_80A6C68(2);
+ gBattle_BG2_X = 0;
+ gBattle_BG2_Y = 0;
+ }
+}
+
+static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
+{
+ u8 spriteId, palIndex;
+ s16 x, y;
+ struct UnknownAnimStruct2 unknownStruct;
+
+ spriteId = gTasks[taskId].data[0];
+ palIndex = gTasks[taskId].data[6];
+ sub_80A6B30(&unknownStruct);
+ x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x);
+ y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y);
+
+ if (gTasks[taskId].data[5] == 0)
+ {
+ u16 *src;
+ u16 *dst;
+
+ gBattle_BG1_X = x + gTasks[taskId].data[3];
+ gBattle_BG1_Y = y + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + palIndex * 16;
+ dst = gPlttBufferFaded + 0x100 + unknownStruct.unk8 * 16 - 256;
+ CpuCopy32(src, dst, 0x20);
+ }
+ else
+ {
+ u16 *src;
+ u16 *dst;
+
+ gBattle_BG2_X = x + gTasks[taskId].data[3];
+ gBattle_BG2_Y = y + gTasks[taskId].data[4];
+ src = gPlttBufferFaded + 0x100 + palIndex * 16;
+ dst = gPlttBufferFaded + 0x100 - 112;
+ CpuCopy32(src, dst, 0x20);
+ }
+}
+
+static void ScriptCmd_clearmonbg(void)
+{
+ u8 animBankId;
+ u8 bank;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ animBankId = sBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (sMonAnimTaskIdArray[0] != 0xFF)
+ gSprites[gBankSpriteIds[bank]].invisible = 0;
+ if (animBankId > 1 && sMonAnimTaskIdArray[1] != 0xFF)
+ gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ else
+ animBankId = 0;
+
+ taskId = CreateTask(sub_80A4980, 5);
+ gTasks[taskId].data[0] = animBankId;
+ gTasks[taskId].data[2] = bank;
+
+ sBattleAnimScriptPtr++;
+}
+
+static void sub_80A4980(u8 taskId)
+{
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ u8 to_BG2;
+ u8 identity = GetBankIdentity(gTasks[taskId].data[2]);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ to_BG2 = FALSE;
+ else
+ to_BG2 = TRUE;
+
+ if (sMonAnimTaskIdArray[0] != 0xFF)
+ {
+ sub_80A477C(to_BG2);
+ DestroyTask(sMonAnimTaskIdArray[0]);
+ sMonAnimTaskIdArray[0] = 0xFF;
+ }
+ if (gTasks[taskId].data[0] > 1)
+ {
+ sub_80A477C(to_BG2 ^ 1);
+ DestroyTask(sMonAnimTaskIdArray[1]);
+ sMonAnimTaskIdArray[1] = 0xFF;
+ }
+ DestroyTask(taskId);
+ }
+}
+
+static void ScriptCmd_monbg_22(void)
+{
+ bool8 toBG_2;
+ u8 bank;
+ u8 animBankId;
+
+ sBattleAnimScriptPtr++;
+
+ animBankId = sBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ }
+
+ bank ^= BIT_MON;
+ if (animBankId > 1 && IsAnimBankSpriteVisible(bank))
+ {
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ sub_80A438C(bank, toBG_2, FALSE);
+ }
+
+ sBattleAnimScriptPtr++;
+}
+
+static void ScriptCmd_clearmonbg_23(void)
+{
+ u8 animBankId;
+ u8 bank;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ animBankId = sBattleAnimScriptPtr[0];
+
+ if (animBankId == ANIM_BANK_ATTACKER)
+ animBankId = ANIM_BANK_ATK_PARTNER;
+ else if (animBankId == ANIM_BANK_TARGET)
+ animBankId = ANIM_BANK_DEF_PARTNER;
+
+ if (animBankId == ANIM_BANK_ATTACKER || animBankId == ANIM_BANK_ATK_PARTNER)
+ bank = gAnimBankAttacker;
+ else
+ bank = gAnimBankTarget;
+
+ if (IsAnimBankSpriteVisible(bank))
+ gSprites[gBankSpriteIds[bank]].invisible = 0;
+ if (animBankId > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
+ gSprites[gBankSpriteIds[bank ^ BIT_MON]].invisible = 0;
+ else
+ animBankId = 0;
+
+ taskId = CreateTask(sub_80A4BB0, 5);
+ gTasks[taskId].data[0] = animBankId;
+ gTasks[taskId].data[2] = bank;
+
+ sBattleAnimScriptPtr++;
+}
+
+static void sub_80A4BB0(u8 taskId)
+{
+ gTasks[taskId].data[1]++;
+ if (gTasks[taskId].data[1] != 1)
+ {
+ bool8 toBG_2;
+ u8 bank = gTasks[taskId].data[2];
+ u8 identity = GetBankIdentity(bank);
+ if (identity == IDENTITY_OPPONENT_MON1 || identity == IDENTITY_PLAYER_MON2 || IsContest())
+ toBG_2 = FALSE;
+ else
+ toBG_2 = TRUE;
+
+ if (IsAnimBankSpriteVisible(bank))
+ sub_80A477C(toBG_2);
+ if (gTasks[taskId].data[0] > 1 && IsAnimBankSpriteVisible(bank ^ BIT_MON))
+ sub_80A477C(toBG_2 ^ 1);
+
+ DestroyTask(taskId);
+ }
+}
+
+#undef t1_MONBG_BANK
+#undef t1_MON_IN_BG2
+#undef t1_CREATE_ANOTHER_TASK
+#undef t1_IS_SECONDMON_BG
+
+#undef t2_BANK_SPRITE_ID
+#undef t2_MON_IN_BG2
+#undef t2_MONBG_BANK
+
+static void ScriptCmd_setalpha(void)
+{
+ u16 half1, half2;
+
+ sBattleAnimScriptPtr++;
+ half1 = *(sBattleAnimScriptPtr++);
+ half2 = *(sBattleAnimScriptPtr++) << 8;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40);
+ SetGpuReg(REG_OFFSET_BLDALPHA, half1 | half2);
+}
+
+static void ScriptCmd_setbldcnt(void)
+{
+ u16 half1, half2;
+
+ sBattleAnimScriptPtr++;
+ half1 = *(sBattleAnimScriptPtr++);
+ half2 = *(sBattleAnimScriptPtr++) << 8;
+ SetGpuReg(REG_OFFSET_BLDCNT, half1 | half2);
+}
+
+static void ScriptCmd_blendoff(void)
+{
+ sBattleAnimScriptPtr++;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+}
+
+static void ScriptCmd_call(void)
+{
+ sBattleAnimScriptPtr++;
+ sBattleAnimScriptRetAddr = sBattleAnimScriptPtr + 4;
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr);
+}
+
+static void ScriptCmd_return(void)
+{
+ sBattleAnimScriptPtr = sBattleAnimScriptRetAddr;
+}
+
+static void ScriptCmd_setarg(void)
+{
+ const u8 *addr = sBattleAnimScriptPtr;
+ u16 value;
+ u8 argId;
+
+ sBattleAnimScriptPtr++;
+ argId = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+ value = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr = addr + 4;
+ gBattleAnimArgs[argId] = value;
+}
+
+static void ScriptCmd_choosetwoturnanim(void)
+{
+ sBattleAnimScriptPtr++;
+ if (gAnimMoveTurn & 1)
+ sBattleAnimScriptPtr += 4;
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr);
+}
+
+static void ScriptCmd_jumpifmoveturn(void)
+{
+ u8 toCheck;
+ sBattleAnimScriptPtr++;
+ toCheck = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+
+ if (toCheck == gAnimMoveTurn)
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr);
+ else
+ sBattleAnimScriptPtr += 4;
+}
+
+static void ScriptCmd_jump(void)
+{
+ sBattleAnimScriptPtr++;
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr);
+}
+
+// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
+bool8 IsContest(void)
+{
+ if (!gMain.inBattle)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+#define tBackgroundId data[0]
+#define tState data[10]
+
+static void ScriptCmd_fadetobg(void)
+{
+ u8 backgroundId;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ backgroundId = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+ taskId = CreateTask(Task_FadeToBg, 5);
+ gTasks[taskId].tBackgroundId = backgroundId;
+ sAnimBackgroundFadeState = 1;
+}
+
+static void ScriptCmd_fadetobgfromset(void)
+{
+ u8 bg1, bg2, bg3;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ bg1 = sBattleAnimScriptPtr[0];
+ bg2 = sBattleAnimScriptPtr[1];
+ bg3 = sBattleAnimScriptPtr[2];
+ sBattleAnimScriptPtr += 3;
+ taskId = CreateTask(Task_FadeToBg, 5);
+
+ if (IsContest())
+ gTasks[taskId].tBackgroundId = bg3;
+ else if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ gTasks[taskId].tBackgroundId = bg2;
+ else
+ gTasks[taskId].tBackgroundId = bg1;
+
+ sAnimBackgroundFadeState = 1;
+}
+
+static void Task_FadeToBg(u8 taskId)
+{
+ if (gTasks[taskId].tState == 0)
+ {
+ BeginHardwarePaletteFade(0xE8, 0, 0, 16, 0);
+ gTasks[taskId].tState++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].tState == 1)
+ {
+ gTasks[taskId].tState++;
+ sAnimBackgroundFadeState = 2;
+ }
+ else if (gTasks[taskId].tState == 2)
+ {
+ s16 bgId = gTasks[taskId].tBackgroundId;
+
+ if (bgId == -1)
+ LoadDefaultBg();
+ else
+ LoadMoveBg(bgId);
+
+ BeginHardwarePaletteFade(0xE8, 0, 16, 0, 1);
+ gTasks[taskId].tState++;
+ return;
+ }
+ if (gPaletteFade.active)
+ return;
+ if (gTasks[taskId].tState == 3)
+ {
+ DestroyTask(taskId);
+ sAnimBackgroundFadeState = 0;
+ }
+}
+
+static void LoadMoveBg(u16 bgId)
+{
+ if (IsContest())
+ {
+ const void *tilemap = gBattleAnimBackgroundTable[bgId].tilemap;
+ void *dmaSrc;
+ void *dmaDest;
+
+ LZDecompressWram(tilemap, gDecompressionBuffer);
+ sub_80A4720(sub_80A6D94(), (void*)(gDecompressionBuffer), 0x100, 0);
+ dmaSrc = gDecompressionBuffer;
+ dmaDest = (void *)(VRAM + 0xD000);
+ DmaCopy32(3, dmaSrc, dmaDest, 0x800);
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x2000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, sub_80A6D94() * 16, 32);
+ }
+ else
+ {
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].tilemap, (void *)(VRAM + 0xD000));
+ LZDecompressVram(gBattleAnimBackgroundTable[bgId].image, (void *)(VRAM + 0x8000));
+ LoadCompressedPalette(gBattleAnimBackgroundTable[bgId].palette, 32, 32);
+ }
+}
+
+static void LoadDefaultBg(void)
+{
+ if (IsContest())
+ LoadContestBgAfterMoveAnim();
+ else
+ DrawMainBattleBackground();
+}
+
+static void ScriptCmd_restorebg(void)
+{
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ taskId = CreateTask(Task_FadeToBg, 5);
+ gTasks[taskId].tBackgroundId = -1;
+ sAnimBackgroundFadeState = 1;
+}
+
+#undef tBackgroundId
+#undef tState
+
+static void ScriptCmd_waitbgfadeout(void)
+{
+ if (sAnimBackgroundFadeState == 2)
+ {
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+}
+
+static void ScriptCmd_waitbgfadein(void)
+{
+ if (sAnimBackgroundFadeState == 0)
+ {
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+}
+
+static void ScriptCmd_changebg(void)
+{
+ sBattleAnimScriptPtr++;
+ LoadMoveBg(sBattleAnimScriptPtr[0]);
+ sBattleAnimScriptPtr++;
+}
+
+s8 BattleAnimAdjustPanning(s8 pan)
+{
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10)
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ pan = PAN_SIDE_OPPONENT;
+ else
+ pan = PAN_SIDE_PLAYER;
+ }
+ else if (IsContest())
+ {
+ if (gAnimBankAttacker != gAnimBankTarget || gAnimBankAttacker != 2 || pan != PAN_SIDE_OPPONENT)
+ pan *= -1;
+ }
+ else if (GetBankSide(gAnimBankAttacker) == SIDE_PLAYER)
+ {
+ if (GetBankSide(gAnimBankTarget) == SIDE_PLAYER)
+ {
+ if (pan == PAN_SIDE_OPPONENT)
+ pan = PAN_SIDE_PLAYER;
+ else if (pan != PAN_SIDE_PLAYER)
+ pan *= -1;
+ }
+ }
+ else if (GetBankSide(gAnimBankTarget) == SIDE_OPPONENT)
+ {
+ if (pan == PAN_SIDE_PLAYER)
+ pan = PAN_SIDE_OPPONENT;
+ }
+ else
+ {
+ pan *= -1;
+ }
+
+ if (pan > PAN_SIDE_OPPONENT)
+ pan = PAN_SIDE_OPPONENT;
+ else if (pan < PAN_SIDE_PLAYER)
+ pan = PAN_SIDE_PLAYER;
+
+ return pan;
+}
+
+s8 BattleAnimAdjustPanning2(s8 pan)
+{
+ if (!IsContest() && gBattleSpritesDataPtr->healthBoxesData[gAnimBankAttacker].flag_x10)
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER)
+ pan = PAN_SIDE_OPPONENT;
+ else
+ pan = PAN_SIDE_PLAYER;
+ }
+ else
+ {
+ if (GetBankSide(gAnimBankAttacker) != SIDE_PLAYER || IsContest())
+ pan = -pan;
+ }
+ return pan;
+}
+
+s16 sub_80A52EC(s16 a)
+{
+ s16 var = a;
+
+ if (var > 63)
+ var = 63;
+ else if (var < -64)
+ var = -64;
+
+ return var;
+}
+
+s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan)
+{
+ s16 ret;
+
+ if (sourcePan < targetPan)
+ ret = ((incrementPan < 0) ? -incrementPan : incrementPan);
+ else if (sourcePan > targetPan)
+ ret = -((incrementPan < 0) ? -incrementPan : incrementPan);
+ else
+ ret = 0;
+
+ return ret;
+}
+
+static void ScriptCmd_playsewithpan(void)
+{
+ u16 songId;
+ s8 pan;
+
+ sBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ pan = sBattleAnimScriptPtr[2];
+ PlaySE12WithPanning(songId, BattleAnimAdjustPanning(pan));
+ sBattleAnimScriptPtr += 3;
+}
+
+static void ScriptCmd_setpan(void)
+{
+ s8 pan;
+
+ sBattleAnimScriptPtr++;
+ pan = sBattleAnimScriptPtr[0];
+ SE12PanpotControl(BattleAnimAdjustPanning(pan));
+ sBattleAnimScriptPtr++;
+}
+
+#define tInitialPan data[0]
+#define tTargetPan data[1]
+#define tIncrementPan data[2]
+#define tFramesToWait data[3]
+#define tCurrentPan data[4]
+#define tFrameCounter data[8]
+
+static void ScriptCmd_panse_1B(void)
+{
+ u16 songNum;
+ s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan;
+ u8 framesToWait;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ songNum = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ currentPanArg = sBattleAnimScriptPtr[2];
+ incrementPan = sBattleAnimScriptPtr[3];
+ incrementPanArg = sBattleAnimScriptPtr[4];
+ framesToWait = sBattleAnimScriptPtr[5];
+
+ currentPan = BattleAnimAdjustPanning(currentPanArg);
+ targetPan = BattleAnimAdjustPanning(incrementPan);
+ incrementPan = CalculatePanIncrement(currentPan, targetPan, incrementPanArg);
+ taskId = CreateTask(Task_PanFromInitialToTarget, 1);
+ gTasks[taskId].tInitialPan = currentPan;
+ gTasks[taskId].tTargetPan = targetPan;
+ gTasks[taskId].tIncrementPan = incrementPan;
+ gTasks[taskId].tFramesToWait = framesToWait;
+ gTasks[taskId].tCurrentPan = currentPan;
+
+ PlaySE12WithPanning(songNum, currentPan);
+
+ gAnimSoundTaskCount++;
+ sBattleAnimScriptPtr += 6;
+}
+
+void Task_PanFromInitialToTarget(u8 taskId)
+{
+ bool32 destroyTask = FALSE;
+ if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait)
+ {
+ s16 pan;
+ s16 initialPanning, targetPanning, currentPan, incrementPan;
+
+ gTasks[taskId].tFrameCounter = 0;
+ initialPanning = gTasks[taskId].tInitialPan;
+ targetPanning = gTasks[taskId].tTargetPan;
+ currentPan = gTasks[taskId].tCurrentPan;
+ incrementPan = gTasks[taskId].tIncrementPan;
+ pan = currentPan + incrementPan;
+ gTasks[taskId].tCurrentPan = pan;
+
+ if (incrementPan == 0) // If we're not incrementing, just cancel the task immediately
+ {
+ destroyTask = TRUE;
+ }
+ else if (initialPanning < targetPanning) // Panning increasing
+ {
+ if (pan >= targetPanning) // Target reached
+ destroyTask = TRUE;
+ }
+ else // Panning decreasing
+ {
+ if (pan <= targetPanning) // Target reached
+ destroyTask = TRUE;
+ }
+
+ if (destroyTask)
+ {
+ pan = targetPanning;
+ DestroyTask(taskId);
+ gAnimSoundTaskCount--;
+ }
+
+ SE12PanpotControl(pan);
+ }
+}
+
+static void ScriptCmd_panse_26(void)
+{
+ u16 songId;
+ s8 currentPan, targetPan, incrementPan;
+ u8 framesToWait;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ currentPan = sBattleAnimScriptPtr[2];
+ targetPan = sBattleAnimScriptPtr[3];
+ incrementPan = sBattleAnimScriptPtr[4];
+ framesToWait = sBattleAnimScriptPtr[5];
+
+ taskId = CreateTask(Task_PanFromInitialToTarget, 1);
+ gTasks[taskId].tInitialPan = currentPan;
+ gTasks[taskId].tTargetPan = targetPan;
+ gTasks[taskId].tIncrementPan = incrementPan;
+ gTasks[taskId].tFramesToWait = framesToWait;
+ gTasks[taskId].tCurrentPan = currentPan;
+
+ PlaySE12WithPanning(songId, currentPan);
+
+ gAnimSoundTaskCount++;
+ sBattleAnimScriptPtr += 6;
+}
+
+static void ScriptCmd_panse_27(void)
+{
+ u16 songId;
+ s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan;
+ u8 framesToWait;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ currentPanArg = sBattleAnimScriptPtr[2];
+ targetPanArg = sBattleAnimScriptPtr[3];
+ incrementPanArg = sBattleAnimScriptPtr[4];
+ framesToWait = sBattleAnimScriptPtr[5];
+
+ currentPan = BattleAnimAdjustPanning2(currentPanArg);
+ targetPan = BattleAnimAdjustPanning2(targetPanArg);
+ incrementPan = BattleAnimAdjustPanning2(incrementPanArg);
+
+ taskId = CreateTask(Task_PanFromInitialToTarget, 1);
+ gTasks[taskId].tInitialPan = currentPan;
+ gTasks[taskId].tTargetPan = targetPan;
+ gTasks[taskId].tIncrementPan = incrementPan;
+ gTasks[taskId].tFramesToWait = framesToWait;
+ gTasks[taskId].tCurrentPan = currentPan;
+
+ PlaySE12WithPanning(songId, currentPan);
+
+ gAnimSoundTaskCount++;
+ sBattleAnimScriptPtr += 6;
+}
+
+#undef tInitialPan
+#undef tTargetPan
+#undef tIncrementPan
+#undef tFramesToWait
+#undef tCurrentPan
+#undef tFrameCounter
+
+#define tSongId data[0]
+#define tPanning data[1]
+#define tFramesToWait data[2]
+#define tNumberOfPlays data[3]
+#define tFrameCounter data[8]
+
+static void ScriptCmd_loopsewithpan(void)
+{
+ u16 songId;
+ s8 panningArg, panning;
+ u8 framesToWait, numberOfPlays;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ panningArg = sBattleAnimScriptPtr[2];
+ framesToWait = sBattleAnimScriptPtr[3];
+ numberOfPlays = sBattleAnimScriptPtr[4];
+ panning = BattleAnimAdjustPanning(panningArg);
+
+ taskId = CreateTask(Task_LoopAndPlaySE, 1);
+ gTasks[taskId].tSongId = songId;
+ gTasks[taskId].tPanning = panning;
+ gTasks[taskId].tFramesToWait = framesToWait;
+ gTasks[taskId].tNumberOfPlays = numberOfPlays;
+ gTasks[taskId].tFrameCounter = framesToWait;
+ gTasks[taskId].func(taskId);
+
+ gAnimSoundTaskCount++;
+ sBattleAnimScriptPtr += 5;
+}
+
+static void Task_LoopAndPlaySE(u8 taskId)
+{
+ if (gTasks[taskId].tFrameCounter++ >= gTasks[taskId].tFramesToWait)
+ {
+ u16 songId;
+ s8 panning;
+ u8 numberOfPlays;
+
+ gTasks[taskId].tFrameCounter = 0;
+ songId = gTasks[taskId].tSongId;
+ panning = gTasks[taskId].tPanning;
+ numberOfPlays = --gTasks[taskId].tNumberOfPlays;
+ PlaySE12WithPanning(songId, panning);
+ if (numberOfPlays == 0)
+ {
+ DestroyTask(taskId);
+ gAnimSoundTaskCount--;
+ }
+ }
+}
+
+#undef tSongId
+#undef tPanning
+#undef tFramesToWait
+#undef tNumberOfPlays
+#undef tFrameCounter
+
+#define tSongId data[0]
+#define tPanning data[1]
+#define tFramesToWait data[2]
+
+static void ScriptCmd_waitplaysewithpan(void)
+{
+ u16 songId;
+ s8 panningArg, panning;
+ u8 framesToWait;
+ u8 taskId;
+
+ sBattleAnimScriptPtr++;
+ songId = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ panningArg = sBattleAnimScriptPtr[2];
+ framesToWait = sBattleAnimScriptPtr[3];
+ panning = BattleAnimAdjustPanning(panningArg);
+
+ taskId = CreateTask(Task_WaitAndPlaySE, 1);
+ gTasks[taskId].tSongId = songId;
+ gTasks[taskId].tPanning = panning;
+ gTasks[taskId].tFramesToWait = framesToWait;
+
+ gAnimSoundTaskCount++;
+ sBattleAnimScriptPtr += 4;
+}
+
+static void Task_WaitAndPlaySE(u8 taskId)
+{
+ if (gTasks[taskId].tFramesToWait-- <= 0)
+ {
+ PlaySE12WithPanning(gTasks[taskId].tSongId, gTasks[taskId].tPanning);
+ DestroyTask(taskId);
+ gAnimSoundTaskCount--;
+ }
+}
+
+#undef tSongId
+#undef tPanning
+#undef tFramesToWait
+
+static void ScriptCmd_createsoundtask(void)
+{
+ TaskFunc func;
+ u8 numArgs, taskId;
+ s32 i;
+
+ sBattleAnimScriptPtr++;
+ func = (TaskFunc)SCRIPT_READ_32(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr += 4;
+ numArgs = sBattleAnimScriptPtr[0];
+ sBattleAnimScriptPtr++;
+ for (i = 0; i < numArgs; i++)
+ {
+ gBattleAnimArgs[i] = SCRIPT_READ_16(sBattleAnimScriptPtr);
+ sBattleAnimScriptPtr += 2;
+ }
+ taskId = CreateTask(func, 1);
+ func(taskId);
+ gAnimSoundTaskCount++;
+}
+
+static void ScriptCmd_waitsound(void)
+{
+ if (gAnimSoundTaskCount != 0)
+ {
+ sSoundAnimFramesToWait = 0;
+ gAnimFramesToWait = 1;
+ }
+ else if (IsSEPlaying())
+ {
+ if (++sSoundAnimFramesToWait > 90)
+ {
+ m4aMPlayStop(&gMPlay_SE1);
+ m4aMPlayStop(&gMPlay_SE2);
+ sSoundAnimFramesToWait = 0;
+ }
+ else
+ {
+ gAnimFramesToWait = 1;
+ }
+ }
+ else
+ {
+ sSoundAnimFramesToWait = 0;
+ sBattleAnimScriptPtr++;
+ gAnimFramesToWait = 0;
+ }
+}
+
+static void ScriptCmd_jumpargeq(void)
+{
+ u8 argId;
+ s16 valueToCheck;
+
+ sBattleAnimScriptPtr++;
+ argId = sBattleAnimScriptPtr[0];
+ valueToCheck = SCRIPT_READ_16(sBattleAnimScriptPtr + 1);
+
+ if (valueToCheck == gBattleAnimArgs[argId])
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr + 3);
+ else
+ sBattleAnimScriptPtr += 7;
+}
+
+static void ScriptCmd_jumpifcontest(void)
+{
+ sBattleAnimScriptPtr++;
+ if (IsContest())
+ sBattleAnimScriptPtr = SCRIPT_READ_PTR(sBattleAnimScriptPtr);
+ else
+ sBattleAnimScriptPtr += 4;
+}
+
+static void ScriptCmd_monbgprio_28(void)
+{
+ u8 wantedBank;
+ u8 bank;
+ u8 bankIdentity;
+
+ wantedBank = sBattleAnimScriptPtr[1];
+ sBattleAnimScriptPtr += 2;
+
+ if (wantedBank != ANIM_BANK_ATTACKER)
+ bank = gAnimBankTarget;
+ else
+ bank = gAnimBankAttacker;
+
+ bankIdentity = GetBankIdentity(bank);
+ if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2))
+ {
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
+ }
+}
+
+static void ScriptCmd_monbgprio_29(void)
+{
+ sBattleAnimScriptPtr++;
+ if (!IsContest())
+ {
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
+ }
+}
+
+static void ScriptCmd_monbgprio_2A(void)
+{
+ u8 wantedBank;
+ u8 bankIdentity;
+ u8 bank;
+
+ wantedBank = sBattleAnimScriptPtr[1];
+ sBattleAnimScriptPtr += 2;
+ if (GetBankSide(gAnimBankAttacker) != GetBankSide(gAnimBankTarget))
+ {
+ if (wantedBank != ANIM_BANK_ATTACKER)
+ bank = gAnimBankTarget;
+ else
+ bank = gAnimBankAttacker;
+
+ bankIdentity = GetBankIdentity(bank);
+ if (!IsContest() && (bankIdentity == IDENTITY_PLAYER_MON1 || bankIdentity == IDENTITY_OPPONENT_MON2))
+ {
+ SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
+ SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
+ }
+ }
+}
+
+static void ScriptCmd_invisible(void)
+{
+ u8 spriteId;
+
+ spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]);
+ if (spriteId != 0xFF)
+ gSprites[spriteId].invisible = 1;
+
+ sBattleAnimScriptPtr += 2;
+}
+
+static void ScriptCmd_visible(void)
+{
+ u8 spriteId;
+
+ spriteId = GetAnimBankSpriteId(sBattleAnimScriptPtr[1]);
+ if (spriteId != 0xFF)
+ gSprites[spriteId].invisible = 0;
+
+ sBattleAnimScriptPtr += 2;
+}
+
+static void ScriptCmd_doublebattle_2D(void)
+{
+ u8 wantedBank;
+ u8 r4;
+ u8 spriteId;
+
+ wantedBank = sBattleAnimScriptPtr[1];
+ sBattleAnimScriptPtr += 2;
+ if (!IsContest() && IsDoubleBattle()
+ && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget))
+ {
+ if (wantedBank == ANIM_BANK_ATTACKER)
+ {
+ r4 = sub_80A8364(gAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
+ }
+ else
+ {
+ r4 = sub_80A8364(gAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
+ }
+ if (spriteId != 0xFF)
+ {
+ gSprites[spriteId].invisible = FALSE;
+ if (r4 == 2)
+ gSprites[spriteId].oam.priority = 3;
+
+ if (r4 == 1)
+ sub_80A477C(FALSE);
+ else
+ sub_80A477C(TRUE);
+ }
+ }
+}
+
+static void ScriptCmd_doublebattle_2E(void)
+{
+ u8 wantedBank;
+ u8 r4;
+ u8 spriteId;
+
+ wantedBank = sBattleAnimScriptPtr[1];
+ sBattleAnimScriptPtr += 2;
+ if (!IsContest() && IsDoubleBattle()
+ && GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget))
+ {
+ if (wantedBank == ANIM_BANK_ATTACKER)
+ {
+ r4 = sub_80A8364(gAnimBankAttacker);
+ spriteId = GetAnimBankSpriteId(0);
+ }
+ else
+ {
+ r4 = sub_80A8364(gAnimBankTarget);
+ spriteId = GetAnimBankSpriteId(1);
+ }
+
+ if (spriteId != 0xFF && r4 == 2)
+ gSprites[spriteId].oam.priority = 2;
+ }
+}
+
+static void ScriptCmd_stopsound(void)
+{
+ m4aMPlayStop(&gMPlay_SE1);
+ m4aMPlayStop(&gMPlay_SE2);
+ sBattleAnimScriptPtr++;
+}
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
new file mode 100644
index 000000000..9ac18c72f
--- /dev/null
+++ b/src/battle_controllers.c
@@ -0,0 +1,1551 @@
+#include "global.h"
+#include "battle.h"
+#include "battle_controllers.h"
+#include "link.h"
+#include "task.h"
+#include "battle_ai_script_commands.h"
+#include "battle_anim.h"
+#include "pokemon.h"
+#include "species.h"
+#include "recorded_battle.h"
+#include "util.h"
+#include "abilities.h"
+#include "battle_message.h"
+
+extern u32 gBattleTypeFlags;
+extern u32 gBattleExecBuffer;
+extern void (*gBattleMainFunc)(void);
+extern void (*gBattleBankFunc[BATTLE_BANKS_COUNT])(void);
+extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT];
+extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT];
+extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT];
+extern u8 gNoOfAllBanks;
+extern u8 gActiveBank;
+extern u8 gUnknown_0202428C;
+extern u32 gUnknown_02022FF4;
+extern u8 gUnknown_0203C7B4;
+extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200];
+extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
+extern u8 gBattleBuffersTransferData[0x100];
+extern u8 gUnknown_02022D08;
+extern u8 gUnknown_02022D09;
+extern u8 gUnknown_02022D0A;
+extern u8 gBankAttacker;
+extern u8 gBankTarget;
+extern u8 gAbsentBankFlags;
+extern u8 gEffectBank;
+extern u16 gBattleWeather;
+extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
+extern u16 gCurrentMove;
+extern u16 gLastUsedMove;
+extern u16 gLastUsedItem;
+extern u8 gBattleOutcome;
+extern u8 gLastUsedAbility;
+extern u8 gStringBank;
+
+extern const struct BattleMove gBattleMoves[];
+
+extern void task00_08081A90(u8 taskId); // cable_club
+extern void sub_81B8D64(u8 bank, u8 arg1); // party_menu
+
+// this file's funcionts
+static void CreateTasksForSendRecvLinkBuffers(void);
+static void SetControllersVariablesInLinkBattle(void);
+static void SetControllersVariables(void);
+static void SetBattlePartyIds(void);
+static void Task_HandleSendLinkBuffersData(u8 taskId);
+static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId);
+
+void HandleLinkBattleSetup(void)
+{
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ if (gLinkVSyncDisabled)
+ sub_800B488();
+ if (!gReceivedRemoteLinkPlayers)
+ sub_8009734();
+ CreateTask(task00_08081A90, 0);
+ CreateTasksForSendRecvLinkBuffers();
+ }
+}
+
+void SetUpBattleVarsAndBirchZigzagoon(void)
+{
+ s32 i;
+
+ gBattleMainFunc = nullsub_20;
+
+ for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ {
+ gBattleBankFunc[i] = nullsub_21;
+ gBanksByIdentity[i] = 0xFF;
+ gActionSelectionCursor[i] = 0;
+ gMoveSelectionCursor[i] = 0;
+ }
+
+ HandleLinkBattleSetup();
+ gBattleExecBuffer = 0;
+ ClearBattleAnimationVars();
+ ClearBattleMonForms();
+ BattleAI_HandleItemUseBeforeAISetup(0xF);
+
+ if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
+ {
+ ZeroEnemyPartyMons();
+ CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, 32, 0, 0, 0, 0);
+ i = 0;
+ SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &i);
+ }
+
+ gUnknown_02022FF4 = 0;
+ gUnknown_0202428C = 0;
+}
+
+void sub_8032768(void)
+{
+ s32 i;
+ u8 *data;
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
+ sub_8184DA4(1);
+ else
+ sub_8184DA4(2);
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
+ sub_8185EB8();
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ SetControllersVariablesInLinkBattle();
+ else
+ SetControllersVariables();
+
+ SetBattlePartyIds();
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ sub_81B8D64(i, 0);
+ }
+
+ for (i = 0; i < sizeof(gBattleStruct->field_1A4); i++)
+ *(gBattleStruct->field_1A4 + i) = 0;
+
+ for (i = 0; i < sizeof(gBattleStruct->field_204); i++)
+ *(gBattleStruct->field_204 + i) = 0;
+}
+
+static void SetControllersVariables(void)
+{
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ {
+ gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToPlayerPartnerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ }
+ else
+ {
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToPlayerPartnerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ }
+
+ gNoOfAllBanks = 4;
+
+ sub_81B8D64(0, 0);
+ sub_81B8D64(1, 0);
+ sub_81B8D64(2, 1);
+ sub_81B8D64(3, 1);
+
+ gBattlePartyID[0] = 0;
+ gBattlePartyID[1] = 0;
+ gBattlePartyID[2] = 3;
+ gBattlePartyID[3] = 3;
+ }
+ else if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ gBattleBankFunc[0] = SetBankFuncToSafariBufferRunCommand;
+ else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
+ gBattleBankFunc[0] = SetBankFuncToWallyBufferRunCommand;
+ else
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gNoOfAllBanks = 2;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_x80000000)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gNoOfAllBanks = 2;
+ }
+ else // see how the banks are switched
+ {
+ gBattleBankFunc[1] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[0] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+
+ gNoOfAllBanks = 2;
+ }
+ }
+ else
+ {
+ gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+ }
+ }
+ }
+ else
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+
+ gNoOfAllBanks = 4;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[0] = 0;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = 1;
+
+ gBattleBankFunc[2] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[2] = 2;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = 3;
+
+ gNoOfAllBanks = 4;
+
+ sub_81B8D64(0, 0);
+ sub_81B8D64(1, 0);
+ sub_81B8D64(2, 1);
+ sub_81B8D64(3, 1);
+
+ gBattlePartyID[0] = 0;
+ gBattlePartyID[1] = 0;
+ gBattlePartyID[2] = 3;
+ gBattlePartyID[3] = 3;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ u8 var; // multiplayer Id in a recorded battle?
+
+ for (var = gUnknown_0203C7B4, i = 0; i < BATTLE_BANKS_COUNT; i++)
+ {
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ sub_81B8D64(gLinkPlayers[i].lp_field_18, 0);
+ break;
+ case 1:
+ case 2:
+ sub_81B8D64(gLinkPlayers[i].lp_field_18, 1);
+ break;
+ }
+
+ if (i == var)
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ else if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[var].lp_field_18 & 1))
+ || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[var].lp_field_18 & 1)))
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON1;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_PLAYER_MON2;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ else
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON1;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = IDENTITY_OPPONENT_MON2;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ }
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_WILD)
+ {
+ gBattleBankFunc[0] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
+ {
+ gBattleBankFunc[1] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[3] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ }
+ else
+ {
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+ }
+ }
+ else
+ {
+ gBattleBankFunc[1] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[3] = SetBankFuncToRecordedPlayerBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_PLAYER_MON2;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_x2000000)
+ {
+ gBattleBankFunc[0] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToRecordedOpponentBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+ }
+ else
+ {
+ gBattleBankFunc[0] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+ }
+ }
+ }
+ }
+}
+
+static void SetControllersVariablesInLinkBattle(void)
+{
+ s32 i;
+ u8 multiplayerId;
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_WILD)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gNoOfAllBanks = 2;
+ }
+ else
+ {
+ gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+
+ gNoOfAllBanks = 2;
+ }
+ }
+ else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_WILD)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+
+ gNoOfAllBanks = 4;
+ }
+ else
+ {
+ gBattleBankFunc[1] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[0] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[3] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[2] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_OPPONENT_MON2;
+
+ gNoOfAllBanks = 4;
+ }
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_WILD)
+ {
+ gBattleMainFunc = BeginBattleIntro;
+
+ gBattleBankFunc[0] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToLinkPartnerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+
+ gNoOfAllBanks = 4;
+ }
+ else
+ {
+ gBattleBankFunc[0] = SetBankFuncToLinkPartnerBufferRunCommand;
+ gBanksByIdentity[0] = IDENTITY_PLAYER_MON1;
+
+ gBattleBankFunc[1] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[1] = IDENTITY_OPPONENT_MON1;
+
+ gBattleBankFunc[2] = SetBankFuncToPlayerBufferRunCommand;
+ gBanksByIdentity[2] = IDENTITY_PLAYER_MON2;
+
+ gBattleBankFunc[3] = SetBankFuncToLinkOpponentBufferRunCommand;
+ gBanksByIdentity[3] = IDENTITY_OPPONENT_MON2;
+
+ gNoOfAllBanks = 4;
+ }
+
+ sub_81B8D64(0, 0);
+ sub_81B8D64(1, 0);
+ sub_81B8D64(2, 1);
+ sub_81B8D64(3, 1);
+ gBattlePartyID[0] = 0;
+ gBattlePartyID[1] = 0;
+ gBattlePartyID[2] = 3;
+ gBattlePartyID[3] = 3;
+ }
+ else
+ {
+ multiplayerId = GetMultiplayerId();
+
+ if (gBattleTypeFlags & BATTLE_TYPE_WILD)
+ gBattleMainFunc = BeginBattleIntro;
+
+ for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ {
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ sub_81B8D64(gLinkPlayers[i].lp_field_18, 0);
+ break;
+ case 1:
+ case 2:
+ sub_81B8D64(gLinkPlayers[i].lp_field_18, 1);
+ break;
+ }
+
+ if (i == multiplayerId)
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToPlayerBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ else
+ {
+ if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[multiplayerId].lp_field_18 & 1))
+ || ((gLinkPlayers[i].lp_field_18 & 1) && (gLinkPlayers[multiplayerId].lp_field_18 & 1)))
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkPartnerBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 0;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 2;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ else
+ {
+ gBattleBankFunc[gLinkPlayers[i].lp_field_18] = SetBankFuncToLinkOpponentBufferRunCommand;
+ switch (gLinkPlayers[i].lp_field_18)
+ {
+ case 0:
+ case 3:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 1;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 0;
+ break;
+ case 1:
+ case 2:
+ gBanksByIdentity[gLinkPlayers[i].lp_field_18] = 3;
+ gBattlePartyID[gLinkPlayers[i].lp_field_18] = 3;
+ break;
+ }
+ }
+ }
+ }
+
+ gNoOfAllBanks = 4;
+ }
+}
+
+static void SetBattlePartyIds(void)
+{
+ s32 i, j;
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
+ {
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ for (j = 0; j < 6; j++)
+ {
+ if (i < 2)
+ {
+ if (GET_BANK_SIDE2(i) == SIDE_PLAYER)
+ {
+ if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
+ && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0)
+ {
+ gBattlePartyID[i] = j;
+ break;
+ }
+ }
+ else
+ {
+ if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
+ && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0)
+ {
+ gBattlePartyID[i] = j;
+ break;
+ }
+ }
+ }
+ else
+ {
+ if (GET_BANK_SIDE2(i) == SIDE_PLAYER)
+ {
+ if (GetMonData(&gPlayerParty[j], MON_DATA_HP) != 0
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES) != SPECIES_NONE // Probably a typo by Game Freak. The rest use SPECIES2.
+ && GetMonData(&gPlayerParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
+ && GetMonData(&gPlayerParty[j], MON_DATA_IS_EGG) == 0
+ && gBattlePartyID[i - 2] != j)
+ {
+ gBattlePartyID[i] = j;
+ break;
+ }
+ }
+ else
+ {
+ if (GetMonData(&gEnemyParty[j], MON_DATA_HP) != 0
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_NONE
+ && GetMonData(&gEnemyParty[j], MON_DATA_SPECIES2) != SPECIES_EGG
+ && GetMonData(&gEnemyParty[j], MON_DATA_IS_EGG) == 0
+ && gBattlePartyID[i - 2] != j)
+ {
+ gBattlePartyID[i] = j;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS)
+ gBattlePartyID[1] = 0, gBattlePartyID[3] = 3;
+ }
+}
+
+static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size)
+{
+ s32 i;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ {
+ PrepareBufferDataTransferLink(bufferId, size, data);
+ }
+ else
+ {
+ switch (bufferId)
+ {
+ case 0:
+ for (i = 0; i < size; i++)
+ {
+ gBattleBufferA[gActiveBank][i] = *data;
+ data++;
+ }
+ break;
+ case 1:
+ for (i = 0; i < size; i++)
+ {
+ gBattleBufferB[gActiveBank][i] = *data;
+ data++;
+ }
+ break;
+ }
+ }
+}
+
+static void CreateTasksForSendRecvLinkBuffers(void)
+{
+ gUnknown_02022D08 = CreateTask(Task_HandleSendLinkBuffersData, 0);
+ gTasks[gUnknown_02022D08].data[11] = 0;
+ gTasks[gUnknown_02022D08].data[12] = 0;
+ gTasks[gUnknown_02022D08].data[13] = 0;
+ gTasks[gUnknown_02022D08].data[14] = 0;
+ gTasks[gUnknown_02022D08].data[15] = 0;
+
+ gUnknown_02022D09 = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0);
+ gTasks[gUnknown_02022D09].data[12] = 0;
+ gTasks[gUnknown_02022D09].data[13] = 0;
+ gTasks[gUnknown_02022D09].data[14] = 0;
+ gTasks[gUnknown_02022D09].data[15] = 0;
+
+ gUnknown_02022D0A = 0;
+}
+
+enum
+{
+ LINK_BUFF_BUFFER_ID,
+ LINK_BUFF_ACTIVE_BANK,
+ LINK_BUFF_ATTACKER,
+ LINK_BUFF_TARGET,
+ LINK_BUFF_SIZE_LO,
+ LINK_BUFF_SIZE_HI,
+ LINK_BUFF_ABSENT_BANK_FLAGS,
+ LINK_BUFF_EFFECT_BANK,
+ LINK_BUFF_DATA
+};
+
+void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data)
+{
+ s32 alignedSize;
+ s32 i;
+
+ alignedSize = size - size % 4 + 4;
+ if (gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE)
+ {
+ gTasks[gUnknown_02022D08].data[12] = gTasks[gUnknown_02022D08].data[14];
+ gTasks[gUnknown_02022D08].data[14] = 0;
+ }
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_BUFFER_ID] = bufferId;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ACTIVE_BANK] = gActiveBank;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ATTACKER] = gBankAttacker;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_TARGET] = gBankTarget;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_LO] = alignedSize;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_ABSENT_BANK_FLAGS] = gAbsentBankFlags;
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_EFFECT_BANK] = gEffectBank;
+
+ for (i = 0; i < size; i++)
+ gLinkBattleSendBuffer[gTasks[gUnknown_02022D08].data[14] + LINK_BUFF_DATA + i] = data[i];
+
+ gTasks[gUnknown_02022D08].data[14] = gTasks[gUnknown_02022D08].data[14] + alignedSize + LINK_BUFF_DATA;
+}
+
+static void Task_HandleSendLinkBuffersData(u8 taskId)
+{
+ u16 var;
+ u16 blockSize;
+
+ switch (gTasks[taskId].data[11])
+ {
+ case 0:
+ gTasks[taskId].data[10] = 100;
+ gTasks[taskId].data[11]++;
+ break;
+ case 1:
+ gTasks[taskId].data[10]--;
+ if (gTasks[taskId].data[10] == 0)
+ gTasks[taskId].data[11]++;
+ break;
+ case 2:
+ if (gLinkVSyncDisabled)
+ {
+ gTasks[taskId].data[11]++;
+ }
+ else
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
+ var = 2;
+ else
+ var = (gBattleTypeFlags & BATTLE_TYPE_MULTI) ? 4 : 2;
+
+ if (sub_800ABAC() >= var)
+ {
+ if (sub_800ABBC())
+ {
+ sub_800A620();
+ gTasks[taskId].data[11]++;
+ }
+ else
+ {
+ gTasks[taskId].data[11]++;
+ }
+ }
+ }
+ break;
+ case 3:
+ if (gTasks[taskId].data[15] != gTasks[taskId].data[14])
+ {
+ if (gTasks[taskId].data[13] == 0)
+ {
+ if (gTasks[taskId].data[15] > gTasks[taskId].data[14]
+ && gTasks[taskId].data[15] == gTasks[taskId].data[12])
+ {
+ gTasks[taskId].data[12] = 0;
+ gTasks[taskId].data[15] = 0;
+ }
+ blockSize = (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8)) + LINK_BUFF_DATA;
+ SendBlock(bitmask_all_link_players_but_self(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize);
+ gTasks[taskId].data[11]++;
+ }
+ else
+ {
+ gTasks[taskId].data[13]--;
+ break;
+ }
+ }
+ break;
+ case 4:
+ if (sub_800A520())
+ {
+ blockSize = gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8);
+ gTasks[taskId].data[13] = 1;
+ gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA;
+ gTasks[taskId].data[11] = 3;
+ }
+ break;
+ case 5:
+ gTasks[taskId].data[13]--;
+ if (gTasks[taskId].data[13] == 0)
+ {
+ gTasks[taskId].data[13] = 1;
+ gTasks[taskId].data[11] = 3;
+ }
+ break;
+ }
+}
+
+// fix me
+void sub_8033648(void)
+{
+ u8 i;
+ s32 j;
+ u16 r6;
+ u8 *recvBuffer;
+ u8 *dest;
+ u8 *src;
+
+ if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_20))
+ {
+ sub_8011BD0();
+ for (i = 0; i < GetLinkPlayerCount(); i++)
+ {
+ if (GetBlockReceivedStatus() & gBitTable[i])
+ {
+ ResetBlockReceivedFlag(i);
+ recvBuffer = (u8 *)gBlockRecvBuffer[i];
+ #ifndef NONMATCHING
+ asm("");
+ recvBuffer = (u8 *)&gBlockRecvBuffer[i];
+ #endif
+ r6 = gBlockRecvBuffer[i][2];
+
+ if (gTasks[gUnknown_02022D09].data[14] + 9 + r6 > 0x1000)
+ {
+ gTasks[gUnknown_02022D09].data[12] = gTasks[gUnknown_02022D09].data[14];
+ gTasks[gUnknown_02022D09].data[14] = 0;
+ }
+
+ dest = &gLinkBattleRecvBuffer[gTasks[gUnknown_02022D09].data[14]];
+ src = recvBuffer;
+
+ for (j = 0; j < r6 + 8; j++)
+ dest[j] = src[j];
+
+ gTasks[gUnknown_02022D09].data[14] = gTasks[gUnknown_02022D09].data[14] + r6 + 8;
+ }
+ }
+ }
+}
+
+static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId)
+{
+ u16 blockSize;
+ u8 bank;
+ u8 var;
+
+ if (gTasks[taskId].data[15] != gTasks[taskId].data[14])
+ {
+ if (gTasks[taskId].data[15] > gTasks[taskId].data[14]
+ && gTasks[taskId].data[15] == gTasks[taskId].data[12])
+ {
+ gTasks[taskId].data[12] = 0;
+ gTasks[taskId].data[15] = 0;
+ }
+ bank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BANK];
+ blockSize = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8);
+
+ switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0])
+ {
+ case 0:
+ if (gBattleExecBuffer & gBitTable[bank])
+ return;
+
+ memcpy(gBattleBufferA[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize);
+ sub_803F850(bank);
+
+ if (!(gBattleTypeFlags & BATTLE_TYPE_WILD))
+ {
+ gBankAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 2];
+ gBankTarget = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 3];
+ gAbsentBankFlags = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 6];
+ gEffectBank = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 7];
+ }
+ break;
+ case 1:
+ memcpy(gBattleBufferB[bank], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 8], blockSize);
+ break;
+ case 2:
+ var = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA];
+ gBattleExecBuffer &= ~(gBitTable[bank] << (var * 4));
+ break;
+ }
+
+ gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA;
+ }
+}
+
+void EmitGetMonData(u8 bufferId, u8 arg1, u8 arg2)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_GETMONDATA;
+ gBattleBuffersTransferData[1] = arg1;
+ gBattleBuffersTransferData[2] = arg2;
+ gBattleBuffersTransferData[3] = 0;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA;
+ gBattleBuffersTransferData[1] = monId;
+ gBattleBuffersTransferData[2] = bytes;
+ gBattleBuffersTransferData[3] = 0;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitSetMonData(u8 bufferId, u8 request, u8 c, u8 bytes, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA;
+ gBattleBuffersTransferData[1] = request;
+ gBattleBuffersTransferData[2] = c;
+ for (i = 0; i < bytes; i++)
+ gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 3 + bytes);
+}
+
+void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA;
+ gBattleBuffersTransferData[1] = monId;
+ gBattleBuffersTransferData[2] = bytes;
+ for (i = 0; i < bytes; i++)
+ gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, bytes + 3);
+}
+
+void EmitLoadMonSprite(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_LOADMONSPRITE;
+ gBattleBuffersTransferData[1] = 4;
+ gBattleBuffersTransferData[2] = 4;
+ gBattleBuffersTransferData[3] = 4;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_SWITCHINANIM;
+ gBattleBuffersTransferData[1] = partyId;
+ gBattleBuffersTransferData[2] = dontClearSubstituteBit;
+ gBattleBuffersTransferData[3] = 5;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitReturnMonToBall(u8 bufferId, u8 arg1)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_RETURNMONTOBALL;
+ gBattleBuffersTransferData[1] = arg1;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitDrawTrainerPic(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_DRAWTRAINERPIC;
+ gBattleBuffersTransferData[1] = 7;
+ gBattleBuffersTransferData[2] = 7;
+ gBattleBuffersTransferData[3] = 7;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitTrainerSlide(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDE;
+ gBattleBuffersTransferData[1] = 8;
+ gBattleBuffersTransferData[2] = 8;
+ gBattleBuffersTransferData[3] = 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitTrainerSlideBack(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_TRAINERSLIDEBACK;
+ gBattleBuffersTransferData[1] = 9;
+ gBattleBuffersTransferData[2] = 9;
+ gBattleBuffersTransferData[3] = 9;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitFaintAnimation(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_FAINTANIMATION;
+ gBattleBuffersTransferData[1] = 10;
+ gBattleBuffersTransferData[2] = 10;
+ gBattleBuffersTransferData[3] = 10;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd11(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_11;
+ gBattleBuffersTransferData[1] = 11;
+ gBattleBuffersTransferData[2] = 11;
+ gBattleBuffersTransferData[3] = 11;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd12(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_12;
+ gBattleBuffersTransferData[1] = 12;
+ gBattleBuffersTransferData[2] = 12;
+ gBattleBuffersTransferData[3] = 12;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitBallThrow(u8 bufferId, u8 caseId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_BALLTHROW;
+ gBattleBuffersTransferData[1] = caseId;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitPause(u8 bufferId, u8 toWait, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_PAUSE;
+ gBattleBuffersTransferData[1] = toWait;
+ for (i = 0; i < toWait * 3; i++)
+ gBattleBuffersTransferData[2 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, toWait * 3 + 2);
+}
+
+void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_MOVEANIMATION;
+ gBattleBuffersTransferData[1] = move;
+ gBattleBuffersTransferData[2] = (move & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = turnOfMove;
+ gBattleBuffersTransferData[4] = movePower;
+ gBattleBuffersTransferData[5] = (movePower & 0xFF00) >> 8;
+ gBattleBuffersTransferData[6] = dmg;
+ gBattleBuffersTransferData[7] = (dmg & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[8] = (dmg & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[9] = (dmg & 0xFF000000) >> 24;
+ gBattleBuffersTransferData[10] = friendship;
+ gBattleBuffersTransferData[11] = multihit;
+ if (WEATHER_HAS_EFFECT2)
+ {
+ gBattleBuffersTransferData[12] = gBattleWeather;
+ gBattleBuffersTransferData[13] = (gBattleWeather & 0xFF00) >> 8;
+ }
+ else
+ {
+ gBattleBuffersTransferData[12] = 0;
+ gBattleBuffersTransferData[13] = 0;
+ }
+ gBattleBuffersTransferData[14] = 0;
+ gBattleBuffersTransferData[15] = 0;
+ memcpy(&gBattleBuffersTransferData[16], disableStructPtr, sizeof(struct DisableStruct));
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 16 + sizeof(struct DisableStruct));
+}
+
+void EmitPrintString(u8 bufferId, u16 stringID)
+{
+ s32 i;
+ struct StringInfoBattle* stringInfo;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING;
+ gBattleBuffersTransferData[1] = gBattleOutcome;
+ gBattleBuffersTransferData[2] = stringID;
+ gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
+
+ stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
+ stringInfo->currentMove = gCurrentMove;
+ stringInfo->lastMove = gLastUsedMove;
+ stringInfo->lastItem = gLastUsedItem;
+ stringInfo->lastAbility = gLastUsedAbility;
+ stringInfo->scrActive = gBattleScripting.bank;
+ stringInfo->unk1605E = gBattleStruct->field_52;
+ stringInfo->hpScale = gBattleStruct->hpScale;
+ stringInfo->StringBank = gStringBank;
+ stringInfo->moveType = gBattleMoves[gCurrentMove].type;
+
+ for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ stringInfo->abilities[i] = gBattleMons[i].ability;
+ for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++)
+ {
+ stringInfo->textBuffs[0][i] = gBattleTextBuff1[i];
+ stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
+ stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
+ }
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
+}
+
+void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
+{
+ s32 i;
+ struct StringInfoBattle* stringInfo;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
+ gBattleBuffersTransferData[1] = 17;
+ gBattleBuffersTransferData[2] = stringID;
+ gBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8;
+
+ stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
+ stringInfo->currentMove = gCurrentMove;
+ stringInfo->lastMove = gLastUsedMove;
+ stringInfo->lastItem = gLastUsedItem;
+ stringInfo->lastAbility = gLastUsedAbility;
+ stringInfo->scrActive = gBattleScripting.bank;
+ stringInfo->unk1605E = gBattleStruct->field_52;
+
+ for (i = 0; i < BATTLE_BANKS_COUNT; i++)
+ stringInfo->abilities[i] = gBattleMons[i].ability;
+ for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++)
+ {
+ stringInfo->textBuffs[0][i] = gBattleTextBuff1[i];
+ stringInfo->textBuffs[1][i] = gBattleTextBuff2[i];
+ stringInfo->textBuffs[2][i] = gBattleTextBuff3[i];
+ }
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
+}
+
+void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION;
+ gBattleBuffersTransferData[1] = arg1;
+ gBattleBuffersTransferData[2] = arg2;
+ gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd19(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_19;
+ gBattleBuffersTransferData[1] = 19;
+ gBattleBuffersTransferData[2] = 19;
+ gBattleBuffersTransferData[3] = 19;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEMOVE;
+ gBattleBuffersTransferData[1] = isDoubleBattle;
+ gBattleBuffersTransferData[2] = NoPpNumber;
+ gBattleBuffersTransferData[3] = 0;
+ for (i = 0; i < sizeof(*movePpData); i++)
+ gBattleBuffersTransferData[4 + i] = *((u8*)(movePpData) + i);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(*movePpData) + 4);
+}
+
+void EmitOpenBag(u8 bufferId, u8 *arg1)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_OPENBAG;
+ for (i = 0; i < 3; i++)
+ gBattleBuffersTransferData[1 + i] = arg1[i];
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON;
+ gBattleBuffersTransferData[1] = caseId;
+ gBattleBuffersTransferData[2] = arg2;
+ gBattleBuffersTransferData[3] = abilityId;
+ for (i = 0; i < 3; i++)
+ gBattleBuffersTransferData[4 + i] = arg4[i];
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 8); // but only 7 bytes were written
+}
+
+void EmitCmd23(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_23;
+ gBattleBuffersTransferData[1] = 23;
+ gBattleBuffersTransferData[2] = 23;
+ gBattleBuffersTransferData[3] = 23;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+// why is the argument u16 if it's being cast to s16 anyway?
+void EmitHealthBarUpdate(u8 bufferId, u16 hpValue)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_HEALTHBARUPDATE;
+ gBattleBuffersTransferData[1] = 0;
+ gBattleBuffersTransferData[2] = (s16)hpValue;
+ gBattleBuffersTransferData[3] = ((s16)hpValue & 0xFF00) >> 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+// why is the argument u16 if it's being cast to s16 anyway?
+void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_EXPUPDATE;
+ gBattleBuffersTransferData[1] = partyId;
+ gBattleBuffersTransferData[2] = (s16)expPoints;
+ gBattleBuffersTransferData[3] = ((s16)expPoints & 0xFF00) >> 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_STATUSICONUPDATE;
+ gBattleBuffersTransferData[1] = status1;
+ gBattleBuffersTransferData[2] = (status1 & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[3] = (status1 & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[4] = (status1 & 0xFF000000) >> 24;
+ gBattleBuffersTransferData[5] = status2;
+ gBattleBuffersTransferData[6] = (status2 & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[7] = (status2 & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[8] = (status2 & 0xFF000000) >> 24;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 9);
+}
+
+void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_STATUSANIMATION;
+ gBattleBuffersTransferData[1] = status2;
+ gBattleBuffersTransferData[2] = status;
+ gBattleBuffersTransferData[3] = (status & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[4] = (status & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[5] = (status & 0xFF000000) >> 24;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 6);
+}
+
+void EmitStatusXor(u8 bufferId, u8 b)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR;
+ gBattleBuffersTransferData[1] = b;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitDataTransfer(u8 bufferId, u16 size, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_DATATRANSFER;
+ gBattleBuffersTransferData[1] = 29;
+ gBattleBuffersTransferData[2] = size;
+ gBattleBuffersTransferData[3] = (size & 0xFF00) >> 8;
+ for (i = 0; i < size; i++)
+ gBattleBuffersTransferData[4 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 4);
+}
+
+void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_DMA3TRANSFER;
+ gBattleBuffersTransferData[1] = (u32)(dst);
+ gBattleBuffersTransferData[2] = ((u32)(dst) & 0x0000FF00) >> 8;
+ gBattleBuffersTransferData[3] = ((u32)(dst) & 0x00FF0000) >> 16;
+ gBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24;
+ gBattleBuffersTransferData[5] = size;
+ gBattleBuffersTransferData[6] = (size & 0xFF00) >> 8;
+ for (i = 0; i < size; i++)
+ gBattleBuffersTransferData[7 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 7);
+}
+
+void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_31;
+ gBattleBuffersTransferData[1] = songId;
+ gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
+ for (i = 0; i < songId; i++) // ????
+ gBattleBuffersTransferData[3 + i] = *(u8*)(unusedDumbDataParameter++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, songId + 3);
+}
+
+void EmitCmd32(u8 bufferId, u16 size, void *data)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_32;
+ gBattleBuffersTransferData[1] = size;
+ gBattleBuffersTransferData[2] = (size & 0xFF00) >> 8;
+ for (i = 0; i < size; i++)
+ gBattleBuffersTransferData[3 + i] = *(u8*)(data++);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, size + 3);
+}
+
+void EmitCmd33(u8 bufferId, u8 arg1, u16 arg2)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_33;
+ gBattleBuffersTransferData[1] = arg1;
+ gBattleBuffersTransferData[2] = arg2;
+ gBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd34(u8 bufferId, u8 b, u8 *c)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_34;
+ gBattleBuffersTransferData[1] = b;
+ for (i = 0; i < 3; i++)
+ gBattleBuffersTransferData[2 + i] = c[i];
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 5);
+}
+
+void EmitCmd35(u8 bufferId, u16 b)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_35;
+ gBattleBuffersTransferData[1] = b;
+ gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = 0;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd36(u8 bufferId, u16 b)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_36;
+ gBattleBuffersTransferData[1] = b;
+ gBattleBuffersTransferData[2] = (b & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = 0;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd37(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_37;
+ gBattleBuffersTransferData[1] = 37;
+ gBattleBuffersTransferData[2] = 37;
+ gBattleBuffersTransferData[3] = 37;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd38(u8 bufferId, u8 b)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_38;
+ gBattleBuffersTransferData[1] = b;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitCmd39(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_39;
+ gBattleBuffersTransferData[1] = 39;
+ gBattleBuffersTransferData[2] = 39;
+ gBattleBuffersTransferData[3] = 39;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd40(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_40;
+ gBattleBuffersTransferData[1] = 40;
+ gBattleBuffersTransferData[2] = 40;
+ gBattleBuffersTransferData[3] = 40;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitHitAnimation(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_HITANIMATION;
+ gBattleBuffersTransferData[1] = 41;
+ gBattleBuffersTransferData[2] = 41;
+ gBattleBuffersTransferData[3] = 41;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd42(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_42;
+ gBattleBuffersTransferData[1] = 42;
+ gBattleBuffersTransferData[2] = 42;
+ gBattleBuffersTransferData[3] = 42;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitEffectivenessSound(u8 bufferId, u16 songId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
+ gBattleBuffersTransferData[1] = songId;
+ gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = 0;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM;
+ gBattleBuffersTransferData[1] = songId;
+ gBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8;
+ gBattleBuffersTransferData[3] = playBGM;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitFaintingCry(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_FAINTINGCRY;
+ gBattleBuffersTransferData[1] = 45;
+ gBattleBuffersTransferData[2] = 45;
+ gBattleBuffersTransferData[3] = 45;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitIntroSlide(u8 bufferId, u8 terrainId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_INTROSLIDE;
+ gBattleBuffersTransferData[1] = terrainId;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitIntroTrainerBallThrow(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_INTROTRAINERBALLTHROW;
+ gBattleBuffersTransferData[1] = 47;
+ gBattleBuffersTransferData[2] = 47;
+ gBattleBuffersTransferData[3] = 47;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2)
+{
+ s32 i;
+
+ gBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY;
+ gBattleBuffersTransferData[1] = arg2 & 0x7F;
+ gBattleBuffersTransferData[2] = (arg2 & 0x80) >> 7;
+ gBattleBuffersTransferData[3] = 48;
+ for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * 6); i++)
+ gBattleBuffersTransferData[4 + i] = *(i + (u8*)(hpAndStatus));
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct HpAndStatus) * 6 + 4);
+}
+
+void EmitCmd49(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_49;
+ gBattleBuffersTransferData[1] = 49;
+ gBattleBuffersTransferData[2] = 49;
+ gBattleBuffersTransferData[3] = 49;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitCmd50(u8 bufferId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_50;
+ gBattleBuffersTransferData[1] = 50;
+ gBattleBuffersTransferData[2] = 50;
+ gBattleBuffersTransferData[3] = 50;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_SPRITEINVISIBILITY;
+ gBattleBuffersTransferData[1] = isInvisible;
+ gBattleBuffersTransferData[2] = 51;
+ gBattleBuffersTransferData[3] = 51;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_BATTLEANIMATION;
+ gBattleBuffersTransferData[1] = animationId;
+ gBattleBuffersTransferData[2] = argument;
+ gBattleBuffersTransferData[3] = (argument & 0xFF00) >> 8;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
+}
+
+void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2)
+{
+ bool8 arg2_ = arg2;
+ gBattleBuffersTransferData[0] = CONTROLLER_LINKSTANDBYMSG;
+ gBattleBuffersTransferData[1] = arg1;
+
+ if (arg2_)
+ gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = sub_81850DC(&gBattleBuffersTransferData[4]);
+ else
+ gBattleBuffersTransferData[3] = gBattleBuffersTransferData[2] = 0;
+
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[2] + 4);
+}
+
+void EmitResetActionMoveSelection(u8 bufferId, u8 caseId)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_RESETACTIONMOVESELECTION;
+ gBattleBuffersTransferData[1] = caseId;
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 2);
+}
+
+void EmitCmd55(u8 bufferId, u8 arg1)
+{
+ gBattleBuffersTransferData[0] = CONTROLLER_55;
+ gBattleBuffersTransferData[1] = arg1;
+ gBattleBuffersTransferData[2] = gSaveBlock2Ptr->field_CA9_b;
+ gBattleBuffersTransferData[3] = gSaveBlock2Ptr->field_CA9_b;
+ gBattleBuffersTransferData[5] = gBattleBuffersTransferData[4] = sub_81850DC(&gBattleBuffersTransferData[6]);
+ PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, gBattleBuffersTransferData[4] + 6);
+}
diff --git a/src/battle_interface.c b/src/battle_interface.c
new file mode 100644
index 000000000..9241db1d9
--- /dev/null
+++ b/src/battle_interface.c
@@ -0,0 +1,2632 @@
+#include "global.h"
+#include "battle.h"
+#include "pokemon.h"
+#include "battle_controllers.h"
+#include "battle_interface.h"
+#include "sprite.h"
+#include "window.h"
+#include "string_util.h"
+#include "text.h"
+#include "sound.h"
+#include "songs.h"
+#include "decompress.h"
+#include "task.h"
+#include "util.h"
+#include "gpu_regs.h"
+#include "battle_message.h"
+#include "species.h"
+#include "pokedex.h"
+#include "palette.h"
+#include "international_string_util.h"
+#include "safari_zone.h"
+#include "battle_anim.h"
+
+enum
+{
+ HEALTH_BAR,
+ EXP_BAR
+};
+
+enum
+{
+ HP_CURRENT,
+ HP_MAX
+};
+
+struct TestingBar
+{
+ s32 maxValue;
+ s32 currValue;
+ s32 field_8;
+ u32 unkC_0:5;
+ u32 unk10;
+};
+
+enum
+{
+ HEALTHBOX_GFX_0,
+ HEALTHBOX_GFX_1,
+ HEALTHBOX_GFX_2,
+ HEALTHBOX_GFX_3,
+ HEALTHBOX_GFX_4,
+ HEALTHBOX_GFX_5,
+ HEALTHBOX_GFX_6,
+ HEALTHBOX_GFX_7,
+ HEALTHBOX_GFX_8,
+ HEALTHBOX_GFX_9,
+ HEALTHBOX_GFX_10,
+ HEALTHBOX_GFX_11,
+ HEALTHBOX_GFX_12,
+ HEALTHBOX_GFX_13,
+ HEALTHBOX_GFX_14,
+ HEALTHBOX_GFX_15,
+ HEALTHBOX_GFX_16,
+ HEALTHBOX_GFX_17,
+ HEALTHBOX_GFX_18,
+ HEALTHBOX_GFX_19,
+ HEALTHBOX_GFX_20,
+ HEALTHBOX_GFX_STATUS_PSN_BANK0,
+ HEALTHBOX_GFX_22,
+ HEALTHBOX_GFX_23,
+ HEALTHBOX_GFX_STATUS_PRZ_BANK0,
+ HEALTHBOX_GFX_25,
+ HEALTHBOX_GFX_26,
+ HEALTHBOX_GFX_STATUS_SLP_BANK0,
+ HEALTHBOX_GFX_28,
+ HEALTHBOX_GFX_29,
+ HEALTHBOX_GFX_STATUS_FRZ_BANK0,
+ HEALTHBOX_GFX_31,
+ HEALTHBOX_GFX_32,
+ HEALTHBOX_GFX_STATUS_BRN_BANK0,
+ HEALTHBOX_GFX_34,
+ HEALTHBOX_GFX_35,
+ HEALTHBOX_GFX_36,
+ HEALTHBOX_GFX_37,
+ HEALTHBOX_GFX_38,
+ HEALTHBOX_GFX_39,
+ HEALTHBOX_GFX_40,
+ HEALTHBOX_GFX_41,
+ HEALTHBOX_GFX_42,
+ HEALTHBOX_GFX_43,
+ HEALTHBOX_GFX_44,
+ HEALTHBOX_GFX_45,
+ HEALTHBOX_GFX_46,
+ HEALTHBOX_GFX_47,
+ HEALTHBOX_GFX_48,
+ HEALTHBOX_GFX_49,
+ HEALTHBOX_GFX_50,
+ HEALTHBOX_GFX_51,
+ HEALTHBOX_GFX_52,
+ HEALTHBOX_GFX_53,
+ HEALTHBOX_GFX_54,
+ HEALTHBOX_GFX_55,
+ HEALTHBOX_GFX_56,
+ HEALTHBOX_GFX_57,
+ HEALTHBOX_GFX_58,
+ HEALTHBOX_GFX_59,
+ HEALTHBOX_GFX_60,
+ HEALTHBOX_GFX_61,
+ HEALTHBOX_GFX_62,
+ HEALTHBOX_GFX_63,
+ HEALTHBOX_GFX_64,
+ HEALTHBOX_GFX_65,
+ HEALTHBOX_GFX_66,
+ HEALTHBOX_GFX_67,
+ HEALTHBOX_GFX_68,
+ HEALTHBOX_GFX_69,
+ HEALTHBOX_GFX_70,
+ HEALTHBOX_GFX_STATUS_PSN_BANK1,
+ HEALTHBOX_GFX_72,
+ HEALTHBOX_GFX_73,
+ HEALTHBOX_GFX_STATUS_PRZ_BANK1,
+ HEALTHBOX_GFX_75,
+ HEALTHBOX_GFX_76,
+ HEALTHBOX_GFX_STATUS_SLP_BANK1,
+ HEALTHBOX_GFX_78,
+ HEALTHBOX_GFX_79,
+ HEALTHBOX_GFX_STATUS_FRZ_BANK1,
+ HEALTHBOX_GFX_81,
+ HEALTHBOX_GFX_82,
+ HEALTHBOX_GFX_STATUS_BRN_BANK1,
+ HEALTHBOX_GFX_84,
+ HEALTHBOX_GFX_85,
+ HEALTHBOX_GFX_STATUS_PSN_BANK2,
+ HEALTHBOX_GFX_87,
+ HEALTHBOX_GFX_88,
+ HEALTHBOX_GFX_STATUS_PRZ_BANK2,
+ HEALTHBOX_GFX_90,
+ HEALTHBOX_GFX_91,
+ HEALTHBOX_GFX_STATUS_SLP_BANK2,
+ HEALTHBOX_GFX_93,
+ HEALTHBOX_GFX_94,
+ HEALTHBOX_GFX_STATUS_FRZ_BANK2,
+ HEALTHBOX_GFX_96,
+ HEALTHBOX_GFX_97,
+ HEALTHBOX_GFX_STATUS_BRN_BANK2,
+ HEALTHBOX_GFX_99,
+ HEALTHBOX_GFX_100,
+ HEALTHBOX_GFX_STATUS_PSN_BANK3,
+ HEALTHBOX_GFX_102,
+ HEALTHBOX_GFX_103,
+ HEALTHBOX_GFX_STATUS_PRZ_BANK3,
+ HEALTHBOX_GFX_105,
+ HEALTHBOX_GFX_106,
+ HEALTHBOX_GFX_STATUS_SLP_BANK3,
+ HEALTHBOX_GFX_108,
+ HEALTHBOX_GFX_109,
+ HEALTHBOX_GFX_STATUS_FRZ_BANK3,
+ HEALTHBOX_GFX_111,
+ HEALTHBOX_GFX_112,
+ HEALTHBOX_GFX_STATUS_BRN_BANK3,
+ HEALTHBOX_GFX_114,
+ HEALTHBOX_GFX_115,
+ HEALTHBOX_GFX_116,
+ HEALTHBOX_GFX_117,
+};
+
+extern u8 gBanksByIdentity[BATTLE_BANKS_COUNT];
+extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
+extern u8 gNoOfAllBanks;
+extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT];
+
+extern const u8 * const gNatureNamePointers[];
+extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
+
+// strings
+extern const u8 gText_Slash[];
+extern const u8 gText_HighlightDarkGrey[];
+extern const u8 gText_DynColor2[];
+extern const u8 gText_DynColor2Male[];
+extern const u8 gText_DynColor1Female[];
+extern const u8 gText_SafariBalls[];
+extern const u8 gText_SafariBallLeft[];
+
+// graphics
+extern const u8 gBattleInterface_BallStatusBarGfx[];
+extern const u8 gBattleInterface_BallDisplayGfx[];
+extern const u16 gBattleInterface_BallStatusBarPal[];
+extern const u16 gBattleInterface_BallDisplayPal[];
+extern const u8 gHealthboxElementsGfxTable[][32];
+
+// functions
+extern bool8 IsDoubleBattle(void);
+extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str); // menu.h
+extern void LoadBattleBarGfx(u8 arg0);
+
+// this file's functions
+
+static const u8 *GetHealthboxElementGfxPtr(u8 elementId);
+static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 arg3, u32 *windowId);
+
+static void RemoveWindowOnHealthbox(u32 windowId);
+static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
+static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId);
+
+static void sub_8075198(void *dest, u8 *windowTileData, s32 arg2);
+static void sub_80751E4(void *dest, u8 *windowTileData, u32 arg2);
+static void sub_8075170(void *dest, u8 *windowTileData, u32 arg2);
+static void sub_807513C(void *dest, u32 arg1, u32 arg2);
+
+static void sub_8073E08(u8 taskId);
+static void sub_8073F98(u8 taskId);
+static void sub_8073E64(u8 taskId);
+
+static void sub_8072924(struct Sprite *sprite);
+static void sub_80728B4(struct Sprite *sprite);
+static void sub_8074158(struct Sprite *sprite);
+static void sub_8074090(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBar(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite);
+static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite);
+
+static u8 GetStatusIconForBankId(u8 statusElementId, u8 bank);
+static s32 sub_8074DB8(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 arg4, u16 arg5);
+static u8 GetScaledExpFraction(s32 currValue, s32 arg1, s32 maxValue, u8 scale);
+static void sub_8074B9C(u8 bank, u8 whichBar);
+static u8 sub_8074E8C(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 *arg4, u8 arg5);
+static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2);
+
+// const rom data
+static const struct OamData sUnknown_0832C138 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct SpriteTemplate sHealthboxPlayerSpriteTemplates[2] =
+{
+ {
+ .tileTag = TAG_HEALTHBOX_PLAYER1_TILE,
+ .paletteTag = TAG_HEALTHBOX_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ },
+ {
+ .tileTag = TAG_HEALTHBOX_PLAYER2_TILE,
+ .paletteTag = TAG_HEALTHBOX_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ }
+};
+
+static const struct SpriteTemplate sHealthboxOpponentSpriteTemplates[2] =
+{
+ {
+ .tileTag = TAG_HEALTHBOX_OPPONENT1_TILE,
+ .paletteTag = TAG_HEALTHBOX_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ },
+ {
+ .tileTag = TAG_HEALTHBOX_OPPONENT2_TILE,
+ .paletteTag = TAG_HEALTHBOX_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ }
+};
+
+static const struct SpriteTemplate sHealthboxSafariSpriteTemplate =
+{
+ .tileTag = TAG_HEALTHBOX_SAFARI_TILE,
+ .paletteTag = TAG_HEALTHBOX_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct OamData sUnknown_0832C1B8 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct SpriteTemplate sUnknown_0832C1C0[4] =
+{
+ {
+ .tileTag = 0xd704,
+ .paletteTag = 0xd704,
+ .oam = &sUnknown_0832C1B8,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80728B4
+ },
+ {
+ .tileTag = 0xd705,
+ .paletteTag = 0xd704,
+ .oam = &sUnknown_0832C1B8,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80728B4
+ },
+ {
+ .tileTag = 0xd706,
+ .paletteTag = 0xd704,
+ .oam = &sUnknown_0832C1B8,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80728B4
+ },
+ {
+ .tileTag = 0xd707,
+ .paletteTag = 0xd704,
+ .oam = &sUnknown_0832C1B8,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80728B4
+ }
+};
+
+static const struct Subsprite sUnknown_0832C220[] =
+{
+ {240, 0, 1, 3, 0, 1},
+ {48, 0, 0, 2, 32, 1},
+ {240, 32, 1, 1, 48, 1},
+ {16, 32, 1, 1, 52, 1},
+ {48, 32, 1, 1, 56, 1}
+};
+
+static const struct Subsprite sUnknown_0832C234[] =
+{
+ {240, 0, 1, 3, 64, 1},
+ {48, 0, 0, 2, 96, 1},
+ {240, 32, 1, 1, 112, 1},
+ {16, 32, 1, 1, 116, 1},
+ {48, 32, 1, 1, 120, 1}
+};
+
+static const struct Subsprite sUnknown_0832C248[] =
+{
+ {240, 0, 1, 3, 0, 1},
+ {48, 0, 0, 2, 32, 1}
+};
+
+static const struct Subsprite sUnknown_0832C250[] =
+{
+ {240, 0, 1, 3, 0, 1},
+ {48, 0, 0, 2, 32, 1}
+};
+
+static const struct Subsprite sUnknown_0832C258[] =
+{
+ {240, 0, 1, 1, 0, 1},
+ {16, 0, 1, 1, 4, 1}
+};
+
+static const struct Subsprite sUnknown_0832C260[] =
+{
+ {240, 0, 1, 1, 0, 1},
+ {16, 0, 1, 1, 4, 1},
+ {224, 0, 0, 0, 8, 1}
+};
+
+// unused subsprite table
+static const struct SubspriteTable sUnknown_0832C26C[] =
+{
+ {ARRAY_COUNT(sUnknown_0832C220), sUnknown_0832C220},
+ {ARRAY_COUNT(sUnknown_0832C248), sUnknown_0832C248},
+ {ARRAY_COUNT(sUnknown_0832C234), sUnknown_0832C234},
+ {ARRAY_COUNT(sUnknown_0832C250), sUnknown_0832C250}
+};
+
+static const struct SubspriteTable sUnknown_0832C28C[] =
+{
+ {ARRAY_COUNT(sUnknown_0832C258), sUnknown_0832C258},
+ {ARRAY_COUNT(sUnknown_0832C260), sUnknown_0832C260}
+};
+
+static const struct Subsprite sStatusSummaryBar_Subsprites_0[] =
+{
+ {160, 0, 1, 1, 0, 1},
+ {192, 0, 1, 1, 4, 1},
+ {224, 0, 1, 1, 8, 1},
+ {0, 0, 1, 1, 12, 1}
+};
+
+static const struct Subsprite sUnknown_0832C2AC[] =
+{
+ {160, 0, 1, 1, 0, 1},
+ {192, 0, 1, 1, 4, 1},
+ {224, 0, 1, 1, 8, 1},
+ {0, 0, 1, 1, 8, 1},
+ {32, 0, 1, 1, 8, 1},
+ {64, 0, 1, 1, 12, 1}
+};
+
+static const struct SubspriteTable sStatusSummaryBar_SubspriteTable[] =
+{
+ {ARRAY_COUNT(sStatusSummaryBar_Subsprites_0), sStatusSummaryBar_Subsprites_0}
+};
+
+static const struct SubspriteTable sUnknown_0832C2CC[] =
+{
+ {ARRAY_COUNT(sUnknown_0832C2AC), sUnknown_0832C2AC}
+};
+
+// unused unknown image
+static const u8 sUnknown_0832C2D4[] = INCBIN_U8("graphics/battle_interface/unknown_32C2D4.4bpp");
+
+static const struct CompressedSpriteSheet sStatusSummaryBarSpriteSheet =
+{
+ gBattleInterface_BallStatusBarGfx, 0x200, TAG_STATUS_SUMMARY_BAR_TILE
+};
+
+static const struct SpritePalette sStatusSummaryBarSpritePal =
+{
+ gBattleInterface_BallStatusBarPal, TAG_STATUS_SUMMARY_BAR_PAL
+};
+
+static const struct SpritePalette sStatusSummaryBallsSpritePal =
+{
+ gBattleInterface_BallDisplayPal, TAG_STATUS_SUMMARY_BALLS_PAL
+};
+
+static const struct SpriteSheet sStatusSummaryBallsSpriteSheet =
+{
+ gBattleInterface_BallDisplayGfx, 0x80, TAG_STATUS_SUMMARY_BALLS_TILE
+};
+
+// unused oam data
+static const struct OamData sUnknown_0832C354 =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 1,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct OamData sOamData_StatusSummaryBalls =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 0,
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const struct SpriteTemplate sStatusSummaryBarSpriteTemplates[2] =
+{
+ {
+ .tileTag = TAG_STATUS_SUMMARY_BAR_TILE,
+ .paletteTag = TAG_STATUS_SUMMARY_BAR_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_StatusSummaryBar
+ },
+ {
+ .tileTag = TAG_STATUS_SUMMARY_BAR_TILE,
+ .paletteTag = TAG_STATUS_SUMMARY_BAR_PAL,
+ .oam = &sUnknown_0832C138,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_StatusSummaryBar
+ }
+};
+
+static const struct SpriteTemplate sStatusSummaryBallsSpriteTemplates[2] =
+{
+ {
+ .tileTag = TAG_STATUS_SUMMARY_BALLS_TILE,
+ .paletteTag = TAG_STATUS_SUMMARY_BALLS_PAL,
+ .oam = &sOamData_StatusSummaryBalls,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_StatusSummaryBallsOnBattleStart
+ },
+ {
+ .tileTag = TAG_STATUS_SUMMARY_BALLS_TILE,
+ .paletteTag = TAG_STATUS_SUMMARY_BALLS_PAL,
+ .oam = &sOamData_StatusSummaryBalls,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_StatusSummaryBallsOnBattleStart
+ }
+};
+
+// possibly text
+static const u8 sUnknown_0832C3C4[] =
+{
+ 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+// possibly text
+static const u8 sUnknown_0832C3D8[] =
+{
+ 0xfc, 0x01, 0x01, 0xfc, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+};
+
+enum
+{
+ PAL_STATUS_PSN,
+ PAL_STATUS_PAR,
+ PAL_STATUS_SLP,
+ PAL_STATUS_FRZ,
+ PAL_STATUS_BRN
+};
+
+static const u16 sStatusIconPalettes[] =
+{
+ 0x6198, // PAL_STATUS_PSN
+ 0xEF7, // PAL_STATUS_PAR
+ 0x4694, // PAL_STATUS_SLP
+ 0x72D1, // PAL_STATUS_FRZ
+ 0x29DC // PAL_STATUS_BRN
+};
+
+static const struct WindowTemplate sHealthboxWindowTemplate = {0, 0, 0, 8, 2, 0, 0}; // width = 8, height = 2
+
+// code
+
+static s32 DummiedOutFunction(s16 unused1, s16 unused2, s32 unused3)
+{
+ return 9;
+}
+
+#ifdef NONMATCHING
+static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
+{
+ s8 i, j;
+ u8 array[4];
+ u8 *arrayPtr;
+ s32 r9, vaaa;
+
+ for (i = 0; i < 4; i++)
+ array[i] = 0;
+
+ i = 3;
+ r9 = -1;
+ arrayPtr = array;
+ while (1)
+ {
+ if (arg0 > 0)
+ {
+ array[i] = arg0 % 10;
+ arg0 = arg0 / 10;
+ i--;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ for (; i > -1; i--)
+ {
+ array[i] = 0xFF;
+ }
+
+ if (arrayPtr[3] == 0xFF)
+ arrayPtr[3] = 0;
+
+ if (arg2 == 0)
+ {
+ for (i = 0, j = 0; i < 4; i++)
+ {
+ if (array[j] == 0xFF)
+ {
+ arg1[j] &= 0xFC00;
+ arg1[j] |= 0x1E;
+
+ arg1[i + 0x20] &= 0xFC00;
+ arg1[i + 0x20] |= 0x1E;
+ }
+ else
+ {
+ arg1[j] &= 0xFC00;
+ arg1[j] |= array[j] + 0x14;
+
+ arg1[i + 0x20] &= 0xFC00;
+ arg1[i + 0x20] |= array[i] + 0x34;
+ }
+ j++;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ {
+ if (array[i] == 0xFF)
+ {
+ arg1[i] &= 0xFC00;
+ arg1[i] |= 0x1E;
+
+ arg1[i + 0x20] &= 0xFC00;
+ arg1[i + 0x20] |= 0x1E;
+ }
+ else
+ {
+ arg1[i] &= 0xFC00;
+ arg1[i] |= array[i] + 0x14;
+
+ arg1[i + 0x20] &= 0xFC00;
+ arg1[i + 0x20] |= array[i] + 0x34;
+ }
+ }
+ }
+}
+
+#else
+__attribute__((naked))
+static void sub_8072308(s16 arg0, u16 *arg1, u8 arg2)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x4\n\
+ adds r7, r1, 0\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ mov r10, r2\n\
+ movs r3, 0\n\
+ movs r2, 0\n\
+_08072324:\n\
+ lsls r0, r3, 24\n\
+ asrs r0, 24\n\
+ mov r3, sp\n\
+ adds r1, r3, r0\n\
+ strb r2, [r1]\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, 0x3\n\
+ ble _08072324\n\
+ movs r3, 0x3\n\
+ movs r0, 0x1\n\
+ negs r0, r0\n\
+ mov r9, r0\n\
+ mov r8, sp\n\
+_08072344:\n\
+ lsls r0, r5, 16\n\
+ asrs r6, r0, 16\n\
+ cmp r6, 0\n\
+ ble _08072372\n\
+ lsls r4, r3, 24\n\
+ asrs r4, 24\n\
+ mov r1, sp\n\
+ adds r5, r1, r4\n\
+ adds r0, r6, 0\n\
+ movs r1, 0xA\n\
+ bl __modsi3\n\
+ strb r0, [r5]\n\
+ adds r0, r6, 0\n\
+ movs r1, 0xA\n\
+ bl __divsi3\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ subs r4, 0x1\n\
+ lsls r4, 24\n\
+ lsrs r3, r4, 24\n\
+ b _08072344\n\
+_08072372:\n\
+ lsls r1, r3, 24\n\
+ asrs r0, r1, 24\n\
+ cmp r0, r9\n\
+ ble _08072396\n\
+ movs r4, 0xFF\n\
+ movs r3, 0x1\n\
+ negs r3, r3\n\
+_08072380:\n\
+ asrs r2, r1, 24\n\
+ mov r5, sp\n\
+ adds r1, r5, r2\n\
+ ldrb r0, [r1]\n\
+ orrs r0, r4\n\
+ strb r0, [r1]\n\
+ subs r2, 0x1\n\
+ lsls r1, r2, 24\n\
+ asrs r0, r1, 24\n\
+ cmp r0, r3\n\
+ bgt _08072380\n\
+_08072396:\n\
+ mov r1, r8\n\
+ ldrb r0, [r1, 0x3]\n\
+ cmp r0, 0xFF\n\
+ bne _080723A2\n\
+ movs r0, 0\n\
+ strb r0, [r1, 0x3]\n\
+_080723A2:\n\
+ mov r2, r10\n\
+ cmp r2, 0\n\
+ bne _08072432\n\
+ movs r3, 0\n\
+ movs r1, 0\n\
+ movs r6, 0xFC\n\
+ lsls r6, 8\n\
+ movs r5, 0x1E\n\
+ mov r12, r5\n\
+_080723B4:\n\
+ lsls r1, 24\n\
+ asrs r2, r1, 24\n\
+ mov r0, sp\n\
+ adds r5, r0, r2\n\
+ ldrb r0, [r5]\n\
+ mov r8, r1\n\
+ cmp r0, 0xFF\n\
+ bne _080723EA\n\
+ lsls r1, r2, 1\n\
+ adds r1, r7\n\
+ ldrh r2, [r1]\n\
+ adds r0, r6, 0\n\
+ ands r0, r2\n\
+ mov r2, r12\n\
+ orrs r0, r2\n\
+ strh r0, [r1]\n\
+ lsls r3, 24\n\
+ asrs r1, r3, 23\n\
+ adds r1, r7\n\
+ adds r1, 0x40\n\
+ ldrh r2, [r1]\n\
+ adds r0, r6, 0\n\
+ ands r0, r2\n\
+ mov r5, r12\n\
+ orrs r0, r5\n\
+ strh r0, [r1]\n\
+ b _0807241A\n\
+_080723EA:\n\
+ lsls r2, 1\n\
+ adds r2, r7\n\
+ ldrh r0, [r2]\n\
+ adds r1, r6, 0\n\
+ ands r1, r0\n\
+ ldrb r0, [r5]\n\
+ adds r0, 0x14\n\
+ orrs r1, r0\n\
+ strh r1, [r2]\n\
+ lsls r4, r3, 24\n\
+ asrs r3, r4, 24\n\
+ lsls r2, r3, 1\n\
+ adds r2, r7\n\
+ adds r2, 0x40\n\
+ ldrh r0, [r2]\n\
+ adds r1, r6, 0\n\
+ ands r1, r0\n\
+ mov r5, sp\n\
+ adds r0, r5, r3\n\
+ ldrb r0, [r0]\n\
+ adds r0, 0x34\n\
+ orrs r1, r0\n\
+ strh r1, [r2]\n\
+ adds r3, r4, 0\n\
+_0807241A:\n\
+ movs r0, 0x80\n\
+ lsls r0, 17\n\
+ add r0, r8\n\
+ lsrs r1, r0, 24\n\
+ movs r2, 0x80\n\
+ lsls r2, 17\n\
+ adds r0, r3, r2\n\
+ lsrs r3, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, 0x3\n\
+ ble _080723B4\n\
+ b _08072496\n\
+_08072432:\n\
+ movs r3, 0\n\
+ movs r4, 0xFC\n\
+ lsls r4, 8\n\
+ movs r6, 0x1E\n\
+_0807243A:\n\
+ lsls r1, r3, 24\n\
+ asrs r2, r1, 24\n\
+ mov r3, sp\n\
+ adds r5, r3, r2\n\
+ ldrb r0, [r5]\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0xFF\n\
+ bne _08072466\n\
+ lsls r1, r2, 1\n\
+ adds r1, r7\n\
+ ldrh r2, [r1]\n\
+ adds r0, r4, 0\n\
+ ands r0, r2\n\
+ orrs r0, r6\n\
+ strh r0, [r1]\n\
+ adds r1, 0x40\n\
+ ldrh r2, [r1]\n\
+ adds r0, r4, 0\n\
+ ands r0, r2\n\
+ orrs r0, r6\n\
+ strh r0, [r1]\n\
+ b _08072488\n\
+_08072466:\n\
+ lsls r2, 1\n\
+ adds r2, r7\n\
+ ldrh r0, [r2]\n\
+ adds r1, r4, 0\n\
+ ands r1, r0\n\
+ ldrb r0, [r5]\n\
+ adds r0, 0x14\n\
+ orrs r1, r0\n\
+ strh r1, [r2]\n\
+ adds r2, 0x40\n\
+ ldrh r0, [r2]\n\
+ adds r1, r4, 0\n\
+ ands r1, r0\n\
+ ldrb r0, [r5]\n\
+ adds r0, 0x34\n\
+ orrs r1, r0\n\
+ strh r1, [r2]\n\
+_08072488:\n\
+ movs r5, 0x80\n\
+ lsls r5, 17\n\
+ adds r0, r3, r5\n\
+ lsrs r3, r0, 24\n\
+ asrs r0, 24\n\
+ cmp r0, 0x3\n\
+ ble _0807243A\n\
+_08072496:\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided");
+}
+
+#endif // NONMATCHING
+
+void sub_80724A8(s16 arg0, s16 arg1, u16 *arg2)
+{
+ arg2[4] = 0x1E;
+ sub_8072308(arg1, arg2, 0);
+ sub_8072308(arg0, arg2 + 5, 1);
+}
+
+// because the healthbox is too large to fit into one sprite, it is divided into two sprites
+// healthboxSpriteId_1 or healthboxSpriteId refers to the 'main' healthbox
+// healthboxSpriteId_2 refers to the other part
+// there's also one other sprite that appears to be a black square? dont fully understand its role
+
+u8 CreateBankHealthboxSprites(u8 bank)
+{
+ s16 data6 = 0;
+ u8 healthboxSpriteId_1, healthboxSpriteId_2;
+ u8 unkSpriteId;
+ struct Sprite *unkSpritePtr;
+
+ if (!IsDoubleBattle())
+ {
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ {
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[0], 240, 160, 1);
+
+ gSprites[healthboxSpriteId_1].oam.shape = 0;
+
+ gSprites[healthboxSpriteId_2].oam.shape = 0;
+ gSprites[healthboxSpriteId_2].oam.tileNum += 64;
+ }
+ else
+ {
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[0], 240, 160, 1);
+
+ gSprites[healthboxSpriteId_2].oam.tileNum += 32;
+
+ data6 = 2;
+ }
+ gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
+ gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1;
+ gSprites[healthboxSpriteId_2].callback = sub_8072924;
+ }
+ else
+ {
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ {
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxPlayerSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+
+ gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
+
+ gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1;
+ gSprites[healthboxSpriteId_2].oam.tileNum += 32;
+ gSprites[healthboxSpriteId_2].callback = sub_8072924;
+
+ data6 = 1;
+ }
+ else
+ {
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxOpponentSpriteTemplates[GetBankIdentity(bank) / 2], 240, 160, 1);
+
+ gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
+
+ gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1;
+ gSprites[healthboxSpriteId_2].oam.tileNum += 32;
+ gSprites[healthboxSpriteId_2].callback = sub_8072924;
+
+ data6 = 2;
+ }
+ }
+
+ unkSpriteId = CreateSpriteAtEnd(&sUnknown_0832C1C0[gBanksByIdentity[bank]], 140, 60, 0);
+ unkSpritePtr = &gSprites[unkSpriteId];
+ SetSubspriteTables(unkSpritePtr, &sUnknown_0832C28C[GetBankSide(bank)]);
+ unkSpritePtr->subspriteMode = 2;
+ unkSpritePtr->oam.priority = 1;
+
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64);
+
+ gSprites[healthboxSpriteId_1].data5 = unkSpriteId;
+ gSprites[healthboxSpriteId_1].data6 = bank;
+ gSprites[healthboxSpriteId_1].invisible = 1;
+
+ gSprites[healthboxSpriteId_2].invisible = 1;
+
+ unkSpritePtr->data5 = healthboxSpriteId_1;
+ unkSpritePtr->data6 = data6;
+ unkSpritePtr->invisible = 1;
+
+ return healthboxSpriteId_1;
+}
+
+u8 CreateSafariPlayerHealthboxSprites(void)
+{
+ u8 healthboxSpriteId_1, healthboxSpriteId_2;
+
+ healthboxSpriteId_1 = CreateSprite(&sHealthboxSafariSpriteTemplate, 240, 160, 1);
+ healthboxSpriteId_2 = CreateSpriteAtEnd(&sHealthboxSafariSpriteTemplate, 240, 160, 1);
+
+ gSprites[healthboxSpriteId_1].oam.shape = 0;
+ gSprites[healthboxSpriteId_2].oam.shape = 0;
+
+ gSprites[healthboxSpriteId_2].oam.tileNum += 64;
+
+ gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2;
+ gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1;
+
+ gSprites[healthboxSpriteId_2].callback = sub_8072924;
+
+ return healthboxSpriteId_1;
+}
+
+static const u8 *GetHealthboxElementGfxPtr(u8 elementId)
+{
+ return gHealthboxElementsGfxTable[elementId];
+}
+
+static void sub_80728B4(struct Sprite *sprite)
+{
+ u8 var = sprite->data5;
+
+ switch (sprite->data6)
+ {
+ case 0:
+ sprite->pos1.x = gSprites[var].pos1.x + 16;
+ sprite->pos1.y = gSprites[var].pos1.y;
+ break;
+ case 1:
+ sprite->pos1.x = gSprites[var].pos1.x + 16;
+ sprite->pos1.y = gSprites[var].pos1.y;
+ break;
+ case 2:
+ default:
+ sprite->pos1.x = gSprites[var].pos1.x + 8;
+ sprite->pos1.y = gSprites[var].pos1.y;
+ break;
+ }
+
+ sprite->pos2.x = gSprites[var].pos2.x;
+ sprite->pos2.y = gSprites[var].pos2.y;
+}
+
+static void sub_8072924(struct Sprite *sprite)
+{
+ u8 otherSpriteId = sprite->data5;
+
+ sprite->pos1.x = gSprites[otherSpriteId].pos1.x + 64;
+ sprite->pos1.y = gSprites[otherSpriteId].pos1.y;
+
+ sprite->pos2.x = gSprites[otherSpriteId].pos2.x;
+ sprite->pos2.y = gSprites[otherSpriteId].pos2.y;
+}
+
+void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 field_C)
+{
+ gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId = healthboxSpriteId;
+ gBattleSpritesDataPtr->battleBars[bank].maxValue = maxVal;
+ gBattleSpritesDataPtr->battleBars[bank].currentValue = currVal;
+ gBattleSpritesDataPtr->battleBars[bank].field_C = field_C;
+ gBattleSpritesDataPtr->battleBars[bank].field_10 = -32768;
+}
+
+void SetHealthboxSpriteInvisible(u8 healthboxSpriteId)
+{
+ gSprites[healthboxSpriteId].invisible = 1;
+ gSprites[gSprites[healthboxSpriteId].data5].invisible = 1;
+ gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1;
+}
+
+void SetHealthboxSpriteVisible(u8 healthboxSpriteId)
+{
+ gSprites[healthboxSpriteId].invisible = 0;
+ gSprites[gSprites[healthboxSpriteId].data5].invisible = 0;
+ gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0;
+}
+
+static void UpdateSpritePos(u8 spriteId, s16 x, s16 y)
+{
+ gSprites[spriteId].pos1.x = x;
+ gSprites[spriteId].pos1.y = y;
+}
+
+void DestoryHealthboxSprite(u8 healthboxSpriteId)
+{
+ DestroySprite(&gSprites[gSprites[healthboxSpriteId].oam.affineParam]);
+ DestroySprite(&gSprites[gSprites[healthboxSpriteId].data5]);
+ DestroySprite(&gSprites[healthboxSpriteId]);
+}
+
+void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly)
+{
+
+}
+
+void UpdateOamPriorityInAllHealthboxes(u8 priority)
+{
+ s32 i;
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ u8 healthboxSpriteId_1 = gHealthBoxesIds[i];
+ u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam;
+ u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data5;
+
+ gSprites[healthboxSpriteId_1].oam.priority = priority;
+ gSprites[healthboxSpriteId_2].oam.priority = priority;
+ gSprites[healthboxSpriteId_3].oam.priority = priority;
+ }
+}
+
+void SetBankHealthboxSpritePos(u8 bank)
+{
+ s16 x = 0, y = 0;
+
+ if (!IsDoubleBattle())
+ {
+ if (GetBankSide(bank) != SIDE_PLAYER)
+ x = 44, y = 30;
+ else
+ x = 158, y = 88;
+ }
+ else
+ {
+ switch (GetBankIdentity(bank))
+ {
+ case IDENTITY_PLAYER_MON1:
+ x = 159, y = 76;
+ break;
+ case IDENTITY_PLAYER_MON2:
+ x = 171, y = 101;
+ break;
+ case IDENTITY_OPPONENT_MON1:
+ x = 44, y = 19;
+ break;
+ case IDENTITY_OPPONENT_MON2:
+ x = 32, y = 44;
+ break;
+ }
+ }
+
+ UpdateSpritePos(gHealthBoxesIds[bank], x, y);
+}
+
+static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
+{
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+ u8 text[16];
+ u32 xPos, var1;
+ void *objVram;
+
+ text[0] = 0xF9;
+ text[1] = 5;
+
+ xPos = (u32) ConvertIntToDecimalStringN(text + 2, lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
+ // Alright, that part was unmatchable. It's basically doing:
+ // xPos = 5 * (3 - (u32)(&text[2]));
+ xPos--;
+ xPos--;
+ xPos -= ((u32)(text));
+ var1 = (3 - xPos);
+ xPos = 4 * var1;
+ xPos += var1;
+
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId);
+ spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER)
+ {
+ objVram = (void*)(OBJ_VRAM0);
+ if (!IsDoubleBattle())
+ objVram += spriteTileNum + 0x820;
+ else
+ objVram += spriteTileNum + 0x420;
+ }
+ else
+ {
+ objVram = (void*)(OBJ_VRAM0);
+ objVram += spriteTileNum + 0x400;
+ }
+ sub_8075198(objVram, windowTileData, 3);
+ RemoveWindowOnHealthbox(windowId);
+}
+
+void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
+{
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+ u8 text[32];
+ void *objVram;
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER && !IsDoubleBattle())
+ {
+ spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
+ if (maxOrCurrent != HP_CURRENT) // singles, max
+ {
+ ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 2, &windowId);
+ objVram = (void*)(OBJ_VRAM0);
+ objVram += spriteTileNum + 0xB40;
+ sub_8075170(objVram, windowTileData, 2);
+ RemoveWindowOnHealthbox(windowId);
+ }
+ else // singles, current
+ {
+ ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ text[3] = CHAR_SLASH;
+ text[4] = EOS;
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 2, &windowId);
+ objVram = (void*)(OBJ_VRAM0);
+ objVram += spriteTileNum + 0x3E0;
+ sub_8075170(objVram, windowTileData, 1);
+ objVram = (void*)(OBJ_VRAM0);
+ objVram += spriteTileNum + 0xB00;
+ sub_8075170(objVram, windowTileData + 0x20, 2);
+ RemoveWindowOnHealthbox(windowId);
+ }
+
+ }
+ else
+ {
+ u8 bank;
+
+ memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
+ bank = gSprites[healthboxSpriteId].data6;
+ if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent);
+ }
+ else
+ {
+ u32 var;
+ u8 i;
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER)
+ {
+ if (maxOrCurrent == HP_CURRENT)
+ var = 29;
+ else
+ var = 89;
+ }
+ else
+ {
+ if (maxOrCurrent == HP_CURRENT)
+ var = 20;
+ else
+ var = 48;
+ }
+
+ ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
+
+ for (i = 0; i < 3; i++)
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[i * 64 + 32],
+ (void*)((OBJ_VRAM0) + 32 * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
+ 0x20);
+ }
+ }
+ }
+}
+
+static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
+{
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+ u8 text[32];
+ void *objVram;
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER)
+ {
+ if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data6].hpNumbersNoBars) // don't print text if only bars are visible
+ {
+ spriteTileNum = gSprites[gSprites[healthboxSpriteId].data5].oam.tileNum * 32;
+ objVram = (void*)(OBJ_VRAM0) + spriteTileNum;
+
+ if (maxOrCurrent != HP_CURRENT) // doubles, max hp
+ {
+ ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, 0, &windowId);
+ sub_8075170((void*)(OBJ_VRAM0) + spriteTileNum + 0xC0, windowTileData, 2);
+ RemoveWindowOnHealthbox(windowId);
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116),
+ (void*)(OBJ_VRAM0 + 0x680) + (gSprites[healthboxSpriteId].oam.tileNum * 32),
+ 0x20);
+ }
+ else
+ {
+ ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ text[3] = CHAR_SLASH;
+ text[4] = EOS;
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, 0, &windowId);
+ sub_807513C(objVram, 0, 3);
+ sub_8075170((void*)(OBJ_VRAM0 + 0x60) + spriteTileNum, windowTileData, 3);
+ RemoveWindowOnHealthbox(windowId);
+ }
+ }
+ }
+ else
+ {
+ u8 bank;
+
+ memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8));
+ bank = gSprites[healthboxSpriteId].data6;
+
+ if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible
+ {
+ u8 var = 4;
+ u8 r7;
+ u8 *txtPtr;
+ u8 i;
+
+ if (maxOrCurrent == HP_CURRENT)
+ var = 0;
+
+ r7 = gSprites[healthboxSpriteId].data5;
+ txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ if (!maxOrCurrent)
+ StringCopy(txtPtr, gText_Slash);
+ RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
+
+ for (i = var; i < var + 3; i++)
+ {
+ if (i < 3)
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32],
+ (void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
+ 0x20);
+ }
+ else
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[((i - var) * 64) + 32],
+ (void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
+ 0x20);
+ }
+ }
+
+ if (maxOrCurrent == HP_CURRENT)
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[224],
+ (void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * 32)),
+ 0x20);
+ CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * 32)), 0x20);
+ }
+ else
+ {
+ if (GetBankSide(bank) == SIDE_PLAYER) // impossible to reach part, because the bank is from the opponent's side
+ {
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_116),
+ (void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * 32),
+ 0x20);
+ }
+ }
+ }
+ }
+}
+
+static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon)
+{
+ u8 text[20];
+ s32 j, var2;
+ u8 *fontPixels;
+ u8 i, var, nature, healthboxSpriteId_2;
+
+ memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4));
+ fontPixels = &gMonSpritesGfxPtr->fontPixels[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)];
+ var = 5;
+ nature = GetNature(mon);
+ StringCopy(text + 6, gNatureNamePointers[nature]);
+ RenderTextFont9(fontPixels, 9, text);
+
+ for (j = 6, i = 0; i < var; i++, j++)
+ {
+ u8 elementId;
+
+ if ((text[j] >= 55 && text[j] <= 74) || (text[j] >= 135 && text[j] <= 154))
+ elementId = 44;
+ else if ((text[j] >= 75 && text[j] <= 79) || (text[j] >= 155 && text[j] <= 159))
+ elementId = 45;
+ else
+ elementId = 43;
+
+ CpuCopy32(GetHealthboxElementGfxPtr(elementId), fontPixels + (i * 64), 0x20);
+ }
+
+ for (j = 1; j < var + 1; j++)
+ {
+ var2 = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32;
+ CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20);
+ fontPixels += 0x20;
+
+ var2 = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * 32;
+ CpuCopy32(fontPixels, (void*)(OBJ_VRAM0) + (var2), 0x20);
+ fontPixels += 0x20;
+ }
+
+ healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5;
+ ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ text[5] = CHAR_SPACE;
+ text[8] = CHAR_SLASH;
+ RenderTextFont9(gMonSpritesGfxPtr->fontPixels, 9, text);
+
+ j = healthboxSpriteId_2; // needed to match for some reason
+ for (j = 0; j < 5; j++)
+ {
+ if (j <= 1)
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20],
+ (void*)(OBJ_VRAM0) + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + j) * 32,
+ 32);
+ }
+ else
+ {
+ CpuCopy32(&gMonSpritesGfxPtr->fontPixels[0x40 * j + 0x20],
+ (void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthboxSpriteId_2].oam.tileNum) * 32,
+ 32);
+ }
+ }
+}
+
+void SwapHpBarsWithHpText(void)
+{
+ s32 i;
+ u8 spriteId;
+
+ for (i = 0; i < gNoOfAllBanks; i++)
+ {
+ if (gSprites[gHealthBoxesIds[i]].callback == SpriteCallbackDummy
+ && GetBankSide(i) != SIDE_OPPONENT
+ && (IsDoubleBattle() || GetBankSide(i) != SIDE_PLAYER))
+ {
+ bool8 noBars;
+
+ gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars ^= 1;
+ noBars = gBattleSpritesDataPtr->bankData[i].hpNumbersNoBars;
+ if (GetBankSide(i) == SIDE_PLAYER)
+ {
+ if (!IsDoubleBattle())
+ continue;
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ continue;
+
+ if (noBars == TRUE) // bars to text
+ {
+ spriteId = gSprites[gHealthBoxesIds[i]].data5;
+
+ CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT);
+ UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX);
+ }
+ else // text to bars
+ {
+ UpdateStatusIconInHealthbox(gHealthBoxesIds[i]);
+ UpdateHealthboxAttribute(gHealthBoxesIds[i], &gPlayerParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR);
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_117), (void*)(OBJ_VRAM0 + 0x680 + gSprites[gHealthBoxesIds[i]].oam.tileNum * 32), 32);
+ }
+ }
+ else
+ {
+ if (noBars == TRUE) // bars to text
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ {
+ sub_80730D4(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]]);
+ }
+ else
+ {
+ spriteId = gSprites[gHealthBoxesIds[i]].data5;
+
+ CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT);
+ UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), HP_MAX);
+ }
+ }
+ else // text to bars
+ {
+ UpdateStatusIconInHealthbox(gHealthBoxesIds[i]);
+ UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_HEALTH_BAR);
+ if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
+ UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK);
+ }
+ }
+ gSprites[gHealthBoxesIds[i]].data7 ^= 1;
+ }
+ }
+}
+
+u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart)
+{
+ bool8 isOpponent;
+ s16 bar_X, bar_Y, bar_pos2_X, bar_data0;
+ s32 i, j, var;
+ u8 barSpriteId;
+ u8 ballIconSpritesIds[6];
+ u8 taskId;
+
+ if (!arg2 || GetBankIdentity(bank) != IDENTITY_OPPONENT_MON2)
+ {
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ {
+ isOpponent = FALSE;
+ bar_X = 136, bar_Y = 96;
+ bar_pos2_X = 100;
+ bar_data0 = -5;
+ }
+ else
+ {
+ isOpponent = TRUE;
+
+ if (!arg2 || !IsDoubleBattle())
+ bar_X = 104, bar_Y = 40;
+ else
+ bar_X = 104, bar_Y = 16;
+
+ bar_pos2_X = -100;
+ bar_data0 = 5;
+ }
+ }
+ else
+ {
+ isOpponent = TRUE;
+ bar_X = 104, bar_Y = 40;
+ bar_pos2_X = -100;
+ bar_data0 = 5;
+ }
+
+ LoadCompressedObjectPicUsingHeap(&sStatusSummaryBarSpriteSheet);
+ LoadSpriteSheet(&sStatusSummaryBallsSpriteSheet);
+ LoadSpritePalette(&sStatusSummaryBarSpritePal);
+ LoadSpritePalette(&sStatusSummaryBallsSpritePal);
+
+ barSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10);
+ SetSubspriteTables(&gSprites[barSpriteId], sStatusSummaryBar_SubspriteTable);
+ gSprites[barSpriteId].pos2.x = bar_pos2_X;
+ gSprites[barSpriteId].data0 = bar_data0;
+
+ if (isOpponent)
+ {
+ gSprites[barSpriteId].pos1.x -= 96;
+ gSprites[barSpriteId].oam.matrixNum = 8;
+ }
+ else
+ {
+ gSprites[barSpriteId].pos1.x += 96;
+ }
+
+ for (i = 0; i < 6; i++)
+ {
+ ballIconSpritesIds[i] = CreateSpriteAtEnd(&sStatusSummaryBallsSpriteTemplates[isOpponent], bar_X, bar_Y - 4, 9);
+
+ if (!isBattleStart)
+ gSprites[ballIconSpritesIds[i]].callback = SpriteCB_StatusSummaryBallsOnSwitchout;
+
+ if (!isOpponent)
+ {
+ gSprites[ballIconSpritesIds[i]].pos2.x = 0;
+ gSprites[ballIconSpritesIds[i]].pos2.y = 0;
+ }
+
+ gSprites[ballIconSpritesIds[i]].data0 = barSpriteId;
+
+ if (!isOpponent)
+ {
+ gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24;
+ gSprites[ballIconSpritesIds[i]].data1 = i * 7 + 10;
+ gSprites[ballIconSpritesIds[i]].pos2.x = 120;
+ }
+ else
+ {
+ gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24;
+ gSprites[ballIconSpritesIds[i]].data1 = (6 - i) * 7 + 10;
+ gSprites[ballIconSpritesIds[i]].pos2.x = -120;
+ }
+
+ gSprites[ballIconSpritesIds[i]].data2 = isOpponent;
+ }
+
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ {
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
+ gSprites[ballIconSpritesIds[i]].data7 = 1;
+ }
+ else if (partyInfo[i].hp == 0) // fainted mon
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
+ }
+ else if (partyInfo[i].status != 0) // mon with major status
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0, var = 5, j = 0; j < 6; j++)
+ {
+ if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg
+ {
+ gSprites[ballIconSpritesIds[var]].oam.tileNum += 1;
+ gSprites[ballIconSpritesIds[var]].data7 = 1;
+ var--;
+ continue;
+ }
+ else if (partyInfo[j].hp == 0) // fainted mon
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_2A0 & gBitTable[j]) // hmm...?
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 3;
+ }
+ else if (partyInfo[j].status != 0) // mon with major status
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 2;
+ }
+ i++;
+ }
+ }
+ }
+ else
+ {
+ if (gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_TWO_OPPONENTS))
+ {
+ for (var = 5, i = 0; i < 6; i++)
+ {
+ if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg
+ {
+ gSprites[ballIconSpritesIds[var]].oam.tileNum += 1;
+ gSprites[ballIconSpritesIds[var]].data7 = 1;
+ }
+ else if (partyInfo[i].hp == 0) // fainted mon
+ {
+ gSprites[ballIconSpritesIds[var]].oam.tileNum += 3;
+ }
+ else if (partyInfo[i].status != 0) // mon with major status
+ {
+ gSprites[ballIconSpritesIds[var]].oam.tileNum += 2;
+ }
+ var--;
+ }
+ }
+ else
+ {
+ for (var = 0, i = 0, j = 0; j < 6; j++)
+ {
+ if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg
+ {
+ gSprites[ballIconSpritesIds[i]].oam.tileNum += 1;
+ gSprites[ballIconSpritesIds[i]].data7 = 1;
+ i++;
+ continue;
+ }
+ else if (partyInfo[j].hp == 0) // fainted mon
+ {
+ gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3;
+ }
+ else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_2A1 & gBitTable[j]) // hmm...?
+ {
+ gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 3;
+ }
+ else if (partyInfo[j].status != 0) // mon with major status
+ {
+ gSprites[ballIconSpritesIds[5 - var]].oam.tileNum += 2;
+ }
+ var++;
+ }
+ }
+ }
+
+ taskId = CreateTask(TaskDummy, 5);
+ gTasks[taskId].data[0] = bank;
+ gTasks[taskId].data[1] = barSpriteId;
+
+ for (i = 0; i < 6; i++)
+ gTasks[taskId].data[3 + i] = ballIconSpritesIds[i];
+
+ gTasks[taskId].data[10] = isBattleStart;
+
+ if (isBattleStart)
+ {
+ gBattleSpritesDataPtr->animationData->field_9_x1C++;
+ }
+
+ PlaySE12WithPanning(SE_TB_START, 0);
+ return taskId;
+}
+
+void sub_8073C30(u8 taskId)
+{
+ u8 sp[6];
+ u8 r7;
+ u8 r10;
+ u8 bank;
+ s32 i;
+
+ r7 = gTasks[taskId].data[10];
+ r10 = gTasks[taskId].data[1];
+ bank = gTasks[taskId].data[0];
+
+ for (i = 0; i < 6; i++)
+ sp[i] = gTasks[taskId].data[3 + i];
+
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x3F40);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
+
+ gTasks[taskId].data[15] = 16;
+
+ for (i = 0; i < 6; i++)
+ gSprites[sp[i]].oam.objMode = 1;
+
+ gSprites[r10].oam.objMode = 1;
+
+ if (r7 != 0)
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (GetBankSide(bank) != SIDE_PLAYER)
+ {
+ gSprites[sp[5 - i]].data1 = 7 * i;
+ gSprites[sp[5 - i]].data3 = 0;
+ gSprites[sp[5 - i]].data4 = 0;
+ gSprites[sp[5 - i]].callback = sub_8074158;
+ }
+ else
+ {
+ gSprites[sp[i]].data1 = 7 * i;
+ gSprites[sp[i]].data3 = 0;
+ gSprites[sp[i]].data4 = 0;
+ gSprites[sp[i]].callback = sub_8074158;
+ }
+ }
+ gSprites[r10].data0 /= 2;
+ gSprites[r10].data1 = 0;
+ gSprites[r10].callback = sub_8074090;
+ SetSubspriteTables(&gSprites[r10], sUnknown_0832C2CC);
+ gTasks[taskId].func = sub_8073E08;
+ }
+ else
+ {
+ gTasks[taskId].func = sub_8073F98;
+ }
+}
+
+static void sub_8073E08(u8 taskId)
+{
+ u16 temp = gTasks[taskId].data[11]++;
+
+ if (!(temp & 1))
+ {
+ gTasks[taskId].data[15]--;
+ if (gTasks[taskId].data[15] < 0)
+ return;
+
+ SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[15]) | ((16 - gTasks[taskId].data[15]) << 8));
+ }
+ if (gTasks[taskId].data[15] == 0)
+ gTasks[taskId].func = sub_8073E64;
+}
+
+static void sub_8073E64(u8 taskId)
+{
+ u8 sp[6];
+ s32 i;
+
+ u8 bank = gTasks[taskId].data[0];
+ gTasks[taskId].data[15]--;
+ if (gTasks[taskId].data[15] == -1)
+ {
+ u8 var = gTasks[taskId].data[1];
+
+ for (i = 0; i < 6; i++)
+ sp[i] = gTasks[taskId].data[3 + i];
+
+ gBattleSpritesDataPtr->animationData->field_9_x1C--;
+ if (!gBattleSpritesDataPtr->animationData->field_9_x1C)
+ {
+ DestroySpriteAndFreeResources(&gSprites[var]);
+ DestroySpriteAndFreeResources(&gSprites[sp[0]]);
+ }
+ else
+ {
+ FreeSpriteOamMatrix(&gSprites[var]);
+ DestroySprite(&gSprites[var]);
+ FreeSpriteOamMatrix(&gSprites[sp[0]]);
+ DestroySprite(&gSprites[sp[0]]);
+ }
+
+ for (i = 1; i < 6; i++)
+ DestroySprite(&gSprites[sp[i]]);
+ }
+ else if (gTasks[taskId].data[15] == -3)
+ {
+ gBattleSpritesDataPtr->healthBoxesData[bank].flag_x1 = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_8073F98(u8 taskId)
+{
+ u8 sp[6];
+ s32 i;
+
+ u8 bank = gTasks[taskId].data[0];
+ gTasks[taskId].data[15]--;
+ if (gTasks[taskId].data[15] >= 0)
+ {
+ SetGpuReg(REG_OFFSET_BLDALPHA, (gTasks[taskId].data[15]) | ((16 - gTasks[taskId].data[15]) << 8));
+ }
+ else if (gTasks[taskId].data[15] == -1)
+ {
+ u8 var = gTasks[taskId].data[1];
+
+ for (i = 0; i < 6; i++)
+ sp[i] = gTasks[taskId].data[3 + i];
+
+ DestroySpriteAndFreeResources(&gSprites[var]);
+ DestroySpriteAndFreeResources(&gSprites[sp[0]]);
+
+ for (i = 1; i < 6; i++)
+ DestroySprite(&gSprites[sp[i]]);
+ }
+ else if (gTasks[taskId].data[15] == -3)
+ {
+ gBattleSpritesDataPtr->healthBoxesData[bank].flag_x1 = 0;
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ DestroyTask(taskId);
+ }
+}
+
+static void SpriteCB_StatusSummaryBar(struct Sprite *sprite)
+{
+ if (sprite->pos2.x != 0)
+ sprite->pos2.x += sprite->data0;
+}
+
+static void sub_8074090(struct Sprite *sprite)
+{
+ sprite->data1 += 32;
+ if (sprite->data0 > 0)
+ sprite->pos2.x += sprite->data1 >> 4;
+ else
+ sprite->pos2.x -= sprite->data1 >> 4;
+ sprite->data1 &= 0xF;
+}
+
+static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite)
+{
+ u8 var1;
+ u16 var2;
+ s8 pan;
+
+ if (sprite->data1 > 0)
+ {
+ sprite->data1--;
+ return;
+ }
+
+ var1 = sprite->data2;
+ var2 = sprite->data3;
+ var2 += 56;
+ sprite->data3 = var2 & 0xFFF0;
+
+ if (var1 != 0)
+ {
+ sprite->pos2.x += var2 >> 4;
+ if (sprite->pos2.x > 0)
+ sprite->pos2.x = 0;
+ }
+ else
+ {
+ sprite->pos2.x -= var2 >> 4;
+ if (sprite->pos2.x < 0)
+ sprite->pos2.x = 0;
+ }
+
+ if (sprite->pos2.x == 0)
+ {
+ pan = PAN_SIDE_OPPONENT;
+ if (var1 != 0)
+ pan = PAN_SIDE_PLAYER;
+
+ if (sprite->data7 != 0)
+ PlaySE2WithPanning(SE_TB_KARA, pan);
+ else
+ PlaySE1WithPanning(SE_TB_KON, pan);
+
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void sub_8074158(struct Sprite *sprite)
+{
+ u8 var1;
+ u16 var2;
+
+ if (sprite->data1 > 0)
+ {
+ sprite->data1--;
+ return;
+ }
+ var1 = sprite->data2;
+ var2 = sprite->data3;
+ var2 += 56;
+ sprite->data3 = var2 & 0xFFF0;
+ if (var1 != 0)
+ sprite->pos2.x += var2 >> 4;
+ else
+ sprite->pos2.x -= var2 >> 4;
+ if (sprite->pos2.x + sprite->pos1.x > 248
+ || sprite->pos2.x + sprite->pos1.x < -8)
+ {
+ sprite->invisible = TRUE;
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite)
+{
+ u8 barSpriteId = sprite->data0;
+
+ sprite->pos2.x = gSprites[barSpriteId].pos2.x;
+ sprite->pos2.y = gSprites[barSpriteId].pos2.y;
+}
+
+static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon)
+{
+ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ void *ptr;
+ const u8 *genderTxt;
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+ u16 species;
+ u8 gender;
+
+ StringCopy(gDisplayedStringBattle, gText_HighlightDarkGrey);
+ GetMonData(mon, MON_DATA_NICKNAME, nickname);
+ StringGetEnd10(nickname);
+ ptr = StringAppend(gDisplayedStringBattle, nickname);
+
+ gender = GetMonGender(mon);
+ species = GetMonData(mon, MON_DATA_SPECIES);
+
+ if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && StringCompare(nickname, gSpeciesNames[species]) == 0)
+ gender = 100;
+
+ // AddTextPrinterAndCreateWindowOnHealthbox's arguments are the same in all 3 cases.
+ // It's possible they may have been different in early development phases.
+ switch (gender)
+ {
+ default:
+ StringCopy(ptr, gText_DynColor2);
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
+ break;
+ case MON_MALE:
+ StringCopy(ptr, gText_DynColor2Male);
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
+ break;
+ case MON_FEMALE:
+ StringCopy(ptr, gText_DynColor1Female);
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gDisplayedStringBattle, 0, 3, 2, &windowId);
+ break;
+ }
+
+ spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER)
+ {
+ sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6);
+ ptr = (void*)(OBJ_VRAM0);
+ if (!IsDoubleBattle())
+ ptr += spriteTileNum + 0x800;
+ else
+ ptr += spriteTileNum + 0x400;
+ sub_8075198(ptr, windowTileData + 0xC0, 1);
+ }
+ else
+ {
+ sub_8075198((void*)(0x6010020 + spriteTileNum), windowTileData, 7);
+ }
+
+ RemoveWindowOnHealthbox(windowId);
+}
+
+static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus)
+{
+ u8 bank, healthboxSpriteId_2;
+
+ if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL)
+ return;
+ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
+ return;
+
+ bank = gSprites[healthboxSpriteId].data6;
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ return;
+ if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT))
+ return;
+
+ healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5;
+
+ if (noStatus)
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32);
+ else
+ CpuFill32(0, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32);
+}
+
+static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId)
+{
+ s32 i;
+ u8 bank, healthboxSpriteId_2;
+ u32 status, pltAdder;
+ const u8 *statusGfxPtr;
+ s16 tileNumAdder;
+ u8 statusPalId;
+
+ bank = gSprites[healthboxSpriteId].data6;
+ healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5;
+ if (GetBankSide(bank) == SIDE_PLAYER)
+ {
+ status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS);
+ if (!IsDoubleBattle())
+ tileNumAdder = 0x1A;
+ else
+ tileNumAdder = 0x12;
+ }
+ else
+ {
+ status = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_STATUS);
+ tileNumAdder = 0x11;
+ }
+
+ if (status & STATUS_SLEEP)
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_SLP_BANK0, bank));
+ statusPalId = PAL_STATUS_SLP;
+ }
+ else if (status & STATUS_PSN_ANY)
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PSN_BANK0, bank));
+ statusPalId = PAL_STATUS_PSN;
+ }
+ else if (status & STATUS_BURN)
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_BRN_BANK0, bank));
+ statusPalId = PAL_STATUS_BRN;
+ }
+ else if (status & STATUS_FREEZE)
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_FRZ_BANK0, bank));
+ statusPalId = PAL_STATUS_FRZ;
+ }
+ else if (status & STATUS_PARALYSIS)
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(GetStatusIconForBankId(HEALTHBOX_GFX_STATUS_PRZ_BANK0, bank));
+ statusPalId = PAL_STATUS_PAR;
+ }
+ else
+ {
+ statusGfxPtr = GetHealthboxElementGfxPtr(HEALTHBOX_GFX_39);
+
+ for (i = 0; i < 3; i++)
+ CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder + i) * 32), 32);
+
+ if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void *)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 64);
+
+ TryAddPokeballIconToHealthbox(healthboxSpriteId, TRUE);
+ return;
+ }
+
+ pltAdder = gSprites[healthboxSpriteId].oam.paletteNum * 16;
+ pltAdder += bank + 12;
+
+ FillPalette(sStatusIconPalettes[statusPalId], pltAdder + 0x100, 2);
+ CpuCopy16(gPlttBufferUnfaded + 0x100 + pltAdder, (void*)(OBJ_PLTT + pltAdder * 2), 2);
+ CpuCopy32(statusGfxPtr, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId].oam.tileNum + tileNumAdder) * 32), 96);
+ if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT)
+ {
+ if (!gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars)
+ {
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_0), (void*)(OBJ_VRAM0 + gSprites[healthboxSpriteId_2].oam.tileNum * 32), 32);
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_65), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 1) * 32), 32);
+ }
+ }
+ TryAddPokeballIconToHealthbox(healthboxSpriteId, FALSE);
+}
+
+static u8 GetStatusIconForBankId(u8 statusElementId, u8 bank)
+{
+ u8 ret = statusElementId;
+
+ switch (statusElementId)
+ {
+ case HEALTHBOX_GFX_STATUS_PSN_BANK0:
+ if (bank == 0)
+ ret = HEALTHBOX_GFX_STATUS_PSN_BANK0;
+ else if (bank == 1)
+ ret = HEALTHBOX_GFX_STATUS_PSN_BANK1;
+ else if (bank == 2)
+ ret = HEALTHBOX_GFX_STATUS_PSN_BANK2;
+ else
+ ret = HEALTHBOX_GFX_STATUS_PSN_BANK3;
+ break;
+ case HEALTHBOX_GFX_STATUS_PRZ_BANK0:
+ if (bank == 0)
+ ret = HEALTHBOX_GFX_STATUS_PRZ_BANK0;
+ else if (bank == 1)
+ ret = HEALTHBOX_GFX_STATUS_PRZ_BANK1;
+ else if (bank == 2)
+ ret = HEALTHBOX_GFX_STATUS_PRZ_BANK2;
+ else
+ ret = HEALTHBOX_GFX_STATUS_PRZ_BANK3;
+ break;
+ case HEALTHBOX_GFX_STATUS_SLP_BANK0:
+ if (bank == 0)
+ ret = HEALTHBOX_GFX_STATUS_SLP_BANK0;
+ else if (bank == 1)
+ ret = HEALTHBOX_GFX_STATUS_SLP_BANK1;
+ else if (bank == 2)
+ ret = HEALTHBOX_GFX_STATUS_SLP_BANK2;
+ else
+ ret = HEALTHBOX_GFX_STATUS_SLP_BANK3;
+ break;
+ case HEALTHBOX_GFX_STATUS_FRZ_BANK0:
+ if (bank == 0)
+ ret = HEALTHBOX_GFX_STATUS_FRZ_BANK0;
+ else if (bank == 1)
+ ret = HEALTHBOX_GFX_STATUS_FRZ_BANK1;
+ else if (bank == 2)
+ ret = HEALTHBOX_GFX_STATUS_FRZ_BANK2;
+ else
+ ret = HEALTHBOX_GFX_STATUS_FRZ_BANK3;
+ break;
+ case HEALTHBOX_GFX_STATUS_BRN_BANK0:
+ if (bank == 0)
+ ret = HEALTHBOX_GFX_STATUS_BRN_BANK0;
+ else if (bank == 1)
+ ret = HEALTHBOX_GFX_STATUS_BRN_BANK1;
+ else if (bank == 2)
+ ret = HEALTHBOX_GFX_STATUS_BRN_BANK2;
+ else
+ ret = HEALTHBOX_GFX_STATUS_BRN_BANK3;
+ break;
+ }
+ return ret;
+}
+
+static void UpdateSafariBallsTextOnHealthbox(u8 healthboxSpriteId)
+{
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(gText_SafariBalls, 0, 3, 2, &windowId);
+ spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
+ sub_8075198((void*)(OBJ_VRAM0 + 0x40) + spriteTileNum, windowTileData, 6);
+ sub_8075198((void*)(OBJ_VRAM0 + 0x800) + spriteTileNum, windowTileData + 0xC0, 2);
+ RemoveWindowOnHealthbox(windowId);
+}
+
+static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId)
+{
+ u8 text[16];
+ u8 *txtPtr;
+ u32 windowId, spriteTileNum;
+ u8 *windowTileData;
+
+ txtPtr = StringCopy(text, gText_SafariBallLeft);
+ ConvertIntToDecimalStringN(txtPtr, gNumSafariBalls, STR_CONV_MODE_LEFT_ALIGN, 2);
+
+ windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, GetStringRightAlignXOffset(0, text, 0x2F), 3, 2, &windowId);
+ spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32;
+ sub_80751E4((void*)(OBJ_VRAM0 + 0x2C0) + spriteTileNum, windowTileData, 2);
+ sub_80751E4((void*)(OBJ_VRAM0 + 0xA00) + spriteTileNum, windowTileData + 0x40, 4);
+ RemoveWindowOnHealthbox(windowId);
+}
+
+void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId)
+{
+ s32 maxHp, currHp;
+ u8 bank = gSprites[healthboxSpriteId].data6;
+
+ if (elementId == HEALTHBOX_ALL && !IsDoubleBattle())
+ GetBankSide(bank); // pointless function call
+
+ if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER)
+ {
+ u8 isDoubles;
+
+ if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
+ UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
+ if (elementId == HEALTHBOX_CURRENT_HP || elementId == HEALTHBOX_ALL)
+ UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_HP), HP_CURRENT);
+ if (elementId == HEALTHBOX_MAX_HP || elementId == HEALTHBOX_ALL)
+ UpdateHpTextInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_MAX_HP), HP_MAX);
+ if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
+ {
+ LoadBattleBarGfx(0);
+ maxHp = GetMonData(mon, MON_DATA_MAX_HP);
+ currHp = GetMonData(mon, MON_DATA_HP);
+ SetBattleBarStruct(bank, healthboxSpriteId, maxHp, currHp, 0);
+ sub_8074AA0(bank, healthboxSpriteId, HEALTH_BAR, 0);
+ }
+ isDoubles = IsDoubleBattle();
+ if (!isDoubles && (elementId == HEALTHBOX_EXP_BAR || elementId == HEALTHBOX_ALL))
+ {
+ u16 species;
+ u32 exp, currLevelExp;
+ s32 currExpBarValue, maxExpBarValue;
+ u8 level;
+
+ LoadBattleBarGfx(3);
+ species = GetMonData(mon, MON_DATA_SPECIES);
+ level = GetMonData(mon, MON_DATA_LEVEL);
+ exp = GetMonData(mon, MON_DATA_EXP);
+ currLevelExp = gExperienceTables[gBaseStats[species].growthRate][level];
+ currExpBarValue = exp - currLevelExp;
+ maxExpBarValue = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLevelExp;
+ SetBattleBarStruct(bank, healthboxSpriteId, maxExpBarValue, currExpBarValue, isDoubles);
+ sub_8074AA0(bank, healthboxSpriteId, EXP_BAR, 0);
+ }
+ if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL)
+ UpdateNickInHealthbox(healthboxSpriteId, mon);
+ if (elementId == HEALTHBOX_STATUS_ICON || elementId == HEALTHBOX_ALL)
+ UpdateStatusIconInHealthbox(healthboxSpriteId);
+ if (elementId == HEALTHBOX_SAFARI_ALL_TEXT)
+ UpdateSafariBallsTextOnHealthbox(healthboxSpriteId);
+ if (elementId == HEALTHBOX_SAFARI_ALL_TEXT || elementId == HEALTHBOX_SAFARI_BALLS_TEXT)
+ UpdateLeftNoOfBallsTextOnHealthbox(healthboxSpriteId);
+ }
+ else
+ {
+ if (elementId == HEALTHBOX_LEVEL || elementId == HEALTHBOX_ALL)
+ UpdateLvlInHealthbox(healthboxSpriteId, GetMonData(mon, MON_DATA_LEVEL));
+ if (elementId == HEALTHBOX_HEALTH_BAR || elementId == HEALTHBOX_ALL)
+ {
+ LoadBattleBarGfx(0);
+ maxHp = GetMonData(mon, MON_DATA_MAX_HP);
+ currHp = GetMonData(mon, MON_DATA_HP);
+ SetBattleBarStruct(bank, healthboxSpriteId, maxHp, currHp, 0);
+ sub_8074AA0(bank, healthboxSpriteId, HEALTH_BAR, 0);
+ }
+ if (elementId == HEALTHBOX_NICK || elementId == HEALTHBOX_ALL)
+ UpdateNickInHealthbox(healthboxSpriteId, mon);
+ if (elementId == HEALTHBOX_STATUS_ICON || elementId == HEALTHBOX_ALL)
+ UpdateStatusIconInHealthbox(healthboxSpriteId);
+ }
+}
+
+s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3)
+{
+ s32 var;
+
+ if (whichBar == HEALTH_BAR) // health bar
+ {
+ var = sub_8074DB8(gBattleSpritesDataPtr->battleBars[bank].maxValue,
+ gBattleSpritesDataPtr->battleBars[bank].currentValue,
+ gBattleSpritesDataPtr->battleBars[bank].field_C,
+ &gBattleSpritesDataPtr->battleBars[bank].field_10,
+ 6, 1);
+ }
+ else // exp bar
+ {
+ u16 expFraction = GetScaledExpFraction(gBattleSpritesDataPtr->battleBars[bank].currentValue,
+ gBattleSpritesDataPtr->battleBars[bank].field_C,
+ gBattleSpritesDataPtr->battleBars[bank].maxValue, 8);
+ if (expFraction == 0)
+ expFraction = 1;
+ expFraction = abs(gBattleSpritesDataPtr->battleBars[bank].field_C / expFraction);
+
+ var = sub_8074DB8(gBattleSpritesDataPtr->battleBars[bank].maxValue,
+ gBattleSpritesDataPtr->battleBars[bank].currentValue,
+ gBattleSpritesDataPtr->battleBars[bank].field_C,
+ &gBattleSpritesDataPtr->battleBars[bank].field_10,
+ 8, expFraction);
+ }
+
+ if (whichBar == EXP_BAR || (whichBar == HEALTH_BAR && !gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars))
+ sub_8074B9C(bank, whichBar);
+
+ if (var == -1)
+ gBattleSpritesDataPtr->battleBars[bank].field_10 = 0;
+
+ return var;
+}
+
+static void sub_8074B9C(u8 bank, u8 whichBar)
+{
+ u8 array[7];
+ u8 subRet, level;
+ u8 barElementId;
+ u8 i;
+
+ switch (whichBar)
+ {
+ case HEALTH_BAR:
+ subRet = sub_8074E8C(gBattleSpritesDataPtr->battleBars[bank].maxValue,
+ gBattleSpritesDataPtr->battleBars[bank].currentValue,
+ gBattleSpritesDataPtr->battleBars[bank].field_C,
+ &gBattleSpritesDataPtr->battleBars[bank].field_10,
+ array, 6);
+ barElementId = 3;
+ if (subRet <= 0x18)
+ {
+ barElementId = 0x38;
+ if (subRet > 9)
+ barElementId = 0x2F;
+ }
+ for (i = 0; i < 6; i++)
+ {
+ u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data5;
+ if (i < 2)
+ CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
+ (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + i) * 32), 32);
+ else
+ CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32,
+ (void*)(OBJ_VRAM0 + 64 + (i + gSprites[healthboxSpriteId_2].oam.tileNum) * 32), 32);
+ }
+ break;
+ case EXP_BAR:
+ sub_8074E8C(gBattleSpritesDataPtr->battleBars[bank].maxValue,
+ gBattleSpritesDataPtr->battleBars[bank].currentValue,
+ gBattleSpritesDataPtr->battleBars[bank].field_C,
+ &gBattleSpritesDataPtr->battleBars[bank].field_10,
+ array, 8);
+ level = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_LEVEL);
+ if (level == MAX_MON_LEVEL)
+ {
+ for (i = 0; i < 8; i++)
+ array[i] = 0;
+ }
+ for (i = 0; i < 8; i++)
+ {
+ if (i < 4)
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
+ (void*)(OBJ_VRAM0 + (gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].oam.tileNum + 0x24 + i) * 32), 32);
+ else
+ CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_12) + array[i] * 32,
+ (void*)(OBJ_VRAM0 + 0xB80 + (i + gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].oam.tileNum) * 32), 32);
+ }
+ break;
+ }
+}
+
+static s32 sub_8074DB8(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 arg4, u16 arg5)
+{
+ s32 r6;
+ s32 ret;
+ arg4 <<= 3;
+
+ if (*arg3 == -32768)
+ {
+ if (maxValue < arg4)
+ *arg3 = currValue << 8;
+ else
+ *arg3 = currValue;
+ }
+
+ currValue -= arg2;
+ if (currValue < 0)
+ currValue = 0;
+ else if (currValue > maxValue)
+ currValue = maxValue;
+
+ if (maxValue < arg4)
+ {
+ s32 var = *arg3 >> 8;
+
+ r6 = *arg3;
+ if (currValue == var && (r6 & 0xFF) == 0)
+ return -1;
+ }
+ else
+ {
+ r6 = *arg3;
+ if (currValue == r6)
+ return -1;
+ }
+
+ if (maxValue < arg4)
+ {
+ s32 var = (maxValue << 8) / arg4;
+
+ if (arg2 < 0)
+ {
+ *arg3 = r6 + var;
+ ret = *arg3 >> 8;
+ if (ret >= currValue)
+ {
+ *arg3 = currValue << 8;
+ ret = currValue;
+ }
+ }
+ else
+ {
+ *arg3 = r6 - var;
+ ret = *arg3 >> 8;
+ if ((*arg3 & 0xFF) > 0)
+ ret++;
+ if (ret <= currValue)
+ {
+ *arg3 = currValue << 8;
+ ret = currValue;
+ }
+ }
+ }
+ else
+ {
+ if (arg2 < 0)
+ {
+ *arg3 += arg5;
+ if (*arg3 > currValue)
+ *arg3 = currValue;
+ ret = *arg3;
+ }
+ else
+ {
+ *arg3 -= arg5;
+ if (*arg3 < currValue)
+ *arg3 = currValue;
+ ret = *arg3;
+ }
+ }
+
+ return ret;
+}
+
+static u8 sub_8074E8C(s32 maxValue, s32 currValue, s32 arg2, s32 *arg3, u8 *arg4, u8 arg5)
+{
+ s32 r5 = currValue - arg2;
+ u8 ret;
+ u8 i;
+ u8 r2;
+
+ if (r5 < 0)
+ r5 = 0;
+ else if (r5 > maxValue)
+ r5 = maxValue;
+
+ ret = arg5 << 3;
+
+ for (i = 0; i < arg5; i++)
+ arg4[i] = 0;
+
+ if (maxValue < ret)
+ r2 = (*arg3 * ret / maxValue) >> 8;
+ else
+ r2 = *arg3 * ret / maxValue;
+
+ ret = r2;
+
+ if (ret == 0 && r5 > 0)
+ {
+ arg4[0] = 1;
+ ret = 1;
+ }
+ else
+ {
+ for (i = 0; i < arg5; i++)
+ {
+ if (r2 >= 8)
+ {
+ arg4[i] = 8;
+ }
+ else
+ {
+ arg4[i] = r2;
+ break;
+ }
+ r2 -= 8;
+ }
+ }
+
+ return ret;
+}
+
+static s16 sub_8074F28(struct TestingBar *barInfo, s32 *arg1, u16 *arg2, s32 arg3)
+{
+ s16 ret, var;
+
+ ret = sub_8074DB8(barInfo->maxValue,
+ barInfo->currValue,
+ barInfo->field_8,
+ arg1, 6, 1);
+ sub_8074F88(barInfo, arg1, arg2);
+
+ if (barInfo->maxValue < 0x30)
+ var = *arg1 >> 8;
+ else
+ var = *arg1;
+
+ DummiedOutFunction(barInfo->maxValue, var, arg3);
+
+ return ret;
+}
+
+static void sub_8074F88(struct TestingBar *barInfo, s32 *arg1, u16 *arg2)
+{
+ u8 sp8[6];
+ u16 sp10[6];
+ u8 i;
+
+ sub_8074E8C(barInfo->maxValue, barInfo->currValue,
+ barInfo->field_8, arg1, sp8, 6);
+
+ for (i = 0; i < 6; i++)
+ sp10[i] = (barInfo->unkC_0 << 12) | (barInfo->unk10 + sp8[i]);
+
+ CpuCopy16(sp10, arg2, sizeof(sp10));
+}
+
+static u8 GetScaledExpFraction(s32 currValue, s32 arg1, s32 maxValue, u8 scale)
+{
+ s32 r5, result;
+ s8 r4, r0;
+
+ scale *= 8;
+ r5 = currValue - arg1;
+
+ if (r5 < 0)
+ r5 = 0;
+ else if (r5 > maxValue)
+ r5 = maxValue;
+
+ r4 = currValue * scale / maxValue;
+ r0 = r5 * scale / maxValue;
+ result = r4 - r0;
+
+ return abs(result);
+}
+
+u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale)
+{
+ u8 result = hp * scale / maxhp;
+
+ if (result == 0 && hp > 0)
+ return 1;
+
+ return result;
+}
+
+u8 GetHPBarLevel(s16 hp, s16 maxhp)
+{
+ s32 result;
+
+ if (hp == maxhp)
+ {
+ result = 4;
+ }
+ else
+ {
+ u8 fraction = GetScaledHPFraction(hp, maxhp, 48);
+ if (fraction > 24)
+ result = 3;
+ else if (fraction > 9)
+ result = 2;
+ else if (fraction > 0)
+ result = 1;
+ else
+ result = 0;
+ }
+
+ return result;
+}
+
+static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y, u32 arg3, u32 *windowId)
+{
+ u16 winId;
+ struct TextColor color;
+ struct WindowTemplate winTemplate = sHealthboxWindowTemplate;
+
+ winId = AddWindow(&winTemplate);
+ FillWindowPixelBuffer(winId, (arg3 << 4) | (arg3));
+
+ color.fgColor = arg3;
+ color.bgColor = 1;
+ color.shadowColor = 3;
+
+ AddTextPrinterParametrized2(winId, 0, x, y, 0, 0, &color, -1, str);
+
+ *windowId = winId;
+ return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
+}
+
+static void RemoveWindowOnHealthbox(u32 windowId)
+{
+ RemoveWindow(windowId);
+}
+
+static void sub_807513C(void *dest, u32 arg1, u32 arg2)
+{
+ CpuFill32(0x11111111 * arg1, dest, arg2 * 32);
+}
+
+static void sub_8075170(void *dest, u8 *windowTileData, u32 arg2)
+{
+ CpuCopy32(windowTileData + 256, dest, arg2 * 32);
+}
+
+static void sub_8075198(void *dest, u8 *windowTileData, s32 arg2)
+{
+ CpuCopy32(windowTileData + 256, dest + 256, arg2 * 32);
+
+ if (arg2 > 0)
+ {
+ do
+ {
+ CpuCopy32(windowTileData + 20, dest + 20, 12);
+ dest += 32, windowTileData+= 32;
+ arg2--;
+ } while (arg2 != 0);
+ }
+}
+
+static void sub_80751E4(void *dest, u8 *windowTileData, u32 arg2)
+{
+ CpuCopy32(windowTileData, dest, arg2 * 32);
+ CpuCopy32(windowTileData + 256, dest + 256, arg2 * 32);
+}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index fb6a8272b..28357d984 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -349,7 +349,7 @@ static void atk51_switch_handle_order(void);
static void atk52_switch_in_effects(void);
static void atk53_trainer_slide(void);
static void atk54_effectiveness_sound(void);
-static void atk55_play_sound(void);
+static void atk55_play_fanfare(void);
static void atk56_fainting_cry(void);
static void atk57(void);
static void atk58_return_to_ball(void);
@@ -601,7 +601,7 @@ void (* const gBattleScriptingCommandsTable[])(void) =
atk52_switch_in_effects,
atk53_trainer_slide,
atk54_effectiveness_sound,
- atk55_play_sound,
+ atk55_play_fanfare,
atk56_fainting_cry,
atk57,
atk58_return_to_ball,
@@ -909,7 +909,7 @@ static const u8 sUnknown_0831C2E8[] = INCBIN_U8("graphics/battle_interface/unk_b
static const u8 sRubyLevelUpStatBoxStats[] =
{
MON_DATA_MAX_HP, MON_DATA_SPATK, MON_DATA_ATK,
- MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPD
+ MON_DATA_SPDEF, MON_DATA_DEF, MON_DATA_SPEED
};
#define MON_ICON_LVLUP_BOX_TAG 0xD75A
@@ -3610,7 +3610,7 @@ static void atk23_getexp(void)
BATTLE_LVLUP_STATS->hp = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MAX_HP);
BATTLE_LVLUP_STATS->atk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK);
BATTLE_LVLUP_STATS->def = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF);
- BATTLE_LVLUP_STATS->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD);
+ BATTLE_LVLUP_STATS->spd = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
BATTLE_LVLUP_STATS->spAtk = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK);
BATTLE_LVLUP_STATS->spDef = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF);
@@ -3649,8 +3649,8 @@ static void atk23_getexp(void)
gBattleMons[0].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK);
gBattleMons[0].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF);
// Why is this duplicated?
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD);
- gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
+ gBattleMons[0].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
gBattleMons[0].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK);
gBattleMons[0].spDefense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPDEF);
@@ -3664,8 +3664,8 @@ static void atk23_getexp(void)
gBattleMons[2].attack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_ATK);
gBattleMons[2].defense = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_DEF);
// Duplicated again, but this time there's no Sp Defense
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD);
- gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPD);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
+ gBattleMons[2].speed = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPEED);
gBattleMons[2].spAttack = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_SPATK);
}
@@ -5308,7 +5308,7 @@ static void atk4B_return_atk_to_ball(void)
gActiveBank = gBankAttacker;
if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank)))
{
- EmitReturnPokeToBall(0, 0);
+ EmitReturnMonToBall(0, 0);
MarkBufferBankForExecution(gActiveBank);
}
gBattlescriptCurrInstr++;
@@ -5627,7 +5627,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -5649,7 +5649,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -5670,7 +5670,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -5692,7 +5692,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -5755,7 +5755,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -5771,7 +5771,7 @@ static void atk50_openpartyscreen(void)
{
gAbsentBankFlags |= gBitTable[gActiveBank];
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
- Emit_x2A(0);
+ EmitCmd42(0);
MarkBufferBankForExecution(gActiveBank);
}
else if (!gSpecialStatuses[gActiveBank].flag40)
@@ -6031,10 +6031,10 @@ static void atk54_effectiveness_sound(void)
gBattlescriptCurrInstr += 3;
}
-static void atk55_play_sound(void)
+static void atk55_play_fanfare(void)
{
gActiveBank = gBankAttacker;
- EmitPlaySound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), 0);
+ EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
@@ -6052,7 +6052,7 @@ static void atk56_fainting_cry(void)
static void atk57(void)
{
gActiveBank = GetBankByIdentity(0);
- Emit_x37(0, gBattleOutcome);
+ EmitCmd55(0, gBattleOutcome);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 1;
@@ -6061,7 +6061,7 @@ static void atk57(void)
static void atk58_return_to_ball(void)
{
gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
- EmitReturnPokeToBall(0, 1);
+ EmitReturnMonToBall(0, 1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -7137,7 +7137,7 @@ static void atk76_various(void)
gDisableStructs[1].truantUnknownBit = 1;
break;
case 13:
- EmitCmd13(0);
+ EmitCmd19(0);
MarkBufferBankForExecution(gActiveBank);
break;
case 14:
@@ -7162,7 +7162,7 @@ static void atk76_various(void)
gActiveBank = 1;
if (gBattleMons[gActiveBank].hp != 0)
{
- EmitReturnPokeToBall(0, 0);
+ EmitReturnMonToBall(0, 0);
MarkBufferBankForExecution(gActiveBank);
}
break;
@@ -7172,7 +7172,7 @@ static void atk76_various(void)
gActiveBank = 3;
if (gBattleMons[gActiveBank].hp != 0)
{
- EmitReturnPokeToBall(0, 0);
+ EmitReturnMonToBall(0, 0);
MarkBufferBankForExecution(gActiveBank);
}
}
@@ -7197,7 +7197,7 @@ static void atk76_various(void)
gBattleOutcome = BATTLE_OPPONENT_TELEPORTED;
break;
case VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC:
- EmitPlaySound(0, BGM_KACHI1, 1);
+ EmitPlayFanfareOrBGM(0, BGM_KACHI1, TRUE);
MarkBufferBankForExecution(gActiveBank);
break;
}
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
new file mode 100755
index 000000000..3192e0e11
--- /dev/null
+++ b/src/clear_save_data_screen.c
@@ -0,0 +1,209 @@
+#include "global.h"
+#include "task.h"
+#include "menu.h"
+#include "text.h"
+#include "sound.h"
+#include "main.h"
+#include "save.h"
+#include "palette.h"
+#include "gpu_regs.h"
+#include "bg.h"
+#include "text_window.h"
+#include "songs.h"
+
+extern u8 gText_ClearAllSaveData[];
+extern u8 gText_ClearingData[];
+
+extern u16 gUnknown_0860F074[];
+
+static void Task_DoClearSaveDataScreenYesNo(u8);
+static void Task_ClearSaveDataScreenYesNoChoice(u8);
+static void Task_ClearSaveData(u8);
+static bool8 SetupClearSaveDataScreen(void);
+static void CB2_FadeAndDoReset(void);
+static void InitClearSaveDataScreenWindows(void);
+
+static const struct BgTemplate sClearSaveBgTemplates[2] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0,
+ },
+ {
+ .bg = 3,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0,
+ },
+};
+
+static const struct WindowTemplate sClearSaveTextWindow[] =
+{
+ {
+ .priority = 0,
+ .tilemapLeft = 3,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 11,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sClearSaveYesNo[] =
+{
+ {
+ .priority = 0,
+ .tilemapLeft = 3,
+ .tilemapTop = 2,
+ .width = 5,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 115,
+ }
+};
+
+void CB2_InitClearSaveDataScreen(void)
+{
+ if(SetupClearSaveDataScreen())
+ CreateTask(Task_DoClearSaveDataScreenYesNo, 0);
+}
+
+static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
+{
+ SetWindowBorderStyle(0, 0, 2, 14);
+ PrintTextOnWindow(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0);
+ CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1);
+ gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice;
+}
+
+static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
+{
+ switch(sub_8198C58())
+ {
+ case 0:
+ FillWindowPixelBuffer(0, 17);
+ PrintTextOnWindow(0, 1, gText_ClearingData, 0, 1, 0, 0);
+ gTasks[taskId].func = Task_ClearSaveData;
+ break;
+ case 1:
+ case -1:
+ PlaySE(SE_SELECT);
+ DestroyTask(taskId);
+ SetMainCallback2(CB2_FadeAndDoReset);
+ }
+}
+
+static void Task_ClearSaveData(u8 taskId)
+{
+ ClearSaveData();
+ DestroyTask(taskId);
+ SetMainCallback2(CB2_FadeAndDoReset);
+}
+
+static void MainCB(void)
+{
+ RunTasks();
+ UpdatePaletteFade();
+}
+
+static void VBlankCB(void)
+{
+ TransferPlttBuffer();
+}
+
+static bool8 SetupClearSaveDataScreen(void)
+{
+ u16 i;
+
+ switch(gMain.state)
+ {
+ case 0:
+ default:
+ SetVBlankCallback(NULL);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0);
+ SetGpuReg(REG_OFFSET_BG0HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0);
+ SetGpuReg(REG_OFFSET_BG3HOFS, 0);
+ SetGpuReg(REG_OFFSET_BG3VOFS, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
+ DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
+ DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
+ ResetPaletteFade();
+ gPlttBufferUnfaded[0] = 0x7fff;
+ gPlttBufferFaded[0] = 0x7fff;
+ gPlttBufferUnfaded[1] = 0x3945;
+ gPlttBufferFaded[1] = 0x3945;
+ for (i = 0; i < 0x10; i++)
+ ((u16 *)(VRAM + 0x20))[i] = 0x1111;
+
+ for (i = 0; i < 0x400; i++)
+ ((u16 *)(VRAM + 0xF000))[i] = 0x0001;
+ ResetTasks();
+ ResetSpriteData();
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, sClearSaveBgTemplates, ARRAY_COUNT(sClearSaveBgTemplates));
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ InitClearSaveDataScreenWindows();
+ BeginNormalPaletteFade(0x0000FFFF, 0, 0x10, 0, 0xFFFF);
+ EnableInterrupts(1);
+ SetVBlankCallback(VBlankCB);
+ gMain.state = 1;
+ break;
+ case 1:
+ UpdatePaletteFade();
+ if(!gPaletteFade.active)
+ {
+ SetMainCallback2(MainCB);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void CB2_FadeAndDoReset(void)
+{
+ switch(gMain.state)
+ {
+ case 0:
+ default:
+ BeginNormalPaletteFade(0x0000FFFF, 0, 0, 0x10, 0xFFFF);
+ gMain.state = 1;
+ break;
+ case 1:
+ UpdatePaletteFade();
+ if(!gPaletteFade.active)
+ {
+ FreeAllWindowBuffers();
+ DoSoftReset();
+ }
+ }
+}
+
+static void InitClearSaveDataScreenWindows(void)
+{
+ InitWindows(sClearSaveTextWindow);
+ DeactivateAllTextPrinters();
+ FillWindowPixelBuffer(0, 0);
+ sub_80987D4(0, 0, 2, 224);
+ LoadPalette(gUnknown_0860F074, 0xF0, 0x20);
+}
diff --git a/src/coins.c b/src/coins.c
index e651bc6ca..e1694b29c 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -5,12 +5,12 @@
#include "text_window.h"
#include "string_util.h"
#include "menu.h"
+#include "international_string_util.h"
#define MAX_COINS 9999
EWRAM_DATA u8 sCoinsWindowId = 0;
-extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
extern void sub_819746C(u8 windowId, bool8 copyToVram);
extern const u8 gText_Coins[];
diff --git a/src/decompress.c b/src/decompress.c
index 2863ff1f5..9210799ec 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -465,7 +465,7 @@ u32 sub_8034974(void* ptr)
return (ptr_[3] << 16) | (ptr_[2] << 8) | (ptr_[1]);
}
-bool8 LoadCompressedObjectPicUsingHeap(struct CompressedSpriteSheet* src)
+bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src)
{
struct SpriteSheet dest;
void* buffer;
diff --git a/src/decoration.c b/src/decoration.c
new file mode 100644
index 000000000..0179d36a1
--- /dev/null
+++ b/src/decoration.c
@@ -0,0 +1,2781 @@
+
+// Includes
+#include "global.h"
+#include "decompress.h"
+#include "malloc.h"
+#include "string_util.h"
+#include "international_string_util.h"
+#include "script.h"
+#include "task.h"
+#include "main.h"
+#include "palette.h"
+#include "songs.h"
+#include "overworld.h"
+#include "fieldmap.h"
+#include "metatile_behavior.h"
+#include "field_weather.h"
+#include "field_player_avatar.h"
+#include "field_camera.h"
+#include "field_screen.h"
+#include "field_map_obj.h"
+#include "list_menu.h"
+#include "menu_helpers.h"
+#include "new_menu_helpers.h"
+#include "menu_indicators.h"
+#include "sound.h"
+#include "event_scripts.h"
+#include "event_data.h"
+#include "region_map.h"
+#include "player_pc.h"
+#include "strings.h"
+#include "tv.h"
+#include "secret_base.h"
+#include "tilesets.h"
+#include "item_icon.h"
+#include "trader.h"
+#include "map_object_constants.h"
+#include "decoration_inventory.h"
+#include "decoration.h"
+#include "graphics.h"
+
+// Static type declarations
+
+#define OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG 0xbe5
+#define OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG 0x008
+
+struct DecorPCBuffer {
+ struct ListMenuItem items[41];
+ u8 names[41][24];
+ u8 unk_520;
+ u8 unk_521;
+ u8 unk_522;
+};
+
+struct PlaceDecorationGraphicsDataBuffer {
+ /*0x000; 0x0203a190*/ const struct Decoration *decoration;
+ /*0x004; 0x0203a194*/ u16 tiles[0x40];
+ /*0x084; 0x0203a214*/ u8 image[0x800];
+ /*0x884; 0x0203aa14*/ u16 palette[16];
+};
+
+struct DecorRearrangementDataBuffer {
+ u8 idx;
+ u8 width;
+ u8 height;
+ u16 flagId;
+};
+
+// Static RAM declarations
+
+EWRAM_DATA u8 *gCurDecorInventoryItems = NULL;
+EWRAM_DATA u8 sSecretBasePCMenuCursorPos = 0;
+EWRAM_DATA u8 sCurDecorCatCount = 0;
+EWRAM_DATA u8 sSecretBaseItemsIndicesBuffer[16] = {};
+EWRAM_DATA u8 sPlayerRoomItemsIndicesBuffer[12] = {};
+EWRAM_DATA u16 sSecretBasePCSelectDecorLineNo = 0;
+EWRAM_DATA u16 sSecretBasePCSelectDecorPageNo = 0;
+EWRAM_DATA u8 gCurDecorationIndex = 0;
+EWRAM_DATA u8 sCurDecorationCategory = DECORCAT_DESK;
+EWRAM_DATA u32 filler_0203a174[2] = {};
+EWRAM_DATA struct DecorPCPointers gUnknown_0203A17C = {};
+EWRAM_DATA u8 sDecorMenuWindowIndices[4] = {};
+EWRAM_DATA struct DecorPCBuffer *sDecorPCBuffer = NULL;
+EWRAM_DATA struct PlaceDecorationGraphicsDataBuffer sPlaceDecorationGraphicsDataBuffer = {};
+EWRAM_DATA u16 sCurDecorMapX = 0;
+EWRAM_DATA u16 sCurDecorMapY = 0;
+EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx1 = 0;
+EWRAM_DATA u8 sDecor_CameraSpriteObjectIdx2 = 0;
+EWRAM_DATA u8 sDecorationLastDirectionMoved = 0;
+EWRAM_DATA struct OamData sDecorSelectorOam = {};
+EWRAM_DATA struct DecorRearrangementDataBuffer sDecorRearrangementDataBuffer[16] = {};
+EWRAM_DATA u8 sCurDecorSelectedInRearrangement = 0;
+
+// Static ROM declarations
+
+void sub_8126B80(u8 taskId);
+void sub_8126C08(void);
+void SecretBasePC_Decorate(u8 taskId);
+void SecretBasePC_PutAway(u8 taskId);
+void SecretBasePC_Toss(u8 taskId);
+void sub_8126DA4(u8 taskId);
+void SecretBasePC_Cancel(u8 taskId);
+void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId);
+void sub_8126DFC(u8 taskId);
+void sub_8126E8C(u8 taskId);
+void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed);
+void sub_8127058(u8 *str, bool8 flag);
+void sub_8127088(u8 taskId);
+void sub_81270E8(u8 taskId);
+void sub_8127180(u8 taskId);
+void sub_812719C(u8 taskId);
+void sub_81271CC(u8 taskId);
+void sub_8127268(u8 taskId);
+void sub_8127454(u8 *dest, u16 decorId);
+void sub_8127480(u32 a0, bool8 flag, struct ListMenu *menu);
+void sub_81274A0(u8 a0, s32 a1, u8 a2);
+void sub_8127620(u8 taskId);
+void sub_812764C(u8 taskId);
+void sub_8127744(u32 a0);
+void sub_81277A8(void);
+bool8 sub_81277BC(u8 idx);
+bool8 sub_81277E8(u8 idx);
+void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId);
+void sub_812759C(u8 taskId);
+void sub_8127718(u8 decorCat);
+void sub_8127A30(u8 taskId);
+void sub_8127A8C(u8 taskId);
+void sub_8127F68(u8 taskId);
+void sub_8128060(u8 taskId);
+void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor);
+void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data);
+void sub_812826C(u8 taskId);
+void sub_81283BC(u8 taskId);
+void sub_8128414(u8 taskId);
+void sub_8128950(u8 taskId);
+void sub_81289D0(u8 taskId);
+void sub_81289F0(u8 taskId);
+void sub_8128AAC(u8 taskId);
+void sub_8128B80(u8 taskId);
+void sub_8128BA0(u8 taskId);
+void sub_8128BBC(u8 taskId);
+void c1_overworld_prev_quest(u8 taskId);
+void sub_8128CD4(void);
+void sub_8128DE0(void);
+void sub_8128FD8(u8 taskId);
+void sub_8129020(u8 taskId);
+void sub_81292D0(struct Sprite *sprite);
+void sub_81292E8(struct Sprite *sprite);
+u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor);
+const u8 *GetDecorationIconPicOrPalette(u16 decor, u8 mode);
+bool8 sub_81299AC(u8 taskId);
+void sub_8129ABC(u8 taskId);
+void sub_8129B34(u8 taskId);
+void sub_8129BCC(u8 taskId);
+void sub_8129BF8(u8 taskId);
+void sub_8129C74(u8 taskId);
+void sub_8129D64(u8 taskId);
+void sub_812A0E8(u8 taskId);
+void sub_812A1A0(u8 taskId);
+void sub_812A1C0(u8 taskId);
+void sub_812A1F0(u8 taskId);
+void sub_812A210(u8 taskId);
+void sub_812A22C(u8 taskId);
+void sub_812A25C(u8 taskId);
+void sub_812A334(void);
+void sub_812A36C(struct Sprite *sprite);
+void sub_812A39C(void);
+void sub_812A3C8(void);
+void sub_812A3D4(u8 taskId);
+void sub_812A458(u8 taskId);
+void sub_812A478(u8 taskId);
+
+// .rodata
+
+#include "data/decoration/tiles.h"
+#include "data/decoration/description.h"
+#include "data/decoration/header.h"
+
+const u8 *const sDecorCatNames[] = {
+ gText_Desk,
+ gText_Chair,
+ gText_Plant,
+ gText_Ornament,
+ gText_Mat,
+ gText_Poster,
+ gText_Doll,
+ gText_Cushion
+};
+
+const struct MenuAction sSecretBasePCMenuActions[] = {
+ {
+ gText_Decorate, {.void_u8=SecretBasePC_Decorate}
+ }, {
+ gText_PutAway, {.void_u8=SecretBasePC_PutAway}
+ }, {
+ gText_Toss2, {.void_u8=SecretBasePC_Toss}
+ }, {
+ gText_Cancel, {.void_u8=SecretBasePC_Cancel}
+ }
+};
+
+const u8 *const sSecretBasePCMenuItemDescriptions[] = {
+ gText_PutOutSelectedDecorItem,
+ gText_StoreChosenDecorInPC,
+ gText_ThrowAwayUnwantedDecors,
+ gText_GoBackPrevMenu
+};
+
+void (*const SecretBasePC_SelectedDecorActions[][2])(u8 taskId) = {
+ {
+ sub_8127F68, sub_8127A8C
+ }, {
+ sub_812A3D4, sub_8127A8C
+ }, {
+ sub_8133DA0, sub_8127A8C
+ }
+};
+
+const struct WindowTemplate gUnknown_085A6B90[4] = {
+ { 0, 1, 1, 18, 8, 15, 0x0001 },
+ { 0, 1, 1, 13, 18, 13, 0x0091 },
+ { 0, 17, 1, 12, 2, 15, 0x017b },
+ { 0, 16, 13, 13, 6, 15, 0x0193 }
+};
+
+const u16 gUnknown_085A6BB0[] = INCBIN_U16("graphics/decorations/unk_85a6bb0.gbapal");
+
+const struct ListMenuTemplate gUnknown_085A6BD0 = {
+ NULL,
+ sub_8127480,
+ sub_81274A0,
+ 0, 0,
+ 0, 0, 8, 0,
+ 9, 2, 1, 3, FALSE, 0, FALSE, 7
+};
+
+#include "data/decoration/icon.h"
+#include "data/decoration/tilemaps.h"
+
+const struct {
+ u8 shape;
+ u8 size;
+ u8 x;
+ u8 y;
+} gUnknown_085A7250[] = {
+ {0, 1, 0x78, 0x4e},
+ {1, 2, 0x80, 0x4e},
+ {1, 3, 0x90, 0x56},
+ {1, 3, 0x90, 0x46},
+ {0, 2, 0x80, 0x46},
+ {2, 2, 0x78, 0x46},
+ {2, 3, 0x80, 0x56},
+ {2, 3, 0x80, 0x36},
+ {0, 3, 0x90, 0x46},
+ {1, 3, 0x90, 0x46}
+};
+
+const union AnimCmd gUnknown_085A7278[] = {
+ ANIMCMD_FRAME(0, 0, FALSE, FALSE),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const sDecorSelectorAnims[] = {
+ gUnknown_085A7278
+};
+
+const struct SpriteFrameImage sDecorSelectorSpriteFrameImages = {
+ (const u8 *)&sPlaceDecorationGraphicsDataBuffer.image, 0x800
+};
+
+const struct SpriteTemplate sDecorSelectorSpriteTemplate = {
+ 0xffff,
+ OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG,
+ &sDecorSelectorOam,
+ sDecorSelectorAnims,
+ &sDecorSelectorSpriteFrameImages,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct SpriteTemplate sDecorWhilePlacingSpriteTemplate = {
+ 0x0000,
+ 0x0000,
+ &sDecorSelectorOam,
+ sDecorSelectorAnims,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct SpritePalette gUnknown_085A72BC = {
+ (const u16 *)&sPlaceDecorationGraphicsDataBuffer.palette, OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG
+};
+
+const struct YesNoFuncTable gUnknown_085A72C4 = {
+ sub_81289F0,
+ sub_8128FD8
+};
+
+const struct YesNoFuncTable gUnknown_085A72CC = {
+ sub_8128BA0,
+ sub_8128FD8
+};
+
+const struct YesNoFuncTable gUnknown_085A72D4[] = {
+ {
+ sub_81283BC,
+ sub_8128414
+ }, {
+ sub_8129BCC,
+ sub_8129BF8
+ }
+};
+
+const u8 gUnknown_085A72E4[] = {
+ 0x04, 0x04, 0x04, 0x04, 0x00, 0x03, 0x03, 0x00
+};
+
+const u8 gUnknown_085A72EC[] = {
+ 0x04, 0x04, 0x04, 0x04, 0x00, 0x04, 0x03, 0x00
+};
+
+const u16 gUnknown_085A72F4[] = {
+ 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x10, 0x20, 0x40, 0x20
+};
+
+const u16 Unknown_085A7308[] = INCBIN_U16("graphics/decorations/unk_85a7308.gbapal");
+
+const u16 Unknown_085A7328[] = INCBIN_U16("graphics/decorations/unk_85a7328.gbapal");
+
+const struct YesNoFuncTable gUnknown_085A7348 = {
+ sub_812A1C0,
+ sub_8129B34
+};
+
+const struct YesNoFuncTable gUnknown_085A7350 = {
+ sub_812A210,
+ sub_8129B34
+};
+
+const u8 Unknown_085A7358[] = INCBIN_U8("graphics/misc/decoration_unk_85a7358.4bpp");
+
+const struct SpritePalette gUnknown_085A73D8 = {
+ Unknown_085A7308, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG
+};
+
+const struct SpritePalette gUnknown_085A73E0 = {
+ Unknown_085A7328, OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG
+};
+
+const struct OamData Unknown_085A73E8 = {
+ .size = 1, .priority = 1
+};
+
+const union AnimCmd Unknown_085A73F0[] = {
+ ANIMCMD_FRAME(0, 0, 0),
+ ANIMCMD_END
+};
+
+const union AnimCmd *const Unknown_085A73F8[] = {
+ Unknown_085A73F0
+};
+
+const struct SpriteFrameImage Unknown_085A73FC = {
+ Unknown_085A7358, 0x80
+};
+
+const struct SpriteTemplate gUnknown_085A7404 = {
+ 0xFFFF,
+ OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG,
+ &Unknown_085A73E8,
+ Unknown_085A73F8,
+ &Unknown_085A73FC,
+ gDummySpriteAffineAnimTable,
+ sub_812A36C
+};
+
+const struct YesNoFuncTable gUnknown_085A741C = {
+ sub_812A478,
+ sub_8127A30
+};
+
+// .text
+
+void sub_8126968(void)
+{
+ if (sCurDecorationCategory < 8)
+ {
+ gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items;
+ }
+ if (gUnknown_0203A17C.isPlayerRoom == FALSE)
+ {
+ gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations;
+ gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos;
+ }
+ if (gUnknown_0203A17C.isPlayerRoom == TRUE)
+ {
+ gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor;
+ gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos;
+ }
+}
+
+u8 sub_81269D4(u8 idx)
+{
+ u8 *winidx;
+ struct WindowTemplate template;
+
+ winidx = &sDecorMenuWindowIndices[idx];
+ if (idx == 0)
+ {
+ template = gUnknown_085A6B90[0];
+ template.width = GetMaxWidthInMenuTable(sSecretBasePCMenuActions, 4);
+ if (template.width > 18)
+ {
+ template.width = 18;
+ }
+ *winidx = AddWindow(&template);
+ }
+ else
+ {
+ *winidx = AddWindow(&gUnknown_085A6B90[idx]);
+ }
+ SetWindowBorderStyle(*winidx, 0, 0x214, 0xe);
+ schedule_bg_copy_tilemap_to_vram(0);
+ return *winidx;
+}
+
+void sub_8126A58(u8 idx)
+{
+ sub_8198070(sDecorMenuWindowIndices[idx], FALSE);
+ ClearWindowTilemap(sDecorMenuWindowIndices[idx]);
+ RemoveWindow(sDecorMenuWindowIndices[idx]);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void sub_8126A88(void)
+{
+ u8 idx;
+
+ idx = sub_81269D4(0);
+ PrintMenuTable(idx, 4, sSecretBasePCMenuActions);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(idx, 4, sSecretBasePCMenuCursorPos);
+}
+
+void sub_8126ABC(void)
+{
+ sSecretBasePCMenuCursorPos = 0;
+ ScriptContext2_Enable();
+ sub_8126A88();
+ sub_8126C08();
+}
+
+void sub_8126AD8(u8 taskId)
+{
+ sub_8126ABC();
+ gUnknown_0203A17C.items = gSaveBlock1Ptr->secretBases[0].decorations;
+ gUnknown_0203A17C.pos = gSaveBlock1Ptr->secretBases[0].decorationPos;
+ gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->secretBases[0].decorations);
+ gUnknown_0203A17C.isPlayerRoom = FALSE;
+ gTasks[taskId].func = sub_8126B80;
+}
+
+void sub_8126B2C(u8 taskId)
+{
+ sub_8126ABC();
+ gUnknown_0203A17C.items = gSaveBlock1Ptr->playerRoomDecor;
+ gUnknown_0203A17C.pos = gSaveBlock1Ptr->playerRoomDecorPos;
+ gUnknown_0203A17C.size = sizeof(gSaveBlock1Ptr->playerRoomDecor);
+ gUnknown_0203A17C.isPlayerRoom = TRUE;
+ gTasks[taskId].func = sub_8126B80;
+}
+
+void sub_8126B80(u8 taskId)
+{
+ u8 menuPos;
+
+ if (!gPaletteFade.active)
+ {
+ menuPos = GetMenuCursorPos();
+ switch (ProcessMenuInput())
+ {
+ default:
+ PlaySE(SE_SELECT);
+ sSecretBasePCMenuActions[sSecretBasePCMenuCursorPos].func.void_u8(taskId);
+ break;
+ case -2:
+ sSecretBasePCMenuCursorPos = GetMenuCursorPos();
+ if ((s8)menuPos != sSecretBasePCMenuCursorPos)
+ {
+ sub_8126C08();
+ }
+ break;
+ case -1:
+ PlaySE(SE_SELECT);
+ SecretBasePC_Cancel(taskId);
+ break;
+ }
+ }
+}
+
+void sub_8126C08(void)
+{
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParametrized(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3);
+}
+
+void SecretBasePC_Decorate(u8 taskId)
+{
+ if (CountDecorations() == 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_NoDecorations);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4);
+ }
+ else
+ {
+ gTasks[taskId].data[11] = 0;
+ sCurDecorationCategory = DECORCAT_DESK;
+ SecretBasePC_PrepMenuForSelectingStoredDecors(taskId);
+ }
+}
+
+void SecretBasePC_PutAway(u8 taskId)
+{
+ if (!sub_81299AC(taskId))
+ {
+ StringExpandPlaceholders(gStringVar4, gText_NoDecorationsInUse);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4);
+ }
+ else
+ {
+ sub_8126A58(0);
+ sub_8197434(0, 0);
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_8129ABC;
+ }
+}
+
+void SecretBasePC_Toss(u8 taskId)
+{
+ if (CountDecorations() == 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_NoDecorations);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8126DA4);
+ }
+ else
+ {
+ gTasks[taskId].data[11] = 1;
+ sCurDecorationCategory = DECORCAT_DESK;
+ SecretBasePC_PrepMenuForSelectingStoredDecors(taskId);
+ }
+}
+
+void SecretBasePC_Cancel(u8 taskId)
+{
+ sub_8126A58(0);
+ if (!gUnknown_0203A17C.isPlayerRoom)
+ {
+ ScriptContext1_SetupScript(gUnknown_0823B4E8);
+ DestroyTask(taskId);
+ }
+ else
+ {
+ sub_816B060(taskId);
+ }
+}
+
+void sub_8126DA4(u8 taskId)
+{
+ sub_8126C08();
+ gTasks[taskId].func = sub_8126B80;
+}
+
+void SecretBasePC_PrepMenuForSelectingStoredDecors(u8 taskId)
+{
+ LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20);
+ sub_8197434(0, 0);
+ sub_8126A58(0);
+ sub_8126DFC(taskId);
+}
+
+void sub_8126DFC(u8 taskId)
+{
+ u8 winIdx;
+
+ winIdx = sub_81269D4(1);
+ sub_8126E8C(taskId);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(winIdx, 9, sCurDecorationCategory);
+ gTasks[taskId].func = sub_8127088;
+}
+
+void sub_8126E44(u8 taskId)
+{
+ FillWindowPixelBuffer(sDecorMenuWindowIndices[1], 0x11);
+ sub_8126E8C(taskId);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sDecorMenuWindowIndices[1], 9, sCurDecorationCategory);
+ gTasks[taskId].func = sub_8127088;
+}
+
+void sub_8126E8C(u8 taskId)
+{
+ s16 *data;
+ u8 r5;
+ bool8 r8;
+ u8 i;
+ bool8 fl;
+
+ data = gTasks[taskId].data;
+ r5 = sDecorMenuWindowIndices[1];
+ fl = gUnknown_0203A17C.isPlayerRoom;
+ r8 = FALSE;
+ if (fl == TRUE && data[11] == 0)
+ {
+ r8 = TRUE;
+ }
+ for (i = 0; i < 8; i ++)
+ {
+ if (r8 == TRUE && i != DECORCAT_DOLL && i != DECORCAT_CUSHION)
+ {
+ sub_8126F68(r5, i, 8, i << 4, TRUE, 0xFF);
+ }
+ else
+ {
+ sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF);
+ }
+ }
+ PrintTextOnWindow(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed)
+{
+ u8 width;
+ u8 *strbuf;
+
+ width = x == 8 ? 0x68 : 0x60;
+ y ++;
+ sub_8127058(gStringVar4, flag);
+ strbuf = StringLength(gStringVar4) + gStringVar4;
+ StringCopy(strbuf, sDecorCatNames[decorCat]);
+ PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL);
+ strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2);
+ *strbuf++ = CHAR_SLASH;
+ ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ x = GetStringRightAlignXOffset(1, gStringVar4, width);
+ PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL);
+}
+
+void sub_8127058(u8 *str, bool8 flag)
+{
+ StringCopy(str, gText_Color161Shadow161);
+ if (flag == TRUE)
+ {
+ str[2] = 0x04; // RED
+ str[5] = 0x05; // LIGHT_RED
+ }
+ else
+ {
+ str[2] = 0x02; // DARK_GREY
+ str[5] = 0x03; // LIGHT_GREY
+ }
+}
+
+void sub_8127088(u8 taskId)
+{
+ s8 input;
+
+ if (!gPaletteFade.active)
+ {
+ input = ProcessMenuInput();
+ switch (input)
+ {
+ case -1:
+ case 8:
+ PlaySE(SE_SELECT);
+ sub_812719C(taskId);
+ break;
+ case -2:
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ sCurDecorationCategory = input;
+ sub_81270E8(taskId);
+ break;
+ }
+ }
+}
+
+void sub_81270E8(u8 taskId)
+{
+ sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory);
+ if (sCurDecorCatCount != 0)
+ {
+ CondenseDecorationCategoryN(sCurDecorationCategory);
+ gCurDecorInventoryItems = gDecorationInventories[sCurDecorationCategory].items;
+ IdentifyOwnedDecorationsCurrentlyInUse(taskId);
+ sSecretBasePCSelectDecorPageNo = 0;
+ sSecretBasePCSelectDecorLineNo = 0;
+ gTasks[taskId].func = sub_8127620;
+ }
+ else
+ {
+ sub_8126A58(1);
+ StringExpandPlaceholders(gStringVar4, gText_NoDecorations);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127180);
+ }
+}
+
+void sub_8127180(u8 taskId)
+{
+ sub_8197434(0, 0);
+ sub_8126DFC(taskId);
+}
+
+void sub_812719C(u8 taskId)
+{
+ if (gTasks[taskId].data[11] != 2)
+ {
+ sub_81271CC(taskId);
+ }
+ else
+ {
+ sub_8127268(taskId);
+ }
+}
+
+void sub_81271CC(u8 taskId)
+{
+ sub_8126A58(1);
+ sub_8126A88();
+ sub_81973C4(0, 0);
+ sub_8126C08();
+ gTasks[taskId].func = sub_8126B80;
+}
+
+void sub_8127208(u8 taskId)
+{
+ LoadPalette(gUnknown_085A6BB0, 0xd0, 0x20);
+ sub_8197434(0, 0);
+ gTasks[taskId].data[11] = 2;
+ sCurDecorationCategory = DECORCAT_DESK;
+ sub_8126DFC(taskId);
+}
+
+void sub_8127250(u8 *dest, u8 decorCat)
+{
+ StringCopy(dest, sDecorCatNames[decorCat]);
+}
+
+void sub_8127268(u8 taskId)
+{
+ sub_8126A58(1);
+ sub_8133E1C(taskId);
+}
+
+void sub_8127284(void)
+{
+ sDecorPCBuffer->unk_520 = sCurDecorCatCount + 1;
+ if (sDecorPCBuffer->unk_520 > 8)
+ {
+ sDecorPCBuffer->unk_521 = 8;
+ }
+ else
+ {
+ sDecorPCBuffer->unk_521 = sDecorPCBuffer->unk_520;
+ }
+}
+
+void sub_81272C8(void)
+{
+ sub_812225C(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520);
+}
+
+void sub_81272F8(void)
+{
+ sub_8122298(&sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo, sDecorPCBuffer->unk_521, sDecorPCBuffer->unk_520, 8);
+}
+
+void sub_8127330(u8 taskId)
+{
+ s16 *data;
+ u16 i;
+
+ data = gTasks[taskId].data;
+ if ((sCurDecorationCategory < DECORCAT_DOLL || sCurDecorationCategory > DECORCAT_CUSHION) && gUnknown_0203A17C.isPlayerRoom == TRUE && data[11] == 0)
+ {
+ sub_8127058(gStringVar1, TRUE);
+ }
+ else
+ {
+ sub_8127058(gStringVar1, FALSE);
+ }
+ for (i = 0; i < sDecorPCBuffer->unk_520 - 1; i ++)
+ {
+ sub_8127454(sDecorPCBuffer->names[i], gCurDecorInventoryItems[i]);
+ sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i];
+ sDecorPCBuffer->items[i].unk_04 = i;
+ }
+ StringCopy(sDecorPCBuffer->names[i], gText_Cancel);
+ sDecorPCBuffer->items[i].unk_00 = sDecorPCBuffer->names[i];
+ sDecorPCBuffer->items[i].unk_04 = -2;
+ gUnknown_03006310 = gUnknown_085A6BD0;
+ gUnknown_03006310.unk_10 = sDecorMenuWindowIndices[1];
+ gUnknown_03006310.unk_0c = sDecorPCBuffer->unk_520;
+ gUnknown_03006310.unk_00 = sDecorPCBuffer->items;
+ gUnknown_03006310.unk_0e = sDecorPCBuffer->unk_521;
+}
+
+void sub_8127454(u8 *dest, u16 decorId)
+{
+ StringCopy(dest, gStringVar1);
+ StringAppend(dest, gDecorations[decorId].name);
+}
+
+void sub_8127480(u32 a0, bool8 flag, struct ListMenu *menu)
+{
+ if (flag != TRUE)
+ {
+ PlaySE(SE_SELECT);
+ }
+ sub_8127744(a0);
+}
+
+void sub_81274A0(u8 a0, s32 a1, u8 a2)
+{
+ if (a1 != -2)
+ {
+ if (sub_81277BC(a1 + 1) == TRUE)
+ {
+ blit_move_info_icon(a0, 0x18, 0x5c, a2 + 2);
+ }
+ else if (sub_81277E8(a1 + 1) == TRUE)
+ {
+ blit_move_info_icon(a0, 0x19, 0x5c, a2 + 2);
+ }
+ }
+}
+
+void sub_8127500(void)
+{
+ if (sDecorPCBuffer->unk_522 == 0xFF)
+ {
+ sDecorPCBuffer->unk_522 = AddScrollIndicatorArrowPairParametrized(0x02, 0x3c, 0x0c, 0x94, sDecorPCBuffer->unk_520 - sDecorPCBuffer->unk_521, 0x6e, 0x6e, &sSecretBasePCSelectDecorPageNo);
+ }
+}
+
+void sub_8127554(void)
+{
+ if (sDecorPCBuffer->unk_522 != 0xFF)
+ {
+ RemoveScrollIndicatorArrowPair(sDecorPCBuffer->unk_522);
+ sDecorPCBuffer->unk_522 = 0xFF;
+ }
+}
+
+void sub_8127580(u8 taskId)
+{
+ sub_81269D4(1);
+ sub_812759C(taskId);
+}
+
+void sub_812759C(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ sub_81269D4(3);
+ sub_8127718(sCurDecorationCategory);
+ sDecorPCBuffer = calloc(1, sizeof(struct DecorPCBuffer));
+ sDecorPCBuffer->unk_522 = 0xFF;
+ sub_8127284();
+ sub_81272C8();
+ sub_81272F8();
+ sub_8127330(taskId);
+ data[13] = ListMenuInit(&gUnknown_03006310, sSecretBasePCSelectDecorPageNo, sSecretBasePCSelectDecorLineNo);
+ sub_8127500();
+}
+
+void sub_8127620(u8 taskId)
+{
+ sub_812759C(taskId);
+ gTasks[taskId].func = sub_812764C;
+}
+
+void sub_812764C(u8 taskId)
+{
+ s16 *data;
+ s32 input;
+
+ data = gTasks[taskId].data;
+ if (!gPaletteFade.active)
+ {
+ input = ListMenuHandleInput(data[13]);
+ get_coro_args_x18_x1A(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo);
+ switch (input)
+ {
+ case -1:
+ break;
+ case -2:
+ PlaySE(SE_SELECT);
+ SecretBasePC_SelectedDecorActions[data[11]][1](taskId);
+ break;
+ default:
+ PlaySE(SE_SELECT);
+ gCurDecorationIndex = input;
+ sub_8127554();
+ sub_81AE6C8(data[13], &sSecretBasePCSelectDecorPageNo, &sSecretBasePCSelectDecorLineNo);
+ sub_8126A58(1);
+ sub_81277A8();
+ free(sDecorPCBuffer);
+ SecretBasePC_SelectedDecorActions[data[11]][0](taskId);
+ break;
+ }
+ }
+}
+
+void sub_8127718(u8 decorCat)
+{
+ sub_8126F68(sub_81269D4(2), decorCat, 0, 0, 0, 0);
+}
+
+void sub_8127744(u32 a0)
+{
+ u8 winidx;
+ const u8 *txt;
+
+ winidx = sDecorMenuWindowIndices[3];
+ FillWindowPixelBuffer(winidx, 0x11);
+ if (a0 >= sCurDecorCatCount)
+ {
+ txt = gText_GoBackPrevMenu;
+ }
+ else
+ {
+ txt = gDecorations[gCurDecorInventoryItems[a0]].description;
+ }
+ PrintTextOnWindow(winidx, 1, txt, 0, 1, 0, 0);
+}
+
+void sub_81277A8(void)
+{
+ sub_8126A58(3);
+ sub_8126A58(2);
+}
+
+bool8 sub_81277BC(u8 idx)
+{
+ u8 i;
+
+ for (i = 0; i < 16; i ++)
+ {
+ if (sSecretBaseItemsIndicesBuffer[i] == idx)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_81277E8(u8 idx)
+{
+ u8 i;
+
+ for (i = 0; i < 12; i ++)
+ {
+ if (sPlayerRoomItemsIndicesBuffer[i] == idx)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void IdentifyOwnedDecorationsCurrentlyInUseInternal(u8 taskId)
+{
+ u16 i;
+ u16 j;
+ u16 k;
+ u16 cnt;
+
+ cnt = 0;
+ memset(sSecretBaseItemsIndicesBuffer, 0, 16);
+ memset(sPlayerRoomItemsIndicesBuffer, 0, 12);
+ for (i = 0; i < 16; i ++)
+ {
+ if (gSaveBlock1Ptr->secretBases[0].decorations[i] != DECOR_NONE)
+ {
+ for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++)
+ {
+ if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->secretBases[0].decorations[i])
+ {
+ for (k = 0; k < cnt && sSecretBaseItemsIndicesBuffer[k] != j + 1; k ++);
+ if (k == cnt)
+ {
+ sSecretBaseItemsIndicesBuffer[cnt] = j + 1;
+ cnt ++;
+ break;
+ }
+ }
+ }
+ }
+ }
+ cnt = 0;
+ for (i = 0; i < 12; i ++)
+ {
+ if (gSaveBlock1Ptr->playerRoomDecor[i] != DECOR_NONE)
+ {
+ for (j = 0; j < gDecorationInventories[sCurDecorationCategory].size; j ++)
+ {
+ if (gCurDecorInventoryItems[j] == gSaveBlock1Ptr->playerRoomDecor[i] && sub_81277BC(j + 1) != TRUE)
+ {
+ for (k = 0; k < cnt && sPlayerRoomItemsIndicesBuffer[k] != j + 1; k ++);
+ if (k == cnt)
+ {
+ sPlayerRoomItemsIndicesBuffer[cnt] = j + 1;
+ cnt ++;
+ break;
+ }
+ }
+ }
+ }
+ }
+}
+
+void IdentifyOwnedDecorationsCurrentlyInUse(u8 taskId)
+{
+ IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId);
+}
+
+bool8 IsSelectedDecorInThePC(void)
+{
+ u16 i;
+ for (i = 0; i < 16; i ++)
+ {
+ if (sSecretBaseItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1)
+ {
+ return FALSE;
+ }
+ if (i < 12 && sPlayerRoomItemsIndicesBuffer[i] == sSecretBasePCSelectDecorPageNo + sSecretBasePCSelectDecorLineNo + 1)
+ {
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+void sub_8127A14(u8 taskId)
+{
+ sub_81269D4(1);
+ sub_8127620(taskId);
+}
+
+void sub_8127A30(u8 taskId)
+{
+ sub_8197434(0, 0);
+ gTasks[taskId].func = sub_8127A14;
+}
+
+void sub_8127A5C(u8 taskId)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ sub_8197434(0, 0);
+ sub_81269D4(1);
+ sub_8127620(taskId);
+ }
+}
+
+void sub_8127A8C(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ sub_8127554();
+ sub_81277A8();
+ sub_81AE6C8(data[13], NULL, NULL);
+ free(sDecorPCBuffer);
+ sub_8126E44(taskId);
+}
+
+void sub_8127ACC(u8 taskId)
+{
+ gTasks[taskId].data[3] = gSaveBlock1Ptr->pos.x;
+ gTasks[taskId].data[4] = gSaveBlock1Ptr->pos.y;
+ PlayerGetDestCoords(&gTasks[taskId].data[0], &gTasks[taskId].data[1]);
+}
+
+void sub_8127B04(u8 taskId)
+{
+ DrawWholeMapView();
+ Overworld_SetWarpDestination(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]);
+ warp_in();
+}
+
+u16 sub_8127B54(u8 decor, u8 a1)
+{
+ u16 resp;
+
+ resp = -1;
+ switch (decor)
+ {
+ case DECOR_STAND:
+ resp = gUnknown_085A72E4[a1] << 12;
+ return resp;
+ case DECOR_SLIDE:
+ resp = gUnknown_085A72EC[a1] << 12;
+ return resp;
+ default:
+ return resp;
+ }
+}
+
+void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor)
+{
+ u16 i;
+ u16 j;
+ u16 behavior;
+ u16 flags;
+ u16 v0;
+ u16 v1;
+ s16 decLeft;
+ s16 decBottom;
+
+ for (i = 0; i < decHeight; i ++)
+ {
+ decBottom = mapY - decHeight + 1 + i;
+ for (j = 0; j < decWidth; j ++)
+ {
+ decLeft = mapX + j;
+ behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]);
+ if (MetatileBehavior_IsMB_B9(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12)))
+ {
+ flags = 0xc00;
+ }
+ else
+ {
+ flags = 0x000;
+ }
+ if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsMB_B7(MapGridGetMetatileBehaviorAt(decLeft, decBottom)) == TRUE)
+ {
+ v0 = 1;
+ }
+ else
+ {
+ v0 = 0;
+ }
+ v1 = sub_8127B54(gDecorations[decor].id, i * decWidth + j);
+ if (v1 != 0xFFFF)
+ {
+ MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1);
+ }
+ else
+ {
+ MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags);
+ }
+ }
+ }
+}
+
+void sub_8127D38(u16 mapX, u16 mapY, u16 decor)
+{
+ switch (gDecorations[decor].shape)
+ {
+ case DECORSHAPE_1x1:
+ sub_8127B90(mapX, mapY, 1, 1, decor);
+ break;
+ case DECORSHAPE_2x1:
+ sub_8127B90(mapX, mapY, 2, 1, decor);
+ break;
+ case DECORSHAPE_3x1: // unused
+ sub_8127B90(mapX, mapY, 3, 1, decor);
+ break;
+ case DECORSHAPE_4x2:
+ sub_8127B90(mapX, mapY, 4, 2, decor);
+ break;
+ case DECORSHAPE_2x2:
+ sub_8127B90(mapX, mapY, 2, 2, decor);
+ break;
+ case DECORSHAPE_1x2:
+ sub_8127B90(mapX, mapY, 1, 2, decor);
+ break;
+ case DECORSHAPE_1x3: // unused
+ sub_8127B90(mapX, mapY, 1, 3, decor);
+ break;
+ case DECORSHAPE_2x4:
+ sub_8127B90(mapX, mapY, 2, 4, decor);
+ break;
+ case DECORSHAPE_3x3:
+ sub_8127B90(mapX, mapY, 3, 3, decor);
+ break;
+ case DECORSHAPE_3x2:
+ sub_8127B90(mapX, mapY, 3, 2, decor);
+ break;
+ }
+}
+
+void sub_8127E18(void)
+{
+ u8 i;
+ u8 j;
+
+ for (i = 0; i < 14; i ++)
+ {
+ if (FlagGet(0xAE + i) == TRUE)
+ {
+ FlagClear(0xAE + i);
+ for (j = 0; j < gMapHeader.events->mapObjectCount; j ++)
+ {
+ if (gMapHeader.events->mapObjects[j].flagId == 0xAE + i)
+ {
+ break;
+ }
+ }
+ VarSet(0x3F20 + gMapHeader.events->mapObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]);
+ gSpecialVar_0x8005 = gMapHeader.events->mapObjects[j].localId;
+ gSpecialVar_0x8006 = sCurDecorMapX;
+ gSpecialVar_0x8007 = sCurDecorMapY;
+ show_sprite(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ sub_808EBA8(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, gSpecialVar_0x8006, gSpecialVar_0x8007);
+ sub_808F254(gSpecialVar_0x8005, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
+ break;
+ }
+ }
+}
+
+bool8 sub_8127F38(void)
+{
+ u16 i;
+
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ if (gUnknown_0203A17C.items[i] == DECOR_NONE)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void sub_8127F68(u8 taskId)
+{
+ if (gUnknown_0203A17C.isPlayerRoom == TRUE && sCurDecorationCategory != DECORCAT_DOLL && sCurDecorationCategory != DECORCAT_CUSHION)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_CantPlaceInRoom);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C);
+ }
+ else if (IsSelectedDecorInThePC() == TRUE)
+ {
+ if (sub_8127F38() == TRUE)
+ {
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_8128060;
+ }
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203A17C.size, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ if (gUnknown_0203A17C.isPlayerRoom == FALSE) {
+ StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations2);
+ }
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C);
+ }
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gText_InUseAlready);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C);
+ }
+}
+
+void sub_8128060(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_8127ACC(taskId);
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ ConfigureCameraObjectForPlacingDecoration(&sPlaceDecorationGraphicsDataBuffer, gCurDecorInventoryItems[gCurDecorationIndex]);
+ sub_812826C(taskId);
+ SetUpPlacingDecorationPlayerAvatar(taskId, &sPlaceDecorationGraphicsDataBuffer);
+ pal_fill_black();
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gTasks[taskId].data[2] = 2;
+ break;
+ case 2:
+ if (sub_80ABDFC() == TRUE)
+ {
+ gTasks[taskId].data[12] = 0;
+ sub_8128FD8(taskId);
+ }
+ break;
+ }
+}
+
+void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor)
+{
+ sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0;
+ gUnknown_03005DD0.unk4 = gpu_pal_decompress_alloc_tag_and_upload(data, decor);
+ gSprites[gUnknown_03005DD0.unk4].oam.priority = 1;
+ gSprites[gUnknown_03005DD0.unk4].callback = sub_81292D0;
+ gSprites[gUnknown_03005DD0.unk4].pos1.x = gUnknown_085A7250[data->decoration->shape].x;
+ gSprites[gUnknown_03005DD0.unk4].pos1.y = gUnknown_085A7250[data->decoration->shape].y;
+}
+
+void SetUpPlacingDecorationPlayerAvatar(u8 taskId, struct PlaceDecorationGraphicsDataBuffer *data)
+{
+ u8 v0;
+
+ v0 = 16 * (u8)gTasks[taskId].data[5] + gUnknown_085A7250[data->decoration->shape].x - 8 * ((u8)gTasks[taskId].data[5] - 1);
+ if (data->decoration->shape == DECORSHAPE_3x1 || data->decoration->shape == DECORSHAPE_3x3 || data->decoration->shape == DECORSHAPE_3x2)
+ {
+ v0 -= 8;
+ }
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC1, SpriteCallbackDummy, v0, 0x48, 0);
+ }
+ else
+ {
+ sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC2, SpriteCallbackDummy, v0, 0x48, 0);
+ }
+ gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1;
+ DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]);
+ sDecor_CameraSpriteObjectIdx1 = gUnknown_03005DD0.unk4;
+}
+
+void sub_812826C(u8 taskId)
+{
+ switch (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].shape)
+ {
+ case DECORSHAPE_1x1:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_2x1:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_3x1:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 1;
+ break;
+ case DECORSHAPE_4x2:
+ gTasks[taskId].data[5] = 4;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_2x2:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_1x2:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 2;
+ break;
+ case DECORSHAPE_1x3:
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].data[6] = 3;
+ gTasks[taskId].data[1]++;
+ break;
+ case DECORSHAPE_2x4:
+ gTasks[taskId].data[5] = 2;
+ gTasks[taskId].data[6] = 4;
+ break;
+ case DECORSHAPE_3x3:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 3;
+ break;
+ case DECORSHAPE_3x2:
+ gTasks[taskId].data[5] = 3;
+ gTasks[taskId].data[6] = 2;
+ break;
+ }
+}
+
+void sub_81283BC(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1;
+ gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1;
+ sub_8128DE0();
+ sub_8128950(taskId);
+}
+
+void sub_8128414(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1;
+ gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1;
+ sub_8128DE0();
+ StringExpandPlaceholders(gStringVar4, gText_CancelDecorating);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8128B80);
+}
+
+bool8 sub_8128484(u8 behaviorAt, u16 behaviorBy)
+{
+ if (MetatileBehavior_IsMB_B3(behaviorAt) != TRUE || behaviorBy != 0)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_81284AC(u8 taskId, s16 x, s16 y, u16 decor)
+{
+ if (x == gTasks[taskId].data[3] + 7 && y == gTasks[taskId].data[4] + 7 && decor != DECOR_NONE)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_81284F4(u16 behaviorAt, const struct Decoration *decoration)
+{
+ if (MetatileBehavior_IsMB_B3(behaviorAt) != TRUE)
+ {
+ if (decoration->id == DECOR_SOLID_BOARD && MetatileBehavior_IsMB_C2(behaviorAt) == TRUE)
+ {
+ return TRUE;
+ }
+ if (MetatileBehavior_IsNormal(behaviorAt))
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 sub_812853C(u8 taskId, const struct Decoration *decoration)
+{
+ u8 i;
+ u8 j;
+ u8 behaviorAt;
+ u16 behaviorBy;
+ u8 mapY;
+ u8 mapX;
+ s16 curY;
+ s16 curX;
+ mapY = gTasks[taskId].data[6];
+ mapX = gTasks[taskId].data[5];
+
+ switch (decoration->permission)
+ {
+ case DECORPERM_SOLID_FLOOR:
+ case DECORPERM_PASS_FLOOR:
+ for (i=0; i<mapY; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
+ if (!sub_81284F4(behaviorAt, decoration))
+ {
+ return FALSE;
+ }
+ if (!sub_81284AC(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
+ {
+ return FALSE;
+ }
+ }
+ }
+ break;
+ case DECORPERM_BEHIND_FLOOR:
+ for (i=0; i<mapY-1; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000;
+ if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy))
+ {
+ return FALSE;
+ }
+ if (!sub_81284AC(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
+ {
+ return FALSE;
+ }
+ }
+ }
+ curY = gTasks[taskId].data[1] - mapY + 1;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000;
+ if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsMB_B7(behaviorAt))
+ {
+ return FALSE;
+ }
+ if (!sub_81284AC(taskId, curX, curY, behaviorBy))
+ {
+ return FALSE;
+ }
+ behaviorAt = GetFieldObjectIdByXYZ(curX, curY, 0);
+ if (behaviorAt != 0 && behaviorAt != 16)
+ {
+ return FALSE;
+ }
+ }
+ break;
+ case DECORPERM_NA_WALL:
+ for (i=0; i<mapY; i++)
+ {
+ curY = gTasks[taskId].data[1] - i;
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ if (!MetatileBehavior_IsMB_B7(MapGridGetMetatileBehaviorAt(curX, curY)))
+ {
+ return FALSE;
+ }
+ if (MapGridGetMetatileIdAt(curX, curY + 1) == 0x28c)
+ {
+ return FALSE;
+ }
+ }
+ }
+ break;
+ case DECORPERM_SOLID_MAT:
+ curY = gTasks[taskId].data[1];
+ for (j=0; j<mapX; j++)
+ {
+ curX = gTasks[taskId].data[0] + j;
+ behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY);
+ if (decoration->shape == DECORSHAPE_1x2)
+ {
+ if (!MetatileBehavior_IsMB_C3(behaviorAt))
+ {
+ return FALSE;
+ }
+ }
+ else if (!MetatileBehavior_IsMB_B5(behaviorAt))
+ {
+ if (!MetatileBehavior_IsMB_C3(behaviorAt))
+ {
+ return FALSE;
+ }
+ }
+ if (GetFieldObjectIdByXYZ(curX, curY, 0) != 16)
+ {
+ return FALSE;
+ }
+ }
+ break;
+ }
+ return TRUE;
+}
+
+void sub_8128950(u8 taskId)
+{
+ if (sub_812853C(taskId, &gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]]) == TRUE)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_PlaceItHere);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_81289D0);
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ StringExpandPlaceholders(gStringVar4, gText_CantBePlacedHere);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8129020);
+ }
+}
+
+void sub_81289D0(u8 taskId)
+{
+ sub_8197930();
+ sub_8121F68(taskId, &gUnknown_085A72C4);
+}
+
+void sub_81289F0(u8 taskId)
+{
+ sub_8197434(0, 0);
+ sub_8128AAC(taskId);
+ if (gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].permission != DECORPERM_SOLID_MAT)
+ {
+ sub_8127D38(gTasks[taskId].data[0], gTasks[taskId].data[1], gCurDecorInventoryItems[gCurDecorationIndex]);
+ }
+ else
+ {
+ sCurDecorMapX = gTasks[taskId].data[0] - 7;
+ sCurDecorMapY = gTasks[taskId].data[1] - 7;
+ ScriptContext1_SetupScript(gUnknown_08275D1F);
+ }
+ gSprites[sDecor_CameraSpriteObjectIdx1].pos1.y += 2;
+ if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE)
+ {
+ TV_PutSecretBaseVisitOnTheAir();
+ }
+ sub_8128BBC(taskId);
+}
+
+void sub_8128AAC(u8 taskId)
+{
+ u16 i;
+
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ if (gUnknown_0203A17C.items[i] == DECOR_NONE)
+ {
+ gUnknown_0203A17C.items[i] = gCurDecorInventoryItems[gCurDecorationIndex];
+ gUnknown_0203A17C.pos[i] = ((gTasks[taskId].data[0] - 7) << 4) + (gTasks[taskId].data[1] - 7);
+ break;
+ }
+ }
+ if (!gUnknown_0203A17C.isPlayerRoom)
+ {
+ for (i = 0; i < 16; i ++)
+ {
+ if (sSecretBaseItemsIndicesBuffer[i] == 0)
+ {
+ sSecretBaseItemsIndicesBuffer[i] = gCurDecorationIndex + 1;
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < 12; i ++)
+ {
+ if (sPlayerRoomItemsIndicesBuffer[i] == 0)
+ {
+ sPlayerRoomItemsIndicesBuffer[i] = gCurDecorationIndex + 1;
+ break;
+ }
+ }
+ }
+}
+
+void sub_8128B80(u8 taskId)
+{
+ sub_8197930();
+ sub_8121F68(taskId, &gUnknown_085A72CC);
+}
+
+void sub_8128BA0(u8 taskId)
+{
+ sub_8197434(0, 0);
+ sub_8128BBC(taskId);
+}
+
+void sub_8128BBC(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = c1_overworld_prev_quest;
+}
+
+void c1_overworld_prev_quest(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ ScriptContext2_Enable();
+ if (!gPaletteFade.active)
+ {
+ sub_8127B04(taskId);
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ sub_812A3C8();
+ FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG);
+ gFieldCallback = sub_8128CD4;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_8128C64(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ switch (data[2])
+ {
+ case 0:
+ sub_80E9578();
+ data[2] ++;
+ break;
+ case 1:
+ ScriptContext1_SetupScript(gUnknown_08275D0C);
+ data[2] ++;
+ break;
+ case 2:
+ ScriptContext2_Enable();
+ data[2] ++;
+ break;
+ case 3:
+ if (sub_80ABDFC() == TRUE)
+ {
+ gTasks[taskId].func = sub_812764C;
+ }
+ break;
+ }
+}
+
+void sub_8128CD4(void)
+{
+ u8 taskId;
+
+ ScriptContext2_Enable();
+ pal_fill_black();
+ taskId = CreateTask(sub_8128C64, 8);
+ sub_8127580(taskId);
+ gTasks[taskId].data[2] = 0;
+}
+
+bool8 sub_8128D10(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ if (sDecorationLastDirectionMoved == DIR_SOUTH && data[1] - data[6] - 6 < 0)
+ {
+ data[1] ++;
+ return FALSE;
+ }
+ if (sDecorationLastDirectionMoved == DIR_NORTH && data[1] - 7 >= gMapHeader.mapData->height)
+ {
+ data[1] --;
+ return FALSE;
+ }
+ if (sDecorationLastDirectionMoved == DIR_WEST && data[0] - 7 < 0)
+ {
+ data[0] ++;
+ return FALSE;
+ }
+ if (sDecorationLastDirectionMoved == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapData->width)
+ {
+ data[0] --;
+ return FALSE;
+ }
+ return TRUE;
+}
+
+bool8 sub_8128DB4(void)
+{
+ u16 heldKeys;
+
+ heldKeys = gMain.heldKeys & 0x0F0;
+ if (heldKeys != DPAD_UP && heldKeys != DPAD_DOWN && heldKeys != DPAD_LEFT && heldKeys != DPAD_RIGHT)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void sub_8128DE0(void)
+{
+ sDecorationLastDirectionMoved = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0;
+}
+
+void sub_8128E18(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ if (!gSprites[sDecor_CameraSpriteObjectIdx1].data4)
+ {
+ if (data[10] == 1)
+ {
+ gUnknown_085A72D4[data[12]].yesFunc(taskId);
+ return;
+ } else if (data[10] == 2)
+ {
+ gUnknown_085A72D4[data[12]].noFunc(taskId);
+ return;
+ }
+ if ((gMain.heldKeys & 0x0F0) == DPAD_UP)
+ {
+ sDecorationLastDirectionMoved = DIR_SOUTH;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data3 = -2;
+ data[1]--;
+ }
+ if ((gMain.heldKeys & 0x0F0) == DPAD_DOWN)
+ {
+ sDecorationLastDirectionMoved = DIR_NORTH;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 2;
+ data[1]++;
+ }
+ if ((gMain.heldKeys & 0x0F0) == DPAD_LEFT)
+ {
+ sDecorationLastDirectionMoved = DIR_WEST;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data2 = -2;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0;
+ data[0]--;
+ }
+ if ((gMain.heldKeys & 0x0F0) == DPAD_RIGHT)
+ {
+ sDecorationLastDirectionMoved = DIR_EAST;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 2;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0;
+ data[0]++;
+ }
+ if (!sub_8128DB4() || !sub_8128D10(taskId))
+ {
+ sub_8128DE0();
+ }
+ }
+ if (sDecorationLastDirectionMoved)
+ {
+ gSprites[sDecor_CameraSpriteObjectIdx1].data4++;
+ gSprites[sDecor_CameraSpriteObjectIdx1].data4 &= 7;
+ }
+ if (!data[10])
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ data[10] = A_BUTTON;
+ }
+ if (gMain.newKeys & B_BUTTON)
+ {
+ data[10] = B_BUTTON;
+ }
+ }
+}
+
+void sub_8128FD8(u8 taskId)
+{
+ sub_8197434(0, 1);
+ gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].func = sub_8128E18;
+}
+
+void sub_8129020(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ sub_8128FD8(taskId);
+ }
+}
+
+void sub_8129048(struct PlaceDecorationGraphicsDataBuffer *data)
+{
+ CpuFill16(0, data, sizeof(*data));
+}
+
+void sub_8129068(u16 *dest, u16 pal)
+{
+ CpuFastCopy(&((u16 *)gTilesetPointer_SecretBase->palettes)[pal << 4], dest, 32);
+}
+
+void sub_8129088(u8 *dest, u16 tile)
+{
+ u8 buffer[32];
+ u16 mode;
+ u16 i;
+
+ mode = tile >> 10;
+ if (tile != 0)
+ {
+ tile &= 0x03FF;
+ }
+ CpuFastCopy(&((u8 *)gTilesetPointer_SecretBase->tiles)[tile << 5], buffer, 32);
+ switch (mode)
+ {
+ case 0:
+ CpuFastCopy(buffer, dest, 32);
+ break;
+ case 1:
+ for (i = 0; i < 8; i ++)
+ {
+ dest[4 * i] = (buffer[4 * (i + 1) - 1] >> 4) + ((buffer[4 * (i + 1) - 1] & 0x0F) << 4);
+ dest[4 * i + 1] = (buffer[4 * (i + 1) - 2] >> 4) + ((buffer[4 * (i + 1) - 2] & 0x0F) << 4);
+ dest[4 * i + 2] = (buffer[4 * (i + 1) - 3] >> 4) + ((buffer[4 * (i + 1) - 3] & 0x0F) << 4);
+ dest[4 * i + 3] = (buffer[4 * (i + 1) - 4] >> 4) + ((buffer[4 * (i + 1) - 4] & 0x0F) << 4);
+ }
+ break;
+ case 2:
+ for (i = 0; i < 8; i ++)
+ {
+ dest[4 * i] = buffer[4 * (7 - i)];
+ dest[4 * i + 1] = buffer[4 * (7 - i) + 1];
+ dest[4 * i + 2] = buffer[4 * (7 - i) + 2];
+ dest[4 * i + 3] = buffer[4 * (7 - i) + 3];
+ }
+ break;
+ case 3:
+ for (i = 0; i < 32; i ++)
+ {
+ dest[i] = (buffer[31 - i] >> 4) + ((buffer[31 - i] & 0x0F) << 4);
+ }
+ break;
+ }
+}
+
+void sub_81291A4(struct PlaceDecorationGraphicsDataBuffer *data)
+{
+ u16 i;
+ for (i = 0; i < 64; i ++)
+ {
+ sub_8129088(&data->image[i * 32], data->tiles[i]);
+ }
+}
+
+u16 sub_81291CC(u16 tile)
+{
+ return ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[tile] & 0xFFF;
+}
+
+void sub_81291E8(struct PlaceDecorationGraphicsDataBuffer *data)
+{
+ u8 i;
+ u8 shape;
+
+ shape = data->decoration->shape;
+ for (i = 0; i < gUnknown_085A71B0[shape].size; i ++)
+ {
+ data->tiles[gUnknown_085A71B0[shape].tiles[i]] = sub_81291CC(data->decoration->tiles[gUnknown_085A71B0[shape].y[i]] * 8 + gUnknown_085A71B0[shape].x[i]);
+ }
+}
+
+void SetDecorSelectionBoxOamAttributes(u8 decorShape)
+{
+ sDecorSelectorOam.y = 0;
+ sDecorSelectorOam.affineMode = ST_OAM_AFFINE_OFF;
+ sDecorSelectorOam.objMode = ST_OAM_OBJ_NORMAL;
+ sDecorSelectorOam.mosaic = 0;
+ sDecorSelectorOam.bpp = ST_OAM_4BPP;
+ sDecorSelectorOam.shape = gUnknown_085A7250[decorShape].shape;
+ sDecorSelectorOam.x = 0;
+ sDecorSelectorOam.matrixNum = 0;
+ sDecorSelectorOam.size = gUnknown_085A7250[decorShape].size;
+ sDecorSelectorOam.tileNum = 0;
+ sDecorSelectorOam.priority = 0;
+ sDecorSelectorOam.paletteNum = 0;
+}
+
+void sub_81292D0(struct Sprite *sprite)
+{
+ sprite->data2 = 0;
+ sprite->data3 = 0;
+ sprite->data4 = 0;
+ sprite->data5 = 0;
+ sprite->data6 = 0;
+ sprite->data7 = 0;
+ sprite->callback = sub_81292E8;
+}
+
+void sub_81292E8(struct Sprite *sprite)
+{
+ if (sprite->data7 == 0)
+ {
+ if (sprite->data6 < 15)
+ {
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ sprite->invisible = TRUE;
+ }
+ sprite->data6 ++;
+ sprite->data6 &= 0x1F;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ }
+}
+
+u8 gpu_pal_decompress_alloc_tag_and_upload(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor)
+{
+ sub_8129048(data);
+ data->decoration = &gDecorations[decor];
+ if (data->decoration->permission == DECORPERM_SOLID_MAT)
+ {
+ return AddPseudoFieldObject(data->decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1);
+ }
+ FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_SELECTOR_PAL_TAG);
+ sub_81291E8(data);
+ SetDecorSelectionBoxOamAttributes(data->decoration->shape);
+ sub_81291A4(data);
+ sub_8129068(data->palette, ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[(data->decoration->tiles[0] * 8) + 7] >> 12);
+ LoadSpritePalette(&gUnknown_085A72BC);
+ return CreateSprite(&sDecorSelectorSpriteTemplate, 0, 0, 0);
+}
+
+u8 AddDecorationIconObjectFromIconTable(u16 tilesTag, u16 paletteTag, u8 decor)
+{
+ struct SpriteSheet sheet;
+ struct CompressedSpritePalette palette;
+ struct SpriteTemplate *template;
+ u8 spriteId;
+
+ if (!AllocItemIconTemporaryBuffers())
+ {
+ return MAX_SPRITES;
+ }
+ LZDecompressWram(GetDecorationIconPicOrPalette(decor, 0), gUnknown_0203CEBC);
+ CopyItemIconPicTo4x4Buffer(gUnknown_0203CEBC, gUnknown_0203CEC0);
+ sheet.data = gUnknown_0203CEC0;
+ sheet.size = 0x200;
+ sheet.tag = tilesTag;
+ LoadSpriteSheet(&sheet);
+ palette.data = GetDecorationIconPicOrPalette(decor, 1);
+ palette.tag = paletteTag;
+ LoadCompressedObjectPalette(&palette);
+ template = malloc(sizeof(struct SpriteTemplate));
+ *template = gUnknown_08614FF4;
+ template->tileTag = tilesTag;
+ template->paletteTag = paletteTag;
+ spriteId = CreateSprite(template, 0, 0, 0);
+ FreeItemIconTemporaryBuffers();
+ free(template);
+ return spriteId;
+}
+
+const u8 *GetDecorationIconPicOrPalette(u16 decor, u8 mode)
+{
+ if (decor > 120)
+ {
+ decor = DECOR_NONE;
+ }
+ return gUnknown_085A6BE8[decor][mode];
+}
+
+u8 AddDecorationIconObjectFromFieldObject(u16 tilesTag, u16 paletteTag, u8 decor)
+{
+ u8 spriteId;
+ struct SpriteSheet sheet;
+ struct SpritePalette palette;
+ struct SpriteTemplate *template;
+
+ sub_8129048(&sPlaceDecorationGraphicsDataBuffer);
+ sPlaceDecorationGraphicsDataBuffer.decoration = &gDecorations[decor];
+ if (sPlaceDecorationGraphicsDataBuffer.decoration->permission != DECORPERM_SOLID_MAT)
+ {
+ sub_81291E8(&sPlaceDecorationGraphicsDataBuffer);
+ SetDecorSelectionBoxOamAttributes(sPlaceDecorationGraphicsDataBuffer.decoration->shape);
+ sub_81291A4(&sPlaceDecorationGraphicsDataBuffer);
+ sub_8129068(sPlaceDecorationGraphicsDataBuffer.palette, ((u16 *)gTilesetPointer_SecretBaseRedCave->metatiles)[(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0] * 8) + 7] >> 12);
+ sheet.data = sPlaceDecorationGraphicsDataBuffer.image;
+ sheet.size = gUnknown_085A72F4[sPlaceDecorationGraphicsDataBuffer.decoration->shape] << 5;
+ sheet.tag = tilesTag;
+ LoadSpriteSheet(&sheet);
+ palette.data = sPlaceDecorationGraphicsDataBuffer.palette;
+ palette.tag = paletteTag;
+ LoadSpritePalette(&palette);
+ template = Alloc(sizeof(struct SpriteTemplate));
+ *template = sDecorWhilePlacingSpriteTemplate;
+ template->tileTag = tilesTag;
+ template->paletteTag = paletteTag;
+ spriteId = CreateSprite(template, 0, 0, 0);
+ free(template);
+ }
+ else
+ {
+ spriteId = AddPseudoFieldObject(sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0], SpriteCallbackDummy, 0, 0, 1);
+ }
+ return spriteId;
+}
+
+u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag)
+{
+ u8 spriteId;
+
+ if (decor > 120)
+ {
+ spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, DECOR_NONE);
+ if (spriteId == MAX_SPRITES)
+ {
+ return MAX_SPRITES;
+ }
+ gSprites[spriteId].pos2.x = x + 4;
+ gSprites[spriteId].pos2.y = y + 4;
+ }
+ else if (gUnknown_085A6BE8[decor][0] == NULL)
+ {
+ spriteId = AddDecorationIconObjectFromFieldObject(tilesTag, paletteTag, decor);
+ if (spriteId == MAX_SPRITES)
+ {
+ return MAX_SPRITES;
+ }
+ gSprites[spriteId].pos2.x = x;
+ if (decor == DECOR_SILVER_SHIELD || decor == DECOR_GOLD_SHIELD)
+ {
+ gSprites[spriteId].pos2.y = y - 4;
+ }
+ else
+ {
+ gSprites[spriteId].pos2.y = y;
+ }
+ }
+ else
+ {
+ spriteId = AddDecorationIconObjectFromIconTable(tilesTag, paletteTag, decor);
+ if (spriteId == MAX_SPRITES)
+ {
+ return MAX_SPRITES;
+ }
+ gSprites[spriteId].pos2.x = x + 4;
+ gSprites[spriteId].pos2.y = y + 4;
+ }
+ gSprites[spriteId].oam.priority = priority;
+ return spriteId;
+}
+
+void sub_81296EC(u8 idx)
+{
+ gUnknown_0203A17C.items[idx] = 0;
+ gUnknown_0203A17C.pos[idx] = 0;
+}
+
+void sub_8129708(void)
+{
+ u16 i;
+
+ gSpecialVar_0x8005 = 0;
+ gScriptResult = 0;
+ if (gSpecialVar_0x8004 == sCurDecorSelectedInRearrangement)
+ {
+ gScriptResult = 1;
+ }
+ else if (gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx]].permission == DECORPERM_SOLID_MAT)
+ {
+ gSpecialVar_0x8005 = sDecorRearrangementDataBuffer[gSpecialVar_0x8004].flagId;
+ sub_81296EC(sDecorRearrangementDataBuffer[gSpecialVar_0x8004].idx);
+ for (i = 0; i < gMapHeader.events->mapObjectCount; i ++)
+ {
+ if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8005)
+ {
+ gSpecialVar_0x8006 = gMapHeader.events->mapObjects[i].localId;
+ break;
+ }
+ }
+ }
+}
+
+void sub_81297AC(void)
+{
+ u8 i;
+
+ for (i = 0; i < gMapHeader.events->mapObjectCount; i ++)
+ {
+ if (gMapHeader.events->mapObjects[i].flagId == gSpecialVar_0x8004)
+ {
+ gSpecialVar_0x8005 = gMapHeader.events->mapObjects[i].localId;
+ break;
+ }
+ }
+}
+
+void sub_81297F8(void)
+{
+ u8 i;
+ u8 y;
+ u8 x;
+ int posX;
+ int posY;
+ u8 perm;
+
+ for (i = 0; i < sCurDecorSelectedInRearrangement; i ++)
+ {
+ perm = gDecorations[gUnknown_0203A17C.items[sDecorRearrangementDataBuffer[i].idx]].permission;
+ posX = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] >> 4;
+ posY = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[i].idx] & 0x0F;
+ if (perm != DECORPERM_SOLID_MAT)
+ {
+ for (y = 0; y < sDecorRearrangementDataBuffer[i].height; y ++)
+ {
+ for (x = 0; x < sDecorRearrangementDataBuffer[i].width; x ++)
+ {
+ MapGridSetMetatileEntryAt(posX + 7 + x, posY + 7 - y, gMapHeader.mapData->map[posX + x + gMapHeader.mapData->width * (posY - y)] | 0x3000);
+ }
+ }
+ sub_81296EC(sDecorRearrangementDataBuffer[i].idx);
+ }
+ }
+}
+
+void sub_81298EC(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ sub_81297F8();
+ gTasks[taskId].data[2] = 1;
+ break;
+ case 1:
+ if (!gPaletteFade.active) {
+ DrawWholeMapView();
+ ScriptContext1_SetupScript(gUnknown_08275D2E);
+ sub_8197434(0, 1);
+ gTasks[taskId].data[2] = 2;
+ }
+ break;
+ case 2:
+ ScriptContext2_Enable();
+ IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId);
+ pal_fill_black();
+ gTasks[taskId].data[2] = 3;
+ break;
+ case 3:
+ if (sub_80ABDFC() == TRUE)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_DecorationReturnedToPC);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64);
+ if (gMapHeader.regionMapSectionId == REGION_MAP_SECRET_BASE)
+ {
+ TV_PutSecretBaseVisitOnTheAir();
+ }
+ }
+ break;
+ }
+}
+
+
+bool8 sub_81299AC(u8 taskId)
+{
+ u16 i;
+
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ if (gUnknown_0203A17C.items[i] != DECOR_NONE)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void SetUpPuttingAwayDecorationPlayerAvatar(void)
+{
+ player_get_direction_lower_nybble();
+ sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0;
+ sub_812A39C();
+ gUnknown_03005DD0.unk4 = CreateSprite(&gUnknown_085A7404, 0x78, 0x50, 0);
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC1, SpriteCallbackDummy, 0x88, 0x48, 0);
+ }
+ else
+ {
+ sDecor_CameraSpriteObjectIdx2 = AddPseudoFieldObject(0xC2, SpriteCallbackDummy, 0x88, 0x48, 0);
+ }
+ gSprites[sDecor_CameraSpriteObjectIdx2].oam.priority = 1;
+ DestroySprite(&gSprites[sDecor_CameraSpriteObjectIdx1]);
+ sDecor_CameraSpriteObjectIdx1 = gUnknown_03005DD0.unk4;
+ gSprites[sDecor_CameraSpriteObjectIdx1].oam.priority = 1;
+}
+
+void sub_8129ABC(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ switch (data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_8127ACC(taskId);
+ data[2] = 1;
+ data[6] = 1;
+ data[5] = 1;
+ }
+ break;
+ case 1:
+ SetUpPuttingAwayDecorationPlayerAvatar();
+ pal_fill_black();
+ data[2] = 2;
+ break;
+ case 2:
+ if (sub_80ABDFC() == TRUE)
+ {
+ data[12] = 1;
+ sub_8129B34(taskId);
+ }
+ break;
+ }
+}
+
+void sub_8129B34(u8 taskId)
+{
+ sub_8197434(0, 1);
+ gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0;
+ gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE;
+ gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C;
+ gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 0x88;
+ gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = 0x48;
+ gTasks[taskId].data[10] = 0;
+ gTasks[taskId].func = sub_8128E18;
+}
+
+void sub_8129BCC(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_8128DE0();
+ sub_8129C74(taskId);
+}
+
+void sub_8129BF8(u8 taskId)
+{
+ gTasks[taskId].data[10] = 0;
+ sub_8128DE0();
+ gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE;
+ gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy;
+ StringExpandPlaceholders(gStringVar4, gText_StopPuttingAwayDecorations);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1F0);
+}
+
+void sub_8129C74(u8 taskId)
+{
+ s16 *data;
+ u8 behavior;
+
+ sub_812A0E8(taskId);
+ if (sCurDecorSelectedInRearrangement != 0)
+ {
+ StringExpandPlaceholders(gStringVar4, gText_ReturnDecorationToPC);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1A0);
+ }
+ else
+ {
+ data = gTasks[taskId].data;
+ behavior = MapGridGetMetatileBehaviorAt(data[0], data[1]);
+ if (MetatileBehavior_IsSecretBasePC(behavior) == TRUE || MetatileBehavior_IsMB_C5(behavior) == TRUE)
+ {
+ gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE;
+ gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy;
+ StringExpandPlaceholders(gStringVar4, gText_StopPuttingAwayDecorations);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_812A1F0);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gText_NoDecorationHere);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8129D64);
+ }
+ }
+}
+
+void sub_8129D64(u8 taskId)
+{
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ sub_8129B34(taskId);
+ }
+}
+
+void sub_8129D8C(u8 decor, struct DecorRearrangementDataBuffer *data)
+{
+ if (gDecorations[decor].shape == DECORSHAPE_1x1)
+ {
+ data->width = 1;
+ data->height = 1;
+ } else if (gDecorations[decor].shape == DECORSHAPE_2x1)
+ {
+ data->width = 2;
+ data->height = 1;
+ } else if (gDecorations[decor].shape == DECORSHAPE_3x1)
+ {
+ data->width = 3;
+ data->height = 1;
+ } else if (gDecorations[decor].shape == DECORSHAPE_4x2)
+ {
+ data->width = 4;
+ data->height = 2;
+ } else if (gDecorations[decor].shape == DECORSHAPE_2x2)
+ {
+ data->width = 2;
+ data->height = 2;
+ } else if (gDecorations[decor].shape == DECORSHAPE_1x2)
+ {
+ data->width = 1;
+ data->height = 2;
+ } else if (gDecorations[decor].shape == DECORSHAPE_1x3)
+ {
+ data->width = 1;
+ data->height = 3;
+ } else if (gDecorations[decor].shape == DECORSHAPE_2x4)
+ {
+ data->width = 2;
+ data->height = 4;
+ } else if (gDecorations[decor].shape == DECORSHAPE_3x3)
+ {
+ data->width = 3;
+ data->height = 3;
+ } else if (gDecorations[decor].shape == DECORSHAPE_3x2)
+ {
+ data->width = 3;
+ data->height = 2;
+ }
+}
+
+void sub_8129E0C(u8 x, u8 y)
+{
+ gSprites[sDecor_CameraSpriteObjectIdx1].invisible = TRUE;
+ gSprites[sDecor_CameraSpriteObjectIdx1].callback = SpriteCallbackDummy;
+ gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = (x << 4) + 0x88;
+ gSprites[sDecor_CameraSpriteObjectIdx2].pos1.y = (y << 4) + 0x48;
+}
+
+bool8 sub_8129E74(u8 taskId, u8 idx, struct DecorRearrangementDataBuffer *data)
+{
+ u8 x;
+ u8 y;
+ u8 xOff;
+ u8 yOff;
+ u8 ht;
+
+ x = gTasks[taskId].data[0] - 7;
+ y = gTasks[taskId].data[1] - 7;
+ xOff = gUnknown_0203A17C.pos[idx] >> 4;
+ yOff = gUnknown_0203A17C.pos[idx] & 0x0F;
+ ht = data->height;
+ if (gUnknown_0203A17C.items[idx] == DECOR_SAND_ORNAMENT && MapGridGetMetatileIdAt(xOff + 7, yOff + 7) == 0x28C)
+ {
+ ht --;
+ }
+ if (x >= xOff && x < xOff + data->width && y > yOff - ht && y <= yOff)
+ {
+ sub_8129E0C(data->width - (x - xOff + 1), yOff - y);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_8129F20(void)
+{
+ u8 xOff;
+ u8 yOff;
+ u16 i;
+
+ xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] >> 4;
+ yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx] & 0x0F;
+ for (i = 0; i < 0x40; i ++)
+ {
+ if (gSaveBlock1Ptr->mapObjectTemplates[i].x == xOff && gSaveBlock1Ptr->mapObjectTemplates[i].y == yOff && !FlagGet(gSaveBlock1Ptr->mapObjectTemplates[i].flagId))
+ {
+ sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].flagId = gSaveBlock1Ptr->mapObjectTemplates[i].flagId;
+ break;
+ }
+ }
+}
+
+bool8 sub_8129FC8(u8 taskId)
+{
+ u16 i;
+
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ if (gUnknown_0203A17C.items[i] != 0)
+ {
+ if (gDecorations[gUnknown_0203A17C.items[i]].permission == DECORPERM_SOLID_MAT)
+ {
+ sub_8129D8C(gUnknown_0203A17C.items[i], sDecorRearrangementDataBuffer);
+ if (sub_8129E74(taskId, i, sDecorRearrangementDataBuffer) == TRUE)
+ {
+ sDecorRearrangementDataBuffer->idx = i;
+ sub_8129F20();
+ sCurDecorSelectedInRearrangement = 1;
+ return TRUE;
+ }
+ }
+ }
+ }
+ return FALSE;
+}
+
+void sub_812A040(u8 left, u8 top, u8 right, u8 bottom)
+{
+ u8 i;
+ u8 xOff;
+ u8 yOff;
+ u8 decorIdx;
+
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ decorIdx = gUnknown_0203A17C.items[i];
+ xOff = gUnknown_0203A17C.pos[i] >> 4;
+ yOff = gUnknown_0203A17C.pos[i] & 0x0F;
+ if (decorIdx != 0 && gDecorations[decorIdx].permission == DECORPERM_SOLID_MAT && left <= xOff && top <= yOff && right >= xOff && bottom >= yOff)
+ {
+ sDecorRearrangementDataBuffer[sCurDecorSelectedInRearrangement].idx = i;
+ sub_8129F20();
+ sCurDecorSelectedInRearrangement++;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_812A0E8(u8 taskId)
+{
+ u8 i;
+ u8 xOff;
+ u8 yOff;
+ u8 decor;
+ register u8 decor asm("r1");
+ struct DecorRearrangementDataBuffer *data;
+
+ sCurDecorSelectedInRearrangement = 0;
+ if (sub_8129FC8(taskId) != TRUE)
+ {
+ for (i = 0; i < gUnknown_0203A17C.size; i ++)
+ {
+ decor = gUnknown_0203A17C.items[i];
+ if (decor != DECOR_NONE)
+ {
+ data = &sDecorRearrangementDataBuffer[0];
+ sub_8129D8C(decor, data);
+ if (sub_8129E74(taskId, i, data) == TRUE)
+ {
+ data->idx = i;
+ sCurDecorSelectedInRearrangement ++;
+ break;
+ }
+ }
+ }
+ if (sCurDecorSelectedInRearrangement != 0)
+ {
+ xOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] >> 4;
+ yOff = gUnknown_0203A17C.pos[sDecorRearrangementDataBuffer[0].idx] & 0x0F;
+ sub_812A040(xOff, yOff - sDecorRearrangementDataBuffer[0].height + 1, xOff + sDecorRearrangementDataBuffer[0].width - 1, yOff); // Arithmetic register swap at the r2 argument: `add r2, r0, r2` instead of `add r2, r2, r0`
+ }
+ }
+}
+#else
+__attribute__((naked)) void sub_812A0E8(u8 taskId)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r6, r0, 24\n"
+ "\tldr r4, =sCurDecorSelectedInRearrangement\n"
+ "\tmovs r0, 0\n"
+ "\tstrb r0, [r4]\n"
+ "\tadds r0, r6, 0\n"
+ "\tbl sub_8129FC8\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbeq _0812A18C\n"
+ "\tmovs r5, 0\n"
+ "\tldr r0, =gUnknown_0203A17C\n"
+ "\tldrb r1, [r0, 0x8]\n"
+ "\tcmp r5, r1\n"
+ "\tbcs _0812A15A\n"
+ "\tadds r7, r4, 0\n"
+ "_0812A10E:\n"
+ "\tldr r0, [r0]\n"
+ "\tadds r0, r5\n"
+ "\tldrb r1, [r0]\n"
+ "\tcmp r1, 0\n"
+ "\tbeq _0812A14C\n"
+ "\tldr r4, =sDecorRearrangementDataBuffer\n"
+ "\tadds r0, r1, 0\n"
+ "\tadds r1, r4, 0\n"
+ "\tbl sub_8129D8C\n"
+ "\tadds r0, r6, 0\n"
+ "\tadds r1, r5, 0\n"
+ "\tadds r2, r4, 0\n"
+ "\tbl sub_8129E74\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r0, 24\n"
+ "\tcmp r0, 0x1\n"
+ "\tbne _0812A14C\n"
+ "\tstrb r5, [r4]\n"
+ "\tldrb r0, [r7]\n"
+ "\tadds r0, 0x1\n"
+ "\tstrb r0, [r7]\n"
+ "\tb _0812A15A\n"
+ "\t.pool\n"
+ "_0812A14C:\n"
+ "\tadds r0, r5, 0x1\n"
+ "\tlsls r0, 24\n"
+ "\tlsrs r5, r0, 24\n"
+ "\tldr r0, =gUnknown_0203A17C\n"
+ "\tldrb r1, [r0, 0x8]\n"
+ "\tcmp r5, r1\n"
+ "\tbcc _0812A10E\n"
+ "_0812A15A:\n"
+ "\tldr r0, =sCurDecorSelectedInRearrangement\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _0812A18C\n"
+ "\tldr r0, =gUnknown_0203A17C\n"
+ "\tldr r2, =sDecorRearrangementDataBuffer\n"
+ "\tldrb r1, [r2]\n"
+ "\tldr r0, [r0, 0x4]\n"
+ "\tadds r0, r1\n"
+ "\tldrb r1, [r0]\n"
+ "\tlsrs r0, r1, 4\n"
+ "\tmovs r3, 0xF\n"
+ "\tands r3, r1\n"
+ "\tldrb r1, [r2, 0x2]\n"
+ "\tsubs r1, r3, r1\n"
+ "\tadds r1, 0x1\n"
+ "\tlsls r1, 24\n"
+ "\tlsrs r1, 24\n"
+ "\tldrb r2, [r2, 0x1]\n"
+ "\tadds r2, r0\n"
+ "\tsubs r2, 0x1\n"
+ "\tlsls r2, 24\n"
+ "\tlsrs r2, 24\n"
+ "\tbl sub_812A040\n"
+ "_0812A18C:\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.pool");
+}
+#endif
+
+void sub_812A1A0(u8 taskId)
+{
+ sub_8197930();
+ sub_8121F68(taskId, &gUnknown_085A7348);
+}
+
+void sub_812A1C0(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_81298EC;
+}
+
+void sub_812A1F0(u8 taskId)
+{
+ sub_8197930();
+ sub_8121F68(taskId, &gUnknown_085A7350);
+}
+
+void sub_812A210(u8 taskId)
+{
+ sub_8197434(0, 0);
+ sub_812A22C(taskId);
+}
+
+void sub_812A22C(u8 taskId)
+{
+ fade_screen(1, 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].func = sub_812A25C;
+}
+
+void sub_812A25C(u8 taskId)
+{
+ switch (gTasks[taskId].data[2])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sub_8127B04(taskId);
+ gTasks[taskId].data[2] = 1;
+ }
+ break;
+ case 1:
+ sub_812A3C8();
+ gFieldCallback = sub_812A334;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_812A2C4(u8 taskId)
+{
+ s16 *data;
+
+ data = gTasks[taskId].data;
+ switch (data[2])
+ {
+ case 0:
+ sub_80E9578();
+ data[2] ++;
+ break;
+ case 1:
+ ScriptContext1_SetupScript(gUnknown_08275D0C);
+ data[2] ++;
+ break;
+ case 2:
+ ScriptContext2_Enable();
+ data[2] ++;
+ break;
+ case 3:
+ if (sub_80ABDFC() == TRUE)
+ {
+ gTasks[taskId].func = sub_8126B80;
+ }
+ break;
+ }
+}
+
+void sub_812A334(void)
+{
+ u8 taskId;
+
+ pal_fill_black();
+ sub_81973C4(0, 1);
+ sub_8126ABC();
+ taskId = CreateTask(sub_812A2C4, 8);
+ gTasks[taskId].data[2] = 0;
+}
+
+void sub_812A36C(struct Sprite *sprite)
+{
+ sprite->data0 ++;
+ sprite->data0 &= 0x1F;
+ if (sprite->data0 > 15)
+ {
+ sprite->invisible = TRUE;
+ }
+ else
+ {
+ sprite->invisible = FALSE;
+ }
+}
+
+void sub_812A39C(void)
+{
+ if (gSaveBlock2Ptr->playerGender == MALE)
+ {
+ LoadSpritePalette(&gUnknown_085A73D8);
+ }
+ else
+ {
+ LoadSpritePalette(&gUnknown_085A73E0);
+ }
+}
+
+void sub_812A3C8(void)
+{
+ FreeSpritePaletteByTag(OVERWORLD_PLACE_DECOR_PLAYER_PAL_TAG);
+}
+
+void sub_812A3D4(u8 taskId)
+{
+ if (IsSelectedDecorInThePC() == TRUE)
+ {
+ StringCopy(gStringVar1, gDecorations[gCurDecorInventoryItems[gCurDecorationIndex]].name);
+ StringExpandPlaceholders(gStringVar4, gText_DecorationWillBeDiscarded);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_812A458);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gText_CantThrowAwayInUse);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C);
+ }
+}
+
+void sub_812A458(u8 taskId)
+{
+ sub_8197930();
+ sub_8121F68(taskId, &gUnknown_085A741C);
+}
+
+void sub_812A478(u8 taskId)
+{
+ gCurDecorInventoryItems[gCurDecorationIndex] = DECOR_NONE;
+ sCurDecorCatCount = CountDecorationCategoryN(sCurDecorationCategory);
+ CondenseDecorationCategoryN(sCurDecorationCategory);
+ IdentifyOwnedDecorationsCurrentlyInUseInternal(taskId);
+ StringExpandPlaceholders(gStringVar4, gText_DecorationThrownAway);
+ DisplayItemMessageOnField(taskId, gStringVar4, sub_8127A5C);
+}
diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c
new file mode 100644
index 000000000..03ab6c00c
--- /dev/null
+++ b/src/decoration_inventory.c
@@ -0,0 +1,189 @@
+
+// Includes
+#include "global.h"
+#include "decoration.h"
+#include "decoration_inventory.h"
+
+// Static type declarations
+
+// Static RAM declarations
+
+EWRAM_DATA struct DecorationInventory gDecorationInventories[8] = {};
+
+// Static ROM declarations
+
+// .rodata
+
+// .text
+
+#define SET_DECOR_INV(i, ptr) {\
+ gDecorationInventories[i].items = ptr;\
+ gDecorationInventories[i].size = sizeof(ptr);\
+}
+
+void SetDecorationInventoriesPointers(void)
+{
+ SET_DECOR_INV(0, gSaveBlock1Ptr->decorDesk);
+ SET_DECOR_INV(1, gSaveBlock1Ptr->decorChair);
+ SET_DECOR_INV(2, gSaveBlock1Ptr->decorPlant);
+ SET_DECOR_INV(3, gSaveBlock1Ptr->decorOrnament);
+ SET_DECOR_INV(4, gSaveBlock1Ptr->decorMat);
+ SET_DECOR_INV(5, gSaveBlock1Ptr->decorPoster);
+ SET_DECOR_INV(6, gSaveBlock1Ptr->decorDoll);
+ SET_DECOR_INV(7, gSaveBlock1Ptr->decorCushion);
+ sub_8126968();
+}
+
+static void ClearDecorationInventory(u8 idx)
+{
+ u8 i;
+
+ for (i = 0; i < gDecorationInventories[idx].size; i ++)
+ {
+ gDecorationInventories[idx].items[i] = DECOR_NONE;
+ }
+}
+
+void ClearDecorationInventories(void)
+{
+ u8 idx;
+
+ for (idx = 0; idx < 8; idx ++)
+ {
+ ClearDecorationInventory(idx);
+ }
+}
+
+s8 GetFirstEmptyDecorSlot(u8 idx)
+{
+ s8 i;
+
+ for (i = 0; i < (s8)gDecorationInventories[idx].size; i ++)
+ {
+ if (gDecorationInventories[idx].items[i] == DECOR_NONE)
+ {
+ return i;
+ }
+ }
+ return -1;
+}
+
+bool8 CheckHasDecoration(u8 decor)
+{
+ u8 i;
+ u8 category;
+
+ category = gDecorations[decor].category;
+ for (i = 0; i < gDecorationInventories[category].size; i ++)
+ {
+ if (gDecorationInventories[category].items[i] == decor)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 DecorationAdd(u8 decor)
+{
+ u8 category;
+ s8 idx;
+
+ if (decor == DECOR_NONE)
+ {
+ return FALSE;
+ }
+ category = gDecorations[decor].category;
+ idx = GetFirstEmptyDecorSlot(category);
+ if (idx == -1)
+ {
+ return FALSE;
+ }
+ gDecorationInventories[category].items[idx] = decor;
+ return TRUE;
+}
+
+bool8 DecorationCheckSpace(u8 decor)
+{
+ if (decor == DECOR_NONE)
+ {
+ return FALSE;
+ }
+ if (GetFirstEmptyDecorSlot(gDecorations[decor].category) == -1)
+ {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+s8 DecorationRemove(u8 decor)
+{
+ u8 i;
+ u8 idx;
+
+ i = 0;
+ if (decor == DECOR_NONE)
+ {
+ return 0;
+ }
+ for (i = 0; i < gDecorationInventories[gDecorations[decor].category].size; i ++)
+ {
+ idx = gDecorations[decor].category;
+ if (gDecorationInventories[idx].items[i] == decor)
+ {
+ gDecorationInventories[idx].items[i] = DECOR_NONE;
+ CondenseDecorationCategoryN(idx);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+void CondenseDecorationCategoryN(u8 idx)
+{
+ u8 i;
+ u8 j;
+ u8 tmp;
+
+ for (i = 0; i < gDecorationInventories[idx].size; i ++)
+ {
+ for (j = i + 1; j < gDecorationInventories[idx].size; j ++)
+ {
+ if (gDecorationInventories[idx].items[j] != DECOR_NONE && (gDecorationInventories[idx].items[i] == DECOR_NONE || gDecorationInventories[idx].items[i] > gDecorationInventories[idx].items[j]))
+ {
+ tmp = gDecorationInventories[idx].items[i];
+ gDecorationInventories[idx].items[i] = gDecorationInventories[idx].items[j];
+ gDecorationInventories[idx].items[j] = tmp;
+ }
+ }
+ }
+}
+
+u8 CountDecorationCategoryN(u8 idx)
+{
+ u8 i;
+ u8 ct;
+
+ ct = 0;
+ for (i = 0; i < gDecorationInventories[idx].size; i ++)
+ {
+ if (gDecorationInventories[idx].items[i] != DECOR_NONE)
+ {
+ ct ++;
+ }
+ }
+ return ct;
+}
+
+u8 CountDecorations(void)
+{
+ u8 idx;
+ u8 ct;
+
+ ct = 0;
+ for (idx = 0; idx < 8; idx ++)
+ {
+ ct += CountDecorationCategoryN(idx);
+ }
+ return ct;
+}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index a1f187b85..589e8901d 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -462,7 +462,7 @@ static void VBlankCB_EggHatch(void)
TransferPlttBuffer();
}
-static void EggHatch(void)
+void EggHatch(void)
{
ScriptContext2_Enable();
CreateTask(Task_EggHatch, 10);
diff --git a/src/international_string_util.c b/src/international_string_util.c
new file mode 100644
index 000000000..81985d614
--- /dev/null
+++ b/src/international_string_util.c
@@ -0,0 +1,57 @@
+#include "global.h"
+#include "international_string_util.h"
+#include "text.h"
+
+extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu
+
+s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth)
+{
+ return GetStringCenterAlignXOffsetWithLetterSpacing(fontId, str, totalWidth, 0);
+}
+
+s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth)
+{
+ return GetStringWidthDifference(fontId, str, totalWidth, 0);
+}
+
+s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing)
+{
+ return GetStringWidthDifference(fontId, str, totalWidth, letterSpacing) / 2;
+}
+
+s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing)
+{
+ s32 stringWidth = GetStringWidth(fontId, str, letterSpacing);
+ if (totalWidth > stringWidth)
+ return totalWidth - stringWidth;
+ else
+ return 0;
+}
+
+s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1)
+{
+ s32 i, var;
+
+ for (var = 0, i = 0; i < arg1; i++)
+ {
+ s32 stringWidth = GetStringWidth(1, str[i].text, 0);
+ if (stringWidth > var)
+ var = stringWidth;
+ }
+
+ return convert_pixel_width_to_tile_width(var);
+}
+
+s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2)
+{
+ s32 i, var;
+
+ for (var = 0, i = 0; i < arg2; i++)
+ {
+ s32 stringWidth = GetStringWidth(1, str[arg1[i]].text, 0);
+ if (stringWidth > var)
+ var = stringWidth;
+ }
+
+ return convert_pixel_width_to_tile_width(var);
+}
diff --git a/src/librfu_intr.c b/src/librfu_intr.c
new file mode 100644
index 000000000..bdf8b072a
--- /dev/null
+++ b/src/librfu_intr.c
@@ -0,0 +1,4 @@
+#include "global.h"
+#include "main.h"
+
+//TODO: decompile asm/librfu_intr.s to here
diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c
new file mode 100644
index 000000000..cf3fe12ad
--- /dev/null
+++ b/src/librfu_rfu.c
@@ -0,0 +1,109 @@
+#include "global.h"
+#include "main.h"
+
+#include "librfu.h"
+
+struct RfuUnk1
+{
+ u8 unk_0[0x14];
+ u32 unk_14;
+ u32 unk_18;
+ struct RfuIntrStruct unk_1c;
+};
+
+struct RfuUnk2
+{
+ u8 unk_0[0x68];
+ u32 unk_68;
+ u32 unk_6c;
+ u8 unk_70[0x70];
+};
+
+struct RfuUnk3
+{
+ u32 unk_0;
+ u32 unk_4;
+ u8 unk_8[0xD4];
+ u32 unk_dc;
+};
+
+extern u32 *gUnknown_03007890;
+extern u32 *gUnknown_03007894;
+extern struct RfuUnk3* gUnknown_03007898;
+extern struct RfuUnk2* gUnknown_03007880[4];
+extern struct RfuUnk1* gUnknown_03007870[4];
+extern void* sub_82E53F4;
+extern void rfu_STC_clearAPIVariables(void);
+
+// Nonmatching, only register differences
+/*u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam)
+{
+ u16 i;
+ u16 *v13;
+ u16 *v12;
+ u16 num;
+
+ if (((u32)unk0 & 0xF000000) == 0x2000000 && copyInterruptToRam)
+ {
+ return 2;
+ }
+
+ if ((u32)unk0 & 3)
+ return 2;
+
+ // Nintendo pls, just use a ternary for once
+ if (copyInterruptToRam)
+ {
+ // An assert/debug print may have existed before, ie
+ // printf("%s %u < %u", "somefile.c:12345", unk1, num)
+ // to push this into r3?
+ num = 0xe64;
+ if (unk1 < num)
+ return 1;
+ }
+
+ if (copyInterruptToRam == FALSE)
+ {
+ num = 0x504; // same as above, this should be r3 not r0
+ if (unk1 < num)
+ return 1;
+ }
+ gUnknown_03007890 = unk0;
+ gUnknown_03007894 = unk0 + (0xB4 / sizeof(u32));
+ gUnknown_03007898 = (struct RfuUnk3*)(unk0 + (0xDC / sizeof(u32)));
+ gUnknown_03007880[0] = (struct RfuUnk2*)(unk0 + (0x1BC / sizeof(u32)));
+ gUnknown_03007870[0] = (struct RfuUnk1*)(unk0 + (0x37C / sizeof(u32)));
+
+ for (i = 1; i < 4; i++, num)
+ {
+ gUnknown_03007880[i] = (struct RfuUnk2*)&gUnknown_03007880[i-1]->unk_70;
+ gUnknown_03007870[i] = (struct RfuUnk1*)&gUnknown_03007870[i-1]->unk_1c;
+ }
+
+ gUnknown_03007898->unk_dc = (u32)&gUnknown_03007870[3]->unk_1c;
+ STWI_init_all(&gUnknown_03007870[3]->unk_1c, interrupt, copyInterruptToRam);
+ rfu_STC_clearAPIVariables();
+
+ for (i = 0; i < 4; i++)
+ {
+ gUnknown_03007880[i]->unk_68 = 0;
+ gUnknown_03007880[i]->unk_6c = 0;
+ gUnknown_03007870[i]->unk_14 = 0;
+ gUnknown_03007870[i]->unk_18 = 0;
+ }
+
+ // Not matching, register differences
+ v12 = (u16*)((u32)&sub_82E53F4 & ~1);
+ v13 = (u16*)gUnknown_03007898->unk_8;
+
+ for (i = 47; i != 0xFFFF; i--)
+ {
+ *v13 = *v12;
+ ++v12;
+ ++v13;
+ }
+
+ gUnknown_03007898->unk_4 = (u32)(&gUnknown_03007898->unk_8[1]);
+
+ return 0;
+}*/
diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c
new file mode 100644
index 000000000..21d38bb38
--- /dev/null
+++ b/src/librfu_stwi.c
@@ -0,0 +1,687 @@
+#include "global.h"
+#include "librfu.h"
+
+extern IntrFunc IntrSIO32(void);
+
+extern void STWI_stop_timer(void);
+
+void STWI_init_Callback_M(void);
+void STWI_init_Callback_S(void);
+void STWI_set_Callback_M(void * callback);
+void STWI_set_Callback_S(void * callback);
+u16 STWI_init(u8 request);
+int STWI_start_Command(void);
+void STWI_intr_timer(void);
+void STWI_set_timer(u8 unk);
+
+int STWI_restart_Command(void);
+int STWI_reset_ClockCounter(void);
+
+void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam)
+{
+ // If we're copying our interrupt into RAM, DMA it to block1 and use
+ // block2 for our RfuStruct, otherwise block1 holds the RfuStruct.
+ // interrupt usually is a pointer to gIntrTable[1]
+ if (copyInterruptToRam == TRUE)
+ {
+ *interrupt = (IntrFunc)interruptStruct->block1;
+ DmaCopy16(3, &IntrSIO32, interruptStruct->block1, 0x960);
+ gRfuState = (struct RfuStruct*)interruptStruct->block2;
+ }
+ else
+ {
+ *interrupt = (IntrFunc)IntrSIO32;
+ gRfuState = (struct RfuStruct*)interruptStruct->block1;
+ }
+
+ gRfuState->rxPacket = (union RfuPacket*)interruptStruct->rxPacketAlloc;
+ gRfuState->txPacket = (union RfuPacket*)interruptStruct->txPacketAlloc;
+ gRfuState->msMode = 1;
+ gRfuState->unk_0 = 0;
+ gRfuState->txParams = 0;
+ gRfuState->unk_5 = 0;
+ gRfuState->unk_7 = 0;
+ gRfuState->unk_8 = 0;
+ gRfuState->unk_9 = 0;
+ gRfuState->timerState = 0;
+ gRfuState->timerActive = 0;
+ gRfuState->unk_12 = 0;
+ gRfuState->unk_15 = 0;
+ gRfuState->unk_2c = 0;
+
+ REG_RCNT = 0x100; //TODO: mystery bit?
+ REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
+ STWI_init_Callback_M();
+ STWI_init_Callback_S();
+
+ IntrEnable(INTR_FLAG_SERIAL);
+}
+
+void STWI_init_timer(IntrFunc *interrupt, int timerSelect)
+{
+ *interrupt = STWI_intr_timer;
+ gRfuState->timerSelect = timerSelect;
+
+ IntrEnable(INTR_FLAG_TIMER0 << gRfuState->timerSelect);
+}
+
+void AgbRFU_SoftReset(void)
+{
+ vu16 *timerL;
+ vu16 *timerH;
+
+ REG_RCNT = 0x8000;
+ REG_RCNT = 0x80A0; // all these bits are undocumented
+ timerL = &REG_TMCNT_L(gRfuState->timerSelect);
+ timerH = &REG_TMCNT_H(gRfuState->timerSelect);
+ *timerH = 0;
+ *timerL = 0;
+ *timerH = 0x83;
+ while (*timerL <= 0x11)
+ REG_RCNT = 0x80A2;
+ *timerH = 3;
+ REG_RCNT = 0x80A0;
+ REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
+
+ gRfuState->unk_0 = 0;
+ gRfuState->txParams = 0;
+ gRfuState->unk_5 = 0;
+ gRfuState->activeCommand = 0;
+ gRfuState->unk_7 = 0;
+ gRfuState->unk_8 = 0;
+ gRfuState->unk_9 = 0;
+ gRfuState->timerState = 0;
+ gRfuState->timerActive = 0;
+ gRfuState->unk_12 = 0;
+ gRfuState->msMode = 1;
+ gRfuState->unk_15 = 0;
+ gRfuState->unk_2c = 0;
+}
+
+void STWI_set_MS_mode(u8 mode)
+{
+ gRfuState->msMode = mode;
+}
+
+u16 STWI_read_status(u8 index)
+{
+ switch (index)
+ {
+ case 0:
+ return gRfuState->unk_12;
+ case 1:
+ return gRfuState->msMode;
+ case 2:
+ return gRfuState->unk_0;
+ case 3:
+ return gRfuState->activeCommand;
+ default:
+ return 0xFFFF;
+ }
+}
+
+void STWI_init_Callback_M(void)
+{
+ STWI_set_Callback_M(0);
+}
+
+void STWI_init_Callback_S(void)
+{
+ STWI_set_Callback_S(0);
+}
+
+void STWI_set_Callback_M(void *callback)
+{
+ gRfuState->callbackM = callback;
+}
+
+void STWI_set_Callback_S(void *callback)
+{
+ gRfuState->callbackS = callback;
+}
+
+void STWI_set_Callback_ID(u32 id)
+{
+ gRfuState->callbackID = id;
+}
+
+u16 STWI_poll_CommandEnd(void)
+{
+ while (gRfuState->unk_2c == TRUE)
+ ;
+ return gRfuState->unk_12;
+}
+
+void STWI_send_ResetREQ(void)
+{
+ if (!STWI_init(RFU_RESET))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_LinkStatusREQ(void)
+{
+ if (!STWI_init(RFU_LINK_STATUS))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_VersionStatusREQ(void)
+{
+ if (!STWI_init(RFU_VERSION_STATUS))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SystemStatusREQ(void)
+{
+ if (!STWI_init(RFU_SYSTEM_STATUS))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SlotStatusREQ(void)
+{
+ if (!STWI_init(RFU_SLOT_STATUS))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_ConfigStatusREQ(void)
+{
+ if (!STWI_init(RFU_CONFIG_STATUS))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_GameConfigREQ(u8 * unk1, u8 *data)
+{
+ u8 *packetBytes;
+ int i;
+
+ if (!STWI_init(RFU_GAME_CONFIG))
+ {
+ gRfuState->txParams = 6;
+
+ //TODO: what is unk1
+ packetBytes = gRfuState->txPacket->rfuPacket8.data;
+ packetBytes += sizeof(u32);
+ *(u16*)packetBytes = *(u16*)unk1;
+
+ packetBytes += sizeof(u16);
+ unk1 += sizeof(u16);
+
+ for (i = 0; i < 14; i++)
+ {
+ *packetBytes = *unk1;
+ packetBytes++;
+ unk1++;
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ *packetBytes = *data;
+ packetBytes++;
+ data++;
+ }
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SystemConfigREQ(u16 unk1, u8 unk2, u8 unk3)
+{
+ if (!STWI_init(RFU_SYSTEM_CONFIG))
+ {
+ u8 *packetBytes;
+
+ gRfuState->txParams = 1;
+
+ packetBytes = gRfuState->txPacket->rfuPacket8.data;
+ packetBytes += sizeof(u32);
+
+ *packetBytes++ = unk3;
+ *packetBytes++ = unk2;
+ *(u16*)packetBytes = unk1;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SC_StartREQ(void)
+{
+ if (!STWI_init(RFU_SC_START))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SC_PollingREQ(void)
+{
+ if (!STWI_init(RFU_SC_POLLING))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SC_EndREQ(void)
+{
+ if (!STWI_init(RFU_SC_END))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SP_StartREQ(void)
+{
+ if (!STWI_init(RFU_SP_START))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SP_PollingREQ(void)
+{
+ if (!STWI_init(RFU_SP_POLLING))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_SP_EndREQ(void)
+{
+ if (!STWI_init(RFU_SP_END))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CP_StartREQ(u16 unk1)
+{
+ if (!STWI_init(RFU_CP_START))
+ {
+ gRfuState->txParams = 1;
+ gRfuState->txPacket->rfuPacket32.data[0] = unk1;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CP_PollingREQ(void)
+{
+ if (!STWI_init(RFU_CP_POLLING))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CP_EndREQ(void)
+{
+ if (!STWI_init(RFU_CP_END))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DataTxREQ(void *in, u8 size)
+{
+ if (!STWI_init(RFU_DATA_TX))
+ {
+ u8 txParams = (size / sizeof(u32));
+ if (size & (sizeof(u32) - 1))
+ txParams += 1;
+
+ gRfuState->txParams = txParams;
+ CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32));
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DataTxAndChangeREQ(void *in, u8 size)
+{
+ if (!STWI_init(RFU_DATA_TX_AND_CHANGE))
+ {
+ u8 txParams = (size / sizeof(u32));
+ if (size & (sizeof(u32) - 1))
+ txParams += 1;
+
+ gRfuState->txParams = txParams;
+ CpuCopy32(in, gRfuState->txPacket->rfuPacket32.data, gRfuState->txParams * sizeof(u32));
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DataRxREQ(void)
+{
+ if (!STWI_init(RFU_DATA_RX))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_MS_ChangeREQ(void)
+{
+ if (!STWI_init(RFU_MS_CHANGE))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DataReadyAndChangeREQ(u8 unk)
+{
+ if (!STWI_init(RFU_DATA_READY_AND_CHANGE))
+ {
+ if (!unk)
+ {
+ gRfuState->txParams = 0;
+ }
+ else
+ {
+ u8 *packetBytes;
+
+ gRfuState->txParams = 1;
+
+ packetBytes = gRfuState->txPacket->rfuPacket8.data;
+ packetBytes += sizeof(u32);
+
+ *packetBytes++ = unk;
+ *packetBytes++ = 0;
+ *packetBytes++ = 0;
+ *packetBytes = 0;
+ }
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DisconnectedAndChangeREQ(u8 unk0, u8 unk1)
+{
+ if (!STWI_init(RFU_DISCONNECTED_AND_CHANGE))
+ {
+ u8 *packetBytes;
+
+ gRfuState->txParams = 1;
+
+ packetBytes = gRfuState->txPacket->rfuPacket8.data;
+ packetBytes += sizeof(u32);
+
+ *packetBytes++ = unk0;
+ *packetBytes++ = unk1;
+ *packetBytes++ = 0;
+ *packetBytes = 0;
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_ResumeRetransmitAndChangeREQ(void)
+{
+ if (!STWI_init(RFU_RESUME_RETRANSMIT_AND_CHANGE))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_DisconnectREQ(u8 unk)
+{
+ if (!STWI_init(RFU_DISCONNECT))
+ {
+ gRfuState->txParams = 1;
+ gRfuState->txPacket->rfuPacket32.data[0] = unk;
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_TestModeREQ(u8 unk0, u8 unk1)
+{
+ if (!STWI_init(RFU_TEST_MODE))
+ {
+ gRfuState->txParams = 1;
+ gRfuState->txPacket->rfuPacket32.data[0] = unk0 | (unk1 << 8);
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CPR_StartREQ(u16 unk0, u16 unk1, u8 unk2)
+{
+ u32 *packetData;
+ u32 arg1;
+
+ if (!STWI_init(RFU_CPR_START))
+ {
+ gRfuState->txParams = 2;
+
+ arg1 = unk1 | (unk0 << 16);
+ packetData = gRfuState->txPacket->rfuPacket32.data;
+ packetData[0] = arg1;
+ packetData[1] = unk2;
+
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CPR_PollingREQ(void)
+{
+ if (!STWI_init(RFU_CPR_POLLING))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_CPR_EndREQ(void)
+{
+ if (!STWI_init(RFU_CPR_END))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_send_StopModeREQ(void)
+{
+ if (!STWI_init(RFU_STOP_MODE))
+ {
+ gRfuState->txParams = 0;
+ STWI_start_Command();
+ }
+}
+
+void STWI_intr_timer(void)
+{
+ switch (gRfuState->timerState)
+ {
+ //TODO: Make an enum for these
+ case 2:
+ gRfuState->timerActive = 1;
+ STWI_set_timer(50);
+ break;
+ case 1:
+ case 4:
+ STWI_stop_timer();
+ STWI_restart_Command();
+ break;
+ case 3:
+ gRfuState->timerActive = 1;
+ STWI_stop_timer();
+ STWI_reset_ClockCounter();
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(255, 0);
+ break;
+ }
+}
+
+void STWI_set_timer(u8 unk)
+{
+ vu16 *timerL;
+ vu16 *timerH;
+
+ timerL = &REG_TMCNT_L(gRfuState->timerSelect);
+ timerH = &REG_TMCNT_H(gRfuState->timerSelect);
+ REG_IME = 0;
+ switch (unk)
+ {
+ case 50:
+ *timerL = 0xFCCB;
+ gRfuState->timerState = 1;
+ break;
+ case 80:
+ *timerL = 0xFAE0;
+ gRfuState->timerState = 2;
+ break;
+ case 100:
+ *timerL = 0xF996;
+ gRfuState->timerState = 3;
+ break;
+ case 130:
+ *timerL = 0xF7AD;
+ gRfuState->timerState = 4;
+ break;
+ }
+ *timerH = TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_1024CLK;
+ REG_IF = INTR_FLAG_TIMER0 << gRfuState->timerSelect;
+ REG_IME = 1;
+}
+
+void STWI_stop_timer(void)
+{
+ gRfuState->timerState = 0;
+
+ REG_TMCNT_L(gRfuState->timerSelect) = 0;
+ REG_TMCNT_H(gRfuState->timerSelect) = 0;
+}
+
+u16 STWI_init(u8 request)
+{
+ if (!REG_IME)
+ {
+ gRfuState->unk_12 = 6;
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(request, gRfuState->unk_12);
+ return TRUE;
+ }
+ else if (gRfuState->unk_2c == TRUE)
+ {
+ gRfuState->unk_12 = 2;
+ gRfuState->unk_2c = FALSE;
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(request, gRfuState->unk_12);
+ return TRUE;
+ }
+ else if(!gRfuState->msMode)
+ {
+ gRfuState->unk_12 = 4;
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(request, gRfuState->unk_12, gRfuState);
+ return TRUE;
+ }
+ else
+ {
+ gRfuState->unk_2c = TRUE;
+ gRfuState->activeCommand = request;
+ gRfuState->unk_0 = 0;
+ gRfuState->txParams = 0;
+ gRfuState->unk_5 = 0;
+ gRfuState->unk_7 = 0;
+ gRfuState->unk_8 = 0;
+ gRfuState->unk_9 = 0;
+ gRfuState->timerState = 0;
+ gRfuState->timerActive = 0;
+ gRfuState->unk_12 = 0;
+ gRfuState->unk_15 = 0;
+
+ REG_RCNT = 0x100;
+ REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
+ return FALSE;
+ }
+}
+
+int STWI_start_Command()
+{
+ u16 imeTemp;
+
+ // Yes, it matters that it's casted to a u32...
+ *(u32*)gRfuState->txPacket->rfuPacket8.data = 0x99660000 | (gRfuState->txParams << 8) | gRfuState->activeCommand;
+ REG_SIODATA32 = gRfuState->txPacket->rfuPacket32.command;
+
+ gRfuState->unk_0 = 0;
+ gRfuState->unk_5 = 1;
+
+ imeTemp = REG_IME;
+ REG_IME = 0;
+ REG_IE |= (INTR_FLAG_TIMER0 << gRfuState->timerSelect);
+ REG_IE |= INTR_FLAG_SERIAL;
+ REG_IME = imeTemp;
+
+ REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_MULTI_BUSY | SIO_115200_BPS;
+
+ return 0;
+}
+
+int STWI_restart_Command(void)
+{
+ if (gRfuState->unk_15 <= 1)
+ {
+ gRfuState->unk_15++;
+ STWI_start_Command();
+ }
+ else
+ {
+ if (gRfuState->activeCommand == RFU_MS_CHANGE || gRfuState->activeCommand == RFU_DATA_TX_AND_CHANGE || gRfuState->activeCommand == RFU_UNK35 || gRfuState->activeCommand == RFU_RESUME_RETRANSMIT_AND_CHANGE)
+ {
+ gRfuState->unk_12 = 1;
+ gRfuState->unk_2c = 0;
+
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12);
+ }
+ else
+ {
+ gRfuState->unk_12 = 1;
+ gRfuState->unk_2c = 0;
+
+ if (gRfuState->callbackM)
+ gRfuState->callbackM(gRfuState->activeCommand, gRfuState->unk_12);
+
+ gRfuState->unk_0 = 4; //TODO: what's 4
+ }
+ }
+
+ return 0;
+}
+
+int STWI_reset_ClockCounter()
+{
+ gRfuState->unk_0 = 5; //TODO: what is 5
+ gRfuState->txParams = 0;
+ gRfuState->unk_5 = 0;
+ REG_SIODATA32 = (1 << 31);
+ REG_SIOCNT = 0;
+ REG_SIOCNT = SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS;
+ REG_SIOCNT = (SIO_INTR_ENABLE | SIO_32BIT_MODE | SIO_115200_BPS) + 0x7F;
+
+ return 0;
+}
diff --git a/src/mail.c b/src/mail.c
new file mode 100644
index 000000000..1060d73bd
--- /dev/null
+++ b/src/mail.c
@@ -0,0 +1,577 @@
+
+// Includes
+#include "global.h"
+#include "main.h"
+#include "overworld.h"
+#include "task.h"
+#include "unknown_task.h"
+#include "palette.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "text.h"
+#include "text_window.h"
+#include "string_util.h"
+#include "international_string_util.h"
+#include "strings.h"
+#include "gpu_regs.h"
+#include "bg.h"
+#include "pokemon_icon.h"
+#include "species.h"
+#include "malloc.h"
+#include "easy_chat.h"
+#include "mail_data.h"
+#include "mail.h"
+
+// Static type declarations
+
+struct UnkMailStruct
+{
+ u32 numEasyChatWords:2;
+ u32 xOffset:6;
+ u32 lineHeight:8;
+};
+
+struct MailLayout
+{
+ u8 numSubStructs;
+ u8 signatureYPos;
+ u8 signatureWidth;
+ u8 wordsXPos;
+ u8 wordsYPos;
+ const struct UnkMailStruct *var8;
+};
+
+struct MailGraphics
+{
+ const u16 *palette;
+ const u8 *tiles;
+ const u8 *tileMap;
+ u16 var0C;
+ u16 var0E;
+ u16 color10;
+ u16 color12;
+};
+
+// Static RAM declarations
+
+static EWRAM_DATA struct
+{
+ /*0x0000*/ u8 strbuf[8][64];
+ /*0x0200*/ u8 playerName[12];
+ /*0x020C*/ MainCallback callback;
+ /*0x0210*/ MainCallback callback2;
+ /*0x0214*/ struct MailStruct *mail;
+ /*0x0218*/ bool8 flag;
+ /*0x0219*/ u8 signatureWidth;
+ /*0x021a*/ u8 mailType;
+ /*0x021b*/ u8 animsActive;
+ /*0x021c*/ u8 monIconSprite;
+ /*0x021d*/ u8 language;
+ /*0x021e*/ bool8 playerIsSender;
+ /*0x0220*/ void (*parserSingle)(u8 *dest, u16 word);
+ /*0x0224*/ void (*parserMultiple)(u8 *dest, const u16 *src, u16 length1, u16 length2);
+ /*0x0228*/ const struct MailLayout *layout;
+ /*0x022c*/ u8 bg1TilemapBuffer[0x1000];
+ /*0x122c*/ u8 bg2TilemapBuffer[0x1000];
+} *gUnknown_0203A134 = NULL;
+
+// Static ROM declarations
+
+void sub_81219F0(void);
+void sub_8121A1C(void);
+void sub_8121B1C(void);
+void sub_8121C50(void);
+void sub_8121C64(void);
+void sub_8121C98(void);
+void sub_8121CC0(void);
+void sub_8121D00(void);
+
+// .rodata
+
+const struct BgTemplate gUnknown_0859F290[] = {
+ {
+ .bg = 0,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .priority = 0
+ }, {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .priority = 1
+ }, {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .priority = 2
+ }
+};
+
+const struct WindowTemplate gUnknown_0859F29C[] = {
+ {
+ .priority = 0,
+ .tilemapLeft = 2,
+ .tilemapTop = 3,
+ .width = 26,
+ .height = 15,
+ .paletteNum = 15,
+ .baseBlock = 1
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+const u8 gUnknown_0859F2AC[] = {
+ 0,
+ 10,
+ 11
+};
+
+const u16 gUnknown_0859F2B0[][2] = {
+ { 0x6ACD, 0x51A5 },
+ { 0x45FC, 0x38D4 }
+};
+
+extern const u16 gUnknown_08DBE818[];
+extern const u16 gUnknown_08DBE838[];
+extern const u16 gUnknown_08DBE858[];
+extern const u16 gUnknown_08DBE878[];
+extern const u16 gUnknown_08DBE898[];
+extern const u16 gUnknown_08DBE8B8[];
+extern const u16 gUnknown_08DBE8D8[];
+extern const u16 gUnknown_08DBE8F8[];
+extern const u16 gUnknown_08DBE918[];
+extern const u16 gUnknown_08DBE938[];
+extern const u16 gUnknown_08DBE958[];
+extern const u16 gUnknown_08DBE978[];
+extern const u8 gUnknown_08DBE998[];
+extern const u8 gUnknown_08DBFBA4[];
+extern const u8 gUnknown_08DBEB38[];
+extern const u8 gUnknown_08DBFC7C[];
+extern const u8 gUnknown_08DBEC74[];
+extern const u8 gUnknown_08DBFD5C[];
+extern const u8 gUnknown_08DBEE84[];
+extern const u8 gUnknown_08DBFE68[];
+extern const u8 gUnknown_08DBEF5C[];
+extern const u8 gUnknown_08DBFF44[];
+extern const u8 gUnknown_08DBF154[];
+extern const u8 gUnknown_08DC0034[];
+extern const u8 gUnknown_08DBF2D4[];
+extern const u8 gUnknown_08DC0114[];
+extern const u8 gUnknown_08DBF37C[];
+extern const u8 gUnknown_08DC01F4[];
+extern const u8 gUnknown_08DBF50C[];
+extern const u8 gUnknown_08DC0300[];
+extern const u8 gUnknown_08DBF64C[];
+extern const u8 gUnknown_08DC03F0[];
+extern const u8 gUnknown_08DBF7B4[];
+extern const u8 gUnknown_08DC04E8[];
+extern const u8 gUnknown_08DBF904[];
+extern const u8 gUnknown_08DC0600[];
+
+const struct MailGraphics gUnknown_0859F2B8[] = {
+ {
+ gUnknown_08DBE818, gUnknown_08DBE998, gUnknown_08DBFBA4, 0x02c0, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE838, gUnknown_08DBEB38, gUnknown_08DBFC7C, 0x02e0, 0x0000, 0x7fff, 0x4631
+ }, {
+ gUnknown_08DBE858, gUnknown_08DBEC74, gUnknown_08DBFD5C, 0x0400, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE878, gUnknown_08DBEE84, gUnknown_08DBFE68, 0x01e0, 0x0000, 0x7fff, 0x4631
+ }, {
+ gUnknown_08DBE898, gUnknown_08DBEF5C, gUnknown_08DBFF44, 0x02e0, 0x0000, 0x7fff, 0x4631
+ }, {
+ gUnknown_08DBE8B8, gUnknown_08DBF154, gUnknown_08DC0034, 0x0300, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE8D8, gUnknown_08DBF2D4, gUnknown_08DC0114, 0x0140, 0x0000, 0x7fff, 0x4631
+ }, {
+ gUnknown_08DBE8F8, gUnknown_08DBF37C, gUnknown_08DC01F4, 0x0300, 0x0000, 0x7fff, 0x4631
+ }, {
+ gUnknown_08DBE918, gUnknown_08DBF50C, gUnknown_08DC0300, 0x0220, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE938, gUnknown_08DBF64C, gUnknown_08DC03F0, 0x0340, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE958, gUnknown_08DBF7B4, gUnknown_08DC04E8, 0x02a0, 0x0000, 0x294a, 0x6739
+ }, {
+ gUnknown_08DBE978, gUnknown_08DBF904, gUnknown_08DC0600, 0x0520, 0x0000, 0x294a, 0x6739
+ }
+};
+
+const struct UnkMailStruct Unknown_0859F3A8[] = {
+ { .numEasyChatWords = 3, .lineHeight = 16 },
+ { .numEasyChatWords = 3, .lineHeight = 16 },
+ { .numEasyChatWords = 3, .lineHeight = 16 }
+};
+
+const struct MailLayout gUnknown_0859F3B4[] = {
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x08, 0x00, 0x02, 0x04, Unknown_0859F3A8 },
+ { 0x03, 0x00, 0x00, 0x02, 0x00, Unknown_0859F3A8 }
+};
+
+const struct UnkMailStruct Unknown_0859F444[] = {
+ { .numEasyChatWords = 2, .lineHeight = 16 },
+ { .numEasyChatWords = 2, .lineHeight = 16 },
+ { .numEasyChatWords = 2, .lineHeight = 16 },
+ { .numEasyChatWords = 2, .lineHeight = 16 },
+ { .numEasyChatWords = 1, .lineHeight = 16 }
+};
+
+const struct MailLayout gUnknown_0859F458[] = {
+ { 0x05, 0x07, 0x58, 0x0b, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x0c, 0x68, 0x05, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x05, 0x60, 0x08, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x09, 0x70, 0x05, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x0c, 0x68, 0x09, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x0d, 0x68, 0x0d, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x09, 0x60, 0x09, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x11, 0x68, 0x0f, 0x1e, Unknown_0859F444 },
+ { 0x05, 0x09, 0x60, 0x05, 0x1e, Unknown_0859F444 }
+};
+
+// What the heck are these meant to be? Call them u16 for now.
+
+const u16 Unknown_0859F4E8[] = {
+ 0x00, 0x4000, 0x00, 0x00
+};
+
+const u16 Unknown_0859F4F0[] = {
+ 0x00, 0x00, -1, 0x00
+};
+
+const u16 Unknown_0859F4F8[] = {
+ 0x04, 0x00, -1, 0x00
+};
+
+const u16 Unknown_0859F500[] = {
+ 0x00, 0x40, -1, 0x00
+};
+
+const u16 *const gUnknown_0859F508[] = {
+ Unknown_0859F4F0,
+ Unknown_0859F4F8,
+ Unknown_0859F500
+};
+
+// .text
+
+void sub_8121478(struct MailStruct *mail, MainCallback callback, bool8 flag) {
+ u16 buffer[2];
+ u16 species;
+
+ gUnknown_0203A134 = calloc(1, sizeof(*gUnknown_0203A134));
+ gUnknown_0203A134->language = LANGUAGE_ENGLISH;
+ gUnknown_0203A134->playerIsSender = TRUE;
+ gUnknown_0203A134->parserSingle = CopyEasyChatWord;
+ gUnknown_0203A134->parserMultiple = ConvertEasyChatWordsToString;
+ if (mail->itemId >= ITEM_ORANGE_MAIL && mail->itemId <= ITEM_RETRO_MAIL) {
+ gUnknown_0203A134->mailType = mail->itemId - ITEM_ORANGE_MAIL;
+ }
+ else
+ {
+ gUnknown_0203A134->mailType = 0;
+ flag = FALSE;
+ }
+ switch (gUnknown_0203A134->playerIsSender)
+ {
+ case FALSE:
+ default:
+ gUnknown_0203A134->layout = &gUnknown_0859F3B4[gUnknown_0203A134->mailType];
+ break;
+ case TRUE:
+ gUnknown_0203A134->layout = &gUnknown_0859F458[gUnknown_0203A134->mailType];
+ break;
+ }
+ species = sub_80D45E8(mail->species, buffer);
+ if (species >= SPECIES_BULBASAUR && species < NUM_SPECIES)
+ {
+ switch (gUnknown_0203A134->mailType)
+ {
+ default:
+ gUnknown_0203A134->animsActive = 0;
+ break;
+ case ITEM_BEAD_MAIL - ITEM_ORANGE_MAIL:
+ gUnknown_0203A134->animsActive = 1;
+ break;
+ case ITEM_DREAM_MAIL - ITEM_ORANGE_MAIL:
+ gUnknown_0203A134->animsActive = 2;
+ break;
+ }
+ }
+ else
+ {
+ gUnknown_0203A134->animsActive = 0;
+ }
+ gUnknown_0203A134->mail = mail;
+ gUnknown_0203A134->callback = callback;
+ gUnknown_0203A134->flag = flag;
+ SetMainCallback2(sub_81219F0);
+}
+
+bool8 sub_81215EC(void)
+{
+ u16 icon;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ remove_some_task();
+ SetGpuReg(REG_OFFSET_DISPCNT, 0x0000);
+ break;
+ case 1:
+ CpuFill16(0, (void *)OAM, OAM_SIZE);
+ break;
+ case 2:
+ ResetPaletteFade();
+ break;
+ case 3:
+ ResetTasks();
+ break;
+ case 4:
+ ResetSpriteData();
+ break;
+ case 5:
+ FreeAllSpritePalettes();
+ reset_temp_tile_data_buffers();
+ SetGpuReg(REG_OFFSET_BG0HOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG0VOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG1VOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG2VOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG2HOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG3HOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BG3VOFS, 0x0000);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0x0000);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0x0000);
+ break;
+ case 6:
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_0859F290, 3);
+ SetBgTilemapBuffer(1, gUnknown_0203A134->bg1TilemapBuffer);
+ SetBgTilemapBuffer(2, gUnknown_0203A134->bg2TilemapBuffer);
+ break;
+ case 7:
+ InitWindows(gUnknown_0859F29C);
+ DeactivateAllTextPrinters();
+ break;
+ case 8:
+ decompress_and_copy_tile_data_to_vram(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tiles, 0, 0, 0);
+ break;
+ case 9:
+ if (free_temp_tile_data_buffers_if_possible())
+ {
+ return FALSE;
+ }
+ break;
+ case 10:
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
+ FillBgTilemapBufferRect_Palette0(2, 1, 0, 0, 30, 20);
+ CopyToBgTilemapBuffer(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tileMap, 0, 0);
+ break;
+ case 11:
+ CopyBgTilemapBufferToVram(0);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ break;
+ case 12:
+ LoadPalette(sub_8098C64(), 240, 32);
+ gPlttBufferUnfaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10;
+ gPlttBufferFaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10;
+ gPlttBufferUnfaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12;
+ gPlttBufferFaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12;
+ LoadPalette(gUnknown_0859F2B8[gUnknown_0203A134->mailType].palette, 0, 32);
+ gPlttBufferUnfaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0];
+ gPlttBufferFaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0];
+ gPlttBufferUnfaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1];
+ gPlttBufferFaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1];
+ break;
+ case 13:
+ if (gUnknown_0203A134->flag)
+ {
+ sub_8121A1C();
+ }
+ break;
+ case 14:
+ if (gUnknown_0203A134->flag)
+ {
+ sub_8121B1C();
+ RunTextPrinters();
+ }
+ break;
+ case 15:
+ if (sub_8087598() == TRUE)
+ {
+ return FALSE;
+ }
+ break;
+ case 16:
+ SetVBlankCallback(sub_8121C50);
+ gPaletteFade.bufferTransferDisabled = TRUE;
+ break;
+ case 17:
+ icon = sub_80D2E84(gUnknown_0203A134->mail->species);
+ switch (gUnknown_0203A134->animsActive)
+ {
+ case 1:
+ sub_80D2F68(icon);
+ gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x60, 0x80, 0, 0);
+ break;
+ case 2:
+ sub_80D2F68(icon);
+ gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x28, 0x80, 0, 0);
+ break;
+ }
+ break;
+ case 18:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ gPaletteFade.bufferTransferDisabled = FALSE;
+ gUnknown_0203A134->callback2 = sub_8121C98;
+ return TRUE;
+ default:
+ return FALSE;
+ }
+ gMain.state ++;
+ return FALSE;
+}
+
+void sub_81219F0(void)
+{
+ do
+ {
+ if (sub_81215EC() == TRUE)
+ {
+ SetMainCallback2(sub_8121C64);
+ break;
+ }
+ } while (sub_81221AC() != TRUE);
+}
+
+void sub_8121A1C(void)
+{
+ u16 i;
+ u8 total;
+ u8 *ptr;
+
+ total = 0;
+ for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++)
+ {
+ ConvertEasyChatWordsToString(gUnknown_0203A134->strbuf[i], &gUnknown_0203A134->mail->words[total], gUnknown_0203A134->layout->var8[i].numEasyChatWords, 1);
+ total += gUnknown_0203A134->layout->var8[i].numEasyChatWords;
+ }
+ ptr = StringCopy(gUnknown_0203A134->playerName, gUnknown_0203A134->mail->playerName);
+ if (!gUnknown_0203A134->playerIsSender)
+ {
+ StringCopy(ptr, gText_FromSpace);
+ gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth - (StringLength(gUnknown_0203A134->playerName) * 8 - 0x60);
+ }
+ else
+ {
+ sub_81DB52C(gUnknown_0203A134->playerName);
+ gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth;
+ }
+}
+
+void sub_8121B1C(void)
+{
+ u16 i;
+ u8 strbuf[0x20];
+ u8 y;
+ u8 *bufptr;
+ s32 box_x;
+ s32 box_y;
+
+ y = 0;
+ PutWindowTilemap(0);
+ PutWindowTilemap(1);
+ FillWindowPixelBuffer(0, 0);
+ FillWindowPixelBuffer(1, 0);
+ for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++)
+ {
+ if (gUnknown_0203A134->strbuf[i][0] == EOS || gUnknown_0203A134->strbuf[i][0] == CHAR_SPACE)
+ {
+ continue;
+ }
+ box_print(0, 1, gUnknown_0203A134->layout->var8[i].xOffset + gUnknown_0203A134->layout->wordsYPos, y + gUnknown_0203A134->layout->wordsXPos, gUnknown_0859F2AC, 0, gUnknown_0203A134->strbuf[i]);
+ y += gUnknown_0203A134->layout->var8[i].lineHeight;
+ }
+ bufptr = StringCopy(strbuf, gText_FromSpace);
+ StringCopy(bufptr, gUnknown_0203A134->playerName);
+ box_x = GetStringCenterAlignXOffset(1, strbuf, gUnknown_0203A134->signatureWidth) + 0x68;
+ box_y = gUnknown_0203A134->layout->signatureYPos + 0x58;
+ box_print(0, 1, box_x, box_y, gUnknown_0859F2AC, 0, strbuf);
+ CopyWindowToVram(0, 3);
+ CopyWindowToVram(1, 3);
+}
+
+void sub_8121C50(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_8121C64(void)
+{
+ if (gUnknown_0203A134->animsActive != 0)
+ {
+ AnimateSprites();
+ BuildOamBuffer();
+ }
+ gUnknown_0203A134->callback2();
+}
+
+void sub_8121C98(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ gUnknown_0203A134->callback2 = sub_8121CC0;
+ }
+}
+
+void sub_8121CC0(void)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gUnknown_0203A134->callback2 = sub_8121D00;
+ }
+}
+
+void sub_8121D00(void)
+{
+ if (!UpdatePaletteFade())
+ {
+ SetMainCallback2(gUnknown_0203A134->callback);
+ switch (gUnknown_0203A134->animsActive)
+ {
+ case 1:
+ case 2:
+ sub_80D2FF0(sub_80D2E84(gUnknown_0203A134->mail->species));
+ sub_80D2EF8(&gSprites[gUnknown_0203A134->monIconSprite]);
+ }
+ memset(gUnknown_0203A134, 0, sizeof(*gUnknown_0203A134));
+ ResetPaletteFade();
+ UnsetBgTilemapBuffer(0);
+ UnsetBgTilemapBuffer(1);
+ ResetBgsAndClearDma3BusyFlags(0);
+ FreeAllWindowBuffers();
+ free(gUnknown_0203A134);
+ gUnknown_0203A134 = NULL;
+ }
+}
diff --git a/src/pokemon_1.c b/src/pokemon_1.c
index fe7809826..f56ade967 100644
--- a/src/pokemon_1.c
+++ b/src/pokemon_1.c
@@ -33,7 +33,7 @@ void ZeroMonData(struct Pokemon *mon)
SetMonData(mon, MON_DATA_MAX_HP, &arg);
SetMonData(mon, MON_DATA_ATK, &arg);
SetMonData(mon, MON_DATA_DEF, &arg);
- SetMonData(mon, MON_DATA_SPD, &arg);
+ SetMonData(mon, MON_DATA_SPEED, &arg);
SetMonData(mon, MON_DATA_SPATK, &arg);
SetMonData(mon, MON_DATA_SPDEF, &arg);
arg = 255;
@@ -128,7 +128,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &fixedIV);
- SetBoxMonData(boxMon, MON_DATA_SPD_IV, &fixedIV);
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &fixedIV);
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &fixedIV);
}
@@ -147,7 +147,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
value = Random();
iv = value & 0x1F;
- SetBoxMonData(boxMon, MON_DATA_SPD_IV, &iv);
+ SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
iv = (value & 0x3E0) >> 5;
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
iv = (value & 0x7C00) >> 10;
@@ -234,7 +234,7 @@ void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u
SetMonData(mon, MON_DATA_HP_IV, &ivs[0]);
SetMonData(mon, MON_DATA_ATK_IV, &ivs[1]);
SetMonData(mon, MON_DATA_DEF_IV, &ivs[2]);
- SetMonData(mon, MON_DATA_SPD_IV, &ivs[3]);
+ SetMonData(mon, MON_DATA_SPEED_IV, &ivs[3]);
SetMonData(mon, MON_DATA_SPATK_IV, &ivs[4]);
SetMonData(mon, MON_DATA_SPDEF_IV, &ivs[5]);
CalculateMonStats(mon);
@@ -305,7 +305,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src)
SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
- SetMonData(mon, MON_DATA_SPD_EV, &src->speedEV);
+ SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
value = src->altAbility;
@@ -317,7 +317,7 @@ void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src)
value = src->defenseIV;
SetMonData(mon, MON_DATA_DEF_IV, &value);
value = src->speedIV;
- SetMonData(mon, MON_DATA_SPD_IV, &value);
+ SetMonData(mon, MON_DATA_SPEED_IV, &value);
value = src->spAttackIV;
SetMonData(mon, MON_DATA_SPATK_IV, &value);
value = src->spDefenseIV;
@@ -369,7 +369,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
- SetMonData(mon, MON_DATA_SPD_EV, &src->speedEV);
+ SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
value = src->altAbility;
@@ -381,7 +381,7 @@ void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lv
value = src->defenseIV;
SetMonData(mon, MON_DATA_DEF_IV, &value);
value = src->speedIV;
- SetMonData(mon, MON_DATA_SPD_IV, &value);
+ SetMonData(mon, MON_DATA_SPEED_IV, &value);
value = src->spAttackIV;
SetMonData(mon, MON_DATA_SPATK_IV, &value);
value = src->spDefenseIV;
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 27441f952..587773836 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -330,7 +330,7 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8* data)
if (!ret)
ret = mon->defense;
break;
- case MON_DATA_SPD:
+ case MON_DATA_SPEED:
ret = GetDeoxysStat(mon, STAT_SPD);
if (!ret)
ret = mon->speed;
@@ -351,7 +351,7 @@ u32 GetMonData(struct Pokemon *mon, s32 field, u8* data)
case MON_DATA_DEF2:
ret = mon->defense;
break;
- case MON_DATA_SPD2:
+ case MON_DATA_SPEED2:
ret = mon->speed;
break;
case MON_DATA_SPATK2:
@@ -512,7 +512,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_DEF_EV:
retVal = substruct2->defenseEV;
break;
- case MON_DATA_SPD_EV:
+ case MON_DATA_SPEED_EV:
retVal = substruct2->speedEV;
break;
case MON_DATA_SPATK_EV:
@@ -566,7 +566,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
case MON_DATA_DEF_IV:
retVal = substruct3->defenseIV;
break;
- case MON_DATA_SPD_IV:
+ case MON_DATA_SPEED_IV:
retVal = substruct3->speedIV;
break;
case MON_DATA_SPATK_IV:
@@ -747,7 +747,7 @@ void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg)
case MON_DATA_DEF:
SET16(mon->defense);
break;
- case MON_DATA_SPD:
+ case MON_DATA_SPEED:
SET16(mon->speed);
break;
case MON_DATA_SPATK:
@@ -880,7 +880,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
case MON_DATA_DEF_EV:
SET8(substruct2->defenseEV);
break;
- case MON_DATA_SPD_EV:
+ case MON_DATA_SPEED_EV:
SET8(substruct2->speedEV);
break;
case MON_DATA_SPATK_EV:
@@ -940,7 +940,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
case MON_DATA_DEF_IV:
SET8(substruct3->defenseIV);
break;
- case MON_DATA_SPD_IV:
+ case MON_DATA_SPEED_IV:
SET8(substruct3->speedIV);
break;
case MON_DATA_SPATK_IV:
@@ -1329,7 +1329,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex)
gBattleMons[bank].hpIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HP_IV, NULL);
gBattleMons[bank].attackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK_IV, NULL);
gBattleMons[bank].defenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF_IV, NULL);
- gBattleMons[bank].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD_IV, NULL);
+ gBattleMons[bank].speedIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED_IV, NULL);
gBattleMons[bank].spAttackIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK_IV, NULL);
gBattleMons[bank].spDefenseIV = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF_IV, NULL);
gBattleMons[bank].personality = GetMonData(&gPlayerParty[partyIndex], MON_DATA_PERSONALITY, NULL);
@@ -1339,7 +1339,7 @@ void CopyPlayerPartyMonToBattleData(u8 bank, u8 partyIndex)
gBattleMons[bank].maxHP = GetMonData(&gPlayerParty[partyIndex], MON_DATA_MAX_HP, NULL);
gBattleMons[bank].attack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ATK, NULL);
gBattleMons[bank].defense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_DEF, NULL);
- gBattleMons[bank].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPD, NULL);
+ gBattleMons[bank].speed = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPEED, NULL);
gBattleMons[bank].spAttack = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPATK, NULL);
gBattleMons[bank].spDefense = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPDEF, NULL);
gBattleMons[bank].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL);
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 12d98bfd8..1758fba32 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -57,7 +57,7 @@ static u32 GetMonSizeHash(struct Pokemon *pkmn)
u16 hpIV = GetMonData(pkmn, MON_DATA_HP_IV) & 0xF;
u16 attackIV = GetMonData(pkmn, MON_DATA_ATK_IV) & 0xF;
u16 defenseIV = GetMonData(pkmn, MON_DATA_DEF_IV) & 0xF;
- u16 speedIV = GetMonData(pkmn, MON_DATA_SPD_IV) & 0xF;
+ u16 speedIV = GetMonData(pkmn, MON_DATA_SPEED_IV) & 0xF;
u16 spAtkIV = GetMonData(pkmn, MON_DATA_SPATK_IV) & 0xF;
u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF;
u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
new file mode 100755
index 000000000..838e91d90
--- /dev/null
+++ b/src/pokemon_summary_screen.c
@@ -0,0 +1,3679 @@
+#include "global.h"
+#include "battle.h"
+#include "bg.h"
+#include "decompress.h"
+#include "item.h"
+#include "items.h"
+#include "link.h"
+#include "m4a.h"
+#include "main.h"
+#include "malloc.h"
+#include "moves.h"
+#include "palette.h"
+#include "pokemon.h"
+#include "songs.h"
+#include "sound.h"
+#include "species.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "text.h"
+#include "window.h"
+
+struct ContestMove
+{
+ u8 effect;
+ u8 type;
+ u8 comboID;
+ u8 combo[4];
+};
+
+struct ContestEffect
+{
+ u8 type;
+ u8 appeal;
+ u8 jam;
+};
+
+
+
+extern struct UnkSummaryStruct* gUnknown_0203CF1C;
+extern struct BgTemplate gUnknown_0861CBB4;
+extern u8 gUnknown_0203CF20;
+extern struct MusicPlayerInfo gMPlay_BGM;
+extern s8 gUnknown_0861CC1C[];
+extern u8 gUnknown_08329D22[];
+extern u8 gUnknown_0203CF21;
+extern u16 gSpecialVar_0x8005;
+extern struct UnkStruct_61CC04 gUnknown_0861CC04;
+extern struct UnkStruct_61CC04 gUnknown_0861CC10;
+extern struct UnkStruct_61CC04 gUnknown_0861CBEC;
+extern struct UnkStruct_61CC04 gUnknown_0861CBF8;
+extern u16 gUnknown_08DC3CD4[];
+extern struct ContestMove gContestMoves[];
+extern struct ContestEffect gContestEffects[];
+extern struct WindowTemplate gUnknown_0861CC24;
+extern struct TextColor gUnknown_0861CD2C[];
+extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
+extern u8 gText_MaleSymbol[];
+extern u8 gText_FemaleSymbol[];
+extern u8 gUnknown_0861CDD3[];
+extern void (*const gUnknown_0861CE54[])();
+extern void (*const gUnknown_0861CE64[])(u8 taskId);
+extern struct WindowTemplate gUnknown_0861CCCC;
+extern u8 gUnknown_0861CE74[];
+extern u8 gUnknown_0861CE7B[];
+extern struct WindowTemplate gUnknown_0861CCEC;
+extern struct WindowTemplate gUnknown_0861CD14;
+
+extern void sub_806F2AC(u8 a, u8 b);
+void sub_81C488C(u8 a);
+extern void do_scheduled_bg_tilemap_copies_to_vram(void);
+extern u8 sub_81221EC();
+extern u8 sub_81221AC();
+extern void SetVBlankHBlankCallbacksToNull();
+extern void sub_8121DA0();
+extern void clear_scheduled_bg_copies_to_vram();
+extern void remove_some_task();
+extern void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
+extern void ShowBg(u8 a);
+extern void SetGpuReg(u8 regOffset, u16 value);
+extern void schedule_bg_copy_tilemap_to_vram(u8 a);
+extern void SetBgTilemapBuffer(u8 bg, void *tilemap);
+extern u8 gUnknown_08D9862C;
+extern u8 gUnknown_08D98CC8;
+extern u8 gUnknown_08D987FC;
+extern u8 gUnknown_08D9898C;
+extern u8 gUnknown_08D98B28;
+extern u8 gUnknown_08D9853C;
+extern u8 gUnknown_08D85620;
+extern struct CompressedSpriteSheet gUnknown_0861CFBC;
+extern struct CompressedSpriteSheet gUnknown_0861D074;
+extern struct CompressedSpriteSheet gUnknown_0861D0F8;
+extern struct CompressedSpritePalette gUnknown_0861D100;
+extern struct CompressedSpritePalette gUnknown_0861D07C;
+extern u8 gUnknown_08D97B84;
+extern u8 gUnknown_08D97D0C;
+extern void reset_temp_tile_data_buffers();
+extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d);
+extern u8 free_temp_tile_data_buffers_if_possible();
+extern void sub_8069004(struct BoxPokemon* a, void* b);
+extern void sub_81C1E20(u8 taskId);
+extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
+extern u16 SpeciesToPokedexNum(u16 species);
+extern u8 gText_UnkCtrlF908Clear01[];
+extern u8 gText_LevelSymbol[];
+extern u8 gText_PkmnInfo[];
+extern u8 gText_PkmnSkills[];
+extern u8 gText_BattleMoves[];
+extern u8 gText_ContestMoves[];
+extern u8 gText_Cancel2[];
+extern u8 gText_Info[];
+extern u8 gText_Switch[];
+extern u8 gText_RentalPkmn[];
+extern u8 gText_TypeSlash[];
+extern u8 gText_HP4[];
+extern u8 gText_Attack3[];
+extern u8 gText_Defense3[];
+extern u8 gText_SpAtk4[];
+extern u8 gText_SpDef4[];
+extern u8 gText_Speed2[];
+extern u8 gText_ExpPoints[];
+extern u8 gText_NextLv[];
+extern u8 gText_Status[];
+extern u8 gText_Power[];
+extern u8 gText_Accuracy2[];
+extern u8 gText_Appeal[];
+extern u8 gText_Jam[];
+extern u8 gText_OTSlash[];
+extern u8 gText_UnkCtrlF907F908[];
+extern u8 gAbilityNames[][13];
+extern u8 *gAbilityDescriptionPointers[];
+extern u8 gText_XNature[];
+extern u8 gText_XNatureHatchedAtYZ[];
+extern u8 gText_XNatureHatchedSomewhereAt[];
+extern u8 gText_XNatureMetAtYZ[];
+extern u8 gText_XNatureMetSomewhereAt[];
+extern u8 gText_XNatureFatefulEncounter[];
+extern u8 gText_XNatureProbablyMetAt[];
+extern u8 gText_XNatureObtainedInTrade[];
+extern u8 *gNatureNamePointers[];
+extern u8 gText_EmptyString5[];
+extern u32 gBattleTypeFlags;
+extern u8 gText_FiveMarks[];
+extern u8 gText_EggWillTakeALongTime[];
+extern u8 gText_EggAboutToHatch[];
+extern u8 gText_EggWillHatchSoon[];
+extern u8 gText_EggWillTakeSomeTime[];
+extern u8 gText_PeculiarEggNicePlace[];
+extern u8 gText_PeculiarEggTrade[];
+extern u8 gText_EggFromTraveler[];
+extern u8 gText_EggFromHotSprings[];
+extern u8 gText_OddEggFoundByCouple[];
+extern u8 gText_None[];
+extern u8 gText_RibbonsVar1[];
+extern u8 gUnknown_0861CE82[];
+extern u8 gUnknown_0861CE8E[];
+extern u8 gText_OneDash[];
+extern u8 gText_TwoDashes[];
+extern u8 gText_ThreeDashes[];
+extern u8 gUnknown_0861CE97[];
+extern struct BattleMove gBattleMoves[];
+
+extern u32 ChangeBgX(u8 bg, u32 value, u8 op);
+extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f);
+extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str);
+extern s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
+extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
+extern bool8 sub_81A6BF4();
+extern bool8 sub_81B9E94();
+extern void sub_81AFBF0();
+extern u8 sub_81AFC0C(u8 a, u8 *b);
+extern void sub_81AFC28(u8 *a, u8 *b);
+extern void sub_8124610(u8 *a, u8 b);
+extern int GetPlayerIDAsU32();
+extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b);
+
+void sub_81BFAE4(void);
+void sub_81BFE24();
+u8 sub_81BFEB0();
+void sub_81C2554();
+void sub_81C1BA0();
+void sub_81C0098(struct Pokemon* a);
+bool8 sub_81C00F0(struct Pokemon* a);
+void sub_81C25E8();
+void sub_81C286C();
+void sub_81C2D9C(u8 a);
+void sub_81C0348();
+void sub_81C2AFC(u8 a);
+void sub_81C4190();
+void sub_81C42C8();
+u8 sub_81C45F4(void* a, u16* b);
+void sub_81C4984();
+void sub_81C4A08();
+void sub_81C4A88();
+void sub_81C4280();
+void sub_81C0510(u8 taskId);
+void sub_81C171C(u8 taskId);
+void sub_8121E10();
+u8 sub_81B205C(struct Pokemon* a);
+void sub_81C1DA4(u16 a, s16 b);
+void sub_81C1EFC(u16 a, s16 b, u16 c);
+void sub_81C240C(u16 a);
+void sub_81C2194(u16 *a, u16 b, u8 c);
+void sub_81C2074(u16 a, s16 b);
+void sub_81C2524();
+void sub_81C2228(struct Pokemon* mon);
+void sub_81C0484(u8 taskId);
+void sub_81C4898();
+void sub_806F47C(u8 a);
+u8 GetLRKeysState();
+void sub_81C0604(u8 taskId, s8 a);
+void sub_81C0A8C(u8 taskId, s8 a);
+void sub_81C48F0();
+void sub_81C0E48(u8 taskId);
+void sub_81C0704(u8 taskId);
+s8 sub_81C09B4(s8 a);
+s8 sub_81C08F8(s8 a);
+void sub_81C4204(u8 a, u8 b);
+void sub_81C20F0(u8 taskId);
+bool8 sub_81C0A50(struct Pokemon* mon);
+void sub_81C49E0();
+void sub_81C0E24();
+void sub_81C2C38(u8 a);
+void sub_81C0B8C(u8 taskId);
+void sub_81C0CC4(u8 taskId);
+void sub_81C2DE4(u8 a);
+void sub_81C424C();
+void sub_81C0C68(u8 taskId);
+void sub_81C0D44(u8 taskId);
+void sub_81C22CC(struct Pokemon* mon);
+void sub_81C0F44(u8 taskId);
+void sub_81C3E9C(u16 a);
+void sub_81C3F44();
+void sub_81C44F0();
+void sub_81C4AF8(u8 a);
+void sub_81C1070(s16* a, s8 b, u8* c);
+void sub_81C11F4(u8 a);
+void sub_81C129C(u8 a);
+bool8 sub_81C1040();
+void sub_81C4064();
+void sub_81C4C60(u8 a);
+void sub_81C12E4(u8 taskId);
+void sub_81C4C84(u8 a);
+void sub_81C13B0(u8 a, u8 b);
+void sub_81C14BC(struct Pokemon *mon, u8 a, u8 b);
+void sub_81C15EC(struct BoxPokemon *mon, u8 a, u8 b);
+void sub_81C40A0(u8 a, u8 b);
+void sub_81C4568(u8 a, u8 b);
+void sub_81C174C(u8 taskId);
+bool8 sub_81C18A8();
+void sub_81C18F4(u8 a);
+u8 sub_81B6D14(u16 a);
+void sub_81C1940(u8 taskId);
+void sub_81C4154();
+void sub_81C1F80(u8 taskId);
+void sub_81C2628();
+void sub_81C2794();
+void sub_81C27DC(struct Pokemon *mon, u16 a);
+void sub_81C2D68(u8 a);
+void sub_81C335C();
+void sub_81C33CC();
+void sub_81C3428();
+void sub_81C349C();
+void sub_81C2EC4();
+void sub_81C2F5C();
+void sub_81C2FD8();
+void sub_81C302C();
+void sub_81C307C();
+void sub_81C3194();
+void sub_81C31C0();
+bool8 sub_81C3304();
+void sub_81C31F0(u8 *a);
+u8 sub_81C3220();
+bool8 sub_81C32BC();
+void sub_81C35E4();
+void sub_81C3690();
+void sub_81C3710();
+void sub_81C37D8();
+void sub_81C3808();
+void sub_81C3890();
+void sub_81C38C0();
+void sub_81C3B08(u8 a);
+void sub_81C3E2C(u8 a);
+void sub_81C4D18();
+
+void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
+
+bool8 sub_81BFB10();
+u8 sub_81B1250();
+
+union UnkUnion
+{
+ struct Pokemon mon[6];
+ struct BoxPokemon boxMon[6];
+};
+
+
+u8 sub_80D214C(union UnkUnion* a, u8 b, u8 c, u8 d);
+
+struct PokeSummary
+{
+ u16 species; // 0x0
+ u16 species2; // 0x2
+ u8 isEgg; // 0x4
+ u8 level; // 0x5
+ u8 ribbons; // 0x6
+ u8 unk7; // 0x7
+ u8 altAbility; // 0x8
+ u8 metLocation; // 0x9
+ u8 metLevel; // 0xA
+ u8 metGame; // 0xB
+ u32 pid; // 0xC
+ u32 exp; // 0x10
+ u16 moves[4]; // 0x14
+ u8 pp[4]; // 0x1C
+ u16 currentHP; // 0x20
+ u16 maxHP; // 0x22
+ u16 atk; // 0x24
+ u16 def; // 0x26
+ u16 spatk; // 0x28
+ u16 spdef; // 0x2A
+ u16 speed; // 0x2C
+ u16 item; // 0x2E
+ u16 friendship; // 0x30
+ u8 OTGender; // 0x32
+ u8 nature; // 0x33
+ u8 ppBonuses; // 0x34
+ u8 sanity; // 0x35
+ u8 OTName[8]; // 0x36
+ u8 unk3E[9]; // 0x3E
+ u32 OTID; // 0x48
+};
+
+struct UnkSummaryStruct
+{
+ /*0x00*/ union UnkUnion *unk0;
+ /*0x04*/ void *unk4;
+ /*0x08*/ void *unk8;
+ /*0x0C*/ struct Pokemon currentMon;
+ /*0x70*/ struct PokeSummary summary;
+ u16 unkTilemap0[0x400];
+ u16 unkTilemap0_1[0x400];
+ u16 unkTilemap1[0x400];
+ u16 unkTilemap1_1[0x400];
+ u16 unkTilemap2[0x400];
+ u16 unkTilemap2_1[0x400];
+ u16 unkTilemap3[0x400];
+ u16 unkTilemap3_1[0x400];
+ u8 unk40BC;
+ u8 unk40BD;
+ u8 unk40BE;
+ u8 unk40BF;
+ u8 unk40C0;
+ u8 unk40C1;
+ u8 unk40C2;
+ u8 unk40C3;
+ u16 unk40C4;
+ u8 unk40C6;
+ u8 unk40C7;
+ u8 unk40C8;
+ u8 unk40C9;
+ u8 unk40CA;
+ u8 unk40CB[8];
+ u8 unk40D3;
+ u8 unk40D4;
+ u8 unk40D5;
+ u8 unk_filler5[0x19];
+ u8 unk40EF;
+ s16 unk40F0;
+ u8 unk_filler4[6];
+};
+
+void sub_81BF8EC(u8 a, void *b, u8 c, u8 d, void *e)
+{
+ u8 byte;
+ gUnknown_0203CF1C = AllocZeroed(sizeof(struct UnkSummaryStruct));
+ gUnknown_0203CF1C->unk40BC = a;
+ gUnknown_0203CF1C->unk0 = b;
+ gUnknown_0203CF1C->unk40BE = c;
+ gUnknown_0203CF1C->unk40BF = d;
+ gUnknown_0203CF1C->unk4 = e;
+ if (a == 2)
+ gUnknown_0203CF1C->unk40BD = 1;
+ else
+ gUnknown_0203CF1C->unk40BD = 0;
+ switch (a)
+ {
+ case 0:
+ case 2:
+ gUnknown_0203CF1C->unk40C1 = 0;
+ gUnknown_0203CF1C->unk40C2 = 3;
+ break;
+ case 1:
+ gUnknown_0203CF1C->unk40C1 = 0;
+ gUnknown_0203CF1C->unk40C2 = 3;
+ gUnknown_0203CF1C->unk40C8 = 1;
+ break;
+ case 3:
+ gUnknown_0203CF1C->unk40C1 = 2;
+ gUnknown_0203CF1C->unk40C2 = 3;
+ gUnknown_0203CF1C->unk40C3 = 1;
+ break;
+ }
+ byte = gUnknown_0203CF1C->unk40C1;
+ gUnknown_0203CF1C->unk40C0 = byte;
+ sub_81C488C(0xFF);
+ if (gMonSpritesGfxPtr == 0)
+ sub_806F2AC(0, 0);
+ SetMainCallback2(sub_81BFAE4);
+}
+
+void sub_81BFA38(void *a, u8 b, u8 c, void *d, u16 e)
+{
+ sub_81BF8EC(3, a, b, c, d);
+ gUnknown_0203CF1C->unk40C4 = e;
+}
+
+void sub_81BFA80(u8 a, void *b, u8 c, u8 d, void *e)
+{
+ sub_81BF8EC(a, b, c, d, e);
+ gUnknown_0203CF1C->unk40EF = 1;
+}
+
+void sub_81BFAB4(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ do_scheduled_bg_tilemap_copies_to_vram();
+ UpdatePaletteFade();
+}
+
+void sub_81BFAD0(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_81BFAE4()
+{
+ while (1)
+ {
+ if (sub_81221EC() == 1 || sub_81BFB10() == TRUE || sub_81221AC() == 1)
+ break;
+ }
+}
+
+bool8 sub_81BFB10(void)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankHBlankCallbacksToNull();
+ sub_8121DA0();
+ clear_scheduled_bg_copies_to_vram();
+ gMain.state++;
+ break;
+ case 1:
+ remove_some_task();
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ gPaletteFade.bufferTransferDisabled = 1;
+ gMain.state++;
+ break;
+ case 3:
+ ResetSpriteData();
+ gMain.state++;
+ break;
+ case 4:
+ FreeAllSpritePalettes();
+ gMain.state++;
+ break;
+ case 5:
+ sub_81BFE24();
+ gUnknown_0203CF1C->unk40F0 = 0;
+ gMain.state++;
+ break;
+ case 6:
+ if (sub_81BFEB0() != 0)
+ gMain.state++;
+ break;
+ case 7:
+ sub_81C2554();
+ gMain.state++;
+ break;
+ case 8:
+ sub_81C1BA0();
+ gMain.state++;
+ break;
+ case 9:
+ sub_81C0098(&gUnknown_0203CF1C->currentMon);
+ gUnknown_0203CF1C->unk40F0 = 0;
+ gMain.state++;
+ break;
+ case 10:
+ if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) != 0)
+ gMain.state++;
+ break;
+ case 11:
+ sub_81C25E8();
+ gMain.state++;
+ break;
+ case 12:
+ sub_81C286C();
+ gMain.state++;
+ break;
+ case 13:
+ sub_81C2D9C(gUnknown_0203CF1C->unk40C0);
+ gMain.state++;
+ break;
+ case 14:
+ sub_81C0348();
+ gMain.state++;
+ break;
+ case 15:
+ sub_81C2AFC(gUnknown_0203CF1C->unk40C0);
+ gMain.state++;
+ break;
+ case 16:
+ sub_81C4190();
+ sub_81C42C8();
+ gUnknown_0203CF1C->unk40F0 = 0;
+ gMain.state++;
+ break;
+ case 17:
+ gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &gUnknown_0203CF1C->unk40F0);
+ if (gUnknown_0203CF1C->unk40D3 != 0xFF)
+ {
+ gUnknown_0203CF1C->unk40F0 = 0;
+ gMain.state++;
+ }
+ break;
+ case 18:
+ sub_81C4984(&gUnknown_0203CF1C->currentMon);
+ gMain.state++;
+ break;
+ case 19:
+ sub_81C4A08(&gUnknown_0203CF1C->currentMon);
+ gMain.state++;
+ break;
+ case 20:
+ sub_81C4A88();
+ gMain.state++;
+ break;
+ case 21:
+ sub_81C4280();
+ gMain.state++;
+ break;
+ case 22:
+ if (gUnknown_0203CF1C->unk40BC != 3)
+ CreateTask(sub_81C0510, 0);
+ else
+ CreateTask(sub_81C171C, 0);
+ gMain.state++;
+ break;
+ case 23:
+ BlendPalettes(-1, 16, 0);
+ gMain.state++;
+ break;
+ case 24:
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ gPaletteFade.bufferTransferDisabled = 0;
+ gMain.state++;
+ break;
+ default:
+ SetVBlankCallback(sub_81BFAD0);
+ SetMainCallback2(sub_81BFAB4);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_81BFE24()
+{
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, &gUnknown_0861CBB4, 4);
+ SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap2);
+ SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap1);
+ SetBgTilemapBuffer(3, &gUnknown_0203CF1C->unkTilemap0);
+ sub_8121E10();
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ schedule_bg_copy_tilemap_to_vram(3);
+ SetGpuReg(REG_OFFSET_DISPCNT, 0x1040);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ ShowBg(3);
+}
+
+u8 sub_81BFEB0()
+{
+ switch (gUnknown_0203CF1C->unk40F0)
+ {
+ case 0:
+ reset_temp_tile_data_buffers();
+ decompress_and_copy_tile_data_to_vram(1, &gUnknown_08D97D0C, 0, 0, 0);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 1:
+ if (free_temp_tile_data_buffers_if_possible() != 1)
+ {
+ LZDecompressWram(&gUnknown_08D9862C, gUnknown_0203CF1C->unkTilemap0);
+ gUnknown_0203CF1C->unk40F0++;
+ }
+ break;
+ case 2:
+ LZDecompressWram(&gUnknown_08D98CC8, gUnknown_0203CF1C->unkTilemap0_1);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 3:
+ LZDecompressWram(&gUnknown_08D987FC, gUnknown_0203CF1C->unkTilemap1_1);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 4:
+ LZDecompressWram(&gUnknown_08D9898C, gUnknown_0203CF1C->unkTilemap2_1);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 5:
+ LZDecompressWram(&gUnknown_08D98B28, gUnknown_0203CF1C->unkTilemap3_1);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 6:
+ LoadCompressedPalette(&gUnknown_08D9853C, 0, 0x100);
+ LoadPalette(&gUnknown_08D85620, 0x81, 0x1E);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 7:
+ LoadCompressedObjectPic(&gUnknown_0861CFBC);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 8:
+ LoadCompressedObjectPic(&gUnknown_0861D074);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 9:
+ LoadCompressedObjectPic(&gUnknown_0861D0F8);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 10:
+ LoadCompressedObjectPalette(&gUnknown_0861D100);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 11:
+ LoadCompressedObjectPalette(&gUnknown_0861D07C);
+ gUnknown_0203CF1C->unk40F0++;
+ break;
+ case 12:
+ LoadCompressedPalette(&gUnknown_08D97B84, 0x1D0, 0x60);
+ gUnknown_0203CF1C->unk40F0 = 0;
+ return 1;
+ }
+ return 0;
+}
+
+void sub_81C0098(struct Pokemon *mon)
+{
+ if (gUnknown_0203CF1C->unk40BD == 0)
+ {
+ struct Pokemon *partyMon = gUnknown_0203CF1C->unk0->mon;
+ *mon = partyMon[gUnknown_0203CF1C->unk40BE];
+ }
+ else
+ {
+ struct BoxPokemon *boxMon = gUnknown_0203CF1C->unk0->boxMon;
+ sub_8069004(&boxMon[gUnknown_0203CF1C->unk40BE], mon);
+ }
+}
+
+bool8 sub_81C00F0(struct Pokemon *a)
+{
+ u32 i;
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ switch (gUnknown_0203CF1C->unk40F0)
+ {
+ case 0:
+ sum->species = GetMonData(a, MON_DATA_SPECIES);
+ sum->species2 = GetMonData(a, MON_DATA_SPECIES2);
+ sum->exp = GetMonData(a, MON_DATA_EXP);
+ sum->level = GetMonData(a, MON_DATA_LEVEL);
+ sum->altAbility = GetMonData(a, MON_DATA_ALT_ABILITY);
+ sum->item = GetMonData(a, MON_DATA_HELD_ITEM);
+ sum->pid = GetMonData(a, MON_DATA_PERSONALITY);
+ sum->sanity = GetMonData(a, MON_DATA_SANITY_BIT1);
+ if (sum->sanity != 0)
+ sum->isEgg = 1;
+ else
+ sum->isEgg = GetMonData(a, MON_DATA_IS_EGG);
+ break;
+ case 1:
+ for (i = 0; i < 4; i++)
+ {
+ sum->moves[i] = GetMonData(a, MON_DATA_MOVE1+i);
+ sum->pp[i] = GetMonData(a, MON_DATA_PP1+i);
+ }
+ sum->ppBonuses = GetMonData(a, MON_DATA_PP_BONUSES);
+ break;
+ case 2:
+ if ((struct Pokemon*)gUnknown_0203CF1C->unk0 == gPlayerParty || gUnknown_0203CF1C->unk40BC == 2 || gUnknown_0203CF1C->unk40EF == 1)
+ {
+ sum->nature = GetNature(a);
+ sum->currentHP = GetMonData(a, MON_DATA_HP);
+ sum->maxHP = GetMonData(a, MON_DATA_MAX_HP);
+ sum->atk = GetMonData(a, MON_DATA_ATK);
+ sum->def = GetMonData(a, MON_DATA_DEF);
+ sum->spatk = GetMonData(a, MON_DATA_SPATK);
+ sum->spdef = GetMonData(a, MON_DATA_SPDEF);
+ sum->speed = GetMonData(a, MON_DATA_SPEED);
+ }
+ else
+ {
+ sum->nature = GetNature(a);
+ sum->currentHP = GetMonData(a, MON_DATA_HP);
+ sum->maxHP = GetMonData(a, MON_DATA_MAX_HP);
+ sum->atk = GetMonData(a, MON_DATA_ATK2);
+ sum->def = GetMonData(a, MON_DATA_DEF2);
+ sum->spatk = GetMonData(a, MON_DATA_SPATK2);
+ sum->spdef = GetMonData(a, MON_DATA_SPDEF2);
+ sum->speed = GetMonData(a, MON_DATA_SPEED2);
+ }
+ break;
+ case 3:
+ GetMonData(a, MON_DATA_OT_NAME, &sum->OTName);
+ ConvertInternationalString((u8*)&sum->OTName, GetMonData(a, MON_DATA_LANGUAGE));
+ sum->unk7 = sub_81B205C(a);
+ sum->OTGender = GetMonData(a, MON_DATA_OT_GENDER);
+ sum->OTID = GetMonData(a, MON_DATA_OT_ID);
+ sum->metLocation = GetMonData(a, MON_DATA_MET_LOCATION);
+ sum->metLevel = GetMonData(a, MON_DATA_MET_LEVEL);
+ sum->metGame = GetMonData(a, MON_DATA_MET_GAME);
+ sum->friendship = GetMonData(a, MON_DATA_FRIENDSHIP);
+ break;
+ default:
+ sum->ribbons = GetMonData(a, MON_DATA_RIBBON_COUNT);
+ return TRUE;
+ }
+ gUnknown_0203CF1C->unk40F0++;
+ return FALSE;
+}
+
+void sub_81C0348(void)
+{
+ if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3)
+ {
+ sub_81C1DA4(0, 255);
+ sub_81C1EFC(0, 255, 0);
+ }
+ else
+ {
+ sub_81C240C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]);
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0);
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0);
+ SetBgTilemapBuffer(1, &gUnknown_0203CF1C->unkTilemap3);
+ SetBgTilemapBuffer(2, &gUnknown_0203CF1C->unkTilemap2);
+ ChangeBgX(2, 0x10000, 1);
+ ClearWindowTilemap(0x13);
+ ClearWindowTilemap(0xD);
+ }
+ if (gUnknown_0203CF1C->summary.unk7 == 0)
+ {
+ sub_81C2074(0, 0xFF);
+ }
+ else
+ {
+ if (gUnknown_0203CF1C->unk40C0 != 2 && gUnknown_0203CF1C->unk40C0 != 3)
+ PutWindowTilemap(0xD);
+ }
+ sub_81C2524();
+ sub_81C2228(&gUnknown_0203CF1C->currentMon);
+}
+
+void sub_81C0434()
+{
+ FreeAllWindowBuffers();
+ Free(gUnknown_0203CF1C);
+}
+
+void sub_81C044C(u8 taskId)
+{
+ BeginNormalPaletteFade(-1, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_81C0484;
+}
+
+void sub_81C0484(u8 taskId)
+{
+ if (sub_81221EC() != 1 && !gPaletteFade.active)
+ {
+ SetMainCallback2(gUnknown_0203CF1C->unk4);
+ gUnknown_0203CF20 = gUnknown_0203CF1C->unk40BE;
+ sub_81C4898();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ StopCryAndClearCrySongs();
+ m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100);
+ if (gMonSpritesGfxPtr == 0)
+ sub_806F47C(0);
+ sub_81C0434();
+ DestroyTask(taskId);
+ }
+}
+
+void sub_81C0510(u8 taskId)
+{
+ if (sub_81221EC() != 1 && !gPaletteFade.active)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ sub_81C0604(taskId, -1);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ sub_81C0604(taskId, 1);
+ }
+ else if ((gMain.newKeys & DPAD_LEFT) || GetLRKeysState() == 1)
+ {
+ sub_81C0A8C(taskId, -1);
+ }
+ else if ((gMain.newKeys & DPAD_RIGHT) || GetLRKeysState() == 2)
+ {
+ sub_81C0A8C(taskId, 1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (gUnknown_0203CF1C->unk40C0 != 1)
+ {
+ if (gUnknown_0203CF1C->unk40C0 == 0)
+ {
+ sub_81C48F0();
+ PlaySE(SE_SELECT);
+ sub_81C044C(taskId);
+ }
+ else
+ {
+ PlaySE(SE_SELECT);
+ sub_81C0E48(taskId);
+ }
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ sub_81C48F0();
+ PlaySE(SE_SELECT);
+ sub_81C044C(taskId);
+ }
+ }
+}
+
+void sub_81C0604(u8 taskId, s8 a)
+{
+ s8 r4_2;
+
+ if (gUnknown_0203CF1C->unk40C3 == 0)
+ {
+ if (gUnknown_0203CF1C->unk40BD == 1)
+ {
+ if (gUnknown_0203CF1C->unk40C0 != 0)
+ {
+ if (a == 1)
+ a = 0;
+ else
+ a = 2;
+ }
+ else
+ {
+ if (a == 1)
+ a = 1;
+ else
+ a = 3;
+ }
+ r4_2 = sub_80D214C(gUnknown_0203CF1C->unk0, gUnknown_0203CF1C->unk40BE, gUnknown_0203CF1C->unk40BF, a);
+ }
+ else if (sub_81B1250() == 1)
+ {
+ r4_2 = sub_81C09B4(a);
+ }
+ else
+ {
+ r4_2 = sub_81C08F8(a);
+ }
+
+ if (r4_2 != -1)
+ {
+ PlaySE(SE_SELECT);
+ if (gUnknown_0203CF1C->summary.unk7 != 0)
+ {
+ sub_81C4204(2, 1);
+ ClearWindowTilemap(0xD);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_81C2074(0, 2);
+ }
+ gUnknown_0203CF1C->unk40BE = r4_2;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_81C0704;
+ }
+ }
+}
+
+void sub_81C0704(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ StopCryAndClearCrySongs();
+ break;
+ case 1:
+ sub_81C4898();
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D3]);
+ break;
+ case 2:
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203CF1C->unk40D4]);
+ break;
+ case 3:
+ sub_81C0098(&gUnknown_0203CF1C->currentMon);
+ gUnknown_0203CF1C->unk40F0 = 0;
+ break;
+ case 4:
+ if (sub_81C00F0(&gUnknown_0203CF1C->currentMon) == FALSE)
+ return;
+ break;
+ case 5:
+ sub_81C49E0(&gUnknown_0203CF1C->currentMon);
+ break;
+ case 6:
+ sub_81C4A08(&gUnknown_0203CF1C->currentMon);
+ break;
+ case 7:
+ if (gUnknown_0203CF1C->summary.unk7)
+ sub_81C2074(10, -2);
+ sub_81C2228(&gUnknown_0203CF1C->currentMon);
+ data[1] = 0;
+ break;
+ case 8:
+ gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]);
+ if (gUnknown_0203CF1C->unk40D3 == 0xFF)
+ return;
+ gSprites[gUnknown_0203CF1C->unk40D3].data2 = 1;
+ sub_81C0E24();
+ data[1] = 0;
+ break;
+ case 9:
+ sub_81C4280();
+ break;
+ case 10:
+ sub_81C25E8();
+ break;
+ case 11:
+ sub_81C2D9C(gUnknown_0203CF1C->unk40C0);
+ sub_81C2524();
+ break;
+ case 12:
+ gSprites[gUnknown_0203CF1C->unk40D3].data2 = 0;
+ break;
+ default:
+ if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0)
+ {
+ data[0] = 0;
+ gTasks[taskId].func = sub_81C0510;
+ }
+ return;
+ }
+ data[0]++;
+}
+
+s8 sub_81C08F8(s8 a)
+{
+ struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon;
+
+ if (gUnknown_0203CF1C->unk40C0 == 0)
+ {
+ if (a == -1 && gUnknown_0203CF1C->unk40BE == 0)
+ return -1;
+ if (a == 1 && gUnknown_0203CF1C->unk40BE >= gUnknown_0203CF1C->unk40BF)
+ return -1;
+ return gUnknown_0203CF1C->unk40BE + a;
+ }
+ else
+ {
+ s8 index = gUnknown_0203CF1C->unk40BE;
+
+ do
+ {
+ index += a;
+ if (index < 0 || index > gUnknown_0203CF1C->unk40BF)
+ return -1;
+ } while (GetMonData(&mon[index], MON_DATA_IS_EGG) != 0);
+ return index;
+ }
+}
+
+s8 sub_81C09B4(s8 a)
+{
+ struct Pokemon *mon = gUnknown_0203CF1C->unk0->mon;
+ s8 r5 = 0;
+ u8 i;
+
+ for (i = 0; i < 6; i++)
+ {
+ if (gUnknown_0861CC1C[i] == gUnknown_0203CF1C->unk40BE)
+ {
+ r5 = i;
+ break;
+ }
+ }
+
+ while (1)
+ {
+ int b;
+ s8* c = &gUnknown_0861CC1C[0];
+
+ r5 += a;
+ if (r5 < 0 || r5 >= 6)
+ return -1;
+ b = c[r5];
+ if (sub_81C0A50(&mon[b]) == TRUE)
+ return b;
+ }
+}
+
+bool8 sub_81C0A50(struct Pokemon* mon)
+{
+ if (GetMonData(mon, MON_DATA_SPECIES) == 0)
+ return FALSE;
+ else if (gUnknown_0203CF1C->unk40BE != 0 || GetMonData(mon, MON_DATA_IS_EGG) == 0)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_81C0A8C(u8 taskId, s8 b)
+{
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ s16 *data = gTasks[taskId].data;
+
+ if (summary->isEgg)
+ return;
+ if (b == -1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C1)
+ return;
+ if (b == 1 && gUnknown_0203CF1C->unk40C0 == gUnknown_0203CF1C->unk40C2)
+ return;
+ PlaySE(SE_SELECT);
+ sub_81C2C38(gUnknown_0203CF1C->unk40C0);
+ gUnknown_0203CF1C->unk40C0 += b;
+ data[0] = 0;
+ if (b == 1)
+ SetTaskFuncWithFollowupFunc(taskId, sub_81C0B8C, gTasks[taskId].func);
+ else
+ SetTaskFuncWithFollowupFunc(taskId, sub_81C0CC4, gTasks[taskId].func);
+ sub_81C2DE4(gUnknown_0203CF1C->unk40C0);
+ sub_81C424C();
+}
+
+void sub_81C0B8C(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (data[0] == 0)
+ {
+ if (gUnknown_0203CF1C->unk40C9 == 0)
+ {
+ data[1] = 1;
+ SetBgAttribute(1, 7, 1);
+ SetBgAttribute(2, 7, 2);
+ schedule_bg_copy_tilemap_to_vram(1);
+ }
+ else
+ {
+ data[1] = 2;
+ SetBgAttribute(2, 7, 1);
+ SetBgAttribute(1, 7, 2);
+ schedule_bg_copy_tilemap_to_vram(2);
+ }
+ ChangeBgX(data[1], 0, 0);
+ SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xBC));
+ ShowBg(1);
+ ShowBg(2);
+ }
+ ChangeBgX(data[1], 0x2000, 1);
+ data[0] += 32;
+ if (data[0] > 0xFF)
+ gTasks[taskId].func = sub_81C0C68;
+}
+
+void sub_81C0C68(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ gUnknown_0203CF1C->unk40C9 ^= 1;
+ data[1] = 0;
+ data[0] = 0;
+ sub_81C1BA0();
+ sub_81C2AFC(gUnknown_0203CF1C->unk40C0);
+ sub_81C4280();
+ sub_81C0E24();
+ SwitchTaskToFollowupFunc(taskId);
+}
+
+void sub_81C0CC4(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (data[0] == 0)
+ {
+ if (gUnknown_0203CF1C->unk40C9 == 0)
+ data[1] = 2;
+ else
+ data[1] = 1;
+ ChangeBgX(data[1], 0x10000, 0);
+ }
+ ChangeBgX(data[1], 0x2000, 2);
+ data[0] += 32;
+ if (data[0] > 0xFF)
+ gTasks[taskId].func = sub_81C0D44;
+}
+
+void sub_81C0D44(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ if (gUnknown_0203CF1C->unk40C9 == 0)
+ {
+ SetBgAttribute(1, 7, 1);
+ SetBgAttribute(2, 7, 2);
+ schedule_bg_copy_tilemap_to_vram(2);
+ }
+ else
+ {
+ SetBgAttribute(2, 7, 1);
+ SetBgAttribute(1, 7, 2);
+ schedule_bg_copy_tilemap_to_vram(1);
+ }
+ if (gUnknown_0203CF1C->unk40C0 > 1)
+ {
+ SetBgTilemapBuffer(data[1], (u8*)gUnknown_0203CF1C + ((gUnknown_0203CF1C->unk40C0 << 12) + 0xFFFFF0BC));
+ ChangeBgX(data[1], 0x10000, 0);
+ }
+ ShowBg(1);
+ ShowBg(2);
+ gUnknown_0203CF1C->unk40C9 ^= 1;
+ data[1] = 0;
+ data[0] = 0;
+ sub_81C1BA0();
+ sub_81C2AFC(gUnknown_0203CF1C->unk40C0);
+ sub_81C4280();
+ sub_81C0E24();
+ SwitchTaskToFollowupFunc(taskId);
+}
+
+void sub_81C0E24()
+{
+ if (gUnknown_0203CF1C->unk40C0 == 1)
+ sub_81C22CC(&gUnknown_0203CF1C->currentMon);
+}
+
+void sub_81C0E48(u8 taskId)
+{
+ u16 move;
+ gUnknown_0203CF1C->unk40C6 = 0;
+ move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ ClearWindowTilemap(0x13);
+ if (gSprites[gUnknown_0203CF1C->unk40D5].invisible == 0)
+ ClearWindowTilemap(0xD);
+ sub_81C1DA4(9, -3);
+ sub_81C1EFC(9, -3, move);
+ if (gUnknown_0203CF1C->unk40C8 == 0)
+ {
+ ClearWindowTilemap(5);
+ PutWindowTilemap(6);
+ }
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 0);
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 0);
+ sub_81C3E9C(move);
+ sub_81C3F44();
+ sub_81C44F0();
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ sub_81C4AF8(8);
+ gTasks[taskId].func = sub_81C0F44;
+}
+
+void sub_81C0F44(u8 taskId)
+{
+ u8 id = taskId;
+ s16 *data = gTasks[taskId].data;
+
+ if (sub_81221EC() != 1)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ data[0] = 4;
+ sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ data[0] = 4;
+ sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (gUnknown_0203CF1C->unk40C8 == 1
+ || (gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ {
+ PlaySE(SE_SELECT);
+ sub_81C11F4(taskId);
+ }
+ else if (sub_81C1040() == TRUE)
+ {
+ PlaySE(SE_SELECT);
+ sub_81C129C(taskId);
+ }
+ else
+ {
+ PlaySE(SE_HAZURE);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_81C11F4(id);
+ }
+ }
+}
+
+bool8 sub_81C1040(void)
+{
+ u8 i;
+ for (i = 1; i < 4; i++)
+ {
+ if (gUnknown_0203CF1C->summary.moves[i] != 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void sub_81C1070(s16 *a, s8 b, u8 *c)
+{
+ s8 i;
+ s8 moveIndex;
+ u16 move;
+
+ PlaySE(SE_SELECT);
+ moveIndex = *c;
+ for (i = 0; i < 4; i++)
+ {
+ moveIndex += b;
+ if (moveIndex > a[0])
+ moveIndex = 0;
+ else if (moveIndex < 0)
+ moveIndex = a[0];
+ if (moveIndex == 4)
+ {
+ move = gUnknown_0203CF1C->unk40C4;
+ break;
+ }
+ move = gUnknown_0203CF1C->summary.moves[moveIndex];
+ if (move != 0)
+ break;
+ }
+ sub_81C240C(move);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ sub_81C3E9C(move);
+ if ((*c == 4 && gUnknown_0203CF1C->unk40C4 == 0) || a[1] == 1)
+ {
+ ClearWindowTilemap(19);
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ ClearWindowTilemap(13);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_81C1DA4(9, -3);
+ sub_81C1EFC(9, -3, move);
+ }
+ if (*c != 4 && moveIndex == 4 && gUnknown_0203CF1C->unk40C4 == 0)
+ {
+ ClearWindowTilemap(14);
+ ClearWindowTilemap(15);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_81C1DA4(0, 3);
+ sub_81C1EFC(0, 3, 0);
+ }
+ *c = moveIndex;
+ if (c == &gUnknown_0203CF1C->unk40C6)
+ sub_81C4D18(8);
+ else
+ sub_81C4D18(18);
+}
+
+void sub_81C11F4(u8 taskId)
+{
+ sub_81C4C60(8);
+ ClearWindowTilemap(6);
+ PutWindowTilemap(5);
+ sub_81C3E9C(0);
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap2[0], 3, 1);
+ sub_81C2194(&gUnknown_0203CF1C->unkTilemap3[0], 1, 1);
+ sub_81C4064();
+ if (gUnknown_0203CF1C->unk40C6 != 4)
+ {
+ ClearWindowTilemap(14);
+ ClearWindowTilemap(15);
+ sub_81C1DA4(0, 3);
+ sub_81C1EFC(0, 3, 0);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ gTasks[taskId].func = sub_81C0510;
+}
+
+void sub_81C129C(u8 taskId)
+{
+ gUnknown_0203CF1C->unk40C7 = gUnknown_0203CF1C->unk40C6;
+ sub_81C4C84(1);
+ sub_81C4AF8(18);
+ gTasks[taskId].func = sub_81C12E4;
+}
+
+void sub_81C12E4(u8 taskId)
+{
+ u8 a = taskId;
+ s16* data = gTasks[taskId].data;
+ if (sub_81221EC() != 1)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ data[0] = 3;
+ sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C7);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ data[0] = 3;
+ sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C7);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (gUnknown_0203CF1C->unk40C6 == gUnknown_0203CF1C->unk40C7)
+ {
+ sub_81C13B0(taskId, 0);
+ }
+ else
+ sub_81C13B0(taskId, 1);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ sub_81C13B0(a, 0);
+ }
+}
+
+void sub_81C13B0(u8 taskId, u8 b)
+{
+ u16 move;
+ PlaySE(SE_SELECT);
+ sub_81C4C84(0);
+ sub_81C4C60(18);
+ if (b == 1)
+ {
+ if (gUnknown_0203CF1C->unk40BD == 0)
+ {
+ struct Pokemon *why = gUnknown_0203CF1C->unk0->mon;
+ sub_81C14BC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
+ }
+ else
+ {
+ struct BoxPokemon *why = gUnknown_0203CF1C->unk0->boxMon;
+ sub_81C15EC(&why[gUnknown_0203CF1C->unk40BE], gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
+ }
+ sub_81C0098(&gUnknown_0203CF1C->currentMon);
+ sub_81C40A0(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
+ sub_81C4568(gUnknown_0203CF1C->unk40C6, gUnknown_0203CF1C->unk40C7);
+ gUnknown_0203CF1C->unk40C6 = gUnknown_0203CF1C->unk40C7;
+ }
+ move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ sub_81C3E9C(move);
+ sub_81C240C(move);
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+ gTasks[taskId].func = sub_81C0F44;
+}
+
+
+#ifdef NONMATCHING
+void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
+{
+ u16 localMoveTo;
+ u16 localMoveFrom;
+ u8 localPpTo;
+ u8 localPpFrom;
+ u8 localPpBonuses;
+ u16* moveFromPtr;
+ u16* moveToPtr;
+ u8* ppFromPtr;
+ u8* ppToPtr;
+ u8* ppBonusesPtr;
+
+ moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId];
+ localMoveFrom = *moveFromPtr;
+
+ moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId];
+ localMoveTo = *moveToPtr;
+
+ ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId];
+ localPpFrom = *ppFromPtr;
+
+ ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId];
+ localPpTo = *ppToPtr;
+
+ ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses;
+ localPpBonuses = *ppBonusesPtr;
+
+{
+ u8 bitsFrom, bitsTo;
+
+ bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1);
+ bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1);
+
+
+ localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]);
+ localPpBonuses &= ~(gUnknown_08329D22[swappingToId]);
+
+ localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1)));
+}
+
+ SetMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo);
+ SetMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom);
+
+ SetMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo);
+ SetMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom);
+
+ SetMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses);
+
+ *moveFromPtr = localMoveTo;
+ *moveToPtr = localMoveFrom;
+
+ *ppFromPtr = localPpTo;
+ *ppToPtr = localPpFrom;
+
+ *ppBonusesPtr = localPpBonuses;
+}
+#else
+__attribute__((naked))
+void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
+{
+ 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, 0x28\n\
+ adds r7, r0, 0\n\
+ adds r4, r1, 0\n\
+ adds r6, r2, 0\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ lsls r6, 24\n\
+ lsrs r6, 24\n\
+ ldr r0, =gUnknown_0203CF1C\n\
+ ldr r2, [r0]\n\
+ lsls r0, r4, 1\n\
+ mov r10, r0\n\
+ adds r1, r2, 0\n\
+ adds r1, 0x84\n\
+ adds r0, r1, r0\n\
+ str r0, [sp, 0x8]\n\
+ ldrh r0, [r0]\n\
+ mov r3, sp\n\
+ adds r3, 0x2\n\
+ str r3, [sp, 0x1C]\n\
+ strh r0, [r3]\n\
+ lsls r0, r6, 1\n\
+ mov r9, r0\n\
+ add r1, r9\n\
+ str r1, [sp, 0xC]\n\
+ ldrh r1, [r1]\n\
+ mov r0, sp\n\
+ strh r1, [r0]\n\
+ adds r1, r2, 0\n\
+ adds r1, 0x8C\n\
+ adds r3, r1, r4\n\
+ str r3, [sp, 0x10]\n\
+ ldrb r0, [r3]\n\
+ mov r3, sp\n\
+ adds r3, 0x5\n\
+ str r3, [sp, 0x24]\n\
+ strb r0, [r3]\n\
+ adds r1, r6\n\
+ str r1, [sp, 0x14]\n\
+ ldrb r0, [r1]\n\
+ mov r1, sp\n\
+ adds r1, 0x4\n\
+ str r1, [sp, 0x20]\n\
+ strb r0, [r1]\n\
+ adds r2, 0xA4\n\
+ str r2, [sp, 0x18]\n\
+ ldrb r0, [r2]\n\
+ mov r5, sp\n\
+ adds r5, 0x6\n\
+ strb r0, [r5]\n\
+ ldr r1, =gUnknown_08329D22\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ mov r8, r0\n\
+ ldrb r0, [r5]\n\
+ adds r2, r0, 0\n\
+ mov r3, r8\n\
+ ands r2, r3\n\
+ mov r3, r10\n\
+ asrs r2, r3\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ adds r1, r6, r1\n\
+ ldrb r1, [r1]\n\
+ mov r12, r1\n\
+ adds r1, r0, 0\n\
+ mov r3, r12\n\
+ ands r1, r3\n\
+ mov r3, r9\n\
+ asrs r1, r3\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r3, r8\n\
+ bics r0, r3\n\
+ strb r0, [r5]\n\
+ ldrb r0, [r5]\n\
+ mov r3, r12\n\
+ bics r0, r3\n\
+ strb r0, [r5]\n\
+ mov r0, r9\n\
+ lsls r2, r0\n\
+ mov r3, r10\n\
+ lsls r1, r3\n\
+ adds r2, r1\n\
+ ldrb r0, [r5]\n\
+ orrs r0, r2\n\
+ strb r0, [r5]\n\
+ adds r1, r4, 0\n\
+ adds r1, 0xD\n\
+ adds r0, r7, 0\n\
+ mov r2, sp\n\
+ bl SetMonData\n\
+ adds r1, r6, 0\n\
+ adds r1, 0xD\n\
+ adds r0, r7, 0\n\
+ ldr r2, [sp, 0x1C]\n\
+ bl SetMonData\n\
+ adds r4, 0x11\n\
+ adds r0, r7, 0\n\
+ adds r1, r4, 0\n\
+ ldr r2, [sp, 0x20]\n\
+ bl SetMonData\n\
+ adds r6, 0x11\n\
+ adds r0, r7, 0\n\
+ adds r1, r6, 0\n\
+ ldr r2, [sp, 0x24]\n\
+ bl SetMonData\n\
+ adds r0, r7, 0\n\
+ movs r1, 0x15\n\
+ adds r2, r5, 0\n\
+ bl SetMonData\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ ldr r1, [sp, 0x8]\n\
+ strh r0, [r1]\n\
+ ldr r3, [sp, 0x1C]\n\
+ ldrh r0, [r3]\n\
+ ldr r1, [sp, 0xC]\n\
+ strh r0, [r1]\n\
+ ldr r3, [sp, 0x20]\n\
+ ldrb r0, [r3]\n\
+ ldr r1, [sp, 0x10]\n\
+ strb r0, [r1]\n\
+ ldr r3, [sp, 0x24]\n\
+ ldrb r0, [r3]\n\
+ ldr r1, [sp, 0x14]\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r5]\n\
+ ldr r3, [sp, 0x18]\n\
+ strb r0, [r3]\n\
+ add sp, 0x28\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
+{
+ u16 localMoveTo;
+ u16 localMoveFrom;
+ u8 localPpTo;
+ u8 localPpFrom;
+ u8 localPpBonuses;
+ u16* moveFromPtr;
+ u16* moveToPtr;
+ u8* ppFromPtr;
+ u8* ppToPtr;
+ u8* ppBonusesPtr;
+
+ moveFromPtr = &gUnknown_0203CF1C->summary.moves[swappingFromId];
+ localMoveFrom = *moveFromPtr;
+
+ moveToPtr = &gUnknown_0203CF1C->summary.moves[swappingToId];
+ localMoveTo = *moveToPtr;
+
+ ppFromPtr = &gUnknown_0203CF1C->summary.pp[swappingFromId];
+ localPpFrom = *ppFromPtr;
+
+ ppToPtr = &gUnknown_0203CF1C->summary.pp[swappingToId];
+ localPpTo = *ppToPtr;
+
+ ppBonusesPtr = &gUnknown_0203CF1C->summary.ppBonuses;
+ localPpBonuses = *ppBonusesPtr;
+
+{
+ u8 bitsFrom, bitsTo;
+
+ bitsFrom = (localPpBonuses & gUnknown_08329D22[swappingFromId]) >> (swappingFromId << 1);
+ bitsTo = (localPpBonuses & gUnknown_08329D22[swappingToId]) >> (swappingToId << 1);
+
+
+ localPpBonuses &= ~(gUnknown_08329D22[swappingFromId]);
+ localPpBonuses &= ~(gUnknown_08329D22[swappingToId]);
+
+ localPpBonuses |= ((bitsFrom << (swappingToId << 1)) + (bitsTo << (swappingToId << 1)));
+}
+
+ SetBoxMonData(mon, swappingFromId + MON_DATA_MOVE1, &localMoveTo);
+ SetBoxMonData(mon, swappingToId + MON_DATA_MOVE1, &localMoveFrom);
+
+ SetBoxMonData(mon, swappingFromId + MON_DATA_PP1, &localPpTo);
+ SetBoxMonData(mon, swappingToId + MON_DATA_PP1, &localPpFrom);
+
+ SetBoxMonData(mon, MON_DATA_PP_BONUSES, &localPpBonuses);
+
+ *moveFromPtr = localMoveTo;
+ *moveToPtr = localMoveFrom;
+
+ *ppFromPtr = localPpTo;
+ *ppToPtr = localPpFrom;
+
+ *ppBonusesPtr = localPpBonuses;
+}
+#else
+__attribute__((naked))
+void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
+{
+ 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, 0x28\n\
+ adds r7, r0, 0\n\
+ adds r4, r1, 0\n\
+ adds r6, r2, 0\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ lsls r6, 24\n\
+ lsrs r6, 24\n\
+ ldr r0, =gUnknown_0203CF1C\n\
+ ldr r2, [r0]\n\
+ lsls r0, r4, 1\n\
+ mov r10, r0\n\
+ adds r1, r2, 0\n\
+ adds r1, 0x84\n\
+ adds r0, r1, r0\n\
+ str r0, [sp, 0x8]\n\
+ ldrh r0, [r0]\n\
+ mov r3, sp\n\
+ adds r3, 0x2\n\
+ str r3, [sp, 0x1C]\n\
+ strh r0, [r3]\n\
+ lsls r0, r6, 1\n\
+ mov r9, r0\n\
+ add r1, r9\n\
+ str r1, [sp, 0xC]\n\
+ ldrh r1, [r1]\n\
+ mov r0, sp\n\
+ strh r1, [r0]\n\
+ adds r1, r2, 0\n\
+ adds r1, 0x8C\n\
+ adds r3, r1, r4\n\
+ str r3, [sp, 0x10]\n\
+ ldrb r0, [r3]\n\
+ mov r3, sp\n\
+ adds r3, 0x5\n\
+ str r3, [sp, 0x24]\n\
+ strb r0, [r3]\n\
+ adds r1, r6\n\
+ str r1, [sp, 0x14]\n\
+ ldrb r0, [r1]\n\
+ mov r1, sp\n\
+ adds r1, 0x4\n\
+ str r1, [sp, 0x20]\n\
+ strb r0, [r1]\n\
+ adds r2, 0xA4\n\
+ str r2, [sp, 0x18]\n\
+ ldrb r0, [r2]\n\
+ mov r5, sp\n\
+ adds r5, 0x6\n\
+ strb r0, [r5]\n\
+ ldr r1, =gUnknown_08329D22\n\
+ adds r0, r4, r1\n\
+ ldrb r0, [r0]\n\
+ mov r8, r0\n\
+ ldrb r0, [r5]\n\
+ adds r2, r0, 0\n\
+ mov r3, r8\n\
+ ands r2, r3\n\
+ mov r3, r10\n\
+ asrs r2, r3\n\
+ lsls r2, 24\n\
+ lsrs r2, 24\n\
+ adds r1, r6, r1\n\
+ ldrb r1, [r1]\n\
+ mov r12, r1\n\
+ adds r1, r0, 0\n\
+ mov r3, r12\n\
+ ands r1, r3\n\
+ mov r3, r9\n\
+ asrs r1, r3\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r3, r8\n\
+ bics r0, r3\n\
+ strb r0, [r5]\n\
+ ldrb r0, [r5]\n\
+ mov r3, r12\n\
+ bics r0, r3\n\
+ strb r0, [r5]\n\
+ mov r0, r9\n\
+ lsls r2, r0\n\
+ mov r3, r10\n\
+ lsls r1, r3\n\
+ adds r2, r1\n\
+ ldrb r0, [r5]\n\
+ orrs r0, r2\n\
+ strb r0, [r5]\n\
+ adds r1, r4, 0\n\
+ adds r1, 0xD\n\
+ adds r0, r7, 0\n\
+ mov r2, sp\n\
+ bl SetBoxMonData\n\
+ adds r1, r6, 0\n\
+ adds r1, 0xD\n\
+ adds r0, r7, 0\n\
+ ldr r2, [sp, 0x1C]\n\
+ bl SetBoxMonData\n\
+ adds r4, 0x11\n\
+ adds r0, r7, 0\n\
+ adds r1, r4, 0\n\
+ ldr r2, [sp, 0x20]\n\
+ bl SetBoxMonData\n\
+ adds r6, 0x11\n\
+ adds r0, r7, 0\n\
+ adds r1, r6, 0\n\
+ ldr r2, [sp, 0x24]\n\
+ bl SetBoxMonData\n\
+ adds r0, r7, 0\n\
+ movs r1, 0x15\n\
+ adds r2, r5, 0\n\
+ bl SetBoxMonData\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ ldr r1, [sp, 0x8]\n\
+ strh r0, [r1]\n\
+ ldr r3, [sp, 0x1C]\n\
+ ldrh r0, [r3]\n\
+ ldr r1, [sp, 0xC]\n\
+ strh r0, [r1]\n\
+ ldr r3, [sp, 0x20]\n\
+ ldrb r0, [r3]\n\
+ ldr r1, [sp, 0x10]\n\
+ strb r0, [r1]\n\
+ ldr r3, [sp, 0x24]\n\
+ ldrb r0, [r3]\n\
+ ldr r1, [sp, 0x14]\n\
+ strb r0, [r1]\n\
+ ldrb r0, [r5]\n\
+ ldr r3, [sp, 0x18]\n\
+ strb r0, [r3]\n\
+ add sp, 0x28\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C171C(u8 taskId)
+{
+ sub_81C44F0();
+ sub_81C4AF8(8);
+ gTasks[taskId].func = sub_81C174C;
+}
+
+void sub_81C174C(u8 taskId)
+{
+ s16* data = gTasks[taskId].data;
+
+ if (sub_81221EC() != 1)
+ {
+ if (gPaletteFade.active != 1)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ data[0] = 4;
+ sub_81C1070(data, -1, &gUnknown_0203CF1C->unk40C6);
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ data[0] = 4;
+ sub_81C1070(data, 1, &gUnknown_0203CF1C->unk40C6);
+ }
+ else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
+ {
+ sub_81C0A8C(taskId, -1);
+ }
+ else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
+ {
+ sub_81C0A8C(taskId, 1);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ if (sub_81C18A8() == TRUE)
+ {
+ sub_81C48F0();
+ PlaySE(SE_SELECT);
+ gUnknown_0203CF21 = gUnknown_0203CF1C->unk40C6;
+ gSpecialVar_0x8005 = gUnknown_0203CF21;
+ sub_81C044C(taskId);
+ }
+ else
+ {
+ PlaySE(0x20);
+ sub_81C18F4(taskId);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ u32 var1;
+ sub_81C48F0();
+ PlaySE(SE_SELECT);
+ gUnknown_0203CF21 = 4;
+ gSpecialVar_0x8005 = 4;
+ sub_81C044C(taskId);
+ }
+ }
+ }
+}
+
+bool8 sub_81C18A8()
+{
+ if (gUnknown_0203CF1C->unk40C6 == 4 || gUnknown_0203CF1C->unk40C4 == 0 || sub_81B6D14(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]) != 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_81C18F4(u8 taskId)
+{
+ ClearWindowTilemap(14);
+ ClearWindowTilemap(15);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_81C1DA4(0, 3);
+ sub_81C1EFC(0, 3, 0);
+ sub_81C4154();
+ gTasks[taskId].func = sub_81C1940;
+}
+
+void sub_81C1940(u8 taskId)
+{
+ s16* data = gTasks[taskId].data;
+ u16 move;
+ if (FuncIsActiveTask(sub_81C1E20) != 1)
+ {
+ if (gMain.newKeys & DPAD_UP)
+ {
+ data[1] = 1;
+ data[0] = 4;
+ sub_81C1070(&data[0], -1, &gUnknown_0203CF1C->unk40C6);
+ data[1] = 0;
+ gTasks[taskId].func = sub_81C174C;
+ }
+ else if (gMain.newKeys & DPAD_DOWN)
+ {
+ data[1] = 1;
+ data[0] = 4;
+ sub_81C1070(&data[0], 1, &gUnknown_0203CF1C->unk40C6);
+ data[1] = 0;
+ gTasks[taskId].func = sub_81C174C;
+ }
+ else if (gMain.newKeys & DPAD_LEFT || GetLRKeysState() == 1)
+ {
+ if (gUnknown_0203CF1C->unk40C0 != 2)
+ {
+
+ ClearWindowTilemap(19);
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ ClearWindowTilemap(13);
+ move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ gTasks[taskId].func = sub_81C174C;
+ sub_81C0A8C(taskId, -1);
+ sub_81C1DA4(9, -2);
+ sub_81C1EFC(9, -2, move);
+ }
+ }
+ else if (gMain.newKeys & DPAD_RIGHT || GetLRKeysState() == 2)
+ {
+ if (gUnknown_0203CF1C->unk40C0 != 3)
+ {
+ ClearWindowTilemap(19);
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ ClearWindowTilemap(13);
+ move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ gTasks[taskId].func = sub_81C174C;
+ sub_81C0A8C(taskId, 1);
+ sub_81C1DA4(9, -2);
+ sub_81C1EFC(9, -2, move);
+ }
+ }
+ else if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ ClearWindowTilemap(19);
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ ClearWindowTilemap(13);
+ move = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ sub_81C3E9C(move);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_81C1DA4(9, -3);
+ sub_81C1EFC(9, -3, move);
+ gTasks[taskId].func = sub_81C174C;
+ }
+ }
+}
+
+u8 sub_81C1B94()
+{
+ return gUnknown_0203CF21;
+}
+
+void sub_81C1BA0()
+{
+ u16 *alloced = Alloc(32);
+ u8 i;
+ for (i = 0; i < 4; i++)
+ {
+ u8 j = i << 1;
+ if (i < gUnknown_0203CF1C->unk40C1)
+ {
+ alloced[j+0] = 0x40;
+ alloced[j+1] = 0x40;
+ alloced[j+8] = 0x50;
+ alloced[j+9] = 0x50;
+ }
+ else if (i > gUnknown_0203CF1C->unk40C2)
+ {
+ alloced[j+0] = 0x4A;
+ alloced[j+1] = 0x4A;
+ alloced[j+8] = 0x5A;
+ alloced[j+9] = 0x5A;
+ }
+ else if (i < gUnknown_0203CF1C->unk40C0)
+ {
+ alloced[j+0] = 0x46;
+ alloced[j+1] = 0x47;
+ alloced[j+8] = 0x56;
+ alloced[j+9] = 0x57;
+ }
+ else if (i == gUnknown_0203CF1C->unk40C0)
+ {
+ if (i != gUnknown_0203CF1C->unk40C2)
+ {
+ alloced[j+0] = 0x41;
+ alloced[j+1] = 0x42;
+ alloced[j+8] = 0x51;
+ alloced[j+9] = 0x52;
+ }
+ else
+ {
+ alloced[j+0] = 0x4B;
+ alloced[j+1] = 0x4C;
+ alloced[j+8] = 0x5B;
+ alloced[j+9] = 0x5C;
+ }
+ }
+ else if (i != gUnknown_0203CF1C->unk40C2)
+ {
+ alloced[j+0] = 0x43;
+ alloced[j+1] = 0x44;
+ alloced[j+8] = 0x53;
+ alloced[j+9] = 0x54;
+ }
+ else
+ {
+ alloced[j+0] = 0x48;
+ alloced[j+1] = 0x49;
+ alloced[j+8] = 0x58;
+ alloced[j+9] = 0x59;
+ }
+ }
+ CopyToBgTilemapBufferRect_ChangePalette(3, alloced, 11, 0, 8, 2, 16);
+ schedule_bg_copy_tilemap_to_vram(3);
+ Free(alloced);
+}
+
+struct UnkStruct_61CC04
+{
+ u8 *ptr;
+ u8 field_4;
+ u8 field_5;
+ u8 field_6;
+ u8 field_7;
+ u8 field_8;
+ u8 field_9;
+};
+
+#ifdef NONMATCHING
+void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
+{
+ u8 *alloced = Alloc(a->field_6 * (a->field_7 << 1));
+ CpuFill16(a->field_4, alloced, a->field_7*a->field_6);
+ if (a->field_6 != c)
+ {
+ if (!d)
+ {
+ for (d;d < a->field_7; d++)
+ {
+ CpuCopy16(&a->ptr + ((c + a->field_6*d)), alloced + ((a->field_6*d) << 1), (a->field_6 - c) * 2);
+ }
+ }
+ else
+ {
+ for (d = 0;d < a->field_7; d++)
+ {
+ CpuCopy16(&a->ptr + (a->field_6*d), alloced + ((c + a->field_6*d) << 1), (a->field_6 - c) * 2);
+ }
+ }
+ }
+ d = 0;
+ while (d < a->field_7)
+ {
+ CpuCopy16(alloced + ((a->field_6*d) << 1), b + ((((a->field_9 + d) << 5) + a->field_8) << 1), a->field_6 * 2);
+ d++;
+ }
+ Free(alloced);
+}
+#else
+__attribute__((naked))
+void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, 0x4\n\
+ adds r4, r0, 0\n\
+ mov r8, r1\n\
+ lsls r2, 24\n\
+ lsrs r6, r2, 24\n\
+ lsls r3, 24\n\
+ lsrs r5, r3, 24\n\
+ ldrb r1, [r4, 0x6]\n\
+ ldrb r0, [r4, 0x7]\n\
+ lsls r0, 1\n\
+ muls r0, r1\n\
+ bl Alloc\n\
+ adds r7, r0, 0\n\
+ mov r1, sp\n\
+ ldrh r0, [r4, 0x4]\n\
+ strh r0, [r1]\n\
+ ldrb r1, [r4, 0x7]\n\
+ ldrb r0, [r4, 0x6]\n\
+ adds r2, r1, 0\n\
+ muls r2, r0\n\
+ movs r0, 0x80\n\
+ lsls r0, 17\n\
+ orrs r2, r0\n\
+ mov r0, sp\n\
+ adds r1, r7, 0\n\
+ bl CpuSet\n\
+ ldrb r0, [r4, 0x6]\n\
+ cmp r0, r6\n\
+ beq _081C1D60\n\
+ cmp r5, 0\n\
+ bne _081C1D30\n\
+ movs r5, 0\n\
+ ldrb r0, [r4, 0x7]\n\
+ cmp r5, r0\n\
+ bcs _081C1D60\n\
+_081C1D00:\n\
+ ldrb r2, [r4, 0x6]\n\
+ adds r1, r2, 0\n\
+ muls r1, r5\n\
+ adds r3, r6, r1\n\
+ lsls r3, 1\n\
+ ldr r0, [r4]\n\
+ adds r0, r3\n\
+ lsls r1, 1\n\
+ adds r1, r7, r1\n\
+ subs r2, r6\n\
+ ldr r3, =0x001fffff\n\
+ ands r2, r3\n\
+ bl CpuSet\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldrb r3, [r4, 0x7]\n\
+ cmp r5, r3\n\
+ bcc _081C1D00\n\
+ b _081C1D60\n\
+ .pool\n\
+_081C1D30:\n\
+ movs r5, 0\n\
+ ldrb r0, [r4, 0x7]\n\
+ cmp r5, r0\n\
+ bcs _081C1D60\n\
+_081C1D38:\n\
+ ldrb r2, [r4, 0x6]\n\
+ adds r1, r2, 0\n\
+ muls r1, r5\n\
+ lsls r3, r1, 1\n\
+ ldr r0, [r4]\n\
+ adds r0, r3\n\
+ adds r1, r6, r1\n\
+ lsls r1, 1\n\
+ adds r1, r7, r1\n\
+ subs r2, r6\n\
+ ldr r3, =0x001fffff\n\
+ ands r2, r3\n\
+ bl CpuSet\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ ldrb r3, [r4, 0x7]\n\
+ cmp r5, r3\n\
+ bcc _081C1D38\n\
+_081C1D60:\n\
+ movs r5, 0\n\
+ b _081C1D8A\n\
+ .pool\n\
+_081C1D68:\n\
+ ldrb r2, [r4, 0x6]\n\
+ adds r0, r2, 0\n\
+ muls r0, r5\n\
+ lsls r0, 1\n\
+ adds r0, r7, r0\n\
+ ldrb r1, [r4, 0x9]\n\
+ adds r1, r5\n\
+ lsls r1, 5\n\
+ ldrb r3, [r4, 0x8]\n\
+ adds r1, r3\n\
+ lsls r1, 1\n\
+ add r1, r8\n\
+ bl CpuSet\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+_081C1D8A:\n\
+ ldrb r0, [r4, 0x7]\n\
+ cmp r5, r0\n\
+ bcc _081C1D68\n\
+ adds r0, r7, 0\n\
+ bl Free\n\
+ add sp, 0x4\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C1DA4(u16 a, s16 b)
+{
+ if (b > gUnknown_0861CC04.field_6)
+ b = gUnknown_0861CC04.field_6;
+ if (b == 0 || b == gUnknown_0861CC04.field_6)
+ {
+ sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], b, 1);
+ }
+ else
+ {
+ u8 taskId = FindTaskIdByFunc(sub_81C1E20);
+ if (taskId == 0xFF)
+ {
+ taskId = CreateTask(sub_81C1E20, 8);
+ }
+ gTasks[taskId].data[0] = b;
+ gTasks[taskId].data[1] = a;
+ }
+}
+
+void sub_81C1E20(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[1] += data[0];
+ if (data[1] < 0)
+ {
+ data[1] = 0;
+ }
+ else if (data[1] > gUnknown_0861CC04.field_6)
+ {
+ data[1] = gUnknown_0861CC04.field_6;
+ }
+ sub_81C1CB0(&gUnknown_0861CC04, &gUnknown_0203CF1C->unkTilemap2[0], data[1], 1);
+ if (data[1] <= 0 || data[1] >= gUnknown_0861CC04.field_6)
+ {
+ if (data[0] < 0)
+ {
+ if (gUnknown_0203CF1C->unk40C0 == 2)
+ PutWindowTilemap(14);
+
+ }
+ else
+ {
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ PutWindowTilemap(13);
+ PutWindowTilemap(19);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ DestroyTask(taskId);
+ }
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+}
+
+void sub_81C1EFC(u16 a, s16 b, u16 move)
+{
+ if (b > gUnknown_0861CC10.field_6)
+ b = gUnknown_0861CC10.field_6;
+ if (b == 0 || b == gUnknown_0861CC10.field_6)
+ sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], b, 1);
+ else
+ {
+ u8 taskId = FindTaskIdByFunc(sub_81C1F80);
+ if (taskId == 0xFF)
+ taskId = CreateTask(sub_81C1F80, 8);
+ gTasks[taskId].data[0] = b;
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].data[2] = move;
+ }
+}
+
+void sub_81C1F80(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[1] += data[0];
+ if (data[1] < 0)
+ {
+ data[1] = 0;
+ }
+ else if (data[1] > gUnknown_0861CC10.field_6)
+ {
+ data[1] = gUnknown_0861CC10.field_6;
+ }
+ sub_81C1CB0(&gUnknown_0861CC10, &gUnknown_0203CF1C->unkTilemap3[0], data[1], 1);
+ if (data[1] <= 0 || data[1] >= gUnknown_0861CC10.field_6)
+ {
+ if (data[0] < 0)
+ {
+ if (gUnknown_0203CF1C->unk40C0 == 3 && FuncIsActiveTask(sub_81C0B8C) == 0)
+ PutWindowTilemap(15);
+ sub_81C240C(data[2]);
+ }
+ else
+ {
+ if (!gSprites[gUnknown_0203CF1C->unk40D5].invisible)
+ {
+ PutWindowTilemap(13);
+ }
+ PutWindowTilemap(19);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+ DestroyTask(taskId);
+ }
+ schedule_bg_copy_tilemap_to_vram(1);
+ schedule_bg_copy_tilemap_to_vram(2);
+}
+
+void sub_81C2074(u16 a, s16 b)
+{
+ if (b > gUnknown_0861CBEC.field_6)
+ b = gUnknown_0861CBEC.field_6;
+ if (b == 0 || b == gUnknown_0861CBEC.field_6)
+ {
+ sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], b, 0);
+ sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], b, 0);
+ }
+ else
+ {
+ u8 taskId = CreateTask(sub_81C20F0, 8);
+ gTasks[taskId].data[0] = b;
+ gTasks[taskId].data[1] = a;
+ }
+}
+
+void sub_81C20F0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ data[1] += data[0];
+ if (data[1] < 0)
+ data[1] = 0;
+ else if (data[1] > gUnknown_0861CBEC.field_6)
+ data[1] = gUnknown_0861CBEC.field_6;
+ sub_81C1CB0(&gUnknown_0861CBEC, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0);
+ sub_81C1CB0(&gUnknown_0861CBF8, &gUnknown_0203CF1C->unkTilemap0[0], data[1], 0);
+ schedule_bg_copy_tilemap_to_vram(3);
+ if (data[1] <= 0 || data[1] >= gUnknown_0861CBEC.field_6)
+ {
+ if (data[0] < 0)
+ {
+ sub_81C4A88();
+ PutWindowTilemap(13);
+ schedule_bg_copy_tilemap_to_vram(0);
+ }
+ DestroyTask(taskId);
+ }
+}
+
+// somebody send help this is a complete fucking mess
+#ifdef NONMATCHING
+void sub_81C2194(u16 *a, u16 b, u8 c)
+{
+ u16 i;
+ int var;
+ b *= 0x1000;
+ var = 0x56A;
+
+ if (c == 0)
+ {
+ for (i = 0; i < 20; i++)
+ {
+ a[(i + var) << 1] = gUnknown_08DC3CD4[i] + b;
+ a[((i + var) << 1) + 0x40] = gUnknown_08DC3CD4[i] + b;
+ a[((i + var) << 1) + 0x80] = gUnknown_08DC3CD4[i + 20] + b;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 20; i++)
+ {
+ a[(i + var)] = gUnknown_08DC3CD4[i + 20] + b;
+ a[((i + var)) + 0x40] = gUnknown_08DC3CD4[i + 40] + b;
+ a[((i + var)) + 0x80] = gUnknown_08DC3CD4[i + 40] + b;
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_81C2194(u16 *a, u16 b, u8 c)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ adds r6, r0, 0\n\
+ lsls r2, 24\n\
+ lsls r1, 28\n\
+ lsrs r4, r1, 16\n\
+ ldr r7, =0x0000056a\n\
+ cmp r2, 0\n\
+ bne _081C21E4\n\
+ movs r3, 0\n\
+ ldr r5, =gUnknown_08DC3CD4\n\
+_081C21A8:\n\
+ adds r2, r7, r3\n\
+ lsls r2, 1\n\
+ adds r2, r6\n\
+ lsls r0, r3, 1\n\
+ adds r0, r5\n\
+ ldrh r1, [r0]\n\
+ adds r1, r4, r1\n\
+ strh r1, [r2]\n\
+ adds r0, r2, 0\n\
+ adds r0, 0x40\n\
+ strh r1, [r0]\n\
+ adds r2, 0x80\n\
+ adds r0, r3, 0\n\
+ adds r0, 0x14\n\
+ lsls r0, 1\n\
+ adds r0, r5\n\
+ ldrh r0, [r0]\n\
+ adds r0, r4, r0\n\
+ strh r0, [r2]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x13\n\
+ bls _081C21A8\n\
+ b _081C221C\n\
+ .pool\n\
+_081C21E4:\n\
+ movs r3, 0\n\
+ ldr r5, =gUnknown_08DC3CD4\n\
+_081C21E8:\n\
+ adds r1, r7, r3\n\
+ lsls r1, 1\n\
+ adds r1, r6\n\
+ adds r0, r3, 0\n\
+ adds r0, 0x14\n\
+ lsls r0, 1\n\
+ adds r0, r5\n\
+ ldrh r0, [r0]\n\
+ adds r0, r4, r0\n\
+ strh r0, [r1]\n\
+ adds r2, r1, 0\n\
+ adds r2, 0x40\n\
+ adds r0, r3, 0\n\
+ adds r0, 0x28\n\
+ lsls r0, 1\n\
+ adds r0, r5\n\
+ ldrh r0, [r0]\n\
+ adds r0, r4, r0\n\
+ strh r0, [r2]\n\
+ adds r1, 0x80\n\
+ strh r0, [r1]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ cmp r3, 0x13\n\
+ bls _081C21E8\n\
+_081C221C:\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C2228(struct Pokemon *mon)
+{
+ if (!CheckPartyPokerus(mon, 0) && CheckPartyHasHadPokerus(mon, 0))
+ {
+ gUnknown_0203CF1C->unkTilemap0[0x223] = 0x2C;
+ gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x2C;
+ }
+ else
+ {
+ gUnknown_0203CF1C->unkTilemap0[0x223] = 0x81A;
+ gUnknown_0203CF1C->unkTilemap0_1[0x223] = 0x81A;
+ }
+ schedule_bg_copy_tilemap_to_vram(3);
+}
+
+void sub_81C228C(u8 a)
+{
+ if (a == 0)
+ sub_8199C30(3, 1, 4, 8, 8, 0);
+ else
+ sub_8199C30(3, 1, 4, 8, 8, 5);
+ schedule_bg_copy_tilemap_to_vram(3);
+}
+
+void sub_81C22CC(struct Pokemon *unused)
+{
+ s64 r6r7;
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ u16 *r9;
+ u8 i;
+
+ if (summary->level < MAX_MON_LEVEL)
+ {
+ u32 r1 = gExperienceTables[gBaseStats[summary->species].growthRate][summary->level + 1] - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level];
+ u32 r4 = summary->exp - gExperienceTables[gBaseStats[summary->species].growthRate][summary->level];
+
+ r6r7 = r4 * 64 / r1;
+ if (r6r7 == 0 && r4 != 0)
+ r6r7 = 1;
+ }
+ else
+ {
+ r6r7 = 0;
+ }
+
+ r9 = &gUnknown_0203CF1C->unkTilemap1_1[0x255];
+ for (i = 0; i < 8; i++)
+ {
+ if (r6r7 > 7)
+ r9[i] = 0x206A;
+ else
+ r9[i] = 0x2062 + (r6r7 % 8);
+ r6r7 -= 8;
+ if (r6r7 < 0)
+ r6r7 = 0;
+ }
+
+ if (GetBgTilemapBuffer(1) == gUnknown_0203CF1C->unkTilemap1)
+ schedule_bg_copy_tilemap_to_vram(1);
+ else
+ schedule_bg_copy_tilemap_to_vram(2);
+}
+
+void sub_81C240C(u16 move)
+{
+ u16* r5 = &gUnknown_0203CF1C->unkTilemap3_1[0];
+ u8 i;
+ u8 r4;
+ if (move != MOVE_NONE)
+ {
+ r4 = gContestEffects[gContestMoves[move].effect].appeal;
+ if (r4 != 0xFF)
+ r4 /= 10;
+ for (i = 0;i < 8; i++)
+ {
+ if (r4 != 0xFF && i < r4)
+ {
+ r5[((i>>2)*32)+(i&3)+0x1E6] = 0x103A;
+ }
+ else
+ r5[((i>>2)*32)+(i&3)+0x1E6] = 0x1039;
+ }
+ r4 = gContestEffects[gContestMoves[move].effect].jam;
+ if (r4 != 0xFF)
+ r4 /= 10;
+ for (i = 0;i < 8; i++)
+ {
+ if (r4 != 0xFF && i < r4)
+ {
+ r5[((i>>2)*32)+(i&3)+0x226] = 0x103C;
+ }
+ else
+ r5[((i>>2)*32)+(i&3)+0x226] = 0x103D;
+ }
+ }
+}
+
+void sub_81C2524()
+{
+ if (gUnknown_0203CF1C->summary.isEgg != 0)
+ ChangeBgX(3, 0x10000, 0);
+ else
+ ChangeBgX(3, 0, 0);
+}
+
+void sub_81C2554()
+{
+ u8 i;
+ InitWindows(&gUnknown_0861CC24);
+ DeactivateAllTextPrinters();
+ for (i = 0; i < 20; i++)
+ FillWindowPixelBuffer(i, 0);
+ for (i = 0; i < 8; i++)
+ gUnknown_0203CF1C->unk40CB[i] |= 0xFF;
+}
+
+void sub_81C25A4(u8 a, u8 *b, u8 c, u8 d, u8 e, u8 f)
+{
+ AddTextPrinterParametrized2(a, 1, c, d, 0, e, &gUnknown_0861CD2C[f], 0, b);
+}
+
+void sub_81C25E8()
+{
+ FillWindowPixelBuffer(17, 0);
+ FillWindowPixelBuffer(18, 0);
+ FillWindowPixelBuffer(19, 0);
+ if (gUnknown_0203CF1C->summary.isEgg == 0)
+ sub_81C2628();
+ else
+ sub_81C2794();
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void sub_81C2628()
+{
+ u8 strArray[16];
+ struct Pokemon *mon = &gUnknown_0203CF1C->currentMon;
+ struct PokeSummary *summary = &gUnknown_0203CF1C->summary;
+ u16 r5 = SpeciesToPokedexNum(summary->species);
+ if (r5 != 0xFFFF)
+ {
+ StringCopy(gStringVar1, &gText_UnkCtrlF908Clear01[0]);
+ ConvertIntToDecimalStringN(gStringVar2, r5, 2, 3);
+ StringAppend(gStringVar1, gStringVar2);
+ if (IsMonShiny(mon) == 0)
+ {
+ sub_81C25A4(17, gStringVar1, 0, 1, 0, 1);
+ sub_81C228C(0);
+ }
+ else
+ {
+ sub_81C25A4(17, gStringVar1, 0, 1, 0, 7);
+ sub_81C228C(1);
+ }
+ PutWindowTilemap(17);
+ }
+ else
+ {
+ ClearWindowTilemap(17);
+ if (IsMonShiny(mon) == 0)
+ sub_81C228C(0);
+ else
+ sub_81C228C(1);
+ }
+ StringCopy(gStringVar1, &gText_LevelSymbol[0]);
+ ConvertIntToDecimalStringN(gStringVar2, summary->level, 0, 3);
+ StringAppend(gStringVar1, gStringVar2);
+ sub_81C25A4(19, gStringVar1, 0x18, 17, 0, 1);
+ GetMonNickname(mon, gStringVar1);
+ sub_81C25A4(18, gStringVar1, 0, 1, 0, 1);
+ strArray[0] = CHAR_SLASH;
+ StringCopy(&strArray[1], &gSpeciesNames[summary->species2][0]);
+ sub_81C25A4(19, &strArray[0], 0, 1, 0, 1);
+ sub_81C27DC(mon, summary->species2);
+ PutWindowTilemap(18);
+ PutWindowTilemap(19);
+}
+
+void sub_81C2794()
+{
+ GetMonNickname(&gUnknown_0203CF1C->currentMon, gStringVar1);
+ sub_81C25A4(18, gStringVar1, 0, 1, 0, 1);
+ PutWindowTilemap(18);
+ ClearWindowTilemap(17);
+ ClearWindowTilemap(19);
+}
+
+void sub_81C27DC(struct Pokemon *mon, u16 a)
+{
+ if (a != SPECIES_NIDORAN_M && a != SPECIES_NIDORAN_F)
+ {
+ u8 gender = GetMonGender(mon);
+ switch (gender)
+ {
+ case 0:
+ sub_81C25A4(0x13, &gText_MaleSymbol[0], 0x39, 17, 0, 3);
+ break;
+ case 0xFE:
+ sub_81C25A4(0x13, &gText_FemaleSymbol[0], 0x39, 17, 0, 4);
+ break;
+ }
+ }
+}
+
+void sub_81C2838(u8 a, bool8 b, u32 c)
+{
+ BlitBitmapToWindow(a, (b) ? &gUnknown_0861CDD3[0] : &gUnknown_0861CDD3[0] - 0x80, c, 0, 16, 16);
+}
+
+void sub_81C286C()
+{
+ int r4;
+ int r2;
+ int temp;
+ sub_81C25A4(0, gText_PkmnInfo, 2, 1, 0, 1);
+ sub_81C25A4(1, gText_PkmnSkills, 2, 1, 0, 1);
+ sub_81C25A4(2, gText_BattleMoves, 2, 1, 0, 1);
+ sub_81C25A4(3, gText_ContestMoves, 2, 1, 0, 1);
+ r4 = GetStringRightAlignXOffset(1, gText_Cancel2, 0x3E);
+ r2 = r4 - 16;
+ if (r2 < 0)
+ r2 = 0;
+ sub_81C2838(4, 0, r2);
+ sub_81C25A4(4, gText_Cancel2, r4, 1, 0, 0);
+ r4 = GetStringRightAlignXOffset(1, gText_Info, 0x3E);
+ r2 = r4 - 16;
+ if (r2 < 0)
+ r2 = 0;
+ sub_81C2838(5, 0, r2);
+ sub_81C25A4(5, gText_Info, r4, 1, 0, 0);
+ r4 = GetStringRightAlignXOffset(1, gText_Switch, 0x3E);
+ r2 = r4 - 16;
+ if (r2 < 0)
+ r2 = 0;
+ sub_81C2838(6, 0, r2);
+ sub_81C25A4(6, gText_Switch, r4, 1, 0, 0);
+ sub_81C25A4(8, gText_RentalPkmn, 0, 1, 0, 1);
+ sub_81C25A4(9, gText_TypeSlash, 0, 1, 0, 0);
+ temp = 6;
+ temp += GetStringCenterAlignXOffset(1, gText_HP4, 42);
+ sub_81C25A4(10, gText_HP4, temp, 1, 0, 1);
+ temp = 6;
+ temp += GetStringCenterAlignXOffset(1, gText_Attack3, 42);
+ sub_81C25A4(10, gText_Attack3, temp, 17, 0, 1);
+ temp = 6;
+ temp += GetStringCenterAlignXOffset(1, gText_Defense3, 42);
+ sub_81C25A4(10, gText_Defense3, temp, 33, 0, 1);
+ temp = 2;
+ temp += GetStringCenterAlignXOffset(1, gText_SpAtk4, 36);
+ sub_81C25A4(11, gText_SpAtk4, temp, 1, 0, 1);
+ temp = 2;
+ temp += GetStringCenterAlignXOffset(1, gText_SpDef4, 36);
+ sub_81C25A4(11, gText_SpDef4, temp, 17, 0, 1);
+ temp = 2;
+ temp += GetStringCenterAlignXOffset(1, gText_Speed2, 36);
+ sub_81C25A4(11, gText_Speed2, temp, 33, 0, 1);
+ sub_81C25A4(12, gText_ExpPoints, 6, 1, 0, 1);
+ sub_81C25A4(12, gText_NextLv, 6, 17, 0, 1);
+ sub_81C25A4(13, gText_Status, 2, 1, 0, 1);
+ sub_81C25A4(14, gText_Power, 0, 1, 0, 1);
+ sub_81C25A4(14, gText_Accuracy2, 0, 17, 0, 1);
+ sub_81C25A4(15, gText_Appeal, 0, 1, 0, 1);
+ sub_81C25A4(15, gText_Jam, 0, 17, 0, 1);
+}
+
+void sub_81C2AFC(u8 a)
+{
+ u8 i;
+ ClearWindowTilemap(0);
+ ClearWindowTilemap(1);
+ ClearWindowTilemap(2);
+ ClearWindowTilemap(3);
+ switch (a)
+ {
+ case 0:
+ PutWindowTilemap(0);
+ PutWindowTilemap(4);
+ if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
+ PutWindowTilemap(8);
+ PutWindowTilemap(9);
+ break;
+ case 1:
+ PutWindowTilemap(1);
+ PutWindowTilemap(10);
+ PutWindowTilemap(11);
+ PutWindowTilemap(12);
+ break;
+ case 2:
+ PutWindowTilemap(2);
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ PutWindowTilemap(14);
+ }
+ else
+ PutWindowTilemap(5);
+ break;
+ case 3:
+ PutWindowTilemap(3);
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ PutWindowTilemap(15);
+ }
+ else
+ PutWindowTilemap(5);
+ break;
+ }
+ for (i = 0; i < 8; i++)
+ {
+ PutWindowTilemap(gUnknown_0203CF1C->unk40CB[i]);
+ }
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+void sub_81C2C38(u8 a)
+{
+ u8 i;
+ switch (a)
+ {
+ case 0:
+ ClearWindowTilemap(4);
+ if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE)
+ ClearWindowTilemap(8);
+ ClearWindowTilemap(9);
+ break;
+ case 1:
+ ClearWindowTilemap(10);
+ ClearWindowTilemap(11);
+ ClearWindowTilemap(12);
+ break;
+ case 2:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ ClearWindowTilemap(14);
+ }
+ else
+ ClearWindowTilemap(5);
+ break;
+ case 3:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if(!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ ClearWindowTilemap(15);
+ }
+ else
+ ClearWindowTilemap(5);
+ break;
+ }
+ for (i = 0; i < 8; i++)
+ sub_81C2D68(i);
+ schedule_bg_copy_tilemap_to_vram(0);
+}
+
+
+
+#ifdef NONMATCHING
+u8 sub_81C2D2C(struct WindowTemplate *template, u8 a)
+{
+ u8 *r4 = gUnknown_0203CF1C->unk40CB;
+ if (r4[a] == 0xFF)
+ {
+ r4[a] = AddWindow(&template[a]);
+ FillWindowPixelBuffer(r4[a], 0);
+ }
+ return r4[a];
+}
+#else
+__attribute__((naked))
+u8 sub_81C2D2C(struct WindowTemplate *template, u8 a)
+{
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ adds r3, r0, 0\n\
+ lsls r1, 24\n\
+ lsrs r2, r1, 24\n\
+ ldr r0, =gUnknown_0203CF1C\n\
+ ldr r4, =0x000040cb\n\
+ adds r1, r2, r4\n\
+ ldr r0, [r0]\n\
+ adds r4, r0, r1\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0xFF\n\
+ bne _081C2D56\n\
+ lsls r0, r2, 3\n\
+ adds r0, r3, r0\n\
+ bl AddWindow\n\
+ strb r0, [r4]\n\
+ ldrb r0, [r4]\n\
+ movs r1, 0\n\
+ bl FillWindowPixelBuffer\n\
+_081C2D56:\n\
+ ldrb r0, [r4]\n\
+ pop {r4}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+#ifdef NONMATCHING
+void sub_81C2D68(u8 a)
+{
+ u8 *r4 = gUnknown_0203CF1C->unk40CB;
+ if (r4[a] != 0xFF)
+ {
+ ClearWindowTilemap(r4[a]);
+ RemoveWindow(r4[a]);
+ r4[a] = 0xFF;
+ }
+}
+#else
+__attribute__((naked))
+void sub_81C2D68(u8 a)
+{
+ asm(".syntax unified\n\
+ push {r4,lr}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r1, =gUnknown_0203CF1C\n\
+ ldr r2, =0x000040cb\n\
+ adds r0, r2\n\
+ ldr r1, [r1]\n\
+ adds r4, r1, r0\n\
+ ldrb r0, [r4]\n\
+ cmp r0, 0xFF\n\
+ beq _081C2D8C\n\
+ bl ClearWindowTilemap\n\
+ ldrb r0, [r4]\n\
+ bl RemoveWindow\n\
+ movs r0, 0xFF\n\
+ strb r0, [r4]\n\
+_081C2D8C:\n\
+ pop {r4}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C2D9C(u8 a)
+{
+ u16 i;
+ for (i = 0; i < 8; i++)
+ {
+ if (gUnknown_0203CF1C->unk40CB[i] != 0xFF)
+ FillWindowPixelBuffer(gUnknown_0203CF1C->unk40CB[i], 0);
+ }
+ gUnknown_0861CE54[a]();
+}
+
+void sub_81C2DE4(u8 a)
+{
+ CreateTask(gUnknown_0861CE64[a], 16);
+}
+
+void sub_81C2E00()
+{
+ if (gUnknown_0203CF1C->summary.isEgg)
+ {
+ sub_81C335C();
+ sub_81C33CC();
+ sub_81C3428();
+ sub_81C349C();
+ }
+ else
+ {
+ sub_81C2EC4();
+ sub_81C2F5C();
+ sub_81C2FD8();
+ sub_81C302C();
+ sub_81C307C();
+ sub_81C3194();
+ }
+}
+
+void sub_81C2E40(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 dataa = data[0] - 1;
+ switch (dataa)
+ {
+ case 0:
+ sub_81C2EC4();
+ break;
+ case 1:
+ sub_81C2F5C();
+ break;
+ case 2:
+ sub_81C2FD8();
+ break;
+ case 3:
+ sub_81C302C();
+ break;
+ case 4:
+ sub_81C307C();
+ break;
+ case 5:
+ sub_81C3194();
+ break;
+ case 6:
+ DestroyTask(taskId);
+ return;
+ }
+ data[0]++;
+}
+
+void sub_81C2EC4()
+{
+ u8 r5;
+ int r2;
+ if (sub_81A6BF4() != 1 && sub_81B9E94() != 1)
+ {
+ r5 = sub_81C2D2C(&gUnknown_0861CCCC, 0);
+ sub_81C25A4(r5, gText_OTSlash, 0, 1, 0, 1);
+ r2 = GetStringWidth(1, gText_OTSlash, 0);
+ if (gUnknown_0203CF1C->summary.OTGender == 0)
+ sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 5);
+ else
+ sub_81C25A4(r5, gUnknown_0203CF1C->summary.OTName, r2, 1, 0, 6);
+ }
+}
+
+void sub_81C2F5C()
+{
+ int r4;
+ if (sub_81A6BF4() != TRUE && sub_81B9E94() != TRUE)
+ {
+ ConvertIntToDecimalStringN(StringCopy(gStringVar1, gText_UnkCtrlF907F908), (u16)gUnknown_0203CF1C->summary.OTID, 2, 5);
+ r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38);
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1);
+ }
+}
+
+void sub_81C2FD8()
+{
+ u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility);
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityNames[ability], 0, 1, 0, 1);
+}
+
+void sub_81C302C()
+{
+ u8 ability = GetAbilityBySpecies(gUnknown_0203CF1C->summary.species, gUnknown_0203CF1C->summary.altAbility);
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), gAbilityDescriptionPointers[ability], 0, 17, 0, 0);
+}
+
+void sub_81C307C()
+{
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ u8 *text;
+ sub_81AFBF0();
+ sub_81AFC0C(0, gUnknown_0861CE74);
+ sub_81AFC0C(1, gUnknown_0861CE7B);
+ sub_81C31C0();
+ if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE)
+ sub_81AFC28(gStringVar4, gText_XNature);
+ else
+ {
+ u8 *alloced1 = Alloc(32);
+ u8 *alloced2 = Alloc(32);
+ sub_81C31F0(alloced1);
+ if (sum->metLocation <= 0xD4)
+ {
+ sub_8124610(alloced2, sum->metLocation);
+ sub_81AFC0C(4, alloced2);
+ }
+ if (sub_81C3220() == 1)
+ {
+ if (sum->metLevel == 0)
+ text = (sum->metLocation > 0xD4) ? gText_XNatureHatchedSomewhereAt : gText_XNatureHatchedAtYZ;
+ else
+ text = (sum->metLocation > 0xD4) ? gText_XNatureMetSomewhereAt : gText_XNatureMetAtYZ;
+ }
+ else if (sum->metLocation == 0xFF)
+ text = gText_XNatureFatefulEncounter;
+ else if (sum->metLocation != 0xFE && sub_81C32BC())
+ text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt;
+ else
+ text = gText_XNatureObtainedInTrade;
+ sub_81AFC28(gStringVar4, text);
+ Free(alloced1);
+ Free(alloced2);
+ }
+}
+
+void sub_81C3194()
+{
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), gStringVar4, 0, 1, 0, 0);
+}
+
+void sub_81C31C0()
+{
+ struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C;
+ sub_81AFC0C(2, gNatureNamePointers[sumStruct->summary.nature]);
+ sub_81AFC0C(5, gText_EmptyString5);
+}
+
+void sub_81C31F0(u8 *a)
+{
+ u8 level = gUnknown_0203CF1C->summary.metLevel;
+ if (level == 0)
+ level = 5;
+ ConvertIntToDecimalStringN(a, level, 0, 3);
+ sub_81AFC0C(3, a);
+}
+
+u8 sub_81C3220()
+{
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ u32 r4;
+ u8 r5;
+ if (gUnknown_0203CF1C->unk0 == (union UnkUnion *)&gEnemyParty)
+ {
+ u8 multiID = GetMultiplayerId()^1;
+ r4 = (u16)gLinkPlayers[multiID].trainerId;
+ r5 = gLinkPlayers[multiID].gender;
+ StringCopy(gStringVar1, gLinkPlayers[multiID].name);
+ }
+ else
+ {
+ r4 = GetPlayerIDAsU32() & 0xFFFF;
+ r5 = gSaveBlock2Ptr->playerGender;
+ StringCopy(gStringVar1, gSaveBlock2Ptr->playerName);
+ }
+ if (r5 != sum->OTGender || r4 != (sum->OTID & 0xFFFF) || StringCompareWithoutExtCtrlCodes(gStringVar1, sum->OTName))
+ {
+ return 0;
+ }
+ return 1;
+}
+
+bool8 sub_81C32BC()
+{
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ u8 r0 = sum->metGame - 1;
+ if (r0 <= 4)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 sub_81C32E0()
+{
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ u8 r0 = sum->metGame - 1;
+ if (r0 <= 2)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 sub_81C3304()
+{
+ if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) && gMain.inBattle)
+ {
+ if (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+#ifdef NONMATCHING
+void sub_81C335C()
+{
+ u8 r4 = sub_81C2D2C(&gUnknown_0861CCCC, 0);
+ u32 r5 = GetStringWidth(1, gText_OTSlash, 0);
+ sub_81C25A4(r4, gText_OTSlash, 0, 1, 0, 1);
+ sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1);
+}
+#else
+__attribute__((naked))
+void sub_81C335C()
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5,r6}\n\
+ sub sp, 0x8\n\
+ ldr r0, =gUnknown_0861CCCC\n\
+ movs r1, 0\n\
+ bl sub_81C2D2C\n\
+ adds r4, r0, 0\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ ldr r0, =gText_OTSlash\n\
+ mov r8, r0\n\
+ movs r0, 0x1\n\
+ mov r1, r8\n\
+ movs r2, 0\n\
+ bl GetStringWidth\n\
+ adds r5, r0, 0\n\
+ movs r0, 0\n\
+ mov r9, r0\n\
+ str r0, [sp]\n\
+ movs r6, 0x1\n\
+ str r6, [sp, 0x4]\n\
+ adds r0, r4, 0\n\
+ mov r1, r8\n\
+ movs r2, 0\n\
+ movs r3, 0x1\n\
+ bl sub_81C25A4\n\
+ ldr r1, =gText_FiveMarks\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ mov r0, r9\n\
+ str r0, [sp]\n\
+ str r6, [sp, 0x4]\n\
+ adds r0, r4, 0\n\
+ adds r2, r5, 0\n\
+ movs r3, 0x1\n\
+ bl sub_81C25A4\n\
+ add sp, 0x8\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C33CC()
+{
+ int r4;
+ StringCopy(gStringVar1, gText_UnkCtrlF907F908);
+ StringAppend(gStringVar1, gText_FiveMarks);
+ r4 = GetStringRightAlignXOffset(1, gStringVar1, 0x38);
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 1), gStringVar1, r4, 1, 0, 1);
+}
+
+void sub_81C3428()
+{
+ u8 *text;
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ if (gUnknown_0203CF1C->summary.sanity == 1)
+ text = gText_EggWillTakeALongTime;
+ else if (sum->friendship <= 5)
+ text = gText_EggAboutToHatch;
+ else if (sum->friendship <= 10)
+ text = gText_EggWillHatchSoon;
+ else if (sum->friendship <= 40)
+ text = gText_EggWillTakeSomeTime;
+ else
+ text = gText_EggWillTakeALongTime;
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 2), text, 0, 1, 0, 0);
+}
+
+void sub_81C349C()
+{
+ u8 *text;
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ if (gUnknown_0203CF1C->summary.sanity != 1)
+ {
+ if (sum->metLocation == 0xFF)
+ text = gText_PeculiarEggNicePlace;
+ else if (sub_81C32BC() == 0 || sub_81C3220() == 0)
+ text = gText_PeculiarEggTrade;
+ else if (sum->metLocation == 0xFD)
+ text = (sub_81C32E0() == TRUE) ? gText_EggFromHotSprings : gText_EggFromTraveler;
+ else
+ text = gText_OddEggFoundByCouple;
+ }
+ else
+ text = gText_OddEggFoundByCouple;
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCCC, 3), text, 0, 1, 0, 0);
+}
+
+void sub_81C3530()
+{
+ sub_81C35E4();
+ sub_81C3690();
+ sub_81C3710();
+ sub_81C37D8();
+ sub_81C3808();
+ sub_81C3890();
+ sub_81C38C0();
+}
+
+void sub_81C3554(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 dataa = data[0] - 1;
+ switch (dataa)
+ {
+ case 0:
+ sub_81C35E4();
+ break;
+ case 1:
+ sub_81C3690();
+ break;
+ case 2:
+ sub_81C3710();
+ break;
+ case 3:
+ sub_81C37D8();
+ break;
+ case 4:
+ sub_81C3808();
+ break;
+ case 5:
+ sub_81C3890();
+ break;
+ case 6:
+ sub_81C38C0();
+ break;
+ case 7:
+ DestroyTask(taskId);
+ return;
+ }
+ data[0]++;
+}
+
+void sub_81C35E4()
+{
+ u8 *text;
+ int offset;
+ if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5))
+ {
+ text = (u8*)ItemId_GetItem(ITEM_ENIGMA_BERRY);
+ }
+ else if (gUnknown_0203CF1C->summary.item == ITEM_NONE)
+ text = gText_None;
+ else
+ {
+ CopyItemName(gUnknown_0203CF1C->summary.item, gStringVar1);
+ text = gStringVar1;
+ }
+ offset = GetStringCenterAlignXOffset(1, text, 0x48) + 6;
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 0), text, offset, 1, 0, 0);
+}
+
+void sub_81C3690()
+{
+ u8 *text;
+ int offset;
+ if (gUnknown_0203CF1C->summary.ribbons == 0)
+ text = gText_None;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.ribbons, 1, 2);
+ StringExpandPlaceholders(gStringVar4, gText_RibbonsVar1);
+ text = gStringVar4;
+ }
+ offset = GetStringCenterAlignXOffset(1, text, 0x46) + 6;
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 1), text, offset, 1, 0, 0);
+}
+
+void sub_81C3710()
+{
+ u8 *alloced1 = Alloc(8);
+ u8 *alloced2 = Alloc(8);
+ u8 *alloced3 = Alloc(8);
+ u8 *alloced4 = Alloc(8);
+ ConvertIntToDecimalStringN(alloced1, gUnknown_0203CF1C->summary.currentHP, 1, 3);
+ ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3);
+ ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7);
+ ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7);
+ sub_81AFBF0();
+ sub_81AFC0C(0, alloced1);
+ sub_81AFC0C(1, alloced2);
+ sub_81AFC0C(2, alloced3);
+ sub_81AFC0C(3, alloced4);
+ sub_81AFC28(gStringVar4, gUnknown_0861CE82);
+ Free(alloced1);
+ Free(alloced2);
+ Free(alloced3);
+ Free(alloced4);
+}
+
+void sub_81C37D8()
+{
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 2), gStringVar4, 4, 1, 0, 0);
+}
+
+void sub_81C3808()
+{
+ ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3);
+ ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3);
+ ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3);
+ sub_81AFBF0();
+ sub_81AFC0C(0, gStringVar1);
+ sub_81AFC0C(1, gStringVar2);
+ sub_81AFC0C(2, gStringVar3);
+ sub_81AFC28(gStringVar4, gUnknown_0861CE8E);
+}
+
+void sub_81C3890()
+{
+ sub_81C25A4(sub_81C2D2C(&gUnknown_0861CCEC, 3), gStringVar4, 2, 1, 0, 0);
+}
+
+void sub_81C38C0()
+{
+ struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
+ u8 r6 = sub_81C2D2C(&gUnknown_0861CCEC, 4);
+ int offset;
+ u32 expToNextLevel;
+ ConvertIntToDecimalStringN(gStringVar1, sum->exp, 1, 7);
+ offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2;
+ sub_81C25A4(r6, gStringVar1, offset, 1, 0, 0);
+ if (sum->level < MAX_MON_LEVEL)
+ expToNextLevel = gExperienceTables[gBaseStats[sum->species].growthRate][sum->level + 1] - sum->exp;
+ else
+ expToNextLevel = 0;
+ ConvertIntToDecimalStringN(gStringVar1, expToNextLevel, 1, 6);
+ offset = GetStringRightAlignXOffset(1, gStringVar1, 0x2A) + 2;
+ sub_81C25A4(r6, gStringVar1, offset, 17, 0, 0);
+}
+
+void sub_81C3984()
+{
+ sub_81C3B08(0);
+ sub_81C3B08(1);
+ sub_81C3B08(2);
+ sub_81C3B08(3);
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ sub_81C3F44();
+ if (gUnknown_0203CF1C->unk40C6 == 4)
+ {
+ if (gUnknown_0203CF1C->unk40C4 != 0)
+ sub_81C3E9C(gUnknown_0203CF1C->unk40C4);
+ }
+ else
+ sub_81C3E9C(gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6]);
+ }
+}
+
+void sub_81C39F0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 dataa = data[0] - 1;
+
+ switch (dataa)
+ {
+ case 0:
+ sub_81C3B08(0);
+ break;
+ case 1:
+ sub_81C3B08(1);
+ break;
+ case 2:
+ sub_81C3B08(2);
+ break;
+ case 3:
+ sub_81C3B08(3);
+ break;
+ case 4:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ sub_81C3F44();
+ break;
+ case 5:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if (gUnknown_0203CF1C->unk40C6 == 4)
+ data[1] = gUnknown_0203CF1C->unk40C4;
+ else
+ data[1] = gUnknown_0203CF1C->summary.moves[gUnknown_0203CF1C->unk40C6];
+ }
+ break;
+ case 6:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ sub_81C3E9C(data[1]);
+ }
+ break;
+ case 7:
+ DestroyTask(taskId);
+ return;
+ }
+ data[0]++;
+}
+
+#ifdef NONMATCHING
+void sub_81C3B08(u8 a)
+{
+ struct UnkSummaryStruct *r10 = gUnknown_0203CF1C;
+ u8 r8 = sub_81C2D2C(&gUnknown_0861CD14, 0);
+ u8 sp = sub_81C2D2C(&gUnknown_0861CD14, 1);
+ u8 r6;
+ u8 r5;
+ u8 *text;
+ int offset;
+ u16 move;
+ if (r10->summary.moves[a] != 0)
+ {
+ move = r10->summary.moves[a];
+ r6 = CalculatePPWithBonus(move, r10->summary.ppBonuses, a);
+ sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1);
+ ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2);
+ ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2);
+ sub_81AFBF0();
+ sub_81AFC0C(0, gStringVar1);
+ sub_81AFC0C(1, gStringVar2);
+ sub_81AFC28(gStringVar4, gUnknown_0861CE97);
+ text = gStringVar4;
+ r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9;
+ offset = GetStringRightAlignXOffset(1, text, 0x2C);
+ }
+ else
+ {
+ sub_81C25A4(r8, gText_OneDash, 0, (a<<4) + 1, 0, 1);
+ text = gText_TwoDashes;
+ r5 = 12;
+ offset = GetStringCenterAlignXOffset(1, text, 0x2C);
+ }
+ sub_81C25A4(sp, text, offset, (a<<4), 0, r5);
+}
+#else
+__attribute__((naked))
+void sub_81C3B08(u8 a)
+{
+ 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, 0xC\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ ldr r0, =gUnknown_0203CF1C\n\
+ ldr r0, [r0]\n\
+ mov r10, r0\n\
+ ldr r4, =gUnknown_0861CD14\n\
+ adds r0, r4, 0\n\
+ movs r1, 0\n\
+ bl sub_81C2D2C\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x1\n\
+ bl sub_81C2D2C\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x8]\n\
+ lsls r1, r7, 1\n\
+ mov r0, r10\n\
+ adds r0, 0x84\n\
+ adds r0, r1\n\
+ ldrh r5, [r0]\n\
+ cmp r5, 0\n\
+ beq _081C3C00\n\
+ mov r0, r10\n\
+ adds r0, 0xA4\n\
+ ldrb r1, [r0]\n\
+ adds r0, r5, 0\n\
+ adds r2, r7, 0\n\
+ bl CalculatePPWithBonus\n\
+ adds r6, r0, 0\n\
+ lsls r6, 24\n\
+ lsrs r6, 24\n\
+ movs r0, 0xD\n\
+ adds r1, r5, 0\n\
+ muls r1, r0\n\
+ ldr r0, =gMoveNames\n\
+ adds r1, r0\n\
+ lsls r0, r7, 4\n\
+ mov r9, r0\n\
+ mov r3, r9\n\
+ adds r3, 0x1\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ movs r0, 0x1\n\
+ str r0, [sp, 0x4]\n\
+ mov r0, r8\n\
+ movs r2, 0\n\
+ bl sub_81C25A4\n\
+ ldr r0, =gStringVar1\n\
+ mov r8, r0\n\
+ mov r5, r10\n\
+ adds r5, 0x8C\n\
+ adds r5, r7\n\
+ ldrb r1, [r5]\n\
+ movs r2, 0x1\n\
+ movs r3, 0x2\n\
+ bl ConvertIntToDecimalStringN\n\
+ ldr r4, =gStringVar2\n\
+ adds r0, r4, 0\n\
+ adds r1, r6, 0\n\
+ movs r2, 0x1\n\
+ movs r3, 0x2\n\
+ bl ConvertIntToDecimalStringN\n\
+ bl sub_81AFBF0\n\
+ movs r0, 0\n\
+ mov r1, r8\n\
+ bl sub_81AFC0C\n\
+ movs r0, 0x1\n\
+ adds r1, r4, 0\n\
+ bl sub_81AFC0C\n\
+ ldr r4, =gStringVar4\n\
+ ldr r1, =gUnknown_0861CE97\n\
+ adds r0, r4, 0\n\
+ bl sub_81AFC28\n\
+ adds r7, r4, 0\n\
+ ldrb r0, [r5]\n\
+ adds r1, r6, 0\n\
+ bl GetCurrentPpToMaxPpState\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ adds r5, r0, 0\n\
+ adds r5, 0x9\n\
+ movs r0, 0x1\n\
+ adds r1, r7, 0\n\
+ movs r2, 0x2C\n\
+ bl GetStringRightAlignXOffset\n\
+ mov r4, r9\n\
+ b _081C3C26\n\
+ .pool\n\
+_081C3C00:\n\
+ ldr r1, =gText_OneDash\n\
+ lsls r4, r7, 4\n\
+ adds r3, r4, 0x1\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ str r5, [sp]\n\
+ movs r0, 0x1\n\
+ str r0, [sp, 0x4]\n\
+ mov r0, r8\n\
+ movs r2, 0\n\
+ bl sub_81C25A4\n\
+ ldr r7, =gText_TwoDashes\n\
+ movs r5, 0xC\n\
+ movs r0, 0x1\n\
+ adds r1, r7, 0\n\
+ movs r2, 0x2C\n\
+ bl GetStringCenterAlignXOffset\n\
+_081C3C26:\n\
+ lsls r2, r0, 24\n\
+ lsrs r2, 24\n\
+ adds r3, r4, 0x1\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ movs r0, 0\n\
+ str r0, [sp]\n\
+ lsls r0, r5, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x4]\n\
+ ldr r0, [sp, 0x8]\n\
+ adds r1, r7, 0\n\
+ bl sub_81C25A4\n\
+ add sp, 0xC\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_81C3C5C(u16 move)
+{
+ u8 *text;
+ if (move != 0)
+ {
+ FillWindowPixelRect(14, 0, 0x35, 0, 0x13, 0x20);
+ if (gBattleMoves[move].power <= 1)
+ text = gText_ThreeDashes;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].power, 1, 3);
+ text = gStringVar1;
+ }
+ sub_81C25A4(14, text, 0x35, 1, 0, 0);
+ if (gBattleMoves[move].accuracy == 0)
+ text = gText_ThreeDashes;
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar1, gBattleMoves[move].accuracy, 1, 3);
+ text = gStringVar1;
+ }
+ sub_81C25A4(14, text, 0x35, 17, 0, 0);
+ }
+}
+
+void sub_81C3D08()
+{
+ sub_81C3B08(0);
+ sub_81C3B08(1);
+ sub_81C3B08(2);
+ sub_81C3B08(3);
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ sub_81C3F44();
+ sub_81C3E2C(gUnknown_0203CF1C->unk40C6);
+ }
+}
+
+void sub_81C3D54(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 dataa = data[0] - 1;
+
+ switch (dataa)
+ {
+ case 0:
+ sub_81C3B08(0);
+ break;
+ case 1:
+ sub_81C3B08(1);
+ break;
+ case 2:
+ sub_81C3B08(2);
+ break;
+ case 3:
+ sub_81C3B08(3);
+ break;
+ case 4:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ sub_81C3F44();
+ break;
+ case 5:
+ if (gUnknown_0203CF1C->unk40BC == 3)
+ {
+ if (!(gUnknown_0203CF1C->unk40C4 == 0 && gUnknown_0203CF1C->unk40C6 == 4))
+ sub_81C3E2C(gUnknown_0203CF1C->unk40C6);
+ }
+ break;
+ case 6:
+ DestroyTask(taskId);
+ return;
+ }
+ data[0]++;
+} \ No newline at end of file
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 25c2ca658..343ddb9c0 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -336,9 +336,9 @@ static void CreateHealthboxSprite(u8 bank)
UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL);
if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2)
- nullsub_30(gHealthBoxesIds[bank], TRUE);
+ DummyBattleInterfaceFunc(gHealthBoxesIds[bank], TRUE);
else
- nullsub_30(gHealthBoxesIds[bank], FALSE);
+ DummyBattleInterfaceFunc(gHealthBoxesIds[bank], FALSE);
if (GetBankSide(bank) != SIDE_PLAYER)
{
diff --git a/src/safari_zone.c b/src/safari_zone.c
index a1ec38920..77c6bbd61 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -139,7 +139,7 @@ static void ClearAllPokeblockFeeders(void)
memset(sPokeblockFeeders, 0, sizeof(sPokeblockFeeders));
}
-static void GetPokeblockFeederInFront(void)
+void GetPokeblockFeederInFront(void)
{
s16 x, y;
u16 i;
diff --git a/src/sprite.c b/src/sprite.c
index 17b0f181a..daa019019 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -594,7 +594,7 @@ u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y,
return index;
}
-u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
+u8 CreateSpriteAndAnimate(const struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
{
u8 i;
diff --git a/src/start_menu.c b/src/start_menu.c
index be30d0e53..37331a922 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -207,7 +207,7 @@ static bool32 PrintStartMenuItemsMultistep(s16 *index, u32 n)
do
{
- if (sStartMenuItems[sCurrentStartMenuActions[_index]].func == StartMenu_PlayerName)
+ if (sStartMenuItems[sCurrentStartMenuActions[_index]].func.u8_void == StartMenu_PlayerName)
{
}
diff --git a/src/tv.c b/src/tv.c
index 7f64b46ac..3c822b394 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -2353,7 +2353,7 @@ void sub_80EDFB4(TVShow *show)
show->secretBaseVisit.move = sTV_SecretBaseVisitMonsTemp[j].move;
}
-void sub_80EE104(void)
+void TV_PutSecretBaseVisitOnTheAir(void)
{
TVShow *show;
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
new file mode 100644
index 000000000..7e06d1319
--- /dev/null
+++ b/src/walda_phrase.c
@@ -0,0 +1,257 @@
+#include "global.h"
+#include "walda_phrase.h"
+#include "string_util.h"
+#include "event_data.h"
+#include "naming_screen.h"
+#include "main.h"
+#include "text.h"
+#include "new_game.h"
+
+extern void (*gFieldCallback)(void);
+
+extern const u8 gText_Peekaboo[];
+
+extern u8 *GetWaldaPhrasePtr(void);
+extern bool32 IsWaldaPhraseEmpty(void);
+extern void sub_80AF168(void);
+extern void c2_exit_to_overworld_2_switch(void);
+extern void SetWaldaPhrase(const u8 *src);
+extern void SetWaldaWallpaperPatternId(u8 patternId);
+extern void SetWaldaWallpaperIconId(u8 iconId);
+extern void SetWaldaWallpaperColors(u16 backgroundColor, u16 foregroundColor);
+extern void SetWaldaWallpaperLockedOrUnlocked(bool32 unlocked);
+
+// this file's functions
+static void CB2_HandleGivenWaldaPhrase(void);
+static u32 GetWaldaPhraseInputCase(u8 *inputPtr);
+static bool32 TryCalculateWallpaper(u16* backgroundClr, u16 *foregroundClr, u8 *iconId, u8 *patternId, u16 trainerId, u8 *phrase);
+static void sub_81D9D5C(u8 *array, u8 *letterTableIds, u32 arg2, u32 arg3, u32 loopCount);
+static u32 sub_81D9DAC(u8 *array, u32 arg1, u32 loopCount);
+static void sub_81D9C90(u8 *array, s32 arg1, s32 arg2);
+static void sub_81D9CDC(u8 *array, u32 loopCount, u8 arg2);
+
+// only consonants are allowed, no vowels, some lowercase letters are missing
+static const u8 sWaldaLettersTable[] =
+{
+ CHAR_B, CHAR_C, CHAR_D, CHAR_F, CHAR_G, CHAR_H, CHAR_J, CHAR_K, CHAR_L, CHAR_M, CHAR_N, CHAR_P, CHAR_Q, CHAR_R, CHAR_S, CHAR_T, CHAR_V, CHAR_W, CHAR_Z,
+ CHAR_b, CHAR_c, CHAR_d, CHAR_f, CHAR_g, CHAR_h, CHAR_j, CHAR_k, CHAR_m, CHAR_n, CHAR_p, CHAR_q, CHAR_s
+};
+
+enum
+{
+ PHRASE_GIVEN_NEW,
+ PHRASE_NO_CHANGE,
+ PHRASE_FIRST_ATTEMPT
+};
+
+u16 TryBufferWaldaPhrase(void)
+{
+ if (IsWaldaPhraseEmpty())
+ return FALSE;
+
+ StringCopy(gStringVar1, GetWaldaPhrasePtr());
+ return TRUE;
+}
+
+void DoWaldaNamingScreen(void)
+{
+ StringCopy(gStringVar2, GetWaldaPhrasePtr());
+ DoNamingScreen(NAMING_SCREEN_WALDA, gStringVar2, 0, 0, 0, CB2_HandleGivenWaldaPhrase);
+}
+
+static void CB2_HandleGivenWaldaPhrase(void)
+{
+ gSpecialVar_0x8004 = GetWaldaPhraseInputCase(gStringVar2);
+
+ switch (gSpecialVar_0x8004)
+ {
+ case PHRASE_FIRST_ATTEMPT:
+ if (IsWaldaPhraseEmpty())
+ SetWaldaPhrase(gText_Peekaboo);
+ else
+ gSpecialVar_0x8004 = PHRASE_NO_CHANGE;
+ break;
+ case PHRASE_GIVEN_NEW:
+ SetWaldaPhrase(gStringVar2);
+ break;
+ case PHRASE_NO_CHANGE:
+ break;
+ }
+
+ StringCopy(gStringVar1, GetWaldaPhrasePtr());
+ gFieldCallback = sub_80AF168;
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+}
+
+static u32 GetWaldaPhraseInputCase(u8 *inputPtr)
+{
+ if (inputPtr[0] == EOS)
+ return PHRASE_FIRST_ATTEMPT;
+ if (StringCompare(inputPtr, GetWaldaPhrasePtr()) == 0)
+ return PHRASE_NO_CHANGE;
+
+ return PHRASE_GIVEN_NEW;
+}
+
+u16 TryGetWallpaperWithWaldaPhrase(void)
+{
+ u16 backgroundClr, foregroundClr;
+ u8 patternId, iconId;
+ u16 trainerId = ReadUnalignedWord(gSaveBlock2Ptr->playerTrainerId);
+ gScriptResult = TryCalculateWallpaper(&backgroundClr, &foregroundClr, &iconId, &patternId, trainerId, GetWaldaPhrasePtr());
+
+ if (gScriptResult)
+ {
+ SetWaldaWallpaperPatternId(patternId);
+ SetWaldaWallpaperIconId(iconId);
+ SetWaldaWallpaperColors(backgroundClr, foregroundClr);
+ }
+
+ SetWaldaWallpaperLockedOrUnlocked(gScriptResult);
+ return (bool8)(gScriptResult);
+}
+
+static u8 GetLetterTableId(u8 letter)
+{
+ s32 i;
+
+ for (i = 0; i < ARRAY_COUNT(sWaldaLettersTable); i++)
+ {
+ if (sWaldaLettersTable[i] == letter)
+ return i;
+ }
+
+ return ARRAY_COUNT(sWaldaLettersTable);
+}
+
+static bool32 TryCalculateWallpaper(u16* backgroundClr, u16 *foregroundClr, u8 *iconId, u8 *patternId, u16 trainerId, u8 *phrase)
+{
+ s32 i;
+ ALIGNED(2) u8 array[12];
+ u8 charsByTableId[16];
+ u16 *ptr;
+
+ if (StringLength(phrase) != 15)
+ return FALSE;
+
+ for (i = 0; i < 15; i++)
+ {
+ charsByTableId[i] = GetLetterTableId(phrase[i]);
+ if (charsByTableId[i] == ARRAY_COUNT(sWaldaLettersTable))
+ return FALSE;
+ }
+
+ for (i = 0; i < 14; i++)
+ {
+ sub_81D9D5C(array, charsByTableId, (5 * i), 3 + (8 * i), 5);
+ }
+
+ sub_81D9D5C(array, charsByTableId, 70, 115, 2);
+
+ if (sub_81D9DAC(array, 0, 3) != sub_81D9DAC(charsByTableId, 117, 3))
+ return FALSE;
+
+ sub_81D9C90(array, 9, 21);
+ sub_81D9C90(array, 8, array[8] & 0xF);
+ sub_81D9CDC(array, 8, array[8] >> 4);
+
+ if (array[6] != (array[0] ^ array[2] ^ array[4] ^ (trainerId >> 8)))
+ return FALSE;
+
+ if (array[7] != (array[1] ^ array[3] ^ array[5] ^ (trainerId & 0xFF)))
+ return FALSE;
+
+ ptr = (u16*)(&array[0]);
+ *backgroundClr = *ptr;
+
+ ptr = (u16*)(&array[2]);
+ *foregroundClr = *ptr;
+
+ *iconId = array[4];
+ *patternId = array[5];
+
+ return TRUE;
+}
+
+static void sub_81D9C90(u8 *array, s32 arg1, s32 arg2)
+{
+ s32 i, j;
+ u8 var1, var2;
+
+ for (i = arg2 - 1; i != -1; i--)
+ {
+ var1 = (array[0] & 0x80) >> 7;
+
+ var1++; var1--; // needed to match
+
+ for (j = arg1 - 1; j >= 0; j--)
+ {
+ var2 = array[j] & 0x80;
+ array[j] <<= 1;
+ array[j] |= var1;
+ var1 = var2 >> 7;
+ }
+ }
+}
+
+static void sub_81D9CDC(u8 *array, u32 loopCount, u8 arg2)
+{
+ u32 i;
+
+ arg2 |= (arg2 << 4);
+
+ for (i = 0; i < loopCount; i++)
+ {
+ array[i] ^= arg2;
+ }
+}
+
+static bool8 sub_81D9D0C(u8 *array, u32 arg1)
+{
+ u32 arrayId = arg1 >> 3;
+ u32 bits = 0x80 >> (7 & arg1);
+
+ return ((array[arrayId] & bits) != 0);
+}
+
+static void sub_81D9D28(u8 *array, u32 arg1)
+{
+ u32 arrayId = arg1 >> 3;
+ u8 bits = 0x80 >> (7 & arg1);
+
+ array[arrayId] |= bits;
+}
+
+static void sub_81D9D40(u8 *array, u32 arg1)
+{
+ u32 arrayId = arg1 >> 3;
+ u8 bits = ~(0x80 >> (7 & arg1));
+
+ array[arrayId] &= bits;
+}
+
+static void sub_81D9D5C(u8 *array, u8 *letterTableIds, u32 arg2, u32 arg3, u32 loopCount)
+{
+ u32 i;
+
+ for (i = 0; i < loopCount; i++)
+ {
+ if (sub_81D9D0C(letterTableIds, arg3 + i))
+ sub_81D9D28(array, arg2 + i);
+ else
+ sub_81D9D40(array, arg2 + i);
+ }
+}
+
+static u32 sub_81D9DAC(u8 *array, u32 arg1, u32 loopCount)
+{
+ u32 ret, i;
+
+ for (ret = 0, i = 0; i < loopCount; i++)
+ {
+ ret <<= 1;
+ ret |= sub_81D9D0C(array, arg1 + i);
+ }
+
+ return ret;
+}
diff --git a/sym_common.txt b/sym_common.txt
index acc6cf862..85b508403 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -432,7 +432,7 @@ gUnknown_03006370: @ 3006370
.include "agb_flash.o"
-gUnknown_03007868: @ 3007868
+gRfuState: @ 3007868
.space 0x8
gUnknown_03007870: @ 3007870
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 8ce7ce8df..d2779079e 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -196,7 +196,7 @@ gUnknown_02022D0A: @ 2022D0A
gUnknown_02022D0C: @ 2022D0C
.space 0x4
-gUnknown_02022D10: @ 2022D10
+gBattleBuffersTransferData: @ 2022D10
.space 0x100
gUnknown_02022E10: @ 2022E10
@@ -282,7 +282,7 @@ gNoOfAllBanks: @ 202406C
gBattlePartyID: @ 202406E
.space 0x8
-gBanksBySide: @ 2024076
+gBanksByIdentity: @ 2024076
.space 0x4
gActionsByTurnOrder: @ 202407A
@@ -471,10 +471,10 @@ gBattleScripting: @ 2024474
gBattleStruct: @ 202449C
.space 0x4
-gUnknown_020244A0: @ 20244A0
+gLinkBattleSendBuffer: @ 20244A0
.space 0x4
-gUnknown_020244A4: @ 20244A4
+gLinkBattleRecvBuffer: @ 20244A4
.space 0x4
gBattleResources: @ 20244A8
@@ -713,77 +713,9 @@ gUnknown_02037622: @ 2037622
.include "src/tileset_anims.o"
.include "src/palette.o"
.include "src/sound.o"
-
- .align 0x2
-
-gBattleAnimScriptPtr: @ 20383F0
- .space 0x4
-
-gBattleAnimScriptRetAddr: @ 20383F4
- .space 0x4
-
-gAnimScriptCallback: @ 20383F8
- .space 0x4
-
-gAnimFramesToWait: @ 20383FC
- .space 0x1
-
-gAnimScriptActive: @ 20383FD
- .space 0x1
-
-gAnimVisualTaskCount: @ 20383FE
- .space 0x1
-
-gAnimSoundTaskCount: @ 20383FF
- .space 0x1
-
-gDisableStructMoveAnim: @ 2038400
- .space 0x4
-
-gMoveDmgMoveAnim: @ 2038404
- .space 0x4
-
-gMovePowerMoveAnim: @ 2038408
- .space 0x2
-
-gAnimSpriteIndexArray: @ 203840A
- .space 0x10
-
-gHappinessMoveAnim: @ 203841A
- .space 0x2
-
-gWeatherMoveAnim: @ 203841C
- .space 0x2
-
-gBattleAnimArgs: @ 203841E
- .space 0x10
-
-gSoundAnimFramesToWait: @ 203842E
- .space 0x2
-
-gUnknown_02038430: @ 2038430
- .space 0x2
-
-gUnknown_02038432: @ 2038432
- .space 0x1
-
-gUnknown_02038433: @ 2038433
- .space 0x1
-
-gAnimMoveIndex: @ 2038434
- .space 0x2
-
-gAnimationBankAttacker: @ 2038436
- .space 0x1
-
-gAnimationBankTarget: @ 2038437
- .space 0x1
-
-gUnknown_02038438: @ 2038438
- .space 0x8
+ .include "src/battle_anim.o"
-gUnknown_02038440: @ 2038440
- .space 0x4
+.align 2
gUnknown_02038444: @ 2038444
.space 0x10
@@ -1058,7 +990,7 @@ gUnknown_02039F30: @ 2039F30
gUnknown_02039F31: @ 2039F31
.space 0x3
-gUnknown_02039F34: @ 2039F34
+gContestResources: @ 2039F34
.space 0x4
gUnknown_02039F38: @ 2039F38
@@ -1173,8 +1105,7 @@ gUnknown_0203A12C: @ 203A12C
gUnknown_0203A130: @ 203A130
.space 0x4
-gUnknown_0203A134: @ 203A134
- .space 0x4
+ .include "src/mail.o"
gUnknown_0203A138: @ 203A138
.space 0x8
@@ -1188,68 +1119,10 @@ gUnknown_0203A144: @ 203A144
gUnknown_0203A148: @ 203A148
.space 0x4
-gUnknown_0203A14C: @ 203A14C
- .space 0x4
-
-gUnknown_0203A150: @ 203A150
- .space 0x1
-
-gUnknown_0203A151: @ 203A151
- .space 0x1
-
-gUnknown_0203A152: @ 203A152
- .space 0x10
-
-gUnknown_0203A162: @ 203A162
- .space 0xC
-
-gUnknown_0203A16E: @ 203A16E
- .space 0x2
-
-gUnknown_0203A170: @ 203A170
- .space 0x2
-
-gUnknown_0203A172: @ 203A172
- .space 0x1
-
-gUnknown_0203A173: @ 203A173
- .space 0x9
-
-gUnknown_0203A17C: @ 203A17C
- .space 0xC
-
-gUnknown_0203A188: @ 203A188
- .space 0x4
-
-gUnknown_0203A18C: @ 203A18C
- .space 0x4
-
-gUnknown_0203A190: @ 203A190
- .space 0x8A4
-
-gUnknown_0203AA34: @ 203AA34
- .space 0x2
-
-gUnknown_0203AA36: @ 203AA36
- .space 0x2
-
-gUnknown_0203AA38: @ 203AA38
- .space 0x1
-
-gUnknown_0203AA39: @ 203AA39
- .space 0x1
-
-gUnknown_0203AA3A: @ 203AA3A
- .space 0x2
-
-gUnknown_0203AA3C: @ 203AA3C
- .space 0x8
-
-gUnknown_0203AA44: @ 203AA44
- .space 0x80
+ .include "src/decoration.o"
+ .align 2
-gUnknown_0203AAC4: @ 203AAC4
- .space 0x4
+@ slot_machine
gUnknown_0203AAC8: @ 203AAC8
.space 0x4
@@ -1477,9 +1350,7 @@ gUnknown_0203BC34: @ 203BC34
gUnknown_0203BC38: @ 203BC38
.space 0x8
-gDecorationInventories: @ 203BC40
- .space 0x40
-
+ .include "src/decoration_inventory.o"
.include "src/roamer.o"
gUnknown_0203BC88: @ 203BC88